Commit 02788475 authored by Romain Courteaud's avatar Romain Courteaud

slapos_jio:

* drop Compute Node Token previous implementation
* erp5_web_renderjs_ui | RJS is managed by erp5_web_renderjs_ui bt5
* move most stuff to slapos_jio_before_deletion
  Keep slapos_jio minimal to simplify the rebase on the files to keep
* keep status gadget
* forgot to drop actions
parent 0844d13f
<!DOCTYPE html>
<html>
<!--
data-i18n=Slapos
data-i18n=Token is Requested.
data-i18n=Parent Relative Url
data-i18n=Command Line to Run
data-i18n=SlapOS Master API
data-i18n=SlapOS Master Web UI
data-i18n=Your Token
data-i18n=Request New Token
-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS Add Text Document</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="gadget_erp5_page_slap_compute_node_get_token.js"></script>
</head>
<body>
<form class="save_form ui-body-c" novalidate>
<button type="submit" class="ui-btn ui-btn-b ui-btn-inline
ui-icon-edit ui-btn-icon-right ui-screen-hidden"></button>
<div data-gadget-url="gadget_erp5_form.html"
data-gadget-scope="form_view"
data-gadget-sandbox="public">
</div>
</form>
</body>
</html>
/*global window, rJS, RSVP */
/*jslint nomen: true, indent: 2, maxerr: 3 */
(function (window, rJS, RSVP) {
"use strict";
rJS(window)
/////////////////////////////////////////////////////////////////
// Acquired methods
/////////////////////////////////////////////////////////////////
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod("updatePanel", "updatePanel")
.declareAcquiredMethod("getSetting", "getSetting")
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("redirect", "redirect")
.declareAcquiredMethod("jio_post", "jio_post")
.declareAcquiredMethod("jio_getAttachment", "jio_getAttachment")
.declareAcquiredMethod("notifySubmitting", "notifySubmitting")
.declareAcquiredMethod("notifySubmitted", 'notifySubmitted')
.declareAcquiredMethod("getTranslationList", "getTranslationList")
/////////////////////////////////////////////////////////////////
// declared methods
/////////////////////////////////////////////////////////////////
.allowPublicAcquisition('notifySubmit', function () {
return this.triggerSubmit();
})
.onEvent('submit', function () {
var gadget = this;
return gadget.notifySubmitting()
.push(function () {
return gadget.getDeclaredGadget('form_view');
})
.push(function (form_gadget) {
return form_gadget.getContent();
})
.push(function (doc) {
return gadget.getSetting("hateoas_url")
.push(function (url) {
return gadget.jio_getAttachment(doc.relative_url,
url + doc.relative_url + "/Base_getComputeNodeToken");
})
.push(function (result) {
var msg;
if (result) {
msg = gadget.msg_translation;
}
return gadget.notifySubmitted({message: msg, status: 'success'})
.push(function () {
// Workaround, find a way to open document without break gadget.
result.jio_key = doc.relative_url;
return gadget.render(result);
});
});
});
})
.declareMethod("triggerSubmit", function () {
return this.element.querySelector('button[type="submit"]').click();
})
.declareMethod("render", function (options) {
var gadget = this,
page_title_translation,
translation_list = [
"Parent Relative Url",
"Command Line to Run",
"SlapOS Master API",
"SlapOS Master Web UI",
"Your Token",
"Request New Token",
"Token is Requested."
];
return new RSVP.Queue()
.push(function () {
return RSVP.all([
gadget.getDeclaredGadget('form_view'),
gadget.getTranslationList(translation_list)
]);
})
.push(function (result) {
page_title_translation = result[1][5];
gadget.msg_translation = result[1][6];
return result[0].render({
erp5_document: {
"_embedded": {"_view": {
"my_relative_url": {
"description": "",
"title": result[1][0],
"default": "compute_node_module",
"css_class": "",
"required": 1,
"editable": 1,
"key": "relative_url",
"hidden": 1,
"type": "StringField"
},
"my_command_line": {
"description": "",
"title": result[1][1],
"default": options.command_line,
"css_class": "",
"required": 1,
"editable": 0,
"key": "command_line",
"hidden": (options.access_token === undefined) ? 1 : 0,
"type": "StringField"
},
"my_slapos_master_api": {
"description": "",
"title": result[1][2],
"default": options.slapos_master_api,
"css_class": "",
"required": 1,
"editable": 0,
"key": "slapos_master_api",
"hidden": (options.access_token === undefined) ? 1 : 0,
"type": "StringField"
},
"my_slapos_master_web": {
"description": "",
"title": result[1][3],
"default": options.slapos_master_web,
"css_class": "",
"required": 1,
"editable": 0,
"key": "slapos_master_web",
"hidden": (options.access_token === undefined) ? 1 : 0,
"type": "StringField"
},
"my_access_token": {
"description": "",
"title": result[1][4],
"default": options.access_token,
"css_class": "",
"required": 1,
"editable": 0,
"key": "certificate",
"hidden": (options.access_token === undefined) ? 1 : 0,
"type": "StringField"
}
}},
"_links": {
"type": {
// form_list display portal_type in header
name: ""
}
}
},
form_definition: {
group_list: [[
"center",
[["my_command_line"], ["my_slapos_master_api"], ["my_slapos_master_web"], ["my_access_token"], ["my_relative_url"]]
]]
}
});
})
.push(function () {
return gadget.updatePanel({
jio_key: "compute_node_module"
});
})
.push(function () {
return RSVP.all([
gadget.getUrlFor({command: 'change', options: {page: "slap_compute_node_list"}})
]);
})
.push(function (url_list) {
var header_dict = {
page_title: page_title_translation,
submit_action: true,
selection_url: url_list[0]
};
return gadget.updateHeader(header_dict);
});
});
}(window, rJS, RSVP));
\ No newline at end of file
.ui-block-a,
.ui-block-b,
.ui-block-c,
.ui-block-d,
.ui-block-e {
margin: 0;
padding: 0;
border: 0;
float: left;
min-height: 1px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box; } /* force new row */
.ui-block-a {
clear: left;
}
.ui-block {
width: 100%
}
.ui-bar {
position: relative;
padding: .4em 1em;
overflow: hidden;
display: block;
clear: both;
}
.ui-corner-all {
-webkit-border-radius: .3125em /*{global-radii-blocks}*/;
border-radius: .3125em /*{global-radii-blocks}*/;
}
.ui-btn-ok,
.ui-btn-ok:active,
.ui-btn-ok:hover ,
.ui-btn-ok a,
.ui-btn-ok:active a,
.ui-btn-ok:hover a {
color: white !important;
background: green !important;
text-align: center;
}
.ui-btn-warning,
.ui-btn-warning:active,
.ui-btn-warning:hover,
.ui-btn-warning a,
.ui-btn-warning:active a,
.ui-btn-warning:hover a {
color: white !important;
background: #f0ad4e !important;
text-align: center;
}
.ui-btn-error,
.ui-btn-error:active,
.ui-btn-error:hover,
.ui-btn-error a,
.ui-btn-error:active a,
.ui-btn-error:hover a {
color: white !important;
background: red !important;
text-align: center;
}
.ui-btn-no-data,
.ui-btn-no-data:active,
.ui-btn-no-data:hover,
.ui-btn-no-data a,
.ui-btn-no-data:active a,
.ui-btn-no-data:hover a {
color: grey !important;
background: grey !important;
text-align: center;
}
.ui-btn-color-white,
.ui-btn-color-white:active,
.ui-btn-color-white:hover,
.ui-btn-color-white a,
.ui-btn-color-white:active a,
.ui-btn-color-white:hover a {
color: white !important;
background: grey !important;
text-align: center;
}
.ui-btn-white,
.ui-btn-white:active,
.ui-btn-white:hover,
.ui-btn-white a,
.ui-btn-white:active a,
.ui-btn-white:hover a {
background: white !important;
text-align: center;
}
a.ui-icon-desktop::before {
margin-left: 5px;
}
/* for Software Logo*/
div.editable_div.logo img {
object-fit: cover;
max-height: 3.5em;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Background</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="domsugar.js"></script>
<script src="gadget_slapos_status.js"></script>
<link href="gadget_slapos_status.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div class="ui-block-a ui-block main-status">
<div class="ui-bar ui-corner-all first-child ui-btn-no-data">
<a class="ui-btn ui-btn-icon-left ui-icon-spinner ui-btn-color-white"> Node </a>
</div>
</div>
</body>
</html>
\ No newline at end of file
/*globals console, window, rJS, domsugar */
/*jslint indent: 2, nomen: true, maxlen: 80 */
(function (window, rJS, domsugar) {
"use strict";
var gadget_klass = rJS(window);
function getInstanceStatus(options) {
if ((!options) || (options && !options.text)) {
return 'ui-btn-no-data';
}
if (options.text.startsWith("#access")) {
return 'ui-btn-ok';
}
if (options.no_data) {
return 'ui-btn-no-data';
}
if (options.is_slave) {
return 'ui-btn-is-slave';
}
if (options.is_stopped) {
return 'ui-btn-is-stopped';
}
if (options.is_destroyed) {
return 'ui-btn-is-destroyed';
}
return 'ui-btn-error';
}
function getInstanceTreeStatus(options) {
var instance;
if (!options) {
return 'ui-btn-no-data';
}
if (options.is_slave) {
return 'ui-btn-is-slave';
}
if (options.is_stopped) {
return 'ui-btn-is-stopped';
}
if (options.is_destroyed) {
return 'ui-btn-is-destroyed';
}
if (!options.instance) {
return 'ui-btn-no-data';
}
for (instance in options.instance) {
if (options.instance.hasOwnProperty(instance)) {
if (options.instance[instance].text.startsWith("#error")) {
return 'ui-btn-error';
}
}
}
return 'ui-btn-ok';
}
function getComputeNodeStatus(options) {
if (!options || !options.text) {
return 'ui-btn-no-data';
}
if (options.text.startsWith("#access")) {
if (options.no_data_since_15_minutes) {
return 'ui-btn-error';
}
if (options.no_data_since_5_minutes) {
return 'ui-btn-warning';
}
return 'ui-btn-ok';
}
if (options.no_data) {
return 'ui-btn-no-data';
}
return 'ui-btn-error';
}
function getSoftwareInstallationStatus(options) {
if ((!options) || (options && !options.text)) {
return 'ui-btn-no-data';
}
if (options.text.startsWith("#access")) {
return 'ui-btn-ok';
}
if (options.text.startsWith("#building")) {
return 'ui-btn-is-building';
}
if (options.no_data) {
return 'ui-btn-no-data';
}
return 'ui-btn-error';
}
function getComputeNodeStatusList(options) {
var previous_status = "START",
status = 'ui-btn-no-data',
i;
if (!options || !options.compute_node) {
return status;
}
for (i in options.compute_node) {
if (options.compute_node.hasOwnProperty(i)) {
status = getComputeNodeStatus(options.compute_node[i]);
if (previous_status === "START") {
previous_status = status;
}
if (previous_status !== status) {
if ((previous_status === 'ui-btn-error') &&
(status === 'ui-btn-ok')) {
// XXX drop warning
return 'ui-btn-warning';
}
if ((status === 'ui-btn-error') &&
(previous_status === 'ui-btn-ok')) {
// XXX drop warning
return 'ui-btn-warning';
}
if (status === 'ui-btn-no-data') {
status = previous_status;
}
}
}
}
return status;
}
function getStatus(gadget, result) {
var status_class = 'ui-btn-no-data',
main_status_div = gadget.element.querySelector(".main-status"),
monitor_url = '',
main_link_configuration_dict = {
"class": "ui-btn ui-btn-icon-left ui-icon-desktop"
};
if (result && result.monitor_url) {
monitor_url = result.monitor_url;
}
if (result && result.portal_type && result.portal_type === "Compute Node") {
main_link_configuration_dict.text = 'Node';
main_link_configuration_dict["class"] = "ui-btn ui-btn-icon-left";
status_class = getComputeNodeStatus(result);
} else if (result && result.portal_type &&
result.portal_type === "Software Installation") {
status_class = getSoftwareInstallationStatus(result);
main_link_configuration_dict.text = "Installation";
if (status_class === "ui-btn-is-building") {
main_link_configuration_dict.text = "Building";
status_class = "ui-btn-no-data";
} else if (status_class === "ui-btn-ok") {
main_link_configuration_dict.text = "Available";
} else if (status_class === "ui-btn-error") {
main_link_configuration_dict.text = "Error";
}
main_link_configuration_dict["class"] = "ui-btn ui-btn-icon-left";
} else if (result && result.portal_type && (
result.portal_type === "Software Instance" ||
result.portal_type === "Slave Instance"
)) {
status_class = getInstanceStatus(result);
if (status_class === 'ui-btn-is-slave') {
status_class = 'ui-btn-color-white';
main_link_configuration_dict.text = 'Slave';
main_link_configuration_dict["class"] = "ui-btn ui-btn-icon-left";
} else if (status_class === 'ui-btn-is-stopped') {
status_class = 'ui-btn-color-white';
main_link_configuration_dict.text = 'Stopped';
main_link_configuration_dict["class"] = "ui-btn ui-btn-icon-left";
} else if (status_class === 'ui-btn-is-destroyed') {
status_class = 'ui-btn-color-white';
main_link_configuration_dict.text = 'Destroyed';
main_link_configuration_dict["class"] = "ui-btn ui-btn-icon-left";
} else {
main_link_configuration_dict.href = monitor_url;
main_link_configuration_dict.target = "_target";
main_link_configuration_dict.text = 'Instance';
}
} else if (result && result.portal_type &&
result.portal_type === "Instance Tree") {
status_class = getInstanceTreeStatus(result);
// it should verify if the monitor-base-url is ready.
if (status_class === 'ui-btn-is-slave') {
status_class = 'ui-btn-color-white';
main_link_configuration_dict.text = 'Slave Only';
main_link_configuration_dict["class"] = "ui-btn ui-btn-icon-left";
} else if (status_class === 'ui-btn-is-stopped') {
status_class = 'ui-btn-color-white';
main_link_configuration_dict.text = 'Stopped';
main_link_configuration_dict["class"] = "ui-btn ui-btn-icon-left";
} else if (status_class === 'ui-btn-is-destroyed') {
status_class = 'ui-btn-color-white';
main_link_configuration_dict.text = 'Destroyed';
main_link_configuration_dict["class"] = "ui-btn ui-btn-icon-left";
} else {
main_link_configuration_dict.href = monitor_url;
main_link_configuration_dict.target = "_target";
main_link_configuration_dict.text = 'Instance';
}
} else {
main_link_configuration_dict.text = 'Node';
main_link_configuration_dict["class"] = "ui-btn ui-btn-icon-left";
status_class = getComputeNodeStatusList(result);
}
main_link_configuration_dict.text = ' ' + main_link_configuration_dict.text;
domsugar(main_status_div.querySelector('div'),
{
"class": "ui-bar ui-corner-all first-child " + status_class
}, [
domsugar(main_link_configuration_dict.href ? "a" : "span",
main_link_configuration_dict)
]);
return gadget;
}
gadget_klass
.declareAcquiredMethod("jio_get", "jio_get")
.declareMethod("getContent", function () {
return {};
})
.onStateChange(function () {
return getStatus(this, this.state);
})
.declareMethod("render", function (options) {
// crash as soon as possible to detect wrong configuration
if (!(options.hasOwnProperty('jio_key') &&
options.hasOwnProperty('result'))) {
throw new Error(
'status gadget did not receive jio_key and result values'
);
}
// Save will force the gadget to be updated so
// result is empty.
var state_dict = options.result || {};
state_dict.jio_key = options.jio_key;
return this.changeState(state_dict);
});
}(window, rJS, domsugar));
\ No newline at end of file
import json
portal = context.getPortalObject()
person = portal.portal_membership.getAuthenticatedMember().getUserValue()
web_site = context.getWebSiteValue()
slapos_master_web_url = web_site.getLayoutProperty(
"configuration_slapos_master_web_url",
default=web_site.absolute_url()
)
request_url = "%s/%s" % (slapos_master_web_url, "Person_requestComputer")
person.requestToken(request_url=request_url)
access_token_id = context.REQUEST.get("token")
slapos_master_api = web_site.getLayoutProperty(
"configuration_slapos_master_api", "https://slap.vifib.com")
compute_node_install_command_line = web_site.getLayoutProperty(
"configuration_compute_node_install_command_line",
"wget https://deploy.erp5.net/slapos ; bash slapos")
request = context.REQUEST
response = request.RESPONSE
response.setHeader('Content-Type', "application/json")
return json.dumps({'access_token': access_token_id,
'command_line': compute_node_install_command_line,
'slapos_master_web': slapos_master_web_url,
'slapos_master_api': slapos_master_api})
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="_reconstructor" module="copy_reg"/>
</klass>
<tuple>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
<global name="object" module="__builtin__"/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>title</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Person_requestComputer</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
Kept to simplify rebase.
Will be moved at the end to slapos_panel probably
\ No newline at end of file
erp5_project
erp5_hal_json_style
erp5_corporate_identity
erp5_credential
erp5_dms
erp5_jquery
erp5_km
erp5_web
erp5_credential_oauth2
erp5_bearer_token
erp5_access_token
erp5_oauth_google_login
erp5_oauth_facebook_login
erp5_web_renderjs_ui
erp5_l10n_fr
erp5_l10n_zh
erp5_l10n_ja
slapos_cloud
slapos_slap_tool
slapos_pdm
slapos_crm
slapos_l10n_zh
slapos_rss_style
\ No newline at end of file
erp5_web_renderjs_ui
\ No newline at end of file
image_module/gadget_slapos_invoice_logo_png
image_module/gadget_slapos_panel_png
web_page_module/gadget_erp5_page_slap_cloud_contract_view_html
web_page_module/gadget_erp5_page_slap_cloud_contract_view_js
web_page_module/gadget_erp5_page_slap_reject_upgrade_decision_html
web_page_module/gadget_erp5_page_slap_reject_upgrade_decision_js
web_page_module/gadget_erp5_page_slap_request_contract_activation_html
web_page_module/gadget_erp5_page_slap_request_contract_activation_js
web_page_module/rjs_gadget_erp5_attention_point_css
web_page_module/rjs_gadget_erp5_attention_point_html
web_page_module/rjs_gadget_erp5_attention_point_js
web_page_module/rjs_gadget_erp5_page_map_css
web_page_module/rjs_gadget_erp5_page_map_html
web_page_module/rjs_gadget_erp5_page_map_js
web_page_module/rjs_gadget_erp5_page_slap_accept_upgrade_decision_html
web_page_module/rjs_gadget_erp5_page_slap_accept_upgrade_decision_js
web_page_module/rjs_gadget_erp5_page_slap_access_denied_view_html
web_page_module/rjs_gadget_erp5_page_slap_access_denied_view_js
web_page_module/rjs_gadget_erp5_page_slap_add_project_html
web_page_module/rjs_gadget_erp5_page_slap_add_project_js
web_page_module/rjs_gadget_erp5_page_slap_all_invoice_list_html
web_page_module/rjs_gadget_erp5_page_slap_all_invoice_list_js
web_page_module/rjs_gadget_erp5_page_slap_certificate_login_view_html
web_page_module/rjs_gadget_erp5_page_slap_certificate_login_view_js
web_page_module/rjs_gadget_erp5_page_slap_compute_node_get_token_html
web_page_module/rjs_gadget_erp5_page_slap_compute_node_get_token_js
web_page_module/rjs_gadget_erp5_page_slap_compute_node_request_certificate_html
web_page_module/rjs_gadget_erp5_page_slap_compute_node_request_certificate_js
web_page_module/rjs_gadget_erp5_page_slap_controller_html
web_page_module/rjs_gadget_erp5_page_slap_controller_js
web_page_module/rjs_gadget_erp5_page_slap_delete_organisation_html
web_page_module/rjs_gadget_erp5_page_slap_delete_organisation_js
web_page_module/rjs_gadget_erp5_page_slap_delete_project_html
web_page_module/rjs_gadget_erp5_page_slap_delete_project_js
web_page_module/rjs_gadget_erp5_page_slap_erp5_login_view_html
web_page_module/rjs_gadget_erp5_page_slap_erp5_login_view_js
web_page_module/rjs_gadget_erp5_page_slap_facebook_login_view_html
web_page_module/rjs_gadget_erp5_page_slap_facebook_login_view_js
web_page_module/rjs_gadget_erp5_page_slap_google_login_view_html
web_page_module/rjs_gadget_erp5_page_slap_google_login_view_js
web_page_module/rjs_gadget_erp5_page_slap_access_denied_view_html
web_page_module/rjs_gadget_erp5_page_slap_access_denied_view_js
web_page_module/rjs_gadget_erp5_page_slap_intent_html
web_page_module/rjs_gadget_erp5_page_slap_intent_js
web_page_module/rjs_gadget_erp5_page_slap_invalidate_login_html
web_page_module/rjs_gadget_erp5_page_slap_invalidate_login_js
web_page_module/rjs_gadget_erp5_page_slap_invoice_list_html
web_page_module/rjs_gadget_erp5_page_slap_invoice_list_js
web_page_module/rjs_gadget_erp5_page_slap_language_view_html
web_page_module/rjs_gadget_erp5_page_slap_language_view_js
web_page_module/rjs_gadget_erp5_page_slap_load_schema_html
web_page_module/rjs_gadget_erp5_page_slap_load_schema_js
web_page_module/rjs_gadget_erp5_page_slap_notify_and_redirect_html
web_page_module/rjs_gadget_erp5_page_slap_notify_and_redirect_js
web_page_module/rjs_gadget_erp5_page_slap_organisation_get_invitation_link_html
web_page_module/rjs_gadget_erp5_page_slap_organisation_get_invitation_link_js
web_page_module/rjs_gadget_erp5_page_slap_organisation_view_html
web_page_module/rjs_gadget_erp5_page_slap_organisation_view_js
web_page_module/rjs_gadget_erp5_page_slap_payment_result_html
web_page_module/rjs_gadget_erp5_page_slap_person_add_erp5_login_html
web_page_module/rjs_gadget_erp5_page_slap_person_add_erp5_login_js
web_page_module/rjs_gadget_erp5_page_slap_person_get_token_html
web_page_module/rjs_gadget_erp5_page_slap_person_get_token_js
web_page_module/rjs_gadget_erp5_page_slap_person_request_certificate_html
web_page_module/rjs_gadget_erp5_page_slap_person_request_certificate_js
web_page_module/rjs_gadget_erp5_page_slap_person_revoke_certificate_html
web_page_module/rjs_gadget_erp5_page_slap_person_revoke_certificate_js
web_page_module/rjs_gadget_erp5_page_slap_person_view_html
web_page_module/rjs_gadget_erp5_page_slap_person_view_js
web_page_module/rjs_gadget_erp5_page_slap_project_get_invitation_link_html
web_page_module/rjs_gadget_erp5_page_slap_project_get_invitation_link_js
web_page_module/rjs_gadget_erp5_page_slap_regularisation_request_view_html
web_page_module/rjs_gadget_erp5_page_slap_regularisation_request_view_js
web_page_module/rjs_gadget_erp5_page_slap_rss_ticket_html
web_page_module/rjs_gadget_erp5_page_slap_rss_ticket_js
web_page_module/rjs_gadget_erp5_page_slap_sale_invoice_transaction_view_html
web_page_module/rjs_gadget_erp5_page_slap_sale_invoice_transaction_view_js
web_page_module/rjs_gadget_erp5_page_slap_site_list_html
web_page_module/rjs_gadget_erp5_page_slap_site_list_js
web_page_module/rjs_gadget_erp5_page_slap_site_view_html
web_page_module/rjs_gadget_erp5_page_slap_site_view_js
<<<<<<< HEAD
web_page_module/rjs_gadget_erp5_page_slap_test_parameter_form_html
web_page_module/rjs_gadget_erp5_page_slap_test_parameter_form_js
web_page_module/rjs_gadget_erp5_page_slap_test_readonly_parameter_form_html
web_page_module/rjs_gadget_erp5_page_slap_test_readonly_parameter_form_js
web_page_module/rjs_gadget_erp5_page_slap_transfer_computer_network_html
web_page_module/rjs_gadget_erp5_page_slap_transfer_computer_network_js
=======
>>>>>>> slapos_jio: drop Computer Network scripts
web_page_module/rjs_gadget_erp5_page_slap_transfer_instance_tree_html
web_page_module/rjs_gadget_erp5_page_slap_transfer_instance_tree_js
web_page_module/rjs_gadget_erp5_page_slap_upgrade_decision_view_html
web_page_module/rjs_gadget_erp5_page_slap_upgrade_decision_view_js
web_page_module/rjs_gadget_erp5_page_slapos_access_html
web_page_module/rjs_gadget_erp5_page_slapos_access_js
web_page_module/rjs_gadget_erp5_page_slapos_css
web_page_module/rjs_gadget_erp5_page_slapos_html
web_page_module/rjs_gadget_erp5_page_slapos_html
web_page_module/rjs_gadget_erp5_page_slapos_js
web_page_module/rjs_gadget_erp5_panel_shortcut_html
web_page_module/rjs_gadget_erp5_panel_shortcut_js
web_page_module/rjs_gadget_erp5_pt_form_slapos_index_html
web_page_module/rjs_gadget_erp5_pt_form_slapos_index_js
web_page_module/rjs_gadget_slapos_alert_listbox_field_css
web_page_module/rjs_gadget_slapos_alert_listbox_field_html
web_page_module/rjs_gadget_slapos_alert_listbox_field_js
web_page_module/rjs_gadget_slapos_annotated_helper_css
web_page_module/rjs_gadget_slapos_annotated_helper_html
web_page_module/rjs_gadget_slapos_annotated_helper_js
web_page_module/rjs_gadget_slapos_appcache
web_page_module/rjs_gadget_slapos_compute_node_map_html
web_page_module/rjs_gadget_slapos_compute_node_map_js
web_page_module/rjs_gadget_slapos_event_discussion_entry_css
web_page_module/rjs_gadget_slapos_event_discussion_entry_html
web_page_module/rjs_gadget_slapos_event_discussion_entry_js
web_page_module/rjs_gadget_slapos_header_html
web_page_module/rjs_gadget_slapos_header_js
web_page_module/rjs_gadget_slapos_invoice_printout_html
web_page_module/rjs_gadget_slapos_invoice_printout_js
web_page_module/rjs_gadget_slapos_invoice_state_html
web_page_module/rjs_gadget_slapos_invoice_state_js
web_page_module/rjs_gadget_slapos_label_listbox_field_html
web_page_module/rjs_gadget_slapos_label_listbox_field_js
web_page_module/rjs_gadget_slapos_login_page_css
web_page_module/rjs_gadget_slapos_panel_html
web_page_module/rjs_gadget_slapos_panel_js
web_page_module/rjs_gadget_slapos_payment_result_js**
web_page_module/rjs_gadget_slapos_translation_data_js
web_page_module/rjs_gadget_slapos_translation_html
web_page_module/rjs_gadget_slapos_utils_js
web_page_module/rjs_leaflet_css
web_page_module/rjs_leaflet_js
web_page_module/slapos_admin_front_page
web_site_module/hostingjs
web_site_module/hostingjs/**
web_site_module/renderjs_oss
web_site_module/renderjs_oss/**
image_module/gadget_slapos_invoice_logo_png
image_module/gadget_slapos_panel_png
web_page_module/gadget_erp5_page_slap_cloud_contract_view_html
web_page_module/gadget_erp5_page_slap_cloud_contract_view_js
web_page_module/gadget_erp5_page_slap_reject_upgrade_decision_html
web_page_module/gadget_erp5_page_slap_reject_upgrade_decision_js
web_page_module/gadget_erp5_page_slap_request_contract_activation_html
web_page_module/gadget_erp5_page_slap_request_contract_activation_js
web_page_module/rjs_gadget_erp5_attention_point_css
web_page_module/rjs_gadget_erp5_attention_point_html
web_page_module/rjs_gadget_erp5_attention_point_js
web_page_module/rjs_gadget_erp5_page_map_css
web_page_module/rjs_gadget_erp5_page_map_html
web_page_module/rjs_gadget_erp5_page_map_js
web_page_module/rjs_gadget_erp5_page_slap_accept_upgrade_decision_html
web_page_module/rjs_gadget_erp5_page_slap_accept_upgrade_decision_js
web_page_module/rjs_gadget_erp5_page_slap_access_denied_view_html
web_page_module/rjs_gadget_erp5_page_slap_access_denied_view_js
web_page_module/rjs_gadget_erp5_page_slap_add_project_html
web_page_module/rjs_gadget_erp5_page_slap_add_project_js
web_page_module/rjs_gadget_erp5_page_slap_all_invoice_list_html
web_page_module/rjs_gadget_erp5_page_slap_all_invoice_list_js
web_page_module/rjs_gadget_erp5_page_slap_certificate_login_view_html
web_page_module/rjs_gadget_erp5_page_slap_certificate_login_view_js
web_page_module/rjs_gadget_erp5_page_slap_compute_node_get_token_html
web_page_module/rjs_gadget_erp5_page_slap_compute_node_get_token_js
web_page_module/rjs_gadget_erp5_page_slap_controller_html
web_page_module/rjs_gadget_erp5_page_slap_controller_js
web_page_module/rjs_gadget_erp5_page_slap_delete_organisation_html
web_page_module/rjs_gadget_erp5_page_slap_delete_organisation_js
web_page_module/rjs_gadget_erp5_page_slap_delete_project_html
web_page_module/rjs_gadget_erp5_page_slap_delete_project_js
web_page_module/rjs_gadget_erp5_page_slap_erp5_login_view_html
web_page_module/rjs_gadget_erp5_page_slap_erp5_login_view_js
web_page_module/rjs_gadget_erp5_page_slap_facebook_login_view_html
web_page_module/rjs_gadget_erp5_page_slap_facebook_login_view_js
web_page_module/rjs_gadget_erp5_page_slap_google_login_view_html
web_page_module/rjs_gadget_erp5_page_slap_google_login_view_js
web_page_module/rjs_gadget_erp5_page_slap_intent_html
web_page_module/rjs_gadget_erp5_page_slap_intent_js
web_page_module/rjs_gadget_erp5_page_slap_intent_zh_html
web_page_module/rjs_gadget_erp5_page_slap_invalidate_login_html
web_page_module/rjs_gadget_erp5_page_slap_invalidate_login_js
web_page_module/rjs_gadget_erp5_page_slap_invoice_list_html
web_page_module/rjs_gadget_erp5_page_slap_invoice_list_js
web_page_module/rjs_gadget_erp5_page_slap_language_view_html
web_page_module/rjs_gadget_erp5_page_slap_language_view_js
web_page_module/rjs_gadget_erp5_page_slap_load_schema_html
web_page_module/rjs_gadget_erp5_page_slap_load_schema_js
web_page_module/rjs_gadget_erp5_page_slap_notify_and_redirect_html
web_page_module/rjs_gadget_erp5_page_slap_notify_and_redirect_js
web_page_module/rjs_gadget_erp5_page_slap_organisation_get_invitation_link_html
web_page_module/rjs_gadget_erp5_page_slap_organisation_get_invitation_link_js
web_page_module/rjs_gadget_erp5_page_slap_organisation_view_html
web_page_module/rjs_gadget_erp5_page_slap_organisation_view_js
web_page_module/rjs_gadget_erp5_page_slap_payment_result_html
web_page_module/rjs_gadget_erp5_page_slap_person_add_erp5_login_html
web_page_module/rjs_gadget_erp5_page_slap_person_add_erp5_login_js
web_page_module/rjs_gadget_erp5_page_slap_person_get_token_html
web_page_module/rjs_gadget_erp5_page_slap_person_get_token_js
web_page_module/rjs_gadget_erp5_page_slap_person_request_certificate_html
web_page_module/rjs_gadget_erp5_page_slap_person_request_certificate_js
web_page_module/rjs_gadget_erp5_page_slap_person_view_html
web_page_module/rjs_gadget_erp5_page_slap_person_view_js
web_page_module/rjs_gadget_erp5_page_slap_project_get_invitation_link_html
web_page_module/rjs_gadget_erp5_page_slap_project_get_invitation_link_js
web_page_module/rjs_gadget_erp5_page_slap_regularisation_request_view_html
web_page_module/rjs_gadget_erp5_page_slap_regularisation_request_view_js
web_page_module/rjs_gadget_erp5_page_slap_rss_ticket_html
web_page_module/rjs_gadget_erp5_page_slap_rss_ticket_js
web_page_module/rjs_gadget_erp5_page_slap_sale_invoice_transaction_view_html
web_page_module/rjs_gadget_erp5_page_slap_sale_invoice_transaction_view_js
web_page_module/rjs_gadget_erp5_page_slap_site_list_html
web_page_module/rjs_gadget_erp5_page_slap_site_list_js
web_page_module/rjs_gadget_erp5_page_slap_site_view_html
web_page_module/rjs_gadget_erp5_page_slap_site_view_js
<<<<<<< HEAD
web_page_module/rjs_gadget_erp5_page_slap_test_parameter_form_html
web_page_module/rjs_gadget_erp5_page_slap_test_parameter_form_js
web_page_module/rjs_gadget_erp5_page_slap_test_readonly_parameter_form_html
web_page_module/rjs_gadget_erp5_page_slap_test_readonly_parameter_form_js
web_page_module/rjs_gadget_erp5_page_slap_transfer_instance_tree_html
web_page_module/rjs_gadget_erp5_page_slap_transfer_instance_tree_js
web_page_module/rjs_gadget_erp5_page_slap_upgrade_decision_view_html
web_page_module/rjs_gadget_erp5_page_slap_upgrade_decision_view_js
web_page_module/rjs_gadget_erp5_page_slapos_access_html
web_page_module/rjs_gadget_erp5_page_slapos_access_js
web_page_module/rjs_gadget_erp5_page_slapos_css
web_page_module/rjs_gadget_erp5_page_slapos_html
web_page_module/rjs_gadget_erp5_page_slapos_html
web_page_module/rjs_gadget_erp5_page_slapos_js
web_page_module/rjs_gadget_erp5_panel_shortcut_html
web_page_module/rjs_gadget_erp5_panel_shortcut_js
web_page_module/rjs_gadget_erp5_pt_form_slapos_index_html
web_page_module/rjs_gadget_erp5_pt_form_slapos_index_js
web_page_module/rjs_gadget_slapos_alert_listbox_field_css
web_page_module/rjs_gadget_slapos_alert_listbox_field_html
web_page_module/rjs_gadget_slapos_alert_listbox_field_js
web_page_module/rjs_gadget_slapos_annotated_helper_css
web_page_module/rjs_gadget_slapos_annotated_helper_html
web_page_module/rjs_gadget_slapos_annotated_helper_js
web_page_module/rjs_gadget_slapos_appcache
web_page_module/rjs_gadget_slapos_compute_node_map_html
web_page_module/rjs_gadget_slapos_compute_node_map_js
web_page_module/rjs_gadget_slapos_event_discussion_entry_css
web_page_module/rjs_gadget_slapos_event_discussion_entry_html
web_page_module/rjs_gadget_slapos_event_discussion_entry_js
web_page_module/rjs_gadget_slapos_header_html
web_page_module/rjs_gadget_slapos_header_js
web_page_module/rjs_gadget_slapos_invoice_printout_html
web_page_module/rjs_gadget_slapos_invoice_printout_js
web_page_module/rjs_gadget_slapos_invoice_state_html
web_page_module/rjs_gadget_slapos_invoice_state_js
web_page_module/rjs_gadget_slapos_label_listbox_field_html
web_page_module/rjs_gadget_slapos_label_listbox_field_js
web_page_module/rjs_gadget_slapos_login_page_css
web_page_module/rjs_gadget_slapos_panel_html
web_page_module/rjs_gadget_slapos_panel_js
web_page_module/rjs_gadget_slapos_payment_result_js**
web_page_module/rjs_gadget_slapos_translation_data_js
web_page_module/rjs_gadget_slapos_translation_html
web_page_module/rjs_gadget_slapos_utils_js
web_page_module/rjs_leaflet_css
web_page_module/rjs_leaflet_js
web_page_module/slapos_admin_front_page
web_site_module/hostingjs
web_site_module/hostingjs/**
web_site_module/renderjs_oss
web_site_module/renderjs_oss/**
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment