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
This commit is contained in:
taggon 2011-10-17 04:35:42 +00:00
parent 7996fa8bf6
commit 0768b1b0c5
2 changed files with 26 additions and 13 deletions

View file

@ -155,8 +155,9 @@
<table width="100%" border="1" cellspacing="0">
<tr>
<td>
<input name="expression" value="{$config->expression}" size="4" /> <input type="button" onclick="exp_calc(this.form)" value="{$lang->cmd_exp_calc}" />
<input type="button" onclick="exp_calc(this.form, true)" value="{$lang->cmd_exp_reset}" />
<input value="{$config->expression}" size="30" class="level_expression" />
<button type="button" class="calc_point">{$lang->cmd_exp_calc}</button>
<button type="button" class="calc_point _reset">{$lang->cmd_exp_reset}</button>
<p>{$lang->expression}</p>
</td>
</tr>

View file

@ -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 호출