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'] }; /*}}}*/ }