Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
slapos.core
Commits
b992c34e
Commit
b992c34e
authored
Apr 29, 2016
by
Alain Takoudjou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slapos_monitoring: fix monitor instance registration
parent
8d66b2e4
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
189 additions
and
91 deletions
+189
-91
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_appcache.xml
...mplateItem/web_page_module/gadget_monitoring_appcache.xml
+4
-3
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.css
...lateItem/web_page_module/gadget_monitoring_custom_css.css
+53
-0
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.xml
...lateItem/web_page_module/gadget_monitoring_custom_css.xml
+3
-3
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_login_widget_js.html
...em/web_page_module/gadget_monitoring_login_widget_js.html
+2
-0
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_login_widget_js.xml
...tem/web_page_module/gadget_monitoring_login_widget_js.xml
+2
-2
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.html
..._module/gadget_monitoring_settings_configurator_html.html
+2
-3
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.xml
...e_module/gadget_monitoring_settings_configurator_html.xml
+2
-2
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_static_js.html
...lateItem/web_page_module/gadget_monitoring_static_js.html
+119
-76
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_static_js.xml
...plateItem/web_page_module/gadget_monitoring_static_js.xml
+2
-2
No files found.
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_appcache.xml
View file @
b992c34e
...
...
@@ -107,7 +107,7 @@
<value>
<string
encoding=
"cdata"
>
<![CDATA[
CACHE MANIFEST\n
# generated on Fri, 2
8 April 2016 11
:47:33 +0000\n
# generated on Fri, 2
9 April 2016 15
:47:33 +0000\n
# XXX + fonts\n
# images/ajax-loader.gif\n
CACHE:\n
...
...
@@ -126,6 +126,7 @@ gadget_jio.html\n
gadget_jio.js\n
gadget_translate.html\n
gadget_translate.js\n
gadget_translation.html\n
handlebars.js\n
i18next.js\n
jiodev.js\n
...
...
@@ -326,7 +327,7 @@ NETWORK:\n
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
950.5
3381.7699.19968
</string>
</value>
<value>
<string>
950.5
4525.37134.26453
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -344,7 +345,7 @@ NETWORK:\n
</tuple>
<state>
<tuple>
<float>
1461
861221.53
</float>
<float>
1461
945469.4
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.css
View file @
b992c34e
...
...
@@ -691,6 +691,59 @@ html table.instance-overview td:first-child > a, html table.instance-overview td
margin
:
20px
auto
;
}
/* Alert box custom */
.alert
{
padding
:
8px
35px
8px
14px
;
margin-bottom
:
8px
;
margin-top
:
8px
;
color
:
#c09853
;
text-shadow
:
0
1px
0
rgba
(
255
,
255
,
255
,
0.5
);
background-color
:
#fcf8e3
;
border
:
1px
solid
#fbeed5
;
-webkit-border-radius
:
4px
;
-moz-border-radius
:
4px
;
border-radius
:
4px
;
}
.alert-heading
{
color
:
inherit
;
}
.alert
.close
{
position
:
relative
;
top
:
-2px
;
right
:
-21px
;
line-height
:
18px
;
}
.alert-success
{
color
:
#468847
;
background-color
:
#dff0d8
;
border-color
:
#d6e9c6
;
}
.alert-danger
,
.alert-error
{
color
:
#b94a48
;
background-color
:
#f2dede
;
border-color
:
#eed3d7
;
}
.alert-info
{
color
:
#3a87ad
;
background-color
:
#d9edf7
;
border-color
:
#bce8f1
;
}
.alert-block
>
p
,
.alert-block
>
ul
{
margin-bottom
:
0
;
}
.alert-block
p
+
p
{
margin-top
:
5px
;
}
/************** Media @ **********************/
@media
all
and
(
max-width
:
62em
)
{
form
.search
.ui-block-a
{
...
...
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_custom_css.xml
View file @
b992c34e
...
...
@@ -225,7 +225,7 @@
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
zope
</string>
</value>
<value>
<string>
superalain
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
@@ -239,7 +239,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
950.
11464.24567.15445
</string>
</value>
<value>
<string>
950.
54665.64561.63931
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -257,7 +257,7 @@
</tuple>
<state>
<tuple>
<float>
14
59341758.63
</float>
<float>
14
61939565.36
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_login_widget_js.html
View file @
b992c34e
...
...
@@ -60,9 +60,11 @@
if (doc.hasOwnProperty(key)) {
doc[key].hash = btoa(login + ':' + password);
doc[key].url = url;
doc[key].login = login;
} else {
doc[key] = {
hash: btoa(login + ':' + password),
login: login,
url: url,
parent_url: ''};
}
...
...
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_login_widget_js.xml
View file @
b992c34e
...
...
@@ -239,7 +239,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
950.5
1968.20423.17902
</string>
</value>
<value>
<string>
950.5
4785.50611.22596
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -257,7 +257,7 @@
</tuple>
<state>
<tuple>
<float>
1461
832953.11
</float>
<float>
1461
942642.99
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.html
View file @
b992c34e
...
...
@@ -107,9 +107,7 @@
</div>
</div>
</div>
<div
class=
"padding-5"
>
<span
class=
"ui-text-error"
></span>
</div>
<div
class=
"alert alert-error ui-content-hidden"
></div>
<div
class=
"ui-grid-b ui-responsive"
>
<div
class=
"ui-block-a"
></div>
<div
class=
"ui-block-b"
>
...
...
@@ -164,6 +162,7 @@
</div>
<div
class=
"padding-5"
>
<a
href=
"#page=hosting_overview"
>
Access Applications
</a>
<a
href=
"#page=import_export"
>
Export Settings
</a>
</div>
</div>
</div>
...
...
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_settings_configurator_html.xml
View file @
b992c34e
...
...
@@ -239,7 +239,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
950.5
3466.15484.25019
</string>
</value>
<value>
<string>
950.5
4736.61765.9915
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -257,7 +257,7 @@
</tuple>
<state>
<tuple>
<float>
1461
860815.1
7
</float>
<float>
1461
937944.
7
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_static_js.html
View file @
b992c34e
...
...
@@ -83,58 +83,68 @@
}
function loadUrlFromOPML(gadget, url) {
var text_content = gadget.props.element.querySelector('form.opml button.show')
.textContent;
return new RSVP.Queue()
.push(function () {
return $("article.configure-b").addClass("ui-content-hidden");
})
.push(function () {
var listbox_configuration = {
enable_search: false,
disable_href: true,
column_list: [{
title: 'Title',
select: 'title'
}, {
title: 'Hosting Subscription',
select: 'opml_title'
}, {
select: 'htmlurl',
title: 'URL'
}, {
select: 'type',
title: 'Type'
}],
query: {
select_list: ['title', 'opml_title', 'htmlurl', 'type', 'url'],
sort_on: [["opml_title", "ascending"]]
}
},
jio_options = {
type: "query",
sub_storage: {
type: "feed",
feed_type: 'opml',
url: url
}
};
listbox_configuration.storage_list = [jio_options];
return gadget.props.listbox.render(listbox_configuration);
})
.push(function () {
if (gadget.props.listbox.property_dict.data_result.length > 0) {
return $("article.configure-b").removeClass("ui-content-hidden");
} else {
$(gadget.props.element.querySelector('.opml .ui-text-error')).fadeIn(400);
gadget.props.element.querySelector('.opml .ui-text-error')
.innerHTML = "ERROR: Failed to load URL!";
gadget.props.element.querySelector('form.opml button.show')
.textContent = "Loading...";
})
.push(function () {
var listbox_configuration = {
enable_search: false,
disable_href: true,
column_list: [{
title: 'Title',
select: 'title'
}, {
title: 'Hosting Subscription',
select: 'opml_title'
}, {
select: 'htmlurl',
title: 'URL'
}, {
select: 'type',
title: 'Type'
}],
query: {
select_list: ['title', 'opml_title', 'htmlurl', 'type', 'url'],
sort_on: [["opml_title", "ascending"]]
}
//return $(gadget.props.element.querySelector(".configure-b")).show();
}, function(error) {
},
jio_options = {
type: "query",
sub_storage: {
type: "feed",
feed_type: 'opml',
url: url
}
};
listbox_configuration.storage_list = [jio_options];
return gadget.props.listbox.render(listbox_configuration);
})
.push(function () {
gadget.props.element.querySelector('form.opml button.show')
.textContent = text_content;
if (gadget.props.listbox.property_dict.data_result.length > 0) {
return $("article.configure-b").removeClass("ui-content-hidden");
} else {
$(gadget.props.element.querySelector('.opml .ui-text-error')).fadeIn(400);
gadget.props.element.querySelector('.opml .ui-text-error')
.innerHTML = "ERROR " + (error.target.status || '') + "Failed to load URL!";
console.log(error);
});
gadget.props.element.querySelector('.opml .ui-text-error')
.innerHTML = "ERROR: Failed to load URL!";
}
//return $(gadget.props.element.querySelector(".configure-b")).show();
}, function(error) {
gadget.props.element.querySelector('form.opml button.show')
.textContent = text_content;
$(gadget.props.element.querySelector('.opml .ui-text-error')).fadeIn(400);
gadget.props.element.querySelector('.opml .ui-text-error')
.innerHTML = "ERROR " + (error.target.status || '') + "Failed to load URL!";
console.log(error);
});
}
function loginFromLocalCredential(gadget, url) {
...
...
@@ -151,7 +161,7 @@
return gadget.props.login_gadget.login(credential.url, credential.hash)
.then(function(result) {
if (result.status === 'OK') {
return credential
.hash
;
return credential;
} else {
return undefined;
}
...
...
@@ -174,7 +184,11 @@
return loginFromLocalCredential(gadget, url)
.push(function (result) {
if (result) {
return {status: 'OK', hash: result, url: url};
return {
status: 'OK',
hash: result.hash,
login: result.login,
url: url};
}
return {status: 'KO', msg: error.msg + ' (' + url + ')'};
});
...
...
@@ -183,7 +197,11 @@
return loginFromLocalCredential(gadget, url)
.push(function (result) {
if (result) {
return {status: 'OK', hash: result, url: url};
return {
status: 'OK',
hash: result.hash,
login: result.login,
url: url};
}
return {status: 'KO', msg: error.msg + ' (' + url + ')'};
});
...
...
@@ -191,7 +209,7 @@
}
function changeMonitorPassword(gadget, credential_dict,
login
, password) {
function changeMonitorPassword(gadget, credential_dict,
url_key
, password) {
var url,
jio_gadget,
jio_options;
...
...
@@ -234,13 +252,10 @@
return
new
Error
("
Cannot
get
document
at
:
"
%
url
);
})
.
push
(
function
(
result
)
{
return
gadget
.
props
.
login_gadget
.
updateUrlValue
(
credential_dict
.
url
,
login
,
password
)
.
push
(
function
()
{
return
{
status:
'
OK
'};
});
return
{
status:
'
OK
',
key:
url_key
};
},
function
(
error
)
{
console
.
log
(
error
);
return
{
status:
'
ERROR
',
code:
error
.
target
.
status
};
return
{
status:
'
ERROR
',
code:
error
.
target
.
status
,
key:
url_key
};
});
}
...
...
@@ -360,14 +375,16 @@
return $(gadget.props.element.querySelector("a[href='#config-" + gadget.props.selected + "']")).trigger('click');
})
.push(function () {
var text = "Give user name and password that you have.
<br/>
If required " +
"credentials will be updated from what you provided.";
var text = "Give username and password that you have.
<br/>
For each Monitor, " +
"credentials will be saved only if Login/password are valid.
<br/>
<br>
" +
"For simple use,
<strong>
configure instances with the " +
"same password
</strong>
.";
return $('.tooltip').tooltipster({
animation: 'fade',
delay: 200,
theme: 'tooltipster-shadow',
touchDevices: true,
content: $("
<h2><strong>
Configure
Private Access
</strong></h2><p>
" + text + "
</p>
"),
content: $("
<h2><strong>
Monitors
Private Access
</strong></h2><p>
" + text + "
</p>
"),
interactive: true,
trigger: 'hover'
});
...
...
@@ -566,25 +583,28 @@
credential_dict =
{},
username =
''
,
password =
''
,
old_password
,
new_password =
''
,
cnew_password =
''
,
reload =
true,
rows_list =
gadget.props.listbox.property_dict.data_result,
instance_name_dict =
{},
not_changed_dict =
{},
config_promise_list =
[];
if
(
rows_list
.
length
>
0) {
root_name = rows_list[0].opml_title;
}
gadget.props.element.querySelector('.configure .ui-text-error')
.innerHTML = '';
$(gadget.props.element.querySelector('.configure .alert-error'))
.addClass('ui-content-hidden').html('');
if ($(gadget.props.element.querySelector("input[name='configure-newpwd']")).prop('checked')) {
new_password = gadget.props.element.querySelector("input[name='new_password']").value;
cnew_password = gadget.props.element.querySelector("input[name='new_password_confirm']").value;
if (new_password !== cnew_password) {
gadget.props.element.querySelector('.configure .ui-text-error')
.innerHTML = 'The new password and it confirmation are differents!';
$(gadget.props.element.querySelector('.configure .alert-error'))
.removeClass('ui-content-hidden')
.html('The new password and it confirmation are differents!');
return false;
}
}
...
...
@@ -592,6 +612,7 @@
.push(function () {
var promise_list = [],
i;
$(gadget.props.element.querySelector('.spinner')).removeClass('ui-content-hidden');
if ($(gadget.props.element.querySelector("input[name='configure-auth']")).prop('checked')) {
username = gadget.props.element.querySelector("input[name='username']").value;
password = gadget.props.element.querySelector("input[name='password']").value;
...
...
@@ -614,7 +635,10 @@
if
(
status_list
[
i
].
status
!==
'
OK
')
{
error_msg
+=
'
Login
/
password
invalid
for:
'
+
rows_list
[
i
].
title
+
'.
'
+
status_list
[
i
].
msg
+
'<
br
/>
';
} else if (status_list[i].hasOwnProperty('url')) {
not_changed_dict[ hashCode( status_list[i].url ) ] = status_list[i].hash;
not_changed_dict[ hashCode( status_list[i].url ) ] = {
hash: status_list[i].hash,
login: (status_list[i].login || username)
};
}
}
return error_msg;
...
...
@@ -624,8 +648,9 @@
tmp_hash,
i;
if (error_msg !== '') {
gadget.props.element.querySelector('.configure .ui-text-error')
.innerHTML = error_msg;
$(gadget.props.element.querySelector('.configure .alert-error'))
.removeClass('ui-content-hidden')
.html(error_msg);
new_password = '';
reload = false;
return error_msg;
...
...
@@ -636,15 +661,18 @@
if
(
validateHttpUrl
(
rows_list
[
i
].
url
))
{
tmp =
{
hash:
btoa
(
username
+
'
:
'
+
password
),
login:
username
,
url:
rows_list
[
i
].
url
.
replace
('
public
',
'
private
'),
//
XXX
-
Need
to
fix
this
(
replace
())
parent_url:
gadget
.
props
.
opml_url
//
parent_title:
root_name
};
tmp_hash =
hashCode(
tmp
.
url
);
if
(
not_changed_dict
.
hasOwnProperty
(
tmp_hash
))
{
tmp.hash =
not_changed_dict[tmp_hash];
tmp.hash =
not_changed_dict[tmp_hash].hash;
tmp.login =
not_changed_dict[tmp_hash].login;
}
credential_dict
[
tmp_hash
] =
tmp;
instance_name_dict
[
tmp_hash
] =
{title:
rows_list
[
i
].
title
};
}
}
}
...
...
@@ -664,29 +692,42 @@
changeMonitorPassword
(
gadget
,
credential_dict
[
key
],
username
,
key
,
new_password
)
);
}
return
RSVP
.
all
(
promise_list
);
}
else
{
//
Only
save
provided
credentials
return
gadget
.
props
.
login_gadget
.
setUrlDict
(
credential_dict
)
.
push
(
function
()
{
return
[];
});
}
return
RSVP
.
all
(
promise_list
);
})
.
push
(
function
(
result_list
)
{
var
i
,
has_error =
false;
for
(i =
0;
i
<
result_list
.
length
;
i
+=
1
)
{
if
(result_list[i].status =
==
'
ERROR
')
{
gadget
.
props
.
element
.
querySelector
('.
configure
.
ui-text-error
')
.
innerHTML
+=
'
ERROR
'
+
result_list
[
i
].
code
+
'
:
Failed
to
save
password
!
Please
try
again
.
<
br
/>
';
$(
gadget
.
props
.
element
.
querySelector
('.
configure
.
alert-error
'))
.
removeClass
('
ui-content-hidden
')
.
append
('
ERROR
'
+
result_list
[
i
].
code
+
'.
['
+
instance_name_dict
[
result_list
[
i
].
key
].
title
+
']
Failed
to
save
password
,
please
try
again
<
br
/>
');
has_error = true;
} else if (result_list[i].status === 'OK') {
// Update if we could change password
credential_dict[result_list[i].key].hash = btoa(
credential_dict[result_list[i].key].login + ':' +
new_password
);
}
}
if (credential_dict){
// Only save provided credentials
return gadget.props.login_gadget.setUrlDict(credential_dict)
.push(function () {
has_error;
});
}
return has_error;
})
.push(function (has_error) {
if (! has_error
&&
reload) {
if (gadget.props.selected !== "manage") {
return gadget.redirect({
...
...
@@ -696,6 +737,8 @@
} else {
return gadget.reload();
}
} else {
$(gadget.props.element.querySelector('.spinner')).addClass('ui-content-hidden');
}
});
}
...
...
master/bt5/slapos_monitoring/PathTemplateItem/web_page_module/gadget_monitoring_static_js.xml
View file @
b992c34e
...
...
@@ -239,7 +239,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
950.5
3470.24267.49032
</string>
</value>
<value>
<string>
950.5
4797.54715.48554
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -257,7 +257,7 @@
</tuple>
<state>
<tuple>
<float>
1461
861122.87
</float>
<float>
1461
942058.71
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment