cockpit/themes/extended/theme.js in cpee-1.4.31 vs cockpit/themes/extended/theme.js in cpee-1.4.32
- old
+ new
@@ -4,14 +4,13 @@
this.adaptor = adaptor;
this.resources = {};
this.elements = {};
this.events = {};
this.compact = false;
+ this.striped = true;
this.endpoints = {};
- this.noarrow = ['alternative', 'otherwise'];
-
//{{{ transform the details data to description parts based on rng
this.source = function(base,opts) {
if (base[0].namespaceURI == "http://relaxng.org/ns/structure/1.0") {
$('#relaxngworker').empty();
var rngw = new RelaxNGui(base,$('#relaxngworker'),self.adaptor.description.context_eval);
@@ -32,15 +31,15 @@
});
}
return base;
}
}; //}}}
- //{{{ Return the svgid for the clicked task
- this.clicked = function(){
+ //{{{ Return the svgid for the selected task
+ this.selected = function(){
var svgid = 'unknown';
_.each(self.adaptor.illustrator.get_elements(),function(value,key) {
- if ($(value).hasClass('clicked')) {
+ if ($(value).hasClass('selected')) {
svgid = $(value).attr('element-id');
}
});
return svgid;
}; //}}}
@@ -64,10 +63,13 @@
var rng = self.adaptor.description.elements[$(node).attr('svg-subtype')].clone();
if (save['endpoints_cache'][$(node).attr('endpoint')] && save['endpoints_cache'][$(node).attr('endpoint')].schema) {
var schema = save['endpoints_cache'][$(node).attr('endpoint')].schema.documentElement;
$(rng).find(' > element[name="parameters"] > element[name="arguments"]').replaceWith($(schema).clone());
}
+ if (save['endpoints_list'][$(node).attr('endpoint')] && !save['endpoints_list'][$(node).attr('endpoint')].startsWith('http')) {
+ $(rng).find(' > element[name="parameters"] > element[name="method"]').remove();
+ }
save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval,true);
save['details'].content(node);
format_visual_forms();
}
}; //}}}
@@ -187,16 +189,20 @@
}
new CustomMenu(e).contextmenu(menu);
}
return false;
} // }}}
+ this.events.suppress = function(svgid, e, child, sibling) { // {{{
+ return false;
+ } // }}}
this.events.click = function(svgid, e) { // {{{
if (self.adaptor.description.get_node_by_svg_id(svgid).length == 0) {
return;
}
- self.adaptor.illustrator.get_elements().removeClass('clicked');
+ self.adaptor.illustrator.get_elements().removeClass('selected');
+ self.adaptor.illustrator.get_labels().removeClass('selected');
if (e && e.ctrlKey) {
if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
var tab = $('#dat_details');
tab.empty();
@@ -207,24 +213,29 @@
} else {
self.adaptor.illustrator.get_elements().removeClass('marked');
var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
if (vtarget.length > 0) {
- vtarget.parents('g.element[element-id]').addClass('clicked');
+ vtarget.parents('g.element[element-id]').addClass('selected');
}
+ self.adaptor.illustrator.get_label_by_svg_id(svgid).addClass('selected');
self.update_details(svgid);
}
} // }}}
this.events.dblclick = function(svgid, e) { // {{{
} // }}}
this.events.mouseover = function(svgid, e) { // {{{
- $('.tile[element-id = "' + svgid + '"]').css('display','block');
+ self.adaptor.illustrator.svg.container.find('.tile[element-id = "' + svgid + '"]').css('display','block');
+ self.adaptor.illustrator.svg.container.find('[element-id = "' + svgid + '"]').addClass('hover');
+ self.adaptor.illustrator.svg.label_container.find('[element-id = "' + svgid + '"]').addClass('hover');
return false;
} // }}}
this.events.mouseout = function(svgid, e) { // {{{
- $('.tile[element-id = "' + svgid + '"]').css('display','none');
+ self.adaptor.illustrator.svg.container.find('.tile[element-id = "' + svgid + '"]').css('display','none');
+ self.adaptor.illustrator.svg.container.find('[element-id = "' + svgid + '"]').removeClass('hover');
+ self.adaptor.illustrator.svg.label_container.find('[element-id = "' + svgid + '"]').removeClass('hover');
return false;
} // }}}
this.events.dragstart = function (svgid, e) { //{{{
} //}}}
@@ -235,13 +246,41 @@
this.elements.call = { /*{{{*/
'type': 'primitive',
'illustrator': {//{{{
'endnodes': 'this',
'label': function(node){
- var lid = $(node).attr('id');
- var lnd = $(node).attr('endpoint');
- return lid + ': ' + lnd + '\n' + $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'');
+ var rep = $('body').attr('current-resources');
+ var ep = self.endpoints[$(node).attr('endpoint')];
+ var avg = $('> _timing_avg',$(node).children('_timing')).text();
+ var lab = $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'');
+ var ret = [ { column: 'ID', value: $(node).attr('id') } ];
+ if (lab != '') {
+ ret.unshift( { column: 'Label', value: lab } );
+ }
+ if (ep != undefined) {
+ var lnd = $(node).attr('endpoint');
+ ret.push({ column: 'Resource', value: lnd });
+ if (save['endpoints_cache'][lnd] && save['endpoints_cache'][lnd].properties) {
+ var prop = save['endpoints_cache'][lnd].properties;
+ if (prop.resource) {
+ if (prop.resource == 'exclusive' && prop.lock) {
+ ret.push({ column: 'RP', value: prop.resource + ' (' + prop.lock + ')' });
+ } else {
+ ret.push({ column: 'RP', value: prop.resource });
+ }
+ }
+ if (prop.alternatives) {
+ ret.push({ column: 'R#', value: prop.alternatives.length + 1});
+ } else {
+ ret.push({ column: 'R#', value: '1' });
+ }
+ }
+ }
+ if (avg != '') {
+ ret.push({ column: 'Average', value: avg + 'min' });
+ }
+ return ret;
},
'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
'resolve_symbol': function(node) {
if($('finalize,update', node).length > 0) {
return 'callmanipulate';
@@ -261,39 +300,42 @@
'type': undefined,
'params': [self.adaptor.description.elements.scripts, node]}
];
return [];
}, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
- 'click': self.events.click,
- 'dragstart': self.events.dragstart,
- }//}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,true,true); },
+ 'click': self.events.click,
+ 'dragstart': self.events.dragstart,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout
+ }//}}}
}; /*}}}*/
this.elements.manipulate = { /*{{{*/
'type': 'primitive',
'illustrator': {//{{{
'endnodes': 'this',
'label': function(node){
- var lid = $(node).attr('id');
var lab = $(node).attr('label');
if (lab) {
- return lid + '\n' + lab.replace(/^['"]/,'').replace(/['"]$/,'');
+ return [ { column: 'Label', value: lab.replace(/^['"]/,'').replace(/['"]$/,'') }, { column: 'ID', value: $(node).attr('id') } ];
} else {
- return "";
+ return [ { column: 'ID', value: $(node).attr('id') } ];
}
},
'svg': self.adaptor.theme_dir + 'symbols/manipulate.svg'
},//}}}
'description': self.adaptor.theme_dir + 'rngs/manipulate.rng',
'permissible_children': function(node,mode) { //{{{
return [];
}, //}}}
- 'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
- 'click': self.events.click,
- }//}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
+ 'click': self.events.click,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout
+ }//}}}
}; /*}}}*/
this.elements.escape = { /*{{{*/
'type': 'primitive',
'illustrator': {//{{{
'endnodes': 'this',
@@ -304,25 +346,32 @@
return [];
}, //}}}
'adaptor': {//{{{
'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
'click': self.events.click,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout
}//}}}
}; /*}}}*/
this.elements.stop = { /*{{{*/
'type': 'primitive',
'illustrator': {//{{{
'endnodes': 'this',
+ 'label': function(node){
+ return [ { column: 'ID', value: $(node).attr('id') } ];
+ },
'svg': self.adaptor.theme_dir + 'symbols/stop.svg'
},//}}}
'description': self.adaptor.theme_dir + 'rngs/stop.rng',
'permissible_children': function(node,mode) { //{{{
return [];
}, //}}}
'adaptor': {//{{{
'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
'click': self.events.click,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout
}//}}}
}; /*}}}*/
this.elements.terminate = { /*{{{*/
'type': 'primitive',
'illustrator': {//{{{
@@ -333,22 +382,98 @@
'description': self.adaptor.theme_dir + 'rngs/terminate.rng',
'permissible_children': function(node,mode) { //{{{
return [];
}, //}}}
'adaptor': {//{{{
- 'mousedown': function (node,e) { self.events.mousedown(node,e,false,true); },
+ 'mousedown': function (node,e) { self.events.mousedown(node,e,false,false); },
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout
+ }//}}}
+ }; /*}}}*/
+ this.elements.end = { /*{{{*/
+ 'type': 'primitive',
+ 'illustrator': {//{{{
+ 'endnodes': 'this',
+ 'svg': self.adaptor.theme_dir + 'symbols/end.svg'
+ }, //}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) {
+ self.events.suppress();
+ }
+ }//}}}
+ }; /*}}}*/
+ this.elements.event_end = { /*{{{*/
+ 'type': 'primitive',
+ 'illustrator': {//{{{
+ 'endnodes': 'this',
+ 'svg': self.adaptor.theme_dir + 'symbols/event_end.svg'
+ }, //}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) {
+ self.events.suppress();
+ },
'click': self.events.click,
+ 'dblclick': self.events.dblclick,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout
}//}}}
}; /*}}}*/
+ this.elements.choose_finish = { /*{{{*/
+ 'type': 'primitive',
+ 'illustrator': {//{{{
+ 'endnodes': 'this',
+ 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg',
+ 'resolve_symbol': function(node) {
+ if($(node).attr('mode') == 'exclusive') {
+ return 'choose_exclusive_finish';
+ } else {
+ return 'choose_inclusive_finish';
+ }
+ },
+ }, //}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) {
+ self.events.mousedown(node,e,true,true);
+ },
+ 'click': self.events.click,
+ 'dblclick': self.events.dblclick,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout
+ }//}}}
+ }; /*}}}*/
+ this.elements.parallel_finish = { /*{{{*/
+ 'type': 'primitive',
+ 'illustrator': {//{{{
+ 'endnodes': 'this',
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg',
+ 'resolve_symbol': function(node) {
+ if($(node).attr('wait') == '-1') {
+ return 'parallel_simple';
+ } else {
+ return 'parallel_complex';
+ }
+ },
+ }, //}}}
+ 'adaptor': {//{{{
+ 'mousedown': function (node,e) {
+ self.events.mousedown(node,e,true,true);
+ },
+ 'click': self.events.click,
+ 'dblclick': self.events.dblclick,
+ 'mouseover': self.events.mouseover,
+ 'mouseout': self.events.mouseout
+ }//}}}
+ }; /*}}}*/
// Complex Elements
this.elements.choose = { /*{{{*/
'type': 'complex',
'illustrator': {//{{{
- 'label': function(node){return $(node).attr('mode') == 'exclusive' ? 'exclusive' : 'inclusive' },
+ 'label': function(node){ return [ { column: 'Label', value: $(node).attr('mode') == 'exclusive' ? 'exclusive' : 'inclusive' } ]; },
'endnodes': 'aggregate',
'closeblock': false,
+ 'closing_symbol': 'choose_finish',
'expansion': function(node) {
return 'horizontal';
},
'resolve_symbol': function(node) {
if($(node).attr('mode') == 'exclusive') {
@@ -398,18 +523,23 @@
self.events.mousedown(node,e,true,true);
},
'click': self.events.click,
'dblclick': self.events.dblclick,
'mouseover': self.events.mouseover,
- 'mouseout': self.events.mouseout,
+ 'mouseout': self.events.mouseout
}//}}}
}; /*}}}*/
this.elements.otherwise = { /*{{{*/
'type': 'complex',
'illustrator': {//{{{
+ 'label': function(node){
+ var avg = $('> _probability_avg',$(node).children('_probability')).text();
+ return (avg == '' ? [] : [ { column: 'Average', value: avg + '%' } ]);
+ },
'endnodes': 'passthrough',
'closeblock': false,
+ 'noarrow': true,
'expansion': function(node) {
return 'vertical';
},
'col_shift': function(node) {
return false;
@@ -482,12 +612,20 @@
}//}}}
}; /*}}}*/
this.elements.alternative = { /*{{{*/
'type': 'complex',
'illustrator': {//{{{
- 'label': function(node){return $(node).attr('condition')},
+ 'label': function(node){
+ var avg = $('> _probability_avg',$(node).children('_probability')).text();
+ var ret = [ { column: 'Label', value: $(node).attr('condition') } ];
+ if (avg != '') {
+ ret.push({ column: 'Average', value: avg + '%' });
+ }
+ return ret;
+ },
'endnodes': 'passthrough',
+ 'noarrow': true,
'closeblock':false,
'expansion': function(node) {
return 'vertical';
},
'col_shift': function(node) {
@@ -565,11 +703,18 @@
}//}}}
}; /*}}}*/
this.elements.loop = { /*{{{*/
'type': 'complex',
'illustrator': {//{{{
- 'label': function(node){return $(node).attr('condition') + ($(node).attr('mode') == 'pre_test' ? ' (⭱)' : ' (⭳)') },
+ 'label': function(node){
+ var avg = $('> _probability_avg',$(node).children('_probability')).text();
+ var ret = [ { column: 'Label', value: $(node).attr('condition') + ($(node).attr('mode') == 'pre_test' ? ' (⭱)' : ' (⭳)') } ];
+ if (avg != '') {
+ ret.push({ column: 'Average', value: avg + 'x' });
+ }
+ return ret;
+ },
'endnodes': 'this',
'closeblock': true,
'expansion': function(node) {
return 'vertical';
},
@@ -653,13 +798,13 @@
}//}}}
}; /*}}}*/
this.elements.parallel = { /*{{{*/
'type': 'complex',
'illustrator': {//{{{
- 'endnodes': 'this',
+ 'endnodes': 'aggregate',
'closeblock': false,
- 'border': true,
+ 'closing_symbol': 'parallel_finish',
'expansion': function(node) {
// check if any sibling other than 'parallel_branch' is present
if($(node).children(':not(parallel_branch)').length > 0) return 'vertical';
return 'horizontal';
},
@@ -668,53 +813,41 @@
},
'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
},//}}}
'description': self.adaptor.theme_dir + 'rngs/parallel.rng',
'permissible_children': function(node,mode) { //{{{
+ var func = null;
+ if (mode == 'into') { func = self.adaptor.description.insert_first_into }
+ else { func = self.adaptor.description.insert_after }
var childs = [
{'label': 'Service Call with Scripts',
- 'function_call': self.adaptor.description.insert_last_into,
+ 'function_call': func,
'menu_icon': self.elements.callmanipulate.illustrator.svg.clone(),
'type': 'callmanipulate',
'params': [self.adaptor.description.elements.callmanipulate, node]},
{'label': 'Service Call',
- 'function_call': self.adaptor.description.insert_last_into,
+ 'function_call': func,
'menu_icon': self.elements.call.illustrator.svg.clone(),
'type': 'call',
'params': [self.adaptor.description.elements.call, node]},
{'label': 'Manipulate',
- 'function_call': self.adaptor.description.insert_last_into,
+ 'function_call': func,
'menu_icon': self.elements.manipulate.illustrator.svg.clone(),
'type': 'manipulate',
'params': [self.adaptor.description.elements.manipulate, node]},
{'label': 'Decision',
- 'function_call': self.adaptor.description.insert_last_into,
+ 'function_call': func,
'menu_icon': self.elements.choose.illustrator.svg.clone(),
'type': 'choose',
'params': [self.adaptor.description.elements.choose, node]},
{'label': 'Loop',
- 'function_call': self.adaptor.description.insert_last_into,
+ 'function_call': func,
'menu_icon': self.elements.loop.illustrator.svg.clone(),
'type': 'loop',
'params': [self.adaptor.description.elements.loop, node]},
- {'label': 'Terminate',
- 'function_call': self.adaptor.description.insert_last_into,
- 'menu_icon': self.elements.terminate.illustrator.svg.clone(),
- 'type': 'terminate',
- 'params': [self.adaptor.description.elements.terminate, node]},
- {'label': 'Stop',
- 'function_call': self.adaptor.description.insert_last_into,
- 'menu_icon': self.elements.stop.illustrator.svg.clone(),
- 'type': 'stop',
- 'params': [self.adaptor.description.elements.stop, node]},
- {'label': 'Critical',
- 'function_call': self.adaptor.description.insert_last_into,
- 'menu_icon': self.elements.critical.illustrator.svg.clone(),
- 'type': 'critical',
- 'params': [self.adaptor.description.elements.critical, node]},
{'label': 'Parallel Branch',
- 'function_call': self.adaptor.description.insert_last_into,
+ 'function_call': func,
'menu_icon': self.elements.parallel_branch.illustrator.svg.clone(),
'type': 'parallel_branch',
'params': [self.adaptor.description.elements.parallel_branch, node]}
];
if(node.get(0).tagName != 'parallel')
@@ -736,15 +869,23 @@
}//}}}
}; /*}}}*/
this.elements.parallel_branch = { /*{{{*/
'type': 'complex',
'illustrator': {//{{{
- 'endnodes': 'this',
+ 'endnodes': 'passthrough',
'closeblock': false,
+ 'noarrow': true,
'expansion': function(node) {
return 'vertical';
},
+ 'resolve_symbol': function(node,shift) {
+ if(shift == true) {
+ return 'parallel_branch_event';
+ } else {
+ return 'parallel_branch_normal';
+ }
+ },
'col_shift': function(node) {
if(node.parentNode.tagName == 'choose') return false;
if($(node).parents('parallel').first().children(':not(parallel_branch)').length > 0) return true;
return false;
},
@@ -812,11 +953,16 @@
}
return childs;
}, //}}}
'adaptor': {//{{{
'mousedown': function (node,e) {
- self.events.mousedown(node,e,true,false);
+ var xml_node = self.adaptor.description.get_node_by_svg_id(node);
+ if(xml_node.get(0).parentNode.tagName == 'parallel') {
+ self.events.mousedown(node,e,true,false);
+ } else {
+ self.events.mousedown(node,e,true,true);
+ }
},
'click': self.events.click,
'dblclick': self.events.dblclick,
'mouseover': self.events.mouseover,
'mouseout': self.events.mouseout,
@@ -933,14 +1079,17 @@
}; /*}}}*/
this.elements.start = this.elements.description = { /*{{{*/
'type': 'description',
'illustrator': {//{{{
'endnodes': 'passthrough',
+ 'label': function(node){ return [ { column: 'Label'}, { column: 'ID' }, { column: 'Resource' }, { column: 'RP' }, { column: 'R#' } ]; },
'closeblock': false,
+ 'balance': true,
'expansion': function(node) {
return 'vertical';
},
+ 'closing_symbol': 'end',
'col_shift': function(node) {
return true;
},
'svg': self.adaptor.theme_dir + 'symbols/start.svg'
},//}}}
@@ -1010,33 +1159,76 @@
// Abstract Elements
// * they may only have an illustrator (or other parts)
// * they HAVE TO have a parent
this.elements.callmanipulate = { /*{{{*/
- 'type': 'abstract',
'parent': 'call',
'description': self.adaptor.theme_dir + 'rngs/callmanipulate.rng',
'illustrator': {//{{{
- 'label': function(node){return $('> label',$(node).children('parameters')).text().replace(/^['"]/,'').replace(/['"]$/,'')},
'info': function(node){ return { 'element-endpoint': $(node).attr('endpoint') }; },
'svg': self.adaptor.theme_dir + 'symbols/callmanipulate.svg'
},//}}}
}; /*}}}*/
this.elements.choose_inclusive = { /*{{{*/
- 'type': 'abstract',
'parent': 'choose',
'illustrator': {//{{{
'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg'
- },//}}}
+ }//}}}
}; /*}}}*/
this.elements.choose_exclusive = { /*{{{*/
- 'type': 'abstract',
'parent': 'choose',
'illustrator': {//{{{
'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
},//}}}
}; /*}}}*/
+ this.elements.choose_inclusive_finish = { /*{{{*/
+ 'parent': 'choose_finish',
+ 'illustrator': {//{{{
+ 'svg': self.adaptor.theme_dir + 'symbols/choose_inclusive.svg'
+ }//}}}
+ }; /*}}}*/
+ this.elements.choose_exclusive_finish = { /*{{{*/
+ 'parent': 'choose_finish',
+ 'illustrator': {//{{{
+ 'svg': self.adaptor.theme_dir + 'symbols/choose_exclusive.svg'
+ },//}}}
+ }; /*}}}*/
+ this.elements.parallel_simple = { /*{{{*/
+ 'parent': 'parallel_finish',
+ 'illustrator': {//{{{
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel.svg'
+ }//}}}
+ }; /*}}}*/
+ this.elements.parallel_complex = { /*{{{*/
+ 'parent': 'parallel_finish',
+ 'illustrator': {//{{{
+ 'svg': self.adaptor.theme_dir + 'symbols/complex.svg'
+ },//}}}
+ }; /*}}}*/
+ this.elements.parallel_branch_normal = { /*{{{*/
+ 'parent': 'parallel_branch',
+ 'illustrator': {//{{{
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_normal.svg'
+ }//}}}
+ }; /*}}}*/
+ this.elements.parallel_branch_event = { /*{{{*/
+ 'parent': 'parallel_branch',
+ 'illustrator': {//{{{
+ 'endnodes': 'this',
+ 'noarrow': false,
+ 'border': true,
+ 'wide': true,
+ 'closing_symbol': 'event_end',
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_event.svg'
+ }//}}}
+ }; /*}}}*/
+ this.elements.parallel_branch_compact = { /*{{{*/
+ 'parent': 'parallel_branch',
+ 'illustrator': {//{{{
+ 'endnodes': 'this',
+ 'svg': self.adaptor.theme_dir + 'symbols/parallel_branch_compact.svg'
+ }//}}}
+ }; /*}}}*/
this.elements.scripts = { /*{{{*/
- 'type': 'abstract',
'description': [self.adaptor.theme_dir + 'rngs/update.rng',self.adaptor.theme_dir + 'rngs/finalize.rng']
}; /*}}}*/
}