rutile
Version:
Factory automation for Mobile Enterprise.
140 lines (118 loc) • 3.07 kB
JavaScript
// num
var self = exports;
exports.getName = function(){
return "{{constraint_segment}}/{{constraint_entity}}.{{constraint_fieldName}}({{search_type}})"; // Selectby module key in the server side
};
var formGroup;
exports.setFormGroup = function(group){
formGroup = group;
};
// * * * * * * * * * * * * * * * * * * * * * * *
var items = [];
var separators = [];
var updateView = function(){
return; // deprecated
};
var addItem = function(item){
if( !item ){
item = Alloy.createController('Framework/SearchFormElementNum');
}
item.setClearButtonHandler(function(){
var min_max = item.getValue();
if( min_max.min || min_max.max ){
item.setValue({ min:'', max:'' });
}else{
removeItem(item);
updateView();
}
});
item.initForm();
items.push(item);
var container = $.Elements;
if( items.length > 1 ){
var separator = Alloy.createController('Framework/FormElementSeparator');
separators.push(separator);
container.add(separator.getView());
}
container.add(item.getView());
};
var removeItem = function(item){
var container = $.Elements;
if( items.length > 1 ){
var items_alive = [];
var loc = 0;
for( var i=0; i<items.length; i++ ){
if( items[i] != item ){
items_alive.push(items[i]);
}else{
loc = i;
}
}
items = items_alive;
container.remove(item.getView());
var removed_separators;
if( loc != 0 ){
removed_separators = separators.splice(loc-1,1);
}else{
removed_separators = separators.splice(0,1);
}
container.remove(removed_separators[0].getView());
}
};
// * * * * * * * * * * * * * * * * * * * * * * *
$.AddButton.setButtonHandler(function(){
addItem();
updateView();
});
exports.updateView = function(){
updateView();
};
// for internal program, adding Framework/SearchFormElementKey instance without ui
exports.addItem = function(item){
addItem(item);
};
// for internal program, adding Framework/SearchFormElementKey instance without ui
exports.removeItem = function(item){
removeItem(item);
};
exports.initForm = function(){
items = [];
addItem();
updateView();
};
exports.getTextExpression = function(){
var texts = [];
for( var i=0; i<items.length; i++ ){
var text = items[i].getTextExpression();
if( text ){
texts.push(text);
}
}
var textExp = '';
if( texts.length > 0 ){
var logic = $.LogicSelector.getTextExpression();
textExp += L("{{constraint_segment}}_{{constraint_entity}}_{{constraint_fieldName}}");
textExp += ' (' + L('FrameworkTextExpSearchTypeNum') + ')';
textExp += ' : ';
textExp += texts.join(', ');
if( texts.length > 0 ){
textExp += ' (' + logic + ')';
}
}
return textExp;
};
exports.getQuery = function(){
var constraint;
var values = [];
for( var i=0; i<items.length; i++ ){
var value = items[i].getValue();
if( value ){
values.push(value);
}
}
if( values.length > 0 ){
var logic = $.LogicSelector.getLogic();
constraint = { "values":values, "logic":logic };
}
return constraint;
};