...
 
Commits (39)
......@@ -88,6 +88,7 @@
<string>my_source_function</string>
<string>my_source_funding</string>
<string>my_source_project_title</string>
<string>my_source_payment_request_title</string>
<string>my_source_payment</string>
<string>my_payment_mode</string>
<string>my_aggregate_title_list</string>
......
......@@ -88,6 +88,7 @@
<string>my_destination_function</string>
<string>my_destination_funding</string>
<string>my_destination_project_title</string>
<string>my_destination_payment_request_title</string>
<string>my_destination_payment</string>
<string>my_payment_mode</string>
<string>my_aggregate_title_list</string>
......
......@@ -80,6 +80,7 @@
<string>my_destination_project_title</string>
<string>my_destination_reference</string>
<string>my_destination_carrier_title</string>
<string>my_destination_payment_request_title</string>
</list>
</value>
</item>
......@@ -95,6 +96,7 @@
<string>my_source_project_title</string>
<string>my_source_reference</string>
<string>my_source_carrier_title</string>
<string>my_source_payment_request_title</string>
</list>
</value>
</item>
......
......@@ -80,6 +80,7 @@
<string>my_source_project_title</string>
<string>my_source_reference</string>
<string>my_source_carrier_title</string>
<string>my_source_payment_request_title</string>
</list>
</value>
</item>
......@@ -95,6 +96,7 @@
<string>my_destination_project_title</string>
<string>my_destination_reference</string>
<string>my_destination_carrier_title</string>
<string>my_destination_payment_request_title</string>
</list>
</value>
</item>
......
......@@ -48,6 +48,13 @@
if (site) {
return gadget.redirect({ command: "row", url: site});
}
// User entered wrong password ?
// Notify
return gadget.notifySubmitted({message: 'Unauthorized storage access', status: 'error'})
.push(function () {
return gadget.redirect({command: 'display',
options: {page: 'ojs_configurator'}});
});
}
throw error;
});
......@@ -60,6 +67,7 @@
gadget.state_parameter_dict = {};
})
.declareAcquiredMethod("notifySubmitted", "notifySubmitted")
.declareAcquiredMethod("redirect", "redirect")
.declareAcquiredMethod("getSetting", "getSetting")
.declareAcquiredMethod("setSetting", "setSetting")
......
......@@ -220,7 +220,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>vincent</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -234,7 +234,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>962.36985.29761.10359</string> </value>
<value> <string>973.43582.44368.54391</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -252,7 +252,7 @@
</tuple>
<state>
<tuple>
<float>1507216488.77</float>
<float>1550152243.11</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -13,7 +13,16 @@
})
.push(function (setting) {
var configuration = {},
attachment_synchro = setting[1] !== "";
attachment_synchro = setting[1] !== "",
linshare_json = {
type: "linshare",
url: options.url
};
if (options.username || options.password) {
linshare_json.access_token = window.btoa(
options.username + ':' + options.password
);
}
configuration = {
type: "replicate",
query: {
......@@ -69,13 +78,7 @@
},
sub_storage: {
type: "query",
sub_storage: {
type: "linshare",
url: options.url,
access_token: window.btoa(
options.username + ':' + options.password
)
}
sub_storage: linshare_json
}
}
}
......@@ -111,7 +114,8 @@
var gadget = this;
if (options.url) {
return gadget.changeState({
url: options.url || ""
url: options.url || "",
username: options.username || ""
});
}
return gadget.getSetting('linshare_storage', "")
......@@ -160,7 +164,7 @@
"my_username": {
"description": "",
"title": "Username",
"default": "",
"default": gadget.state.username || "",
"css_class": "",
"required": 1,
"editable": 1,
......
......@@ -236,7 +236,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>973.24661.29279.57753</string> </value>
<value> <string>973.43371.54750.44595</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -254,7 +254,7 @@
</tuple>
<state>
<tuple>
<float>1549019475.4</float>
<float>1550139619.39</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -22,7 +22,7 @@
</div>
</div>
<div class="panel_img">
<img class="ui-title" alt="OfficeJS" src="officejs_logo.png?format=png"/>
<img class="ui-title" alt="OfficeJS" src="gadget_erp5_panel.png?format=png"/>
</div>
</div>
</script>
......
......@@ -261,7 +261,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>969.52327.64978.40960</string> </value>
<value> <string>973.40404.23731.64460</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -279,7 +279,7 @@
</tuple>
<state>
<tuple>
<float>1535121191.77</float>
<float>1549966400.8</float>
<string>UTC</string>
</tuple>
</state>
......
erp5_officejs
erp5_web_renderjs_ui
erp5_software_pdm
\ No newline at end of file
......@@ -166,11 +166,7 @@ appstore/dev/index.en.html\n
appstore/dev/index.html\n
appstore/documentation/brainstorming_page_json.txt\n
appstore/documentation/documentation.txt\n
appstore/img/appjabbericon.svg\n
appstore/img/erp5-logo.png\n
appstore/img/flags.png\n
appstore/img/slapos.png\n
appstore/img/vifib-logo.png\n
appstore/\n
appstore/js/bin.js\n
appstore/js/erp5_loader.js\n
......@@ -340,7 +336,7 @@ NETWORK:\n
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>973.19272.23311.6092</string> </value>
<value> <string>973.40487.50916.35840</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -358,7 +354,7 @@ NETWORK:\n
</tuple>
<state>
<tuple>
<float>1548694049.98</float>
<float>1549966616.29</float>
<string>UTC</string>
</tuple>
</state>
......
"""Save the message id of the relative document"""
if document_relative_url:
document = context.getPortalObject().restrictedTraverse(document_relative_url)
document.edit(destination_reference=message_id_list[0],
gateway = gateway_relative_url)
document.edit(destination_reference=message_id,
gateway=gateway_relative_url)
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>message_id_list, document_relative_url=None, gateway_relative_url=None, **kw</string> </value>
<value> <string>message_id, document_relative_url=None, gateway_relative_url=None, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -4,42 +4,29 @@
"""
#Get recipients
if not to_url:
recipient_phone_list = [person.getDefaultMobileTelephoneValue() for person in context.getDestinationValueList()]
if None in recipient_phone_list:
raise ValueError("All recipients should have a default mobile phone")
recipient_phone_list = [
person.getDefaultMobileTelephoneValue() for person in context.getDestinationValueList()]
if None in recipient_phone_list:
raise ValueError("All recipients should have a default mobile phone")
to_url = [phone.asURL() for phone in recipient_phone_list]
if None in to_url:
raise ValueError("All recipients should have a valid default mobile phone number")
to_url = [phone.asURL() for phone in recipient_phone_list]
if None in to_url:
raise ValueError("All recipients should have a valid default mobile phone number")
#Get sender
if not from_url:
if context.getSourceValue():
sender_phone = context.getSourceValue().getDefaultMobileTelephoneValue()
if not sender_phone:
raise ValueError("The sender(%s) should have a default mobile phone" % context.getSourceValue())
#We use title of sender
from_title = sender_phone.getTitle()
from_url = sender_phone.asURL()
if not body:
body = context.getTextContent()
body = context.getTextContent()
if not context.getStartDate():
context.setStartDate(DateTime())
context.portal_sms.activate(
activity="SQLQueue",
# We do not retry these activities not to send SMS multiple times
max_retry=0,
conflict_retry=False,
).send(
text=body,
recipient=to_url,
sender=from_url,
sender_title=from_title,
message_type="text",
test=download,
document_relative_url=context.getRelativeUrl(),
**kw)
for recipient in context.getDestinationList():
context.portal_sms.activate(
activity="SQLQueue",
# We do not retry these activities not to send SMS multiple times
max_retry=0,
conflict_retry=False,
).send(
text=body,
sender=context.getSource(),
recipient=recipient,
document_relative_url=context.getRelativeUrl(),
)
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>from_url=None, from_title=None, to_url=None, reply_url=None, subject=None, body=None, attachment_format=None, attachment_list=None,download=False,**kw</string> </value>
<value> <string>from_url=None, from_title=None, to_url=None, reply_url=None, subject=None, body=None, attachment_format=None, attachment_list=None, download=False, **kw</string> </value>
</item>
<item>
<key> <string>_proxy_roles</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="SMS Tool" module="erp5.portal_type"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Access_Transient_Objects_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Author</string>
<string>Associate</string>
<string>Assignee</string>
<string>Manager</string>
<string>Auditor</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Access_contents_information_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Author</string>
<string>Associate</string>
<string>Assignee</string>
<string>Manager</string>
<string>Auditor</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Access_future_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Access_session_data_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Author</string>
<string>Associate</string>
<string>Assignee</string>
<string>Manager</string>
<string>Auditor</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Author</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Add_portal_folders_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Author</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Change_local_roles_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Copy_or_Move_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Author</string>
<string>Associate</string>
<string>Assignee</string>
<string>Manager</string>
<string>Auditor</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Delete_objects_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_FTP_access_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_List_folder_contents_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Author</string>
<string>Associate</string>
<string>Assignee</string>
<string>Manager</string>
<string>Auditor</string>
</tuple>
</value>
</item>
<item>
<key> <string>_List_portal_members_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Manage_properties_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Modify_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Reply_to_item_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Review_portal_content_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Search_ZCatalog_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Set_own_properties_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Undo_changes_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_Use_mailhost_services_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_History_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Author</string>
<string>Associate</string>
<string>Assignee</string>
<string>Manager</string>
<string>Auditor</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_Permission</string> </key>
<value>
<tuple>
<string>Assignor</string>
<string>Associate</string>
<string>Assignee</string>
<string>Manager</string>
<string>Auditor</string>
</tuple>
</value>
</item>
<item>
<key> <string>_View_management_screens_Permission</string> </key>
<value>
<tuple>
<string>Manager</string>
</tuple>
</value>
</item>
<item>
<key> <string>_count</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>_mt_index</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>_tree</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>portal_sms</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Length" module="BTrees.Length"/>
</pickle>
<pickle> <int>0</int> </pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="OOBTree" module="BTrees.OOBTree"/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
portal_sms
\ No newline at end of file
......@@ -148,6 +148,8 @@ gadget_hr_translation_data.js\n
gadget_officejs_widget_listbox.js\n
erp5_launcher.js\n
erp5_launcher.html\n
gadget_officejs_hr_web_manifest.json\n
hr_logo.svg\n
\n
gadget_officejs_page_expense_report.html\n
gadget_officejs_page_expense_report.js\n
......@@ -380,7 +382,7 @@ NETWORK:\n
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>966.59986.993.48708</string> </value>
<value> <string>973.40447.29564.60893</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -398,8 +400,8 @@ NETWORK:\n
</tuple>
<state>
<tuple>
<float>1523958492.04</float>
<string>GMT+2</string>
<float>1549964903.16</float>
<string>UTC</string>
</tuple>
</state>
</object>
......
......@@ -10,6 +10,7 @@
<link href="font-awesome/font-awesome.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="jquerymobile.css">
<link rel="stylesheet" href="gadget_erp5.css">
${webapp_manifest_full_link_tag}
<script data-renderjs-configuration="application_title" type="text/x-renderjs-configuration">${application_title}</script>
<script data-renderjs-configuration="panel_gadget" type="text/x-renderjs-configuration">${panel_gadget}</script>
......
......@@ -222,7 +222,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>
......@@ -236,7 +236,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>962.4234.59641.41216</string> </value>
<value> <string>973.40447.29564.60893</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -254,7 +254,7 @@
</tuple>
<state>
<tuple>
<float>1505315239.43</float>
<float>1549964847.35</float>
<string>UTC</string>
</tuple>
</state>
......
{
"short_name": "HR",
"name": "OfficeJS HR",
"description": "Business travel, Expense remboursement, Leave request management",
"icons": [{
"src": "hr_logo.svg",
"sizes": "any",
"type": "image/svg"
}],
"start_url": "../../",
"display": "standalone"
}
\ No newline at end of file
......@@ -299,6 +299,16 @@
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>configuration_webapp_manifest_url</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
......@@ -385,6 +395,10 @@
<key> <string>configuration_view_action_category</string> </key>
<value> <string>object_view</string> </value>
</item>
<item>
<key> <string>configuration_webapp_manifest_url</string> </key>
<value> <string>gadget_officejs_hr_web_manifest.json</string> </value>
</item>
<item>
<key> <string>configuration_x_frame_options</string> </key>
<value> <string>SAMEORIGIN</string> </value>
......@@ -624,7 +638,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>966.51303.25888.32000</string> </value>
<value> <string>973.40447.29564.60893</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -642,8 +656,8 @@
</tuple>
<state>
<tuple>
<float>1523518073.81</float>
<string>GMT+2</string>
<float>1549964409.02</float>
<string>UTC</string>
</tuple>
</state>
</object>
......
......@@ -13111,7 +13111,12 @@ return new Parser;
_linshare_uuid: entry_list[i].uuid
};
if (options.include_docs === true) {
entry.doc = JSON.parse(entry_list[i].metaData) || {};
try {
entry.doc = JSON.parse(entry_list[i].metaData) || {};
} catch (error) {
// Metadata are not always JSON
entry.doc = {};
}
}
result_list.push(entry);
......
......@@ -234,7 +234,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>973.4826.12688.30276</string> </value>
<value> <string>973.43645.19782.57207</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -252,7 +252,7 @@
</tuple>
<state>
<tuple>
<float>1548090618.17</float>
<float>1550160394.98</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -9,6 +9,9 @@ file_content = file.getData()
# The vanilla HTML is wanted
response.setBase(None)
# Allow any external app to download the source code
response.setHeader("Access-Control-Allow-Origin", "*")
if REQUEST.getHeader('If-Modified-Since', '') == file.getModificationDate().rfc822():
response.setStatus(304)
return ""
......
......@@ -6,6 +6,9 @@ if response is None:
# The vanilla HTML is wanted
response.setBase(None)
# Allow any external app to download the source code
response.setHeader("Access-Control-Allow-Origin", "*")
image = context
if REQUEST.getHeader('If-Modified-Since', '') == image.getModificationDate().rfc822():
response.setStatus(304)
......
......@@ -6,6 +6,9 @@ if response is None:
# The vanilla HTML is wanted
response.setBase(None)
# Allow any external app to download the source code
response.setHeader("Access-Control-Allow-Origin", "*")
web_page = context
web_section = REQUEST.get("current_web_section")
if web_section is None:
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -50,7 +50,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
<th align="left" valign="top">Named Parameters</th>
<th align="left" valign="top">Processing Node</th>
<th align="left" valign="top">Retry</th>
<th align="left" valign="top">Processing</th>
<th align="left" valign="top">Call Traceback</th>
</tr>
<dtml-in expr="getMessageList()">
......@@ -84,11 +83,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
</td>
<td align="left" valign="top"><dtml-var processing_node></td>
<td align="left" valign="top"><dtml-var retry></td>
<td align="left" valign="top">
<dtml-if expr="processing is not None">
<dtml-var processing>
</dtml-if>
</td>
<td align="left" valign="top">
<dtml-if expr="call_traceback is not None">
<pre><dtml-var call_traceback></pre>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
return 'ActivityTool_manageDelete?uid=%s&activity=%s' % (context.uid, context.activity)
return 'manageDelete?message_uid_list:int:list=%s&activity=%s' % (context.uid, context.activity)
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.