cpee-model-management 1.1.4 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/cpee-model-management.gemspec +1 -1
- data/lib/cpee-model-management/implementation.rb +66 -35
- data/lib/cpee-model-management/implementation.xml +15 -15
- data/server/redis.rdb +0 -0
- data/ui/css/moma.css +114 -0
- data/ui/index.html +21 -35
- data/ui/instances.html +1 -1
- data/ui/instances_view.html +1 -1
- data/ui/js/moma.js +379 -0
- data/ui/js/stats.js +1 -0
- metadata +6 -5
- data/ui/css/design.css +0 -67
- data/ui/js/design.js +0 -245
data/ui/js/design.js
DELETED
@@ -1,245 +0,0 @@
|
|
1
|
-
var gstage;
|
2
|
-
var gdir;
|
3
|
-
|
4
|
-
function move_it(name,todir) {
|
5
|
-
$.ajax({
|
6
|
-
type: "PUT",
|
7
|
-
url: "server/" + gdir + name,
|
8
|
-
data: { dir: todir }
|
9
|
-
});
|
10
|
-
}
|
11
|
-
function shift_it(name,to) {
|
12
|
-
$.ajax({
|
13
|
-
type: "PUT",
|
14
|
-
url: "server/" + gdir + name,
|
15
|
-
data: { stage: to }
|
16
|
-
});
|
17
|
-
}
|
18
|
-
function rename_it(name) {
|
19
|
-
var newname;
|
20
|
-
if (newname = prompt('New name please!',name.replace(/\.xml$/,'').replace(/\.dir$/,''))) {
|
21
|
-
$.ajax({
|
22
|
-
type: "PUT",
|
23
|
-
url: "server/" + gdir + name,
|
24
|
-
data: { new: newname }
|
25
|
-
});
|
26
|
-
}
|
27
|
-
}
|
28
|
-
function duplicate_it(name) {
|
29
|
-
var newname;
|
30
|
-
if (newname = prompt('New name please!',name.replace(/\.xml$/,'').replace(/\.dir$/,''))) {
|
31
|
-
$.ajax({
|
32
|
-
type: "POST",
|
33
|
-
url: "server/" + gdir,
|
34
|
-
data: { new: newname, old: name }
|
35
|
-
});
|
36
|
-
}
|
37
|
-
}
|
38
|
-
function delete_it(name) {
|
39
|
-
if (confirm('Are you really, really, REALLY sure!')) {
|
40
|
-
$.ajax({
|
41
|
-
type: "DELETE",
|
42
|
-
url: "server/" + gdir + name
|
43
|
-
});
|
44
|
-
}
|
45
|
-
}
|
46
|
-
|
47
|
-
function design_init(gdir,gstage) {
|
48
|
-
var es = new EventSource('server/');
|
49
|
-
es.onopen = function() {
|
50
|
-
console.log('design open');
|
51
|
-
};
|
52
|
-
es.onmessage = function(e) {
|
53
|
-
paint(gdir,gstage);
|
54
|
-
};
|
55
|
-
es.onerror = function() {
|
56
|
-
console.log('design error');
|
57
|
-
// design_init();
|
58
|
-
};
|
59
|
-
}
|
60
|
-
|
61
|
-
function paint(gdir,gstage) {
|
62
|
-
$('#models tbody').empty();
|
63
|
-
if (gdir && gdir != '') {
|
64
|
-
var clone = document.importNode(document.querySelector('#up').content,true);
|
65
|
-
$('[data-class=name] a',clone).text('..');
|
66
|
-
$('[data-class=name] a',clone).attr('href',window.location.pathname + '?stage=' + gstage + '&dir=');
|
67
|
-
$('#models tbody').append(clone);
|
68
|
-
}
|
69
|
-
$.ajax({
|
70
|
-
type: "GET",
|
71
|
-
url: "server/" + gdir,
|
72
|
-
data: { stage: gstage },
|
73
|
-
success: function(res) {
|
74
|
-
$(res).each(function(k,data) {
|
75
|
-
if (data.type == 'dir') {
|
76
|
-
var clone = document.importNode(document.querySelector('#folder').content,true);
|
77
|
-
$('[data-class=name] a',clone).text(data['name'].replace(/\.dir$/,''));
|
78
|
-
$('[data-class=name]',clone).attr('data-full-name',data['name']);
|
79
|
-
$('[data-class=name] a',clone).attr('href',window.location.pathname + '?stage=' + gstage + '&dir=' + data['name']);
|
80
|
-
} else {
|
81
|
-
var clone = document.importNode(document.querySelector('#model').content,true);
|
82
|
-
$('[data-class=name] a',clone).text(data['name']);
|
83
|
-
$('[data-class=name]',clone).attr('data-full-name',data['name']);
|
84
|
-
$('[data-class=name] a',clone).attr('href','server/' + gdir + data['name'] + '/open?stage=' + gstage);
|
85
|
-
$('[data-class=force] a',clone).attr('href','server/' + gdir + data['name'] + '/open-new?stage=' + gstage);
|
86
|
-
$('[data-class=raw] a',clone).attr('href','server/' + gdir + data['name']);
|
87
|
-
|
88
|
-
$('[data-class=guarded] abbr',clone).attr('title',data['guarded'] || '');
|
89
|
-
$('[data-class=guarded] abbr',clone).text((data['guarded'] || '').match(/none/i) ? '' : (data['guarded'] || '').charAt(0).toUpperCase());
|
90
|
-
$('[data-class=resource]',clone).text(data['guarded_id'] || '');
|
91
|
-
|
92
|
-
if (data['guarded']) {
|
93
|
-
$('[data-class=guarded] abbr',clone).attr('title',data['guarded']);
|
94
|
-
$('[data-class=guarded] abbr',clone).text(data['guarded'].match(/none/i) ? '' : data['guarded'].charAt(0).toUpperCase());
|
95
|
-
$('[data-class=resource]',clone).text(data['guarded_what']);
|
96
|
-
}
|
97
|
-
}
|
98
|
-
$('[data-class=author]',clone).text(data['author']);
|
99
|
-
$('[data-class=date]',clone).text(new Date(data['date']).strftime('%Y-%m-%d, %H:%M:%S'));
|
100
|
-
$('#models tbody').append(clone);
|
101
|
-
});
|
102
|
-
}
|
103
|
-
});
|
104
|
-
}
|
105
|
-
|
106
|
-
function change_it(gdir,gstage) {
|
107
|
-
window.location.href = window.location.pathname + '?stage=' + gstage + '&dir=' + gdir;
|
108
|
-
}
|
109
|
-
|
110
|
-
$(document).ready(function() {
|
111
|
-
const queryString = window.location.search;
|
112
|
-
const urlParams = new URLSearchParams(queryString);
|
113
|
-
|
114
|
-
gstage = urlParams.get('stage') || 'draft';
|
115
|
-
gdir = urlParams.get('dir') ? (urlParams.get('dir') + '/').replace(/\/+/,'/') : '';
|
116
|
-
|
117
|
-
design_init(gdir,gstage);
|
118
|
-
|
119
|
-
var shifts = []
|
120
|
-
$.ajax({
|
121
|
-
type: "GET",
|
122
|
-
url: "server/",
|
123
|
-
data: { stages: 'stages' },
|
124
|
-
success: (r) => {
|
125
|
-
shifts = shifts.concat(r);
|
126
|
-
shifts = shifts.filter(item => item !== gstage);
|
127
|
-
}
|
128
|
-
});
|
129
|
-
|
130
|
-
$('input[name=stage]').val(gstage);
|
131
|
-
$('input[name=dir]').val(gdir);
|
132
|
-
$('ui-behind span').text(gstage);
|
133
|
-
$('ui-behind span').click((e) => {
|
134
|
-
if (shifts.length > 0) {
|
135
|
-
var menu = {};
|
136
|
-
menu['Change to'] = [];
|
137
|
-
shifts.forEach(ele => {
|
138
|
-
menu['Change to'].push(
|
139
|
-
{
|
140
|
-
'label': ele,
|
141
|
-
'function_call': change_it,
|
142
|
-
'text_icon': '➔',
|
143
|
-
'type': undefined,
|
144
|
-
'class': 'capitalized',
|
145
|
-
'params': [gdir,ele]
|
146
|
-
}
|
147
|
-
);
|
148
|
-
});
|
149
|
-
new CustomMenu(e).contextmenu(menu);
|
150
|
-
}
|
151
|
-
});
|
152
|
-
|
153
|
-
var dragged;
|
154
|
-
$('#models').on('drag','td[data-class=model]',false);
|
155
|
-
$('#models').on('dragstart','td[data-class=model]',(e) => {
|
156
|
-
dragged = $(e.currentTarget).parents('tr').find('td[data-class=name]').text();
|
157
|
-
});
|
158
|
-
$('#models').on('dragover','td[data-class=folder]',false);
|
159
|
-
$('#models').on('drop','td[data-class=folder]',(e) => {
|
160
|
-
e.preventDefault();
|
161
|
-
e.stopPropagation();
|
162
|
-
if (dragged) {
|
163
|
-
var todir = $(e.currentTarget).parents('tr').find('td[data-class=name]').text();
|
164
|
-
todir = todir.replace(/\./g,'');
|
165
|
-
if (todir != '') {
|
166
|
-
todir += '.dir';
|
167
|
-
}
|
168
|
-
move_it(dragged,todir);
|
169
|
-
dragged = undefined;
|
170
|
-
}
|
171
|
-
});
|
172
|
-
$('#models').on('click','td[data-class=ops]',(e) => {
|
173
|
-
var menu = {};
|
174
|
-
var name = $(e.currentTarget).parents('tr').find('td[data-class=name]').attr('data-full-name');
|
175
|
-
menu['Operations'] = [
|
176
|
-
{
|
177
|
-
'label': 'Delete',
|
178
|
-
'function_call': delete_it,
|
179
|
-
'text_icon': '❌',
|
180
|
-
'type': undefined,
|
181
|
-
'params': [name]
|
182
|
-
},
|
183
|
-
{
|
184
|
-
'label': 'Rename',
|
185
|
-
'function_call': rename_it,
|
186
|
-
'type': undefined,
|
187
|
-
'text_icon': '📛',
|
188
|
-
'params': [name]
|
189
|
-
}
|
190
|
-
];
|
191
|
-
if (name.match(/\.xml$/)) {
|
192
|
-
menu['Operations'].unshift(
|
193
|
-
{
|
194
|
-
'label': 'Duplicate',
|
195
|
-
'function_call': duplicate_it,
|
196
|
-
'text_icon': '➕',
|
197
|
-
'type': undefined,
|
198
|
-
'params': [name]
|
199
|
-
}
|
200
|
-
);
|
201
|
-
}
|
202
|
-
if (shifts.length > 0) {
|
203
|
-
menu['Shifting'] = [];
|
204
|
-
shifts.forEach(ele => {
|
205
|
-
menu['Shifting'].push(
|
206
|
-
{
|
207
|
-
'label': 'Shift to ' + ele,
|
208
|
-
'function_call': shift_it,
|
209
|
-
'text_icon': '➔',
|
210
|
-
'type': undefined,
|
211
|
-
'params': [name,ele]
|
212
|
-
}
|
213
|
-
);
|
214
|
-
});
|
215
|
-
}
|
216
|
-
new CustomMenu(e).contextmenu(menu);
|
217
|
-
});
|
218
|
-
|
219
|
-
history.pushState({}, document.title, window.location.pathname + '?stage=' + gstage + '&dir=' + gdir);
|
220
|
-
paint(gdir,gstage);
|
221
|
-
|
222
|
-
$('#newmod').on('submit',(e) => {
|
223
|
-
$.ajax({
|
224
|
-
type: "POST",
|
225
|
-
url: "server/" + gdir,
|
226
|
-
data: { stage: gstage, new: $("#newmod input[name=new]").val() },
|
227
|
-
success: (r) => {
|
228
|
-
uidash_activate_tab($('ui-tab').first());
|
229
|
-
}
|
230
|
-
});
|
231
|
-
return false;
|
232
|
-
});
|
233
|
-
|
234
|
-
$('#newdir').on('submit',(e) => {
|
235
|
-
$.ajax({
|
236
|
-
type: "POST",
|
237
|
-
url: "server/",
|
238
|
-
data: { dir: $("#newdir input[name=newdir]").val() },
|
239
|
-
success: (r) => {
|
240
|
-
uidash_activate_tab($('ui-tab').first());
|
241
|
-
}
|
242
|
-
});
|
243
|
-
return false;
|
244
|
-
});
|
245
|
-
});
|