cockpit/js/instance.js in cpee-1.5.19 vs cockpit/js/instance.js in cpee-1.5.20
- old
+ new
@@ -3,10 +3,11 @@
var myid = ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));
var paths = '#dat_details input, #dat_details textarea, #dat_details select, #dat_details button, #dat_details [contenteditable], #dat_dataelements input, #dat_dataelements textarea, #dat_dataelements select, #dat_dataelements button, #dat_dataelements [contenteditable], #dat_endpoints input, #dat_endpoints textarea, #dat_endpoints select, #dat_endpoints button, #dat_endpoints [contenteditable], #dat_attributes input, #dat_attributes textarea, #dat_attributes select, #dat_attributes button, #dat_attributes [contenteditable]';
var loading = false;
var subscription;
var subscription_state = 'less';
+var graph_changed = new Event("graph:changed", {"bubbles":true, "cancelable":false});
var save = {};
save['state']= undefined;
save['dsl'] = undefined;
save['graph'] = undefined;
save['graph_theme'] = undefined;
@@ -72,12 +73,12 @@
$("button[name=instance]").click(function(){ ui_activate_tab("#tabinstance"); monitor_instance($("input[name=instance-url]").val(),$("input[name=res-url]").val(),false,false); });
$("button[name=loadtestset]").click(function(e){new CustomMenu(e).menu($('#predefinedtestsets'),function(){ load_testset(false) } ); });
$("button[name=loadtestsetfile]").click(load_testsetfile);
$("button[name=loadmodelfile]").click(load_modelfile);
$("button[name=loadmodeltype]").click(function(e){new CustomMenu(e).menu($('#modeltypes'),load_modeltype, $("button[name=loadmodeltype]")); });
- $("button[name=savetestset]").click(function(){ save_testset(); });
- $("button[name=savesvg]").click(function(){ save_svg(); });
+ $("button[name=savetestsetfile]").click(function(){ save_testsetfile(); });
+ $("button[name=savesvgfile]").click(function(){ save_svgfile(); });
$("button[name=state_start]").click(function(){ $(this).attr("disabled","disabled");start_instance(); });
$("button[name=state_stop]").click(function(){ $(this).attr("disabled","disabled");stop_instance(); });
$("button[name=state_replay]").click(function(){ $(this).attr("disabled","disabled");replay_instance(); });
$("button[name=state_abandon]").click(function(){ aba_instance(); });
$("input[name=votecontinue]").click(check_subscription);
@@ -115,10 +116,17 @@
if ($(v).text() == q.load) { $(v).attr('data-selected','selected'); }
});
}
ui_activate_tab("#tabexecution");
create_instance($("body").attr('current-base'),q.load,true,false);
+ } else if (q.instantiate) {
+ if (q.instantiate.match(/https?:\/\//)) {
+ ui_activate_tab("#tabexecution");
+ create_instance_from($("body").attr('current-base'),q.instantiate,false);
+ } else {
+ alert('Nope. Url!');
+ }
} else if (q.new || q.new == "") {
ui_activate_tab("#tabinstance");
create_instance($("body").attr('current-base'),"Plain Instance",false,false);
} else if (q.monitor) {
ui_activate_tab("#tabexecution");
@@ -185,10 +193,33 @@
subscription_state = 'less';
format_visual_vote_clear();
}
}// }}}
+function create_instance_from(base,url,exec) {// {{{
+ $.get({
+ url: url,
+ dataType: "text",
+ success: function(res) {
+ $.ajax({
+ type: "POST",
+ url: base,
+ contentType: 'application/xml',
+ dataType: "text",
+ headers: { 'CONTENT-ID': 'xml' },
+ data: res,
+ success: function(res){
+ var iu = (base + "//" + res + "/").replace(/\/+/g,"/").replace(/:\//,"://");
+ monitor_instance(iu,$("body").attr('current-resources'),false,exec);
+ },
+ error: function(a,b,c) {
+ alert("No CPEE running.");
+ }
+ });
+ }
+ });
+}// }}}
function create_instance(base,name,load,exec) {// {{{
var info = name ? name : prompt("Instance info?", "Enter info here");
if (info != null) {
if (info.match(/\S/)) {
$.ajax({
@@ -329,12 +360,13 @@
subscription = b[1];
}
});
append_to_log("monitoring", "id", subscription);
websocket();
- if (load || exec)
+ if (load || exec) {
load_testset(exec);
+ }
}
});
},
error: function(a,b,c) {
alert("This ain't no CPEE instance");
@@ -478,18 +510,22 @@
graphrealization.set_description($(dslx), true);
graphrealization.notify = function(svgid) {
var g = graphrealization.get_description();
save['graph'] = $X(g);
save['graph'].find('[xmlns]').removeAttr('xmlns');
+ document.dispatchEvent(graph_changed);
$.ajax({
type: "PUT",
url: url + "/properties/values/description/",
data: ({'content': '<content>' + g + '</content>'})
});
adaptor_update();
manifestation.events.click(svgid);
format_instance_pos();
+ if (manifestation.selected() == "unknown") { // nothing selected
+ $('#dat_details').empty();
+ }
};
adaptor_update();
monitor_instance_pos();
$('#dat_details').empty();
});
@@ -726,11 +762,22 @@
data: ({value: "stopping"}),
error: report_failure
});
}// }}}
-function save_testset() {// {{{
+function save_testsetfile() {// {{{
+ var def = new $.Deferred();
+ def.done(function(name,testset) {
+ var ct = new Date();
+ $('#savetestsetfile').attr('download',name + '_' + ct.strftime("%Y-%m-%dT%H%M%S%z") + '.xml');
+ $('#savetestsetfile').attr('href','data:application/xml;charset=utf-8;base64,' + $B64(testset.serializePrettyXML()));
+ document.getElementById('savetestsetfile').click();
+ });
+ get_testset(def);
+}// }}}
+
+function get_testset(deferred) {// {{{
var url = $('body').attr('current-instance');
var testset = $X('<testset/>');
$.ajax({
type: "GET",
@@ -768,31 +815,28 @@
var name = $("value > info",res).text();
var pars = $X('<attributes/>');
pars.append($(res.documentElement).children());
pars.find('uuid').remove();
testset.append(pars);
- var ct = new Date();
- $('#savetestset').attr('download',name + '_' + ct.strftime("%Y-%m-%dT%H%M%S%z") + '.xml');
- $('#savetestset').attr('href','data:application/xml;charset=utf-8;base64,' + $B64(testset.serializePrettyXML()));
- document.getElementById('savetestset').click();
+ deferred.resolve(name,testset);
},
- error: report_failure
+ error: function() { deferred.reject(); report_failure(); }
});
},
- error: report_failure
+ error: function() { deferred.reject(); report_failure(); }
});
},
- error: report_failure
+ error: function() { deferred.reject(); report_failure(); }
});
},
- error: report_failure
+ error: function() { deferred.reject(); report_failure(); }
});
},
- error: report_failure
+ error: function() { deferred.reject(); report_failure(); }
});
}// }}}
-function save_svg() {// {{{
+function save_svgfile() {// {{{
var url = $('body').attr('current-instance');
var gc = $('#graphcanvas').clone();
$.ajax({
type: "GET",
@@ -828,12 +872,12 @@
type: "GET",
url: url + "/properties/values/attributes/info/",
success: function(res){
var name = $(res.documentElement).text();
- $('#savesvg').attr('download',name + '.svg');
- $('#savesvg').attr('href','data:application/xml;charset=utf-8;base64,' + $B64(gc.serializeXML()));
- document.getElementById('savesvg').click();
+ $('#savesvgfile').attr('download',name + '.svg');
+ $('#savesvgfile').attr('href','data:application/xml;charset=utf-8;base64,' + $B64(gc.serializeXML()));
+ document.getElementById('savesvgfile').click();
},
error: report_failure
});
}
});