From 0768b1b0c54d4407a627fff081f345400bebb7da Mon Sep 17 00:00:00 2001 From: taggon Date: Mon, 17 Oct 2011 04:35:42 +0000 Subject: [PATCH] issue 504: Point calculator doesn't work git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@9653 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/point/tpl/config.html | 5 +++-- modules/point/tpl/js/point_admin.js | 34 +++++++++++++++++++---------- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/modules/point/tpl/config.html b/modules/point/tpl/config.html index d156586ad..725475a0b 100644 --- a/modules/point/tpl/config.html +++ b/modules/point/tpl/config.html @@ -155,8 +155,9 @@ diff --git a/modules/point/tpl/js/point_admin.js b/modules/point/tpl/js/point_admin.js index c4b0ceff4..3b5a28e62 100644 --- a/modules/point/tpl/js/point_admin.js +++ b/modules/point/tpl/js/point_admin.js @@ -4,19 +4,31 @@ * @brief point 모듈의 관리자용 javascript **/ -function exp_calc (form, reset) { - var fo_obj = get_by_id(form); - var level = fo_obj.max_level.value; - var exp = fo_obj.expression; - var exp_default = "Math.pow(i, 2) * 90"; +jQuery(function($){ - if(reset || !exp.value) exp.value = exp_default; +$('button.calc_point').click(function(){ + var $this, form, elems, reset, el, fn, i=0; + + $this = $(this); + $expr = $('input.level_expression'); + form = this.form; + elems = form.elements; + reset = $this.hasClass('_reset'); - for(i = 1; i <= level; i++) { - point = eval("fo_obj.level_step_" + i); - point.value = eval(exp.value); - } -} + if(reset || !$expr.val()) $expr.val('Math.pow(i,2) * 90'); + + try { + fn = new Function('i', 'return ('+$expr.val()+')'); + } catch(e){ + fn = null; + } + + if(!fn) return; + + while(el = elems['level_step_'+(++i)]) el.value = fn(i); +}); + +}); /** * @brief 포인트를 전부 체크하여 재계산하는 action 호출
- - + + +

{$lang->expression}