Commit 900b9581 authored by Vincent Bechu's avatar Vincent Bechu

erp5_officejs: get last version of bookmark manager from officejs prod

parent d21a731d
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="favicon.ico">
<title>Bookmark Manager</title>
<link href="//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="jquerymobile.css">
<link rel="stylesheet" href="gadget_erp5.css">
<script data-renderjs-configuration="application_title" type="text/x-renderjs-configuration">Bookmark Manager</script>
<script data-renderjs-configuration="panel_gadget" type="text/x-renderjs-configuration">gadget_officejs_bookmark_manager_panel.html</script>
<script data-renderjs-configuration="action_view" type="text/x-renderjs-configuration">object_view</script>
<script data-renderjs-configuration="default_view_reference" type="text/x-renderjs-configuration">view</script>
<script data-renderjs-configuration="hateoas_url" type="text/x-renderjs-configuration">hateoas/</script>
<script src="jquery.js"></script>
<script src="jquerymobile.js"></script>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="gadget_global.js" ></script>
<script src="erp5_launcher.js"></script>
</head>
<body>
<div data-role="page">
<div data-gadget-url="gadget_jio.html"
data-gadget-scope="setting_gadget"
data-gadget-sandbox="public"></div>
<div data-gadget-url="gadget_officejs_bookmark_manager_router.html"
data-gadget-scope="router"
data-gadget-sandbox="public"></div>
<div data-gadget-url="gadget_translation.html"
data-gadget-scope="translation_gadget"
data-gadget-sandbox="public"></div>
<div data-gadget-url="gadget_officejs_header.html"
data-gadget-scope="header"
data-gadget-sandbox="public"></div>
<div data-gadget-url="gadget_officejs_jio.html"
data-gadget-scope="jio_gadget"
data-gadget-sandbox="public"></div>
<div data-gadget-url="gadget_erp5_editor_panel.html"
data-gadget-scope="editor_panel"
data-gadget-sandbox="public"></div>
<div data-gadget-url="gadget_officejs_bookmark_manager_panel.html"
data-gadget-scope="panel"
data-gadget-sandbox="public"></div>
<div role="main" class="ui-content gadget-content"></div>
</div>
</body>
</html>
\ No newline at end of file
/*global window, rJS, RSVP, URI, location,
loopEventListener, btoa */
/*jslint nomen: true, indent: 2, maxerr: 3*/
(function (window, rJS, RSVP) {
"use strict";
function setjIODAVConfiguration(gadget) {
return gadget.getSetting("portal_type")
.push(function (portal_type) {
var old_date = new Date(),
configuration = {};
// We are looking for documents modified in the past 3 month
old_date = new Date(old_date.getFullYear(), old_date.getMonth() - 3);
configuration = {
type: "replicate",
// XXX This drop the signature lists...
query: {
query: 'portal_type:"' + portal_type + '" ',
// XX Synchonizing the whole module is too much, here is a way to start quietly
//+ 'AND local_roles: ("Owner") '
//+ 'AND validation_state: ("draft", "released_alive", "shared_alive", "published_alive") ',
limit: [0, 1234567890]
},
use_remote_post: false,
conflict_handling: 2,
check_local_modification: true,
check_local_creation: true,
check_local_deletion: true,
check_remote_modification: true,
check_remote_creation: true,
check_remote_deletion: true,
local_sub_storage: {
type: "mapping",
attachment_mapping_dict: {
'data': {
get: {uri_template: 'enclosure'},
put: {uri_template: 'enclosure'}
}
},
sub_storage: {
type: "query",
sub_storage: {
type: "uuid",
sub_storage: {
type: "indexeddb",
database: "officejs-dav"
}
}
}
},
remote_sub_storage: {
type: "mapping",
attachment_mapping_dict: {
'data': {
get: {uri_template: 'enclosure'},
put: {uri_template: 'enclosure'}
}
},
sub_storage: {
type: "query",
sub_storage: {
type: "drivetojiomapping",
sub_storage: {
type: "mapping",
mapping_dict: {
"portal_type": {
"equal": "type",
"value": {
"switch": {
"PDF": {
"equal": "pdf"
},
"Web Text": {
"equal": "txt"
}
}
}
}
},
sub_storage: {
type: "dav",
url: gadget.props.element.querySelector("input[name='dav_url']").value,
basic_login: btoa(gadget.props.element.querySelector("input[name='dav_username']").value
+ ':' + gadget.props.element.querySelector("input[name='dav_password']").value),
with_credentials: true
}
}
}
}
}
};
return gadget.setSetting('jio_storage_description', configuration);
})
.push(function () {
return gadget.setSetting('jio_storage_name', "DAV");
})
.push(function () {
return gadget.reload();
});
}
var gadget_klass = rJS(window);
gadget_klass
.ready(function (g) {
g.props = {};
return g.getElement()
.push(function (element) {
g.props.element = element;
g.props.deferred = RSVP.defer();
return g.getSetting('jio_storage_name');
})
.push(function (jio_storage_name) {
if (jio_storage_name === "DAV") {
return g.getSetting('jio_storage_description')
.push(function (jio_storage_description) {
g.props.element.querySelector("input[name='dav_url']").value =
jio_storage_description.remote_sub_storage.sub_storage.sub_storage.url;
});
}
});
})
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod("redirect", "redirect")
.declareAcquiredMethod("reload", "reload")
.declareAcquiredMethod("getSetting", "getSetting")
.declareAcquiredMethod("setSetting", "setSetting")
.declareMethod("render", function () {
var gadget = this;
return gadget.updateHeader({
title: "Connect To DAV Storage",
back_url: "#page=jio_configurator",
panel_action: false
}).push(function () {
return gadget.props.deferred.resolve();
});
})
/////////////////////////////////////////
// Form submit
/////////////////////////////////////////
.declareService(function () {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return gadget.props.deferred.promise;
})
.push(function () {
return loopEventListener(
gadget.props.element.querySelector('form'),
'submit',
true,
function () {
return setjIODAVConfiguration(gadget);
}
);
});
});
}(window, rJS, RSVP));
\ No newline at end of file
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS Jio Web Page View</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="handlebars.js"></script>
<script class="view-web-page-template" type="text/x-handlebars-template">
<a href="{{url_string}}" style="display: block; text-align: center; font-size: 1.7em;">{{url_string}}</a>
<form class="view-web-page-form">
<div class="center">
<div class="ui-field-contain">
<label data-i18n="Title:">Title:</label>
<input type="text" name="title" value="{{title}}">
</div>
<div class="ui-field-contain">
<label data-i18n="Url:">Url:</label>
<input type="text" name="url_string" value="{{url_string}}">
</div>
<div class="ui-field-contain">
<label data-i18n="Description:">Description:</label>
<textarea name="description">{{description}}</textarea>
</div>
<div>
<button type="submit" data-i18n="Save" style="display:none;">Save</button>
</div>
</div>
</form>
</script>
<script src="gadget_officejs_jio_bookmark_view.js"></script>
</head>
<body>
</body>
</html>
\ No newline at end of file
/*globals window, rJS, Handlebars, RSVP, loopEventListener, console*/
/*jslint indent: 2, nomen: true, maxlen: 80*/
(function (window, RSVP, rJS, Handlebars, loopEventListener) {
"use strict";
function saveContent(gadget, submit_event) {
var i,
doc = gadget.options.doc,
now = new Date();
doc.parent_relative_url = "bookmark_module";
doc.portal_type = "Bookmark";
doc.modification_date = now.toISOString();
for (i = 0; i < submit_event.target.length; i += 1) {
// XXX Should check input type instead
if (submit_event.target[i].name) {
doc[submit_event.target[i].name] = submit_event.target[i].value;
}
}
return new RSVP.Queue()
.push(function () {
return gadget.put(gadget.options.jio_key, doc);
});
}
function maximize(gadget) {
var iframe = gadget.props.element.querySelector('iframe'),
iframe_class_string = iframe.getAttribute('class') || "",
class_name = "ui-content-maximize",
class_index = iframe_class_string.indexOf(class_name);
if (class_index === -1) {
iframe_class_string += ' ' + class_name;
iframe.setAttribute('style', '');
iframe.setAttribute('class', iframe_class_string);
return;
}
iframe_class_string = iframe_class_string.substring(0, class_index)
+ iframe_class_string.substring(class_index + class_name.length);
iframe.setAttribute('style', 'width:100%; border: 0 none; height: 600px');
iframe.setAttribute('class', iframe_class_string);
return;
}
var gadget_klass = rJS(window),
source = gadget_klass.__template_element
.querySelector(".view-web-page-template")
.innerHTML,
template = Handlebars.compile(source);
gadget_klass
.ready(function (g) {
g.props = {};
g.options = null;
return g.getElement()
.push(function (element) {
g.props.element = element;
g.props.deferred = RSVP.defer();
});
})
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod("get", "jio_get")
.declareAcquiredMethod("translateHtml", "translateHtml")
.declareAcquiredMethod("put", "jio_put")
.declareAcquiredMethod('allDocs', 'jio_allDocs')
.declareAcquiredMethod("redirect", "redirect")
.allowPublicAcquisition('triggerMaximize', function () {
var gadget = this;
return RSVP.Queue()
.push(function () {
return maximize(gadget);
})
.fail(function (e) {
console.log(e);
});
})
.allowPublicAcquisition('triggerSubmit', function () {
return this.props.element.querySelector('button').click();
})
.declareMethod('triggerSubmit', function () {
return this.props.element.querySelector('button').click();
})
.declareMethod("render", function (options) {
var gadget = this;
gadget.options = options;
gadget.options.doc.title = gadget.options.doc.title || "";
return new RSVP.Queue()
.push(function () {
return gadget.translateHtml(template(options.doc));
})
.push(function (html) {
gadget.props.element.innerHTML = html;
return gadget.updateHeader({
title: options.doc.title + " | Bookmark",
save_action: true
});
})
.push(function () {
return gadget.props.deferred.resolve();
});
})
/////////////////////////////////////////
// Render text content gadget
/////////////////////////////////////////
.declareService(function () {
var gadget = this,
text_gadget = null;
return new RSVP.Queue()
.push(function () {
return gadget.props.deferred.promise;
});
})
/////////////////////////////////////////
// Form submit
/////////////////////////////////////////
.declareService(function () {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return gadget.props.deferred.promise;
})
.push(function () {
return loopEventListener(
gadget.props.element.querySelector('form'),
'submit',
true,
function (event) {
return saveContent(gadget, event);
}
);
});
});
}(window, RSVP, rJS, Handlebars, loopEventListener));
\ No newline at end of file
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS Jio Web Page View</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="handlebars.js"></script>
<script class="view-web-page-template" type="text/x-handlebars-template">
<a href="{{url_string}}" style="display: block; text-align: center; font-size: 1.7em;">{{url_string}}</a>
<form class="view-web-page-form">
<div class="center">
<div class="ui-field-contain">
<label data-i18n="Title:">Title:</label>
<input type="text" name="title" value="{{title}}">
</div>
<div class="ui-field-contain">
<label data-i18n="Url:">Url:</label>
<input type="text" name="url_string" value="{{url_string}}">
</div>
<div class="ui-field-contain">
<label data-i18n="Description:">Description:</label>
<textarea name="description">{{description}}</textarea>
</div>
<div>
<button type="submit" data-i18n="Save" style="display:none;">Save</button>
</div>
</div>
</form>
</script>
<script src="gadget_officejs_jio_url_view.js"></script>
</head>
<body>
</body>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS Jio Web Page View</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="handlebars.js"></script>
<script class="view-web-page-template" type="text/x-handlebars-template">
<a href="{{url_string}}" style="display: block; text-align: center; font-size: 1.7em;">{{url_string}}</a>
<form class="view-web-page-form">
<div class="center">
<div class="ui-field-contain">
<label data-i18n="Title:">Title:</label>
<input type="text" name="title" value="{{title}}">
</div>
<div class="ui-field-contain">
<label data-i18n="Url:">Url:</label>
<input type="text" name="url_string" value="{{url_string}}">
</div>
<div class="ui-field-contain">
<label data-i18n="Description:">Description:</label>
<textarea name="description">{{description}}</textarea>
</div>
<div>
<button type="submit" data-i18n="Save" style="display:none;">Save</button>
</div>
</div>
</form>
</script>
<script src="gadget_officejs_jio_url_view.js"></script>
</head>
<body>
</body>
</html>
\ No newline at end of file
......@@ -105,13 +105,11 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Jio Bookmark View</string> </value>
<value> <string>OfficeJS Bookmark List</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -193,7 +191,7 @@
</tuple>
<state>
<tuple>
<float>1468958515.0</float>
<float>1485781210.11</float>
<string>UTC</string>
</tuple>
</state>
......@@ -238,7 +236,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>955.49823.4948.58316</string> </value>
<value> <string>956.64689.57793.57070</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -256,7 +254,7 @@
</tuple>
<state>
<tuple>
<float>1480959906.78</float>
<float>1485781570.45</float>
<string>UTC</string>
</tuple>
</state>
......@@ -279,7 +277,9 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
......@@ -295,7 +295,7 @@
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
......@@ -313,7 +313,7 @@
</tuple>
<state>
<tuple>
<float>1468958471.49</float>
<float>1485779333.22</float>
<string>UTC</string>
</tuple>
</state>
......
/*globals window, rJS, Handlebars, RSVP, loopEventListener, console*/
/*jslint indent: 2, nomen: true, maxlen: 80*/
(function (window, RSVP, rJS, Handlebars, loopEventListener) {
"use strict";
function saveContent(gadget, submit_event) {
var i,
doc = gadget.options.doc,
now = new Date();
return new RSVP.Queue()
.push(function () {
return RSVP.all([
gadget.getSetting("portal_type"),
gadget.getSetting("parent_relative_url")
]);
})
.push(function (answer_list) {
doc.portal_type = answer_list[0];
doc.parent_relative_url = answer_list[1];
doc.modification_date = now.toISOString();
for (i = 0; i < submit_event.target.length; i += 1) {
// XXX Should check input type instead
if (submit_event.target[i].name) {
doc[submit_event.target[i].name] = submit_event.target[i].value;
}
}
return gadget.put(gadget.options.jio_key, doc);
});
}
var gadget_klass = rJS(window),
source = gadget_klass.__template_element
.querySelector(".view-web-page-template")
.innerHTML,
template = Handlebars.compile(source);
gadget_klass
.ready(function (g) {
g.props = {};
g.options = null;
return g.getElement()
.push(function (element) {
g.props.element = element;
g.props.deferred = RSVP.defer();
});
})
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod('getSetting', 'getSetting')
.declareAcquiredMethod("get", "jio_get")
.declareAcquiredMethod("translateHtml", "translateHtml")
.declareAcquiredMethod("put", "jio_put")
.declareAcquiredMethod('allDocs', 'jio_allDocs')
.declareAcquiredMethod("redirect", "redirect")
.allowPublicAcquisition('triggerSubmit', function () {
return this.props.element.querySelector('button').click();
})
.declareMethod('triggerSubmit', function () {
return this.props.element.querySelector('button').click();
})
.declareMethod("render", function (options) {
var gadget = this;
gadget.options = options;
gadget.options.doc.title = gadget.options.doc.title || "";
return new RSVP.Queue()
.push(function () {
return gadget.translateHtml(template(options.doc));
})
.push(function (html) {
gadget.props.element.innerHTML = html;
return gadget.updateHeader({
title: options.doc.title + " | Bookmark",
save_action: true
});
})
.push(function () {
return gadget.props.deferred.resolve();
});
})
/////////////////////////////////////////
// Render text content gadget
/////////////////////////////////////////
.declareService(function () {
var gadget = this,
text_gadget = null;
return new RSVP.Queue()
.push(function () {
return gadget.props.deferred.promise;
});
})
/////////////////////////////////////////
// Form submit
/////////////////////////////////////////
.declareService(function () {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return gadget.props.deferred.promise;
})
.push(function () {
return loopEventListener(
gadget.props.element.querySelector('form'),
'submit',
true,
function (event) {
return saveContent(gadget, event)
.push(function () {
return gadget.redirect({page: "bookmark_list"});
});
}
);
});
});
/*globals window, rJS, Handlebars, RSVP, loopEventListener, console*/
/*jslint indent: 2, nomen: true, maxlen: 80*/
(function (window, RSVP, rJS, Handlebars, loopEventListener) {
"use strict";
function saveContent(gadget, submit_event) {
var i,
doc = gadget.options.doc,
now = new Date();
return new RSVP.Queue()
.push(function () {
return RSVP.all([
gadget.getSetting("portal_type"),
gadget.getSetting("parent_relative_url")
]);
})
.push(function (answer_list) {
doc.portal_type = answer_list[0];
doc.parent_relative_url = answer_list[1];
doc.modification_date = now.toISOString();
for (i = 0; i < submit_event.target.length; i += 1) {
// XXX Should check input type instead
if (submit_event.target[i].name) {
doc[submit_event.target[i].name] = submit_event.target[i].value;
}
}
return gadget.put(gadget.options.jio_key, doc);
});
}
var gadget_klass = rJS(window),
source = gadget_klass.__template_element
.querySelector(".view-web-page-template")
.innerHTML,
template = Handlebars.compile(source);
gadget_klass
.ready(function (g) {
g.props = {};
g.options = null;
return g.getElement()
.push(function (element) {
g.props.element = element;
g.props.deferred = RSVP.defer();
});
})
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod('getSetting', 'getSetting')
.declareAcquiredMethod("get", "jio_get")
.declareAcquiredMethod("translateHtml", "translateHtml")
.declareAcquiredMethod("put", "jio_put")
.declareAcquiredMethod('allDocs', 'jio_allDocs')
.declareAcquiredMethod("redirect", "redirect")
.allowPublicAcquisition('triggerSubmit', function () {
return this.props.element.querySelector('button').click();
})
.declareMethod('triggerSubmit', function () {
return this.props.element.querySelector('button').click();
})
.declareMethod("render", function (options) {
var gadget = this;
gadget.options = options;
gadget.options.doc.title = gadget.options.doc.title || "";
return new RSVP.Queue()
.push(function () {
return gadget.translateHtml(template(options.doc));
})
.push(function (html) {
gadget.props.element.innerHTML = html;
return gadget.updateHeader({
title: options.doc.title + " | Bookmark",
save_action: true
});
})
.push(function () {
return gadget.props.deferred.resolve();
});
})
/////////////////////////////////////////
// Render text content gadget
/////////////////////////////////////////
.declareService(function () {
var gadget = this,
text_gadget = null;
return new RSVP.Queue()
.push(function () {
return gadget.props.deferred.promise;
});
})
/////////////////////////////////////////
// Form submit
/////////////////////////////////////////
.declareService(function () {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return gadget.props.deferred.promise;
})
.push(function () {
return loopEventListener(
gadget.props.element.querySelector('form'),
'submit',
true,
function (event) {
return saveContent(gadget, event)
.push(function () {
return gadget.redirect({page: "bookmark_list"});
});
}
);
});
});
}(window, RSVP, rJS, Handlebars, loopEventListener));
\ No newline at end of file
......@@ -69,6 +69,10 @@
<none/>
</value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/javascript</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_officejs_jio_url_view.js</string> </value>
......@@ -93,21 +97,13 @@
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Jio Bookmark view JS</string> </value>
<value> <string>OfficeJS Bookmark List JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -189,7 +185,7 @@
</tuple>
<state>
<tuple>
<float>1468958553.47</float>
<float>1485781151.76</float>
<string>UTC</string>
</tuple>
</state>
......@@ -234,7 +230,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>955.49845.11611.51046</string> </value>
<value> <string>956.64652.56936.54408</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -252,7 +248,7 @@
</tuple>
<state>
<tuple>
<float>1480959915.54</float>
<float>1485781142.8</float>
<string>UTC</string>
</tuple>
</state>
......@@ -275,7 +271,9 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
......@@ -291,7 +289,7 @@
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
......@@ -309,7 +307,7 @@
</tuple>
<state>
<tuple>
<float>1468958530.09</float>
<float>1485779331.34</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -144,9 +144,7 @@
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -259,7 +257,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>supercedriclen</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -273,7 +271,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>951.29240.27236.54562</string> </value>
<value> <string>956.64450.52709.9386</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -291,7 +289,7 @@
</tuple>
<state>
<tuple>
<float>1464253011.4</float>
<float>1485781082.56</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -140,9 +140,7 @@
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -269,7 +267,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>954.15924.25382.7799</string> </value>
<value> <string>956.64450.52709.9386</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -287,7 +285,7 @@
</tuple>
<state>
<tuple>
<float>1475164165.45</float>
<float>1485781045.04</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -109,9 +109,7 @@
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -232,7 +230,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>954.38520.8745.1109</string> </value>
<value> <string>956.64450.52709.9386</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -250,7 +248,7 @@
</tuple>
<state>
<tuple>
<float>1476433509.51</float>
<float>1485781000.66</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -105,9 +105,7 @@
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -228,7 +226,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>954.15935.39380.57002</string> </value>
<value> <string>956.64450.52709.9386</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -246,7 +244,7 @@
</tuple>
<state>
<tuple>
<float>1475164868.59</float>
<float>1485780967.55</float>
<string>UTC</string>
</tuple>
</state>
......
<!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>Jio Gadget</title>
<!-- renderjs -->
<script src="rsvp.js" type="text/javascript"></script>
<script src="renderjs.js" type="text/javascript"></script>
<script src="jiodev.js" type="text/javascript"></script>
<!-- custom script -->
<script src="gadget_crib_bridge.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
\ No newline at end of file
/*global window, rJS, jIO, FormData, RSVP, MessageChannel */
/*jslint indent: 2, maxerr: 3 */
(function (window, rJS, jIO, MessageChannel, RSVP) {
"use strict";
rJS(window)
.ready(function (gadget) {
gadget.state_parameter_dict = {};
})
.declareMethod('createStorage', function (erp5_url) {
this.state_parameter_dict.jio_storage = jIO.createJIO({
use_remote_post: false,
conflict_handling: 1,
check_local_modification: true,
check_local_creation: true,
check_local_deletion: false,
check_remote_modification: false,
check_remote_creation: false,
check_remote_deletion: false,
type: "replicate",
query: {query: 'content_type: "text%"'},
signature_storage: {
type: "indexeddb",
database: "sync_hash"
},
local_sub_storage: {
type: "uuid",
sub_storage: {
type: "query",
sub_storage: {
type: "indexeddb",
database: window.location.origin +
window.location.pathname.replace(
"gadget_officejs_liberator.html",
""
)
}
}
},
remote_sub_storage: {
type: "mapping",
id: ["equalSubProperty", "url_string"],
property: {
"relative_url": ["ignore"],
"version": ["ignore"]
},
sub_storage: {
type: "erp5",
url: erp5_url + "/hateoas",
default_view_reference: "jio_view"
}
}
});
})
.declareMethod('allDocs', function () {
var storage = this.state_parameter_dict.jio_storage;
return storage.allDocs.apply(storage, arguments);
})
.declareMethod('allAttachments', function () {
var storage = this.state_parameter_dict.jio_storage;
return storage.allAttachments.apply(storage, arguments);
})
.declareMethod('get', function () {
var storage = this.state_parameter_dict.jio_storage;
return storage.get.apply(storage, arguments);
})
.declareMethod('put', function () {
var storage = this.state_parameter_dict.jio_storage;
return storage.put.apply(storage, arguments);
})
.declareMethod('post', function () {
var storage = this.state_parameter_dict.jio_storage;
return storage.post.apply(storage, arguments);
})
.declareMethod('remove', function () {
var storage = this.state_parameter_dict.jio_storage;
return storage.remove.apply(storage, arguments);
})
.declareMethod('getAttachment', function () {
var storage = this.state_parameter_dict.jio_storage;
return storage.getAttachment.apply(storage, arguments);
})
.declareMethod('putAttachment', function () {
var storage = this.state_parameter_dict.jio_storage;
return storage.putAttachment.apply(storage, arguments);
})
.declareMethod('removeAttachment', function () {
var storage = this.state_parameter_dict.jio_storage;
return storage.removeAttachment.apply(storage, arguments);
})
.declareMethod('repair', function () {
var storage = this.state_parameter_dict.jio_storage;
return storage.repair.apply(storage, arguments);
});
}(window, rJS, jIO, MessageChannel, RSVP));
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS Add Bookmark</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="handlebars.js"></script>
<script src="gadget_officejs_page_add_bookmark.js"></script>
</head>
<body>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS Add Bookmark</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="handlebars.js"></script>
<script src="gadget_officejs_page_add_bookmark.js"></script>
</head>
<body>
</body>
</html>
\ No newline at end of file
......@@ -63,14 +63,6 @@
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>contributor/person_module/1</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
......@@ -81,14 +73,6 @@
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>creators</string> </key>
<value>
<tuple>
<string>cedric.le.ninivin</string>
</tuple>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>gadget_officejs_page_add_bookmark.html</string> </value>
......@@ -109,44 +93,17 @@
<none/>
</value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1455284351.46</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Add Bookmark</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -228,7 +185,7 @@
</tuple>
<state>
<tuple>
<float>1471549670.93</float>
<float>1485780873.2</float>
<string>UTC</string>
</tuple>
</state>
......@@ -273,7 +230,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>953.21235.57104.50295</string> </value>
<value> <string>956.64678.36333.6946</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -291,7 +248,7 @@
</tuple>
<state>
<tuple>
<float>1474013662.65</float>
<float>1485780894.37</float>
<string>UTC</string>
</tuple>
</state>
......@@ -314,7 +271,9 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
......@@ -330,7 +289,7 @@
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
......@@ -348,7 +307,7 @@
</tuple>
<state>
<tuple>
<float>1471549602.17</float>
<float>1485779320.09</float>
<string>UTC</string>
</tuple>
</state>
......
/*globals window, RSVP, rJS*/
/*jslint indent: 2, nomen: true, maxlen: 80*/
(function (window, RSVP, rJS) {
"use strict";
var gadget_klass = rJS(window);
gadget_klass
.ready(function (g) {
g.props = {};
return g.getElement()
.push(function (element) {
g.props.element = element;
g.props.deferred = RSVP.defer();
});
})
.declareAcquiredMethod("post", "jio_post")
.declareAcquiredMethod("redirect", "redirect")
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod('getSetting', 'getSetting')
.declareMethod("render", function (options) {
var gadget = this;
gadget.props.options = options;
return new RSVP.Queue()
.push(function () {
return RSVP.all([
gadget.getSetting("portal_type"),
gadget.getSetting("document_title"),
gadget.getSetting("parent_relative_url")
]);
}).push(function (answer_list) {
gadget.props.portal_type = answer_list[0];
gadget.props.document_title = answer_list[1];
gadget.props.parent_relative_url = answer_list[2];
return gadget.updateHeader({
title: "New " + gadget.props.document_title
});
})
.push(function () {
gadget.props.deferred.resolve();
});
})
.declareService(function () {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return gadget.props.deferred.promise;
})
.push(function () {
var doc = {
// XXX Hardcoded
parent_relative_url: gadget.props.parent_relative_url,
portal_type: gadget.props.portal_type
};
return gadget.post(doc);
})
.push(function (data) {
return gadget.redirect({
jio_key: data,
page: "view"
});
});
});
/*globals window, RSVP, rJS*/
/*jslint indent: 2, nomen: true, maxlen: 80*/
(function (window, RSVP, rJS) {
"use strict";
var gadget_klass = rJS(window);
gadget_klass
.ready(function (g) {
g.props = {};
return g.getElement()
.push(function (element) {
g.props.element = element;
g.props.deferred = RSVP.defer();
});
})
.declareAcquiredMethod("post", "jio_post")
.declareAcquiredMethod("redirect", "redirect")
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod('getSetting', 'getSetting')
.declareMethod("render", function (options) {
var gadget = this;
gadget.props.options = options;
return new RSVP.Queue()
.push(function () {
return RSVP.all([
gadget.getSetting("portal_type"),
gadget.getSetting("document_title"),
gadget.getSetting("parent_relative_url")
]);
}).push(function (answer_list) {
gadget.props.portal_type = answer_list[0];
gadget.props.document_title = answer_list[1];
gadget.props.parent_relative_url = answer_list[2];
return gadget.updateHeader({
title: "New " + gadget.props.document_title
});
})
.push(function () {
gadget.props.deferred.resolve();
});
})
.declareService(function () {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return gadget.props.deferred.promise;
})
.push(function () {
var doc = {
// XXX Hardcoded
parent_relative_url: gadget.props.parent_relative_url,
portal_type: gadget.props.portal_type
};
return gadget.post(doc);
})
.push(function (data) {
return gadget.redirect({
jio_key: data,
page: "view"
});
});
});
}(window, RSVP, rJS));
\ No newline at end of file
......@@ -63,14 +63,6 @@
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>contributor/person_module/1</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
......@@ -78,12 +70,8 @@
</value>
</item>
<item>
<key> <string>creators</string> </key>
<value>
<tuple>
<string>cedric.le.ninivin</string>
</tuple>
</value>
<key> <string>content_type</string> </key>
<value> <string>text/javascript</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
......@@ -105,44 +93,17 @@
<none/>
</value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1455284351.49</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Add Bookmark JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -224,7 +185,7 @@
</tuple>
<state>
<tuple>
<float>1471549673.52</float>
<float>1485780820.98</float>
<string>UTC</string>
</tuple>
</state>
......@@ -269,7 +230,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>953.21219.58513.54579</string> </value>
<value> <string>956.64652.42771.37444</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -287,7 +248,7 @@
</tuple>
<state>
<tuple>
<float>1474013855.64</float>
<float>1485780817.22</float>
<string>UTC</string>
</tuple>
</state>
......@@ -310,7 +271,9 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
......@@ -326,7 +289,7 @@
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
......@@ -344,7 +307,7 @@
</tuple>
<state>
<tuple>
<float>1471549600.18</float>
<float>1485779318.49</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -26,4 +26,4 @@
</form>
</body>
</html>
</html>
\ No newline at end of file
......@@ -144,9 +144,7 @@
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -273,7 +271,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>955.22589.46402.6092</string> </value>
<value> <string>956.64677.1467.64529</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -291,7 +289,7 @@
</tuple>
<state>
<tuple>
<float>1479469812.2</float>
<float>1485780792.24</float>
<string>UTC</string>
</tuple>
</state>
......
/*globals window, RSVP, rJS*/
/*jslint indent: 2, nomen: true, maxlen: 80*/
(function (window, RSVP, rJS) {
"use strict";
function getSearchedString() {
var regex = new RegExp("[\\#?&]search=([^&]*)"),
results = regex.exec(window.location.hash);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
function updateSearchUrl(event) {
var gadget = this;
makeOptionDict(gadget)
.push(function() {
return gadget.getSetting("option");
})
.push(function(option) {
return gadget.getUrlFor(option);
})
.push(function(url) {
url = window.location.href + url;
gadget.props.element.getElementsByClassName("search-engine-url")[0].innerHTML = url;
});
}
rJS(window)
.ready(function (g) {
g.props = {};
return g.getElement()
.push(function (element) {
g.props.element = element;
});
})
.declareAcquiredMethod("translate", "translate")
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("redirect", "redirect")
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod('getSetting', 'getSetting')
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
.declareAcquiredMethod("getSetting", "getSetting")
.declareAcquiredMethod("setSetting", "setSetting")
.declareMethod("render", function (options) {
var gadget = this,
portal_type = null,
gadget_option_dict = options,
option = {
auto_redirect: false,
search_engine: ""
};
return new RSVP.Queue()
.push(gadget.updateHeader({title: 'Search in Bookmarks'}))
.push(function () {
return gadget.getSetting("portal_type")
.push(function(result) {
portal_type = result;
});
})
.push(function (){
return gadget.getSetting("option")
.push(function(result) {
if (result) {
option = result;
}
});
})
.push(function () {
var search = gadget_option_dict.search,
query = "";
if (search) {
query = {
query: '(title:"%' + search + '%" OR url_string:"%' + search + '%" OR description:"%' + search + '%") AND portal_type:"' + portal_type + '"',
select_list: ['title', 'url_string', 'description'],
};
return gadget.jio_allDocs(query)
.push(function (query_result) {
var result_list_length = query_result.data.rows.length;
// if 0 result, let's search with a real search engine
if (result_list_length === 0 && option.search_engine !== '') {
window.location.href = option.search_engine + window.encodeURIComponent(search);
}
// if 1 result, we go there
else if (result_list_length === 1 && option.auto_redirect === true) {
window.location.href = query_result.data.rows[0].value.url_string;
}
else {
return gadget.getUrlFor({page: "bookmark_list", search: window.encodeURIComponent(search)})
.push(function (url) {
window.location.href = url;
});
}
});
}
});
})
.onEvent("submit", function () {
var gadget = this;
//var option_parameter = gadget.getSetting("option");
var option_parameter = {
search: window.encodeURIComponent(gadget.props.element.getElementsByTagName('input')[0].value),
page: 'bookmark_dispatcher'
};
return gadget.getUrlFor(option_parameter)
.push(function (url) {
window.location.href = url;
});
});
/*globals window, RSVP, rJS*/
/*jslint indent: 2, nomen: true, maxlen: 80*/
(function (window, RSVP, rJS) {
"use strict";
function getSearchedString() {
var regex = new RegExp("[\\#?&]search=([^&]*)"),
results = regex.exec(window.location.hash);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
function updateSearchUrl(event) {
var gadget = this;
makeOptionDict(gadget)
.push(function() {
return gadget.getSetting("option");
})
.push(function(option) {
return gadget.getUrlFor(option);
})
.push(function(url) {
url = window.location.href + url;
gadget.props.element.getElementsByClassName("search-engine-url")[0].innerHTML = url;
});
}
rJS(window)
.ready(function (g) {
g.props = {};
return g.getElement()
.push(function (element) {
g.props.element = element;
});
})
.declareAcquiredMethod("translate", "translate")
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("redirect", "redirect")
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod('getSetting', 'getSetting')
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
.declareAcquiredMethod("getSetting", "getSetting")
.declareAcquiredMethod("setSetting", "setSetting")
.declareMethod("render", function (options) {
var gadget = this,
portal_type = null,
option = {
auto_redirect: false,
search_engine: ""
};
return new RSVP.Queue()
.push(gadget.updateHeader({title: 'Search in Bookmarks'}))
.push(function () {
return gadget.getSetting("portal_type")
.push(function(result) {
portal_type = result;
});
})
.push(function (){
return gadget.getSetting("option")
.push(function(result) {
if (result) {
option = result;
}
});
})
.push(function () {
var search = window.decodeURIComponent(getSearchedString()),
query = "";
if (search) {
query = {
query: '(title:"%' + search + '%" OR url_string:"%' + search + '%" OR description:"%' + search + '%") AND portal_type:"' + portal_type + '"',
select_list: ['title', 'url_string', 'description'],
};
return gadget.jio_allDocs(query)
.push(function (query_result) {
var result_list_length = query_result.data.rows.length;
// if 0 result, let's search with a real search engine
if (result_list_length === 0 && option.search_engine !== '') {
window.location.href = option.search_engine + window.encodeURIComponent(search);
}
// if 1 result, we go there
else if (result_list_length === 1 && option.auto_redirect === true) {
window.location.href = query_result.data.rows[0].value.url_string;
}
else {
return gadget.getUrlFor({page: "bookmark_list", search: window.encodeURIComponent(search)})
.push(function (url) {
window.location.href = url;
});
}
});
}
});
})
.onEvent("submit", function () {
var gadget = this;
//var option_parameter = gadget.getSetting("option");
var option_parameter = {
search: window.encodeURIComponent(gadget.props.element.getElementsByTagName('input')[0].value),
page: 'bookmark_dispatcher'
};
return gadget.getUrlFor(option_parameter)
.push(function (url) {
window.location.href = url;
});
});
}(window, RSVP, rJS));
\ No newline at end of file
......@@ -63,14 +63,6 @@
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>contributor/person_module/1</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
......@@ -78,12 +70,8 @@
</value>
</item>
<item>
<key> <string>creators</string> </key>
<value>
<tuple>
<string>cedric.le.ninivin</string>
</tuple>
</value>
<key> <string>content_type</string> </key>
<value> <string>text/javascript</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
......@@ -105,44 +93,17 @@
<none/>
</value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1455284352.18</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Bookmark Dispatcher JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -224,7 +185,7 @@
</tuple>
<state>
<tuple>
<float>1478605449.85</float>
<float>1485780752.49</float>
<string>UTC</string>
</tuple>
</state>
......@@ -269,7 +230,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>955.49852.11197.39970</string> </value>
<value> <string>956.64652.37486.36010</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -287,7 +248,7 @@
</tuple>
<state>
<tuple>
<float>1480959188.76</float>
<float>1485780744.68</float>
<string>UTC</string>
</tuple>
</state>
......@@ -310,7 +271,9 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
......@@ -326,7 +289,7 @@
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
......@@ -344,7 +307,7 @@
</tuple>
<state>
<tuple>
<float>1478605233.57</float>
<float>1485779312.96</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -144,9 +144,7 @@
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -273,7 +271,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>955.8037.23694.47974</string> </value>
<value> <string>956.64450.52709.9386</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -291,7 +289,7 @@
</tuple>
<state>
<tuple>
<float>1478536688.15</float>
<float>1485780721.46</float>
<string>UTC</string>
</tuple>
</state>
......
/*globals window, RSVP, rJS*/
/*jslint indent: 2, nomen: true, maxlen: 80*/
(function (window, RSVP, rJS) {
"use strict";
rJS(window)
.ready(function (g) {
g.props = {};
return g.getElement()
.push(function (element) {
g.props.element = element;
});
})
.ready(function (g) {
return new RSVP.Queue()
.push(function () {
return RSVP.all([
g.translate("validated"),
g.translate("invalidated"),
g.translate("Not synced!"),
g.translate("Waiting for approval")
]);
})
.push(function (result_list) {
g.props.translation_dict = {
"validated": result_list[0],
"invalidated": result_list[1],
"Not synced!": result_list[2],
"Waiting for approval": result_list[3]
};
});
})
.declareAcquiredMethod("translate", "translate")
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod('getSetting', 'getSetting')
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
.allowPublicAcquisition("jio_allDocs", function (param_list) {
var gadget = this;
return this.jio_allDocs.apply(this, param_list)
.push(function (result) {
var i,
len;
for (i = 0, len = result.data.total_rows; i < len; i += 1) {
// XXX jIO does not create UUID with module inside
if (result.data.rows[i].id.indexOf("module") === -1) {
result.data.rows[i].value.state =
gadget.props.translation_dict["Not synced!"];
} else {
result.data.rows[i].value.state =
gadget.props.translation_dict[
result.data.rows[i].value.local_state ||
"Waiting for approval"
];
}
}
return result;
});
})
.declareMethod("render", function (options) {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return RSVP.all([
gadget.getSetting("portal_type"),
gadget.getSetting("bookmark_title_plural")
]);
})
.push(function (answer_list) {
gadget.props.portal_type = answer_list[0];
gadget.props.bookmark_title_plural = answer_list[1];
return gadget.getUrlFor({page: "add_bookmark"});
})
.push(function (url) {
return gadget.updateHeader({
title: gadget.props.bookmark_title_plural,
add_url: url
});
})
.push(function () {
return gadget.getDeclaredGadget("listbox");
})
.push(function (listbox) {
return listbox.render({
search_page: 'bookmark_list',
search: options.search,
column_list: [{
select: 'title',
title: 'Title'
}, {
select: 'url_string',
title: 'URL'
}, {
select: 'description',
title: 'Description'
}],
query: {
query: 'portal_type:("' + gadget.props.portal_type + '")',
select_list: ['title', 'url_string', 'description'],
limit: [0, 30],
sort_on: [["modification_date", "descending"]]
}
});
});
});
/*globals window, RSVP, rJS*/
/*jslint indent: 2, nomen: true, maxlen: 80*/
(function (window, RSVP, rJS) {
"use strict";
rJS(window)
.ready(function (g) {
g.props = {};
return g.getElement()
.push(function (element) {
g.props.element = element;
});
})
.ready(function (g) {
return new RSVP.Queue()
.push(function () {
return RSVP.all([
g.translate("validated"),
g.translate("invalidated"),
g.translate("Not synced!"),
g.translate("Waiting for approval")
]);
})
.push(function (result_list) {
g.props.translation_dict = {
"validated": result_list[0],
"invalidated": result_list[1],
"Not synced!": result_list[2],
"Waiting for approval": result_list[3]
};
});
})
.declareAcquiredMethod("translate", "translate")
.declareAcquiredMethod("getUrlFor", "getUrlFor")
.declareAcquiredMethod("updateHeader", "updateHeader")
.declareAcquiredMethod('getSetting', 'getSetting')
.declareAcquiredMethod("jio_allDocs", "jio_allDocs")
.allowPublicAcquisition("jio_allDocs", function (param_list) {
var gadget = this;
return this.jio_allDocs.apply(this, param_list)
.push(function (result) {
var i,
len;
for (i = 0, len = result.data.total_rows; i < len; i += 1) {
// XXX jIO does not create UUID with module inside
if (result.data.rows[i].id.indexOf("module") === -1) {
result.data.rows[i].value.state =
gadget.props.translation_dict["Not synced!"];
} else {
result.data.rows[i].value.state =
gadget.props.translation_dict[
result.data.rows[i].value.local_state ||
"Waiting for approval"
];
}
}
return result;
});
})
.declareMethod("render", function (options) {
var gadget = this;
return new RSVP.Queue()
.push(function () {
return RSVP.all([
gadget.getSetting("portal_type"),
gadget.getSetting("document_title_plural")
]);
})
.push(function (answer_list) {
gadget.props.portal_type = answer_list[0];
gadget.props.bookmark_title_plural = answer_list[1];
return gadget.getUrlFor({page: "add_bookmark"});
})
.push(function (url) {
return gadget.updateHeader({
title: gadget.props.bookmark_title_plural,
add_url: url
});
})
.push(function () {
return gadget.getDeclaredGadget("listbox");
})
.push(function (listbox) {
return listbox.render({
search_page: 'bookmark_list',
search: options.search,
column_list: [{
select: 'title',
title: 'Title'
}, {
select: 'url_string',
title: 'URL'
}, {
select: 'description',
title: 'Description'
}],
query: {
query: 'portal_type:("' + gadget.props.portal_type + '")',
select_list: ['title', 'url_string', 'description'],
limit: [0, 30],
sort_on: [["modification_date", "descending"]]
}
});
});
});
}(window, RSVP, rJS));
\ No newline at end of file
......@@ -63,14 +63,6 @@
</tuple>
</value>
</item>
<item>
<key> <string>categories</string> </key>
<value>
<tuple>
<string>contributor/person_module/1</string>
</tuple>
</value>
</item>
<item>
<key> <string>content_md5</string> </key>
<value>
......@@ -78,12 +70,8 @@
</value>
</item>
<item>
<key> <string>creators</string> </key>
<value>
<tuple>
<string>cedric.le.ninivin</string>
</tuple>
</value>
<key> <string>content_type</string> </key>
<value> <string>text/javascript</string> </value>
</item>
<item>
<key> <string>default_reference</string> </key>
......@@ -105,44 +93,17 @@
<none/>
</value>
</item>
<item>
<key> <string>modification_date</string> </key>
<value>
<object>
<klass>
<global name="DateTime" module="DateTime.DateTime"/>
</klass>
<tuple>
<none/>
</tuple>
<state>
<tuple>
<float>1455284352.18</float>
<string>UTC</string>
</tuple>
</state>
</object>
</value>
</item>
<item>
<key> <string>portal_type</string> </key>
<value> <string>Web Script</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS Bookmark List JS</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -224,7 +185,7 @@
</tuple>
<state>
<tuple>
<float>1468955568.76</float>
<float>1485780679.17</float>
<string>UTC</string>
</tuple>
</state>
......@@ -269,7 +230,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>953.62286.195.51114</string> </value>
<value> <string>956.64652.30281.58163</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -287,7 +248,7 @@
</tuple>
<state>
<tuple>
<float>1478609077.97</float>
<float>1485780674.63</float>
<string>UTC</string>
</tuple>
</state>
......@@ -310,7 +271,9 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
......@@ -326,7 +289,7 @@
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
......@@ -344,7 +307,7 @@
</tuple>
<state>
<tuple>
<float>1468955459.16</float>
<float>1485779306.52</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -109,9 +109,7 @@
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -238,7 +236,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>955.26757.64302.42649</string> </value>
<value> <string>956.64450.52709.9386</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -256,7 +254,7 @@
</tuple>
<state>
<tuple>
<float>1483369683.96</float>
<float>1485780641.43</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -109,9 +109,7 @@
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -238,7 +236,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>955.61034.43590.15752</string> </value>
<value> <string>956.64450.52709.9386</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -256,7 +254,7 @@
</tuple>
<state>
<tuple>
<float>1483369693.2</float>
<float>1485780623.37</float>
<string>UTC</string>
</tuple>
</state>
......
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS jIO DAV Configurator Page</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="gadget_officejs_page_jio_dav_configurator.js"></script>
</head>
<body>
<article class="ui-content ui-body-c">
<section class="ui-content-header-plain">
<h3 class="ui-content-title ui-body-c">
<span class="ui-icon ui-icon-custom ui-icon-database">&nbsp;</span>
Your WebDAV Connection parameters
</h3>
</section>
<section class="ui-body-c ui-content-section">
<form class="dav-configuration-form">
<div class="ui-form">
<div class="ui-field-contain">
<label data-i18n="Connection URL:">Connection URL:</label>
<input type="url" name="dav_url" required value=""/>
</div>
<div class="ui-field-contain">
<label data-i18n="Username:">Username:</label>
<input type="text" name="dav_username" value=""/>
</div>
<div class="ui-field-contain">
<label data-i18n="Password:">Password:</label>
<input type="password" name="dav_password" value=""/>
</div>
</div>
<div class="select-storage ui-controlgroup ui-controlgroup-horizontal">
<div class="ui-grid-b ui-responsive">
<div class="ui-block-a"></div>
<div class="ui-block-b"></div>
<div class="ui-block-c">
<button type="submit" data-i18n="Connect" class="ui-btn-btn-right">Connect</button>
</div>
</div>
</div>
</form>
</section>
</article>
<article class="ui-content ui-body-c document-access">
<section class="ui-content-header-plain">
<h3 class="ui-content-title ui-body-c">
<span class="ui-icon ui-icon-custom ui-icon-file-text-o">&nbsp;</span>
Your Documents
</h3>
</section>
<section class="ui-body-c ui-content-section">
<p style="color: red">Continue by <b>synchronizing</b> with your remote storage or <b>accessing</b> your documents</p>
<div class="ui-controlgroup ui-controlgroup-horizontal">
<div class="ui-grid-a ui-responsive">
<div class="ui-block-a">
<a class="ui-btn" href="#page=sync" data-i18n="Synchronize">Synchronize</a>
</div>
<div class="ui-block-b">
<a class="ui-btn" href="#page=document_list" data-i18n="Go to document List">Access document List</a>
</div>
</div>
</div>
</section>
</article>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS jIO DAV Configurator Page</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="gadget_officejs_page_jio_dav_configurator.js"></script>
</head>
<body>
<article class="ui-content ui-body-c">
<section class="ui-content-header-plain">
<h3 class="ui-content-title ui-body-c">
<span class="ui-icon ui-icon-custom ui-icon-database">&nbsp;</span>
Your WebDAV Connection parameters
</h3>
</section>
<section class="ui-body-c ui-content-section">
<form class="dav-configuration-form">
<div class="ui-form">
<div class="ui-field-contain">
<label data-i18n="Connection URL:">Connection URL:</label>
<input type="url" name="dav_url" required value=""/>
</div>
<div class="ui-field-contain">
<label data-i18n="Username:">Username:</label>
<input type="text" name="dav_username" value=""/>
</div>
<div class="ui-field-contain">
<label data-i18n="Password:">Password:</label>
<input type="password" name="dav_password" value=""/>
</div>
</div>
<div class="select-storage ui-controlgroup ui-controlgroup-horizontal">
<div class="ui-grid-b ui-responsive">
<div class="ui-block-a"></div>
<div class="ui-block-b"></div>
<div class="ui-block-c">
<button type="submit" data-i18n="Connect" class="ui-btn-btn-right">Connect</button>
</div>
</div>
</div>
</form>
</section>
</article>
<article class="ui-content ui-body-c document-access">
<section class="ui-content-header-plain">
<h3 class="ui-content-title ui-body-c">
<span class="ui-icon ui-icon-custom ui-icon-file-text-o">&nbsp;</span>
Your Documents
</h3>
</section>
<section class="ui-body-c ui-content-section">
<p style="color: red">Continue by <b>synchronizing</b> with your remote storage or <b>accessing</b> your documents</p>
<div class="ui-controlgroup ui-controlgroup-horizontal">
<div class="ui-grid-a ui-responsive">
<div class="ui-block-a">
<a class="ui-btn" href="#page=sync&auto_repair=true" data-i18n="Synchronize">Synchronize</a>
</div>
<div class="ui-block-b">
<a class="ui-btn" href="#page=document_list" data-i18n="Go to document List">Access document List</a>
</div>
</div>
</div>
</section>
</article>
<div class="global_setting_gadget" style="display: none;"></div>
</body>
</html>
\ No newline at end of file
......@@ -97,21 +97,13 @@
<key> <string>portal_type</string> </key>
<value> <string>Web Page</string> </value>
</item>
<item>
<key> <string>short_title</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>OfficeJS jIO DAV Configurator Page</string> </value>
</item>
<item>
<key> <string>version</string> </key>
<value>
<none/>
</value>
<value> <string>001</string> </value>
</item>
<item>
<key> <string>workflow_history</string> </key>
......@@ -171,7 +163,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -193,7 +185,7 @@
</tuple>
<state>
<tuple>
<float>1442831613.46</float>
<float>1485780580.2</float>
<string>UTC</string>
</tuple>
</state>
......@@ -238,7 +230,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>946.59102.61985.50653</string> </value>
<value> <string>956.64652.20228.58760</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -256,7 +248,7 @@
</tuple>
<state>
<tuple>
<float>1446741062.96</float>
<float>1485780575.5</float>
<string>UTC</string>
</tuple>
</state>
......@@ -279,11 +271,13 @@
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>detect_converted_file</string> </value>
<value>
<none/>
</value>
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>cedric.le.ninivin</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -295,7 +289,7 @@
</item>
<item>
<key> <string>external_processing_state</string> </key>
<value> <string>converted</string> </value>
<value> <string>empty</string> </value>
</item>
<item>
<key> <string>serial</string> </key>
......@@ -313,7 +307,7 @@
</tuple>
<state>
<tuple>
<float>1442830550.27</float>
<float>1485779297.53</float>
<string>UTC</string>
</tuple>
</state>
......
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS jIO Dropbox Configurator Page</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="gadget_officejs_page_jio_dropbox_configurator.js"></script>
</head>
<body>
<article class="ui-content ui-body-c">
<section class="ui-content-header-plain">
<h3 class="ui-content-title ui-body-c">
<span class="ui-icon ui-icon-custom ui-icon-database">&nbsp;</span>
Your Dropbox Connection parameters
</h3>
</section>
<section class="ui-content-header-plain">
<p>Connecting to Dropbox</p>
</section>
</article>
<article class="ui-content ui-body-c document-access">
<section class="ui-content-header-plain">
<h3 class="ui-content-title ui-body-c">
<span class="ui-icon ui-icon-custom ui-icon-file-text-o">&nbsp;</span>
Your Documents
</h3>
</section>
<section class="ui-body-c ui-content-section">
<p style="color: red">Continue by <b>synchronizing</b> with your remote storage or <b>accessing</b> your documents</p>
<div class="ui-controlgroup ui-controlgroup-horizontal">
<div class="ui-grid-a ui-responsive">
<div class="ui-block-a">
<a class="ui-btn" href="#page=sync" data-i18n="Synchronize">Synchronize</a>
</div>
<div class="ui-block-b">
<a class="ui-btn" href="#page=document_list" data-i18n="Go to document List">Access document List</a>
</div>
</div>
</div>
</section>
</article>
<div class="global_setting_gadget" style="display: none;"></div>
</body>
</html>
\ No newline at end of file
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS Logout Page</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="handlebars.js"></script>
<script src="gadget_global.js" ></script>
<script id="page-template" type="text/x-handlebars-template">
<div class="ui-grid-b ui-responsive">
<div class="ui-block-a"></div>
<div class="ui-block-b">
<form class="logout-form">
<input data-inline="true" type="submit" data-i18n="[value]Confirm" value="Confirm" data-theme="b">
</form>
</div>
<div class="ui-block-c"></div>
</div>
</script>
<script src="gadget_officejs_page_logout.js"></script>
</head>
<body>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>OfficeJS Logout Page</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="handlebars.js"></script>
<script src="gadget_global.js" ></script>
<script id="page-template" type="text/x-handlebars-template">
<div class="ui-grid-b ui-responsive">
<div class="ui-block-a"></div>
<div class="ui-block-b">
<form class="logout-form">
<input data-inline="true" type="submit" data-i18n="[value]Confirm" value="Confirm" data-theme="b">
</form>
</div>
<div class="ui-block-c"></div>
</div>
</script>
<script src="gadget_officejs_page_logout.js"></script>
</head>
<body>
</body>
</html>
\ 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