Commit 0b4d3b46 authored by Roque's avatar Roque

erp5_web_project_ui: new front page gadget (WIP)

parent 84bd681e
...@@ -111,12 +111,14 @@ CACHE:\n ...@@ -111,12 +111,14 @@ CACHE:\n
\n \n
gadget_erp5_page_project_controller.html\n gadget_erp5_page_project_controller.html\n
gadget_erp5_page_project_controller.js\n gadget_erp5_page_project_controller.js\n
gadget_project_info.html\n
gadget_project_info.js\n
gadget_erp5_page_project_redirector.html\n gadget_erp5_page_project_redirector.html\n
gadget_erp5_page_project_redirector.js\n gadget_erp5_page_project_redirector.js\n
gadget_erp5_project_panel.html\n gadget_erp5_project_panel.html\n
gadget_erp5_project_panel.js\n gadget_erp5_project_panel.js\n
gadget_front_page_info.html\n
gadget_front_page_info.js\n
gadget_project_info.html\n
gadget_project_info.js\n
\n \n
favicon.ico\n favicon.ico\n
font-awesome/font-awesome-webfont.eot\n font-awesome/font-awesome-webfont.eot\n
...@@ -405,7 +407,7 @@ NETWORK:\n ...@@ -405,7 +407,7 @@ NETWORK:\n
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>979.50747.65222.58094</string> </value> <value> <string>981.52234.40735.41557</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -423,7 +425,7 @@ NETWORK:\n ...@@ -423,7 +425,7 @@ NETWORK:\n
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1577216049.89</float> <float>1581523847.97</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -62,6 +62,7 @@ ...@@ -62,6 +62,7 @@
<key> <string>bottom</string> </key> <key> <string>bottom</string> </key>
<value> <value>
<list> <list>
<string>my_front_page_gadget_field</string>
<string>listbox</string> <string>listbox</string>
</list> </list>
</value> </value>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="GadgetField" module="Products.ERP5Form.GadgetField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>my_front_page_gadget_field</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>
<item>
<key> <string>no_validator</string> </key>
<value> <string>Does not support this operation.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>data_url</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>gadget_url</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>js_sandbox</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>validator_field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>validator_form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>data_url</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>gadget_url</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>js_sandbox</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>validator_field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>validator_form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>alternate_name</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>data_url</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>default</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>enabled</string> </key>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>external_validator</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>extra</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>gadget_url</string> </key>
<value> <string>gadget_front_page_info.html</string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>js_sandbox</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>renderjs_extra</string> </key>
<value>
<list/>
</value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>my_info_gadget_field</string> </value>
</item>
<item>
<key> <string>validator_field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>validator_form_id</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Project front page gadget</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="gadget_front_page_info.js"></script>
<link rel="stylesheet" type="text/css" href="gadget_project_info.css">
</head>
<body>
<!-- FAKE CONTENT TO TEST STYLES -->
<div class="front-project-list">
<ul id="js-project-list">
</ul>
</div>
</body>
</html>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>gadget_front_page_info.html</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>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="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>gadget_front_page_info.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
#generate-rss { /* FRONT PAGE */
padding: 5.5pt;
margin-right: 12pt; div[data-gadget-url$="gadget_front_page_info.html"] .front-project-list {
background-color: #FF6600; margin-top: 10px;
border-color: #FF6600;
color: #FFFFFF;
border-radius: 0.325em;
border-width: 0.5px;
border-style: solid;
min-width: 6em;
line-height: 1.5;
display: none;
text-align: center;
width: fit-content;
} }
.restore-button { div[data-gadget-url$="gadget_front_page_info.html"] .front-project-list .project-box {
padding: 6pt; margin-bottom: 10px;
margin-right: 12pt;
background-color: #FF6600;
color: #FFFFFF;
border-radius: 0.325em;
border-width: 0.5px;
border-style: solid; border-style: solid;
min-width: 8em; border-width: 1px;
line-height: 1.5; border-radius: 5px;
padding: 5px;
padding: 5px;
padding-left: 15px;
} }
#wrap1 iframe { div[data-gadget-url$="gadget_front_page_info.html"] a {
height: 100%; color: #267B87;
text-decoration: none;
} }
#wrap2 iframe { div[data-gadget-url$="gadget_front_page_info.html"] .front-project-list .project-box .project-info {
height: 100%; display: inline-flex;
} }
.gadget-content .ui-field-contain .graph-spinner { div[data-gadget-url$="gadget_front_page_info.html"] .front-project-list .project-box .project-info .left {
position: relative; width: 35%;
top: 100px;
width: 120px;
} }
.gadget-content .ui-field-contain .count-spinner { div[data-gadget-url$="gadget_front_page_info.html"] .front-project-list .project-box .project-line {
top: 20px; margin-bottom: 5px;
width: 120px; font-family: "Roboto", Arial, sans-serif;
font-size: 1.25em;
line-height: 1.58em;
letter-spacing: -.003em;
} }
div[data-gadget-url$="gadget_front_page_info.html"] .front-project-list .project-box .project-title {
color: #19535F;
font-weight: normal;
font-size: 24px;
line-height: 33px;
font-weight: bold;
margin-bottom: 5px;
}
div[data-gadget-url$="gadget_front_page_info.html"] .front-project-list .project-box .status {
padding-left: 21px;
}
div[data-gadget-url$="gadget_front_page_info.html"] .front-project-list .project-box span {
margin-right: 5px;
}
div[data-gadget-url$="gadget_front_page_info.html"] .front-project-list .project-box .status.orange {
background: #f0ad4e !important;
}
div[data-gadget-url$="gadget_front_page_info.html"] .front-project-list .project-box .status.red {
background: #de1e00 !important;
}
div[data-gadget-url$="gadget_front_page_info.html"] .front-project-list .project-box .status.green {
background: #00b80c !important;
}
/* PROJECT PAGE */
.gadget-content .ui-field-contain .bottom .first-line-buttons { .gadget-content .ui-field-contain .bottom .first-line-buttons {
-webkit-appearance: none; -webkit-appearance: none;
margin-top: 0; margin-top: 0;
...@@ -123,4 +145,38 @@ input[type="submit"] { ...@@ -123,4 +145,38 @@ input[type="submit"] {
.worklist-title { .worklist-title {
color: #777777; color: #777777;
margin-top: 10px; margin-top: 10px;
}
/* PROJECT HOME PAGE */
body.cke_editable h1 {
margin-top: 1.5em;
font-family: "Roboto", Arial, sans-serif;
color: #19535F;
font-size: 2em;
margin: 0.67em 0;
}
body.cke_editable h2 {
font-family: "Roboto", Arial, sans-serif;
font-weight: normal;
font-size: 25px;
line-height: 33px;
color: #19535F;
}
body.cke_editable p, body.cke_editable li, body.cke_editable span {
font-family: 'Heuristica', 'Helvetica', Times, serif;
}
body.cke_editable ul li, body.cke_editable p {
font-size: 1.25em;
line-height: 1.58em;
letter-spacing: -.003em;
}
body.cke_editable a {
color: #267B87;
text-decoration: none;
} }
\ No newline at end of file
...@@ -14,13 +14,15 @@ ...@@ -14,13 +14,15 @@
function parseHTMLLinks(html, url) { function parseHTMLLinks(html, url) {
var parser = new DOMParser(), i, var parser = new DOMParser(), i,
//TODO create head and link html elements and prepend to doc instead of using text
styles_header = '<head><link rel="stylesheet" type="text/css" href="gadget_project_info.css"></head>',
oSerializer = new XMLSerializer(), oSerializer = new XMLSerializer(),
doc = parser.parseFromString(html, "text/html"), doc = parser.parseFromString(html, "text/html"),
link_list = doc.getElementsByTagName("a"); link_list = doc.getElementsByTagName("a");
for (i = 0; i < link_list.length; i += 1) { for (i = 0; i < link_list.length; i += 1) {
link_list[i].setAttribute('href', addRedirectionToReference(link_list[i].getAttribute('href'), url)); link_list[i].setAttribute('href', addRedirectionToReference(link_list[i].getAttribute('href'), url));
} }
return oSerializer.serializeToString(doc); return styles_header + oSerializer.serializeToString(doc);
} }
function enableLink(link_element, url) { function enableLink(link_element, url) {
...@@ -220,7 +222,7 @@ ...@@ -220,7 +222,7 @@
gadget.getSetting("hateoas_url") gadget.getSetting("hateoas_url")
]; ];
if (modification_dict.publication_section) { if (modification_dict.publication_section) {
promise_list.push(gadget.getDeclaredGadget("editor")), promise_list.push(gadget.getDeclaredGadget("editor"));
promise_list.push(getWebPageInfo(gadget, modification_dict.jio_key, modification_dict.publication_section)); promise_list.push(getWebPageInfo(gadget, modification_dict.jio_key, modification_dict.publication_section));
} }
return RSVP.all(promise_list); return RSVP.all(promise_list);
......
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