Commit d21a731d authored by Vincent Bechu's avatar Vincent Bechu

erp5_officejs: add gadget_bootloader to officejs.

parent bdcd8942
<!DOCTYPE html>
<html manifest="${application_appcache}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="gadget_erp5_nojqm.css">
<title> OfficeJS Install </title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="jiodev.js"></script>
<script src="gadget_bootloader.js"></script>
</head>
<body>
<script data-install-configuration="document_version" type="text/x-renderjs-configuration">${latest_document_version}</script>
<script data-install-configuration="version_url" type="text/x-renderjs-configuration">${latest_version}/</script>
<script data-install-configuration="redirect_url" type="text/x-renderjs-configuration">${redirect_url}/</script>
<script data-install-configuration="cache_file" type="text/x-renderjs-configuration">${cache_file}</script>
<script data-install-configuration="app_name" type="text/x-renderjs-configuration">${application_name}</script>
<script data-install-configuration="sub_app_installer" type="text/x-renderjs-configuration">${sub_gadget_installer}</script>
</body>
</html>
\ No newline at end of file
/*globals window, document, RSVP, rJS, navigator, jIO, MessageChannel, ProgressEvent*/
/*jslint indent: 2, maxlen: 80, nomen: true*/
var repair = false;
(function (window, document, RSVP, rJS, jIO, navigator, MessageChannel,
ProgressEvent) {
"use strict";
var serviceWorker_setting_storage = jIO.createJIO({
type: "uuid",
sub_storage: {
type: "indexeddb",
database: "serviceWorker_settings"
}
});
function createStorage(version, version_url) {
return jIO.createJIO({
type: "replicate",
conflict_handling: 2,
check_remote_modification: true,
check_remote_deletion: false,
check_local_creation: false,
check_local_deletion: false,
check_local_modification: false,
query: {
query: 'portal_type: ("Web Illustration",' +
'"Web Manifest","Web Script","Web Style","Web Page")' +
'AND version:"' + version + '"',
"limit": [0, 27131]
},
signature_storage: {
type: "uuid",
sub_storage: {
type: "indexeddb",
database: "installer_hash"
}
},
local_sub_storage: {
type: "mapping",
no_sub_query_id: true,
id: ["equalSubProperty", "relative_url"],
property: {
"url_string": ["equalSubId"]
},
sub_storage: {
type: "query",
sub_storage: {
type: "uuid",
sub_storage: {
type: "indexeddb",
database: window.location.origin + window.location.pathname +
version_url
}
}
}
},
remote_sub_storage: {
type: "erp5",
url: window.location.origin +
window.location.pathname + "hateoasnoauth",
default_view_reference: "jio_view"
}
});
}
function postMessage(gadget, message) {
return new RSVP.Promise(function (resolve, reject) {
var messageChannel = new MessageChannel();
messageChannel.port1.onmessage = function (event) {
if (event.data.error) {
reject(event.data.error);
} else {
return resolve(event.data);
}
};
gadget.props.serviceWorker.postMessage(
JSON.stringify(message),
[messageChannel.port2]
);
});
}
rJS(window)
.ready(function (gadget) {
var element_list =
gadget.element.querySelectorAll("[data-install-configuration]"),
i,
key,
value,
gadget_list = [];
gadget.props = {};
gadget.props.cached_url = [];
gadget.gadget_list = [];
function pushGadget(url, i) {
var element = document.createElement("div");
element.setAttribute("style", "display: none");
gadget.element.appendChild(element);
return gadget.declareGadget(url,
{
"scope": "sub_app_installer_" + i,
"element": element,
"sandbox": "iframe"
})
.push(function (sub_gadget) {
gadget.gadget_list.push(sub_gadget);
return sub_gadget.setSubInstall();
});
}
for (i = 0; i < element_list.length; i += 1) {
key = element_list[i].getAttribute('data-install-configuration');
value = element_list[i].textContent;
if (key === "sub_app_installer") {
if (value !== "") {
gadget_list = value.split('\n');
}
} else {
gadget.props[key] = value;
}
}
return gadget.render()
.push(function () {
var promise_list = [];
for (i = 0; i < gadget_list.length; i += 1) {
promise_list.push(pushGadget(gadget_list[i], i + 1));
}
return RSVP.all(promise_list);
});
})
.declareMethod("render", function () {
var gadget = this,
element = document.createElement("div");
element.className = "presentation";
gadget.element.insertBefore(element, gadget.element.firstChild);
return gadget.declareGadget(
"gadget_officejs_install_presentation.html",
{"scope": "presentation", "element": element}
)
.push(function (presentation_gadget) {
return presentation_gadget.render(
{"app_name": gadget.props.app_name}
);
});
})
.declareMethod("setSubInstall", function () {
this.props.sub = true;
})
.declareMethod("mainInstall", function () {
var gadget = this;
return new RSVP.Queue()
.push(function () {
if (gadget.props.document_version) {
return gadget.install();
}
})
.push(function () {
var promise_list = [], i;
for (i = 0; i < gadget.gadget_list.length; i += 1) {
promise_list.push(gadget.gadget_list[i].waitInstall());
}
return RSVP.all(promise_list);
})
.push(function () {
gadget.props.is_installed = true;
if (gadget.installing !== undefined) {
gadget.installing.resolve();
}
if (!gadget.props.sub) {
window.location.pathname += gadget.props.version_url;
}
})
.push(undefined, function (error) {
if (error instanceof ProgressEvent) {
if (gadget.props.sub === undefined) {
window.location.pathname += gadget.props.version_url;
}
return;
}
throw error;
});
})
.declareMethod("waitInstall", function () {
if (this.props.is_installed) {
return;
}
this.installing = RSVP.defer();
return this.installing.promise;
})
.declareMethod("install", function () {
var gadget = this;
return serviceWorker_setting_storage.put(
window.location.origin + window.location.pathname +
gadget.props.version_url,
{"version": gadget.props.document_version}
)
.push(function () {
gadget.props.storage = createStorage(
gadget.props.document_version,
gadget.props.version_url
);
return gadget.props.storage.repair();
})
.push(function () {
// transform a cache to url_list
if (gadget.props.cache_file && gadget.props.cache_file !== "") {
gadget.props.storage = jIO.createJIO({
type: "query",
sub_storage: {
type: "uuid",
sub_storage: {
type: "indexeddb",
database: window.location.origin + window.location.pathname +
gadget.props.version_url
}
}
});
return gadget.props.storage.get(gadget.props.cache_file)
.push(function (doc) {
var url_list = doc.text_content.split('\r\n'),
i,
take = false;
if (url_list.length === 1) {
url_list = doc.text_content.split('\n');
}
if (url_list.length === 1) {
url_list = doc.text_content.split('\r');
}
for (i = 0; i < url_list.length; i += 1) {
if (url_list[i].indexOf("NETWORK:") >= 0) {
take = false;
}
if (take &&
url_list[i] !== "" &&
url_list[i].charAt(0) !== '#' &&
url_list[i].charAt(0) !== ' ') {
url_list[i].replace("\r","");
gadget.props.cached_url.push(url_list[i]);
}
if (url_list[i].indexOf("CACHE:") >= 0) {
take = true;
}
}
});
}
})
.push(function () {
// remove base if present
if (document.querySelector("base")) {
document.querySelector("head").removeChild(
document.querySelector("base")
);
}
return navigator.serviceWorker.register(
"gadget_bootloader_serviceworker.js",
{"scope": gadget.props.version_url }
);
})
.push(function (registration) {
if (registration.installing) {
gadget.props.serviceWorker = registration.installing;
} else if (registration.waiting) {
gadget.props.serviceWorker = registration.waiting;
} else if (registration.active) {
gadget.props.serviceWorker = registration.active;
}
})
.push(function () {
return postMessage(
gadget,
{
"action": "install",
"url_list": gadget.props.cached_url,
"version": gadget.props.document_version
}
);
});
})
.declareService(function () {
var gadget = this;
function redirect() {
window.location.href = gadget.props.redirect_url;
}
if (!("serviceWorker" in navigator)) {
window.applicationCache.addEventListener("cached", redirect);
window.applicationCache.addEventListener('noupdate', redirect);
window.setTimeout(redirect, 10000);
} else {
return this.mainInstall();
}
});
}(window, document, RSVP, rJS, jIO, navigator, MessageChannel, ProgressEvent));
\ No newline at end of file
.loader{
border: 16px solid #f3f3f3;
border-radius: 50%;
border-top: 16px solid #3498db;
width: 64px;
height: 64px;
z-index:9999;
-webkit-animation: spin 1s linear infinite;
animation: spin 1s linear infinite;
@-webkit-keyframes spin {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
}
header{
background-color:#085078;
color: #f8fff3;
padding: 0.6em;
}
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, user-scalable=no" />
<title>OfficeJS Presentation Install</title>
<link rel="stylesheet" href="gadget_officejs_bootloader_presentation.css">
<!-- renderjs -->
<script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script>
<!-- custom script -->
<script src="gadget_officejs_bootloader_presentation.js" type="text/javascript"></script>
</head>
<body>
<center>
</center>
</body>
</html>
\ No newline at end of file
/*global window, rJS*/
/*jslint nomen: true, maxlen:80, indent:2*/
var IMAGE = "data:image/png;base64,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";
(function (window, rJS) {
"use strict";
rJS(window)
.ready(function (g) {
g.props = {};
})
.ready(function (g) {
return g.getElement()
.push(function (element) {
g.props.element = element;
});
})
.declareMethod('render', function (options) {
this.props.element.querySelector("center")
.innerHTML =
"<header>OfficeJS Installer</header>" +
"<br>" +
"<br>" +
"<br>" +
"<br>" +
"<br>" +
"<br>" +
"<br>" +
'<img width="100" height="100" title="" alt="" src="' + IMAGE + '" />' +
"<br>" +
'<div>Installing ' + options.app_name + '</div>' +
"<br> We prepare your application for a 100 % offline mode" +
'<div class="loader"></div>';
return {};
});
}(window, rJS));
\ No newline at end of file
/*jslint indent: 2*/
/*global self, fetch, Request, Response, console */
var global = self, window = self;
(function (self, fetch, Request, Response, console) {
"use strict";
self.DOMParser = {};
self.sessionStorage = {};
self.localStorage = {};
self.openDatabase = {};
self.DOMError = {};
self.postMessage = function () {return; };
self.importScripts('rsvp.js', 'jiodev.js');
self.storage = {};
function createStorage(database) {
return self.jIO.createJIO({
type: "uuid",
sub_storage: {
type: "indexeddb",
database: database
}
});
}
self.addEventListener("message", function (event) {
event.waitUntil(new self.RSVP.Queue()
.push(function () {
var data = JSON.parse(event.data);
if (data.action === "install" &&
data.url_list !== undefined) {
self.storage = createStorage(self.registration.scope);
return new self.RSVP.Queue()
.push(function () {
var promise_list = [];
data.url_list.map(function (url) {
promise_list.push(
new self.RSVP.Queue()
.push(function () {
return self.storage.get(url);
})
.push(undefined, function () {
return new self.RSVP.Queue()
.push(function () {
return fetch(new Request(url));
})
.push(function (response) {
if (response.status === 200) {
return self.RSVP.all([
self.storage.put(
url,
{"content_type": "blob"}
),
response.blob()
]);
}
throw new Error(response.statusText);
})
.push(function (result) {
return self.storage.putAttachment(
url,
"body",
result[1]
);
})
.push(function () {
console.log("Saved: ", url);
})
.push(undefined, function (error) {
console.log(
"error on",
url,
"cause: ",
error.message
);
});
})
);
});
return self.RSVP.all(promise_list);
})
.push(function () {
event.ports[0].postMessage("success");
});
}
}));
});
self.addEventListener("fetch", function (event) {
var relative_url = event.request.url.replace(self.registration.scope, "")
.replace(self.version_url, "");
if (relative_url === "") {
relative_url = "/";
}
event.respondWith(
new self.RSVP.Queue()
.push(function () {
if (self.storage.get === undefined) {
self.storage = createStorage(self.registration.scope);
}
return self.storage.get(relative_url);
})
.push(function (doc) {
if (doc.content_type !== "blob") {
return new Response(doc.text_content, {
'headers': {
'content-type': doc.content_type
}
});
}
return self.storage.getAttachment(relative_url, "body")
.push(function (blob) {
return new Response(blob, {
'headers': {
'content-type': blob.type
}
});
});
})
.push(undefined, function (error) {
console.log(
"Relative_Url: ",
relative_url,
"\nCause: ",
error.message
);
return fetch(event.request);
})
);
});
}(self, fetch, Request, Response, console));
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>business_template_skin_layer_priority</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>float</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>business_template_skin_layer_priority</string> </key>
<value> <float>99.0</float> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>erp5_web_versioning</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
if REQUEST is None:
REQUEST = context.REQUEST
if response is None:
response = REQUEST.RESPONSE
default_web_page = context
web_section = REQUEST.get("current_web_section")
#raise ValueError(web_section.getLayoutProperty("configuration_latest_version", default="development"))
return default_web_page.WebPage_viewAsWeb(mapping_dict={
"latest_version": web_section.getLayoutProperty("configuration_latest_version", default="development"),
"latest_document_version": web_section.getLayoutProperty("configuration_latest_document_version", default=context.getWebSiteValue().getId() + "-dev"),
"application_appcache": web_section.getId() + ".appcache",
"redirect_url": web_section.getLayoutProperty("configuration_redirect_url", default=""),
"cache_file": web_section.getLayoutProperty("configuration_cache_file", default=""),
"application_name": web_section.getTitle(),
"sub_gadget_installer": web_section.getLayoutProperty("configuration_sub_gadget_installer", default="")
})
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<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>REQUEST=None, response=None</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>WebSection_renderOfficeJSApplicationPage</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5 Form" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string>Base_edit</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string>multipart/form-data</string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
<string>right</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>my_configuration_latest_version</string>
<string>my_configuration_latest_document_version</string>
<string>my_configuration_content_security_policy</string>
<string>my_configuration_resource_base_url</string>
<string>my_configuration_x_frame_options</string>
<string>my_configuration_cache_file</string>
<string>my_configuration_sub_gadget_installer</string>
<string>my_configuration_redirect_url</string>
</list>
</value>
</item>
<item>
<key> <string>right</string> </key>
<value>
<list/>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>WebSection_viewOfficeJSApplicationPreference</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>WebSection_viewHateoasPreference</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_view</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Web Section Preference</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_configuration_cache_file</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_reference</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Cache File</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_configuration_content_security_policy</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_reference</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Content Security Policy</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_configuration_latest_document_version</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_reference</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Latest Document Version</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_configuration_latest_version</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_reference</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Latest Version</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_configuration_redirect_url</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_reference</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Redirect Url</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_configuration_resource_base_url</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_reference</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Resource Base URL</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.getLayoutProperty(field.getId().replace(\'my_\', \'\', 1), \'\')</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_configuration_sub_gadget_installer</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_reference</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Sub Gadget Installer</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>default</string>
<string>description</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_configuration_x_frame_options</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Set Value to "ALLOW-FROM-ALL" to disable this header</string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>X-Frame-Options</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: here.getLayoutProperty("configuration_x_frame_options", default="SAMEORIGIN")</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -8,4 +8,4 @@ web_site_module/officejs_text_editor/**
web_site_module/officejs_spreadsheet
web_site_module/officejs_spreadsheet/**
web_site_module/officejs_setting_gadget
web_site_module/officejs_setting_gadget/**
web_site_module/officejs_setting_gadget/**
\ No newline at end of file
......@@ -8,4 +8,4 @@ web_site_module/officejs_text_editor/**
web_site_module/officejs_spreadsheet
web_site_module/officejs_spreadsheet/**
web_site_module/officejs_setting_gadget
web_site_module/officejs_setting_gadget/**
web_site_module/officejs_setting_gadget/**
\ No newline at end of file
......@@ -10,4 +10,4 @@ web_site_module/officejs_spreadsheet/**
web_site_module/officejs_svg_editor
web_site_module/officejs_svg_editor/**
web_site_module/officejs_text_editor
web_site_module/officejs_text_editor/**
web_site_module/officejs_text_editor/**
\ No newline at end of file
erp5_officejs_theme
erp5_web_renderjs_ui_unsafe
\ No newline at end of file
erp5_web_renderjs_ui_unsafe
erp5_web_versioning
\ No newline at end of file
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