Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
141
Merge Requests
141
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
erp5
Commits
3e39c536
Commit
3e39c536
authored
Oct 24, 2019
by
Roque
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5_web_project_ui: worklist in project page
parent
c88925b1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
156 additions
and
43 deletions
+156
-43
bt5/erp5_web_project_ui/SkinTemplateItem/portal_skins/erp5_web_project/Project_getRenderJSExtraInfoParameterList.py
..._web_project/Project_getRenderJSExtraInfoParameterList.py
+1
-1
bt5/erp5_web_project_ui/SkinTemplateItem/portal_skins/erp5_web_project/gadget_project_info.html.html
...rtal_skins/erp5_web_project/gadget_project_info.html.html
+20
-1
bt5/erp5_web_project_ui/SkinTemplateItem/portal_skins/erp5_web_project/gadget_project_info.js.js
...m/portal_skins/erp5_web_project/gadget_project_info.js.js
+135
-41
No files found.
bt5/erp5_web_project_ui/SkinTemplateItem/portal_skins/erp5_web_project/Project_getRenderJSExtraInfoParameterList.py
View file @
3e39c536
...
...
@@ -11,7 +11,7 @@ from Products.ERP5Type.Log import log
portal
=
context
.
getPortalObject
()
portal_catalog
=
portal
.
portal_catalog
reference
=
context
.
getReference
(
)
+
"-Home.Page"
reference
=
str
(
context
.
getReference
()
)
+
"-Home.Page"
home_page
=
portal_catalog
.
getResultValue
(
portal_type
=
'Web Page'
,
reference
=
reference
)
...
...
bt5/erp5_web_project_ui/SkinTemplateItem/portal_skins/erp5_web_project/gadget_project_info.html.html
View file @
3e39c536
...
...
@@ -8,8 +8,21 @@
<script
src=
"renderjs.js"
></script>
<!-- <script src="handlebars.js" type="text/javascript"></script>
<script id="panel-template-body-list" type="text/x-handlebars-template"></script>-->
<script
src=
"handlebars.js"
type=
"text/javascript"
></script>
<script
src=
"gadget_project_info.js"
></script>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"gadget_project_info.css"
>
<!-- worklist -->
<script
id=
"table-template"
type=
"text/x-handlebars-template"
>
{{
#
if
document_list
}}
<
ul
data
-
role
=
"
listview
"
data
-
theme
=
"
c
"
class
=
"
document-listview ui-listview-inset ui-corner-all
"
>
{{
#
each
document_list
}}
<
li
class
=
"
ui-li-has-count
"
data
-
icon
=
"
false
"
><
a
class
=
"
ui-body-inherit
"
href
=
"
{{link}}
"
>
{{
title
}}
<
span
id
=
"
{{id}}
"
class
=
"
ui-li-count
"
>
{{
count
}}
<
/span></
a
><
/li
>
{{
/
each
}}
<
/ul
>
{{
else
}}
<
p
>
All
work
caught
up
!<
/p
>
{{
/
if
}}
</script>
</head>
<body>
...
...
@@ -17,7 +30,7 @@
<div
class=
"ui-field-contain"
style=
"top:50px;"
>
<div
class=
"bottom"
>
<a
id=
"forum_link"
target=
"_blank"
class=
"first-line-buttons ui-disabled"
data-i18n=
"[value]Forum"
disabled
>
Forum
</a>
<
a
id=
"description_link"
target=
"_blank"
class=
"first-line-buttons ui-disabled"
data-i18n=
"[value]Project Description"
disabled
>
Project Description
</a
>
<
!-- <a id="description_link" target="_blank" class="first-line-buttons ui-disabled" data-i18n="[value]Project Description" disabled >Project Description</a> --
>
<a
id=
"rss_link"
target=
"_blank"
class=
"first-line-buttons ui-disabled"
data-i18n=
"[value]Generate RSS"
disabled
>
Generate RSS
</a>
</div>
</div>
...
...
@@ -57,6 +70,12 @@
<a
id=
"test_suite_link"
class=
"first-line-buttons ui-disabled"
data-i18n=
"[value]Test suite"
disabled
>
Test suite
</a>
</p>
</div>
<div
class=
"ui-field-contain"
style=
"top:320px;"
>
<h1
data-i18n=
"[value]Project WorkList"
class=
"ui-title ui-override-theme worklist-title"
>
Project WorkList
</h1>
</div>
<div
class=
"ui-field-contain"
style=
"top:325px;"
>
<section
class=
"document_list"
style=
"width: 100%;"
></section>
</div>
<div
class=
"ui-field-contain"
style=
"top:350px;"
>
<div
id=
"home_page_content"
></div>
</div>
...
...
bt5/erp5_web_project_ui/SkinTemplateItem/portal_skins/erp5_web_project/gadget_project_info.js.js
View file @
3e39c536
/*jslint nomen: true, indent: 2 */
/*global window, rJS, RSVP, document, FileReader, Blob, jIO, ensureArray,
//Handlebars,
lockGadgetInQueue, unlockGadgetInQueue,
unlockGadgetInFailedQueue
*/
(
function
(
window
,
rJS
,
RSVP
,
document
,
FileReader
,
Blob
,
jIO
,
ensureArray
,
//Handlebars,
lockGadgetInQueue
,
unlockGadgetInQueue
,
unlockGadgetInFailedQueue
)
{
/*global window, rJS, RSVP, document, FileReader, Blob, jIO, ensureArray,
lockGadgetInQueue, unlockGadgetInQueue,
Handlebars
*/
(
function
(
window
,
rJS
,
RSVP
,
document
,
FileReader
,
Blob
,
jIO
,
ensureArray
,
lockGadgetInQueue
,
unlockGadgetInQueue
,
Handlebars
)
{
"
use strict
"
;
/*var gadget_klass = rJS(window),
template_element = gadget_klass.__template_element,
panel_template_body_list = Handlebars.compile(template_element
.getElementById("panel-template-body-list")
.innerHTML);*/
// Precompile the templates while loading the first gadget instance
var
gadget_klass
=
rJS
(
window
),
source
=
gadget_klass
.
__template_element
.
getElementById
(
"
table-template
"
)
.
innerHTML
,
table_template
=
Handlebars
.
compile
(
source
);
function
enableLink
(
link_element
,
url
)
{
link_element
.
href
=
url
;
...
...
@@ -19,13 +20,6 @@ lockGadgetInQueue, unlockGadgetInQueue, unlockGadgetInFailedQueue*/
function
generateLink
(
gadget
,
link_element
,
command
,
options
)
{
return
gadget
.
getUrlFor
({
command
:
command
,
options
:
options
})
/*.push(function (result) {
return gadget.translateHtml(
panel_template_body_list({
"form_href": result
})
);
})*/
.
push
(
function
(
result
)
{
enableLink
(
link_element
,
result
);
});
...
...
@@ -47,17 +41,47 @@ lockGadgetInQueue, unlockGadgetInQueue, unlockGadgetInFailedQueue*/
});
}
rJS
(
window
)
function
generateAjaxPromise
(
url
)
{
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
return
jIO
.
util
.
ajax
({
url
:
url
,
dataType
:
'
text
'
});
})
.
push
(
function
(
evt
)
{
return
evt
.
target
.
responseText
.
split
(
'
\n
'
);
});
}
function
setHTMLelementWithPromise
(
span_element
,
promise
)
{
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
return
promise
;
})
.
push
(
function
(
result
)
{
span_element
.
innerHTML
=
result
;
});
}
function
getActionListByName
(
view_list
,
name
)
{
return
view_list
.
filter
(
d
=>
d
.
name
===
name
)[
0
].
href
;
}
//rJS(window)
gadget_klass
.
declareAcquiredMethod
(
"
getUrlFor
"
,
"
getUrlFor
"
)
.
declareAcquiredMethod
(
"
jio_getAttachment
"
,
"
jio_getAttachment
"
)
.
declareMethod
(
'
render
'
,
function
(
options
)
{
//console.log("info gadget render options:");
//console.log(options);
var
state_dict
=
{
jio_key
:
options
.
jio_key
||
""
,
//HACK
forum_link
:
options
.
forum_link
||
"
https://www.erp5.com/group_section/forum
"
,
description_link
:
options
.
description_link
||
"
https://www.erp5.com/project_section/nexedi-erp5
"
,
//
description_link: options.description_link || "https://www.erp5.com/project_section/nexedi-erp5",
project_title
:
options
.
project_title
,
home_page_content
:
options
.
home_page_content
};
...
...
@@ -67,21 +91,31 @@ lockGadgetInQueue, unlockGadgetInQueue, unlockGadgetInFailedQueue*/
.
onStateChange
(
function
(
modification_dict
)
{
var
gadget
=
this
,
base_site
=
window
.
location
.
origin
+
window
.
location
.
pathname
,
project_url
=
base_site
+
modification_dict
.
jio_key
;
project_url
=
base_site
+
modification_dict
.
jio_key
,
work_item_list
=
[],
task_count_promise
=
generateAjaxPromise
(
project_url
+
"
/Project_tasks
"
),
bug_count_promise
=
generateAjaxPromise
(
project_url
+
"
/Project_bugs
"
);
document
.
getElementById
(
"
home_page_content
"
).
innerHTML
=
modification_dict
.
home_page_content
;
return
gadget
.
jio_getAttachment
(
modification_dict
.
jio_key
,
"
links
"
)
.
push
(
function
(
erp5_document
)
{
var
view_list
=
ensureArray
(
erp5_document
.
_links
.
view
),
task_view
=
view_list
.
filter
(
d
=>
d
.
name
===
"
task_list
"
)[
0
].
href
,
bug_view
=
view_list
.
filter
(
d
=>
d
.
name
===
"
bug_list
"
)[
0
].
href
,
milestone_view
=
view_list
.
filter
(
d
=>
d
.
name
===
"
milestone
"
)[
0
].
href
,
task_report_view
=
view_list
.
filter
(
d
=>
d
.
name
===
"
task_report_list
"
)[
0
].
href
;
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
return
RSVP
.
all
([
gadget
.
jio_getAttachment
(
modification_dict
.
jio_key
,
"
links
"
)
]);
})
.
push
(
function
(
result_list
)
{
var
view_list
=
ensureArray
(
result_list
[
0
].
_links
.
view
),
task_view
=
getActionListByName
(
view_list
,
"
task_list
"
),
bug_view
=
getActionListByName
(
view_list
,
"
bug_list
"
),
milestone_view
=
getActionListByName
(
view_list
,
"
milestone
"
),
task_report_view
=
getActionListByName
(
view_list
,
"
task_report_list
"
),
request_view
=
getActionListByName
(
view_list
,
"
request_list
"
);
gadget
.
element
.
querySelectorAll
(
"
h1
"
)[
0
].
innerHTML
=
modification_dict
.
project_title
;
enableLink
(
document
.
getElementById
(
"
forum_link
"
),
modification_dict
.
forum_link
);
enableLink
(
document
.
getElementById
(
"
description_link
"
),
modification_dict
.
description_link
);
//
enableLink(document.getElementById("description_link"), modification_dict.description_link);
generateLink
(
gadget
,
document
.
getElementById
(
"
milestone_link
"
),
'
display_with_history
'
,
{
'
jio_key
'
:
'
milestone_module
'
,
'
page
'
:
'
form
'
,
'
view
'
:
milestone_view
,
...
...
@@ -91,35 +125,34 @@ lockGadgetInQueue, unlockGadgetInQueue, unlockGadgetInFailedQueue*/
generateLink
(
gadget
,
document
.
getElementById
(
"
support_request_link
"
),
'
display_with_history
'
,
{
'
jio_key
'
:
'
support_request_module
'
,
'
page
'
:
'
form
'
,
'
view
'
:
'
view
'
,
'
view
'
:
request_view
,
'
field_listbox_sort_list:json
'
:
[[
"
delivery.start_date
"
,
"
descending
"
]],
'
extended_search
'
:
(
'
destination_project_title: "
'
+
modification_dict
.
project_title
+
'
" AND selection_domain_state_support_domain: "validated"
'
)
//'extended_search': ('destination_project_title: "' + modification_dict.project_title + '" AND translated_simulation_state_title: "Submitted"')
'
extended_search
'
:
(
'
selection_domain_state_support_domain: "validated"
'
)
});
var
bug_options
=
{
'
jio_key
'
:
'
bug_module
'
,
'
page
'
:
'
form
'
,
'
view
'
:
'
view
'
,
//
bug_view,
'
jio_key
'
:
'
bug_module
'
,
'
page
'
:
'
form
'
,
'
view
'
:
bug_view
,
'
field_listbox_sort_list:json
'
:
[[
"
delivery.start_date
"
,
"
descending
"
]],
'
field_listbox_column_list:json
'
:
[
"
title
"
,
"
description
"
,
"
delivery.start_date
"
],
'
extended_search
'
:
(
'
source_project_title: "
'
+
modification_dict
.
project_title
+
'
" AND selection_domain_state_bug_domain: "started"
'
)
//'extended_search': ('source_project_title: "' + modification_dict.project_title + '" AND translated_simulation_state_title: "Open"')
'
extended_search
'
:
(
'
selection_domain_state_bug_domain: "started"
'
)
},
closed_bug_options
=
{};
generateLink
(
gadget
,
document
.
getElementById
(
"
bug_link
"
),
'
display
'
,
bug_options
);
Object
.
assign
(
closed_bug_options
,
bug_options
);
//closed_bug_options.extended_search = ('source_project_title: "' + modification_dict.project_title + '" AND translated_simulation_state_title: "Resolved"');
closed_bug_options
.
extended_search
=
(
'
source_project_title: "
'
+
modification_dict
.
project_title
+
'
" AND selection_domain_state_bug_domain: "closed"
'
);
closed_bug_options
.
extended_search
=
(
'
selection_domain_state_bug_domain: "closed"
'
);
generateLink
(
gadget
,
document
.
getElementById
(
"
closed_bug_link
"
),
'
display
'
,
closed_bug_options
);
generateInfo
(
gadget
,
document
.
getElementById
(
"
bug_count
"
),
project_url
+
"
/Project_bugs
"
);
//generateInfo(gadget, document.getElementById("bug_count"), project_url + "/Project_bugs");
setHTMLelementWithPromise
(
document
.
getElementById
(
"
bug_count
"
),
bug_count_promise
);
generateInfo
(
gadget
,
document
.
getElementById
(
"
closed_bug_count
"
),
project_url
+
"
/Project_bugs?closed=1
"
);
generateLink
(
gadget
,
document
.
getElementById
(
"
task_link
"
),
'
display_with_history
'
,
{
'
jio_key
'
:
'
task_module
'
,
'
page
'
:
'
form
'
,
'
view
'
:
'
view
'
,
'
jio_key
'
:
'
task_module
'
,
'
page
'
:
'
form
'
,
'
view
'
:
task_view
,
'
field_listbox_sort_list:json
'
:
[[
"
delivery.start_date
"
,
"
descending
"
]],
'
field_listbox_column_list:json
'
:
[
"
title
"
,
"
delivery.start_date
"
,
"
delivery.stop_date
"
,
"
destination_decision_title
"
,
"
source_title
"
,
"
destination_title
"
,
"
total_quantity
"
,
"
task_line_quantity_unit_title
"
],
'
extended_search
'
:
(
'
s
ource_project_title: "
'
+
modification_dict
.
project_title
+
'
" AND s
election_domain_state_task_domain: "confirmed"
'
)
'
extended_search
'
:
(
'
selection_domain_state_task_domain: "confirmed"
'
)
});
generateInfo
(
gadget
,
document
.
getElementById
(
"
task_count
"
),
project_url
+
"
/Project_tasks
"
);
//generateInfo(gadget, document.getElementById("task_count"), project_url + "/Project_tasks");
setHTMLelementWithPromise
(
document
.
getElementById
(
"
task_count
"
),
task_count_promise
);
generateInfo
(
gadget
,
document
.
getElementById
(
"
unassigned_task_count
"
),
project_url
+
"
/Project_tasksToAssigne
"
);
var
task_report_options
=
{
...
...
@@ -153,6 +186,67 @@ lockGadgetInQueue, unlockGadgetInQueue, unlockGadgetInFailedQueue*/
'
extended_search
'
:
(
'
source_project_title: "
'
+
modification_dict
.
project_title
+
'
"
'
)
});
var
i
,
promise_list
=
[];
work_item_list
.
push
({
display_options
:
{
'
jio_key
'
:
'
bug_module
'
,
'
page
'
:
'
form
'
,
'
view
'
:
bug_view
,
'
field_listbox_sort_list:json
'
:
[[
"
delivery.start_date
"
,
"
descending
"
]],
'
field_listbox_column_list:json
'
:
[
"
title
"
,
"
description
"
,
"
delivery.start_date
"
],
'
extended_search
'
:
(
'
selection_domain_state_bug_domain: "started"
'
)
},
action_name
:
"
Open bugs
"
,
action_count
:
"
......
"
,
span_id
:
"
open_bug_id
"
,
count_promise
:
bug_count_promise
});
work_item_list
.
push
({
display_options
:
{
'
jio_key
'
:
'
task_module
'
,
'
page
'
:
'
form
'
,
'
view
'
:
task_view
,
'
field_listbox_sort_list:json
'
:
[[
"
delivery.start_date
"
,
"
descending
"
]],
'
field_listbox_column_list:json
'
:
[
"
title
"
,
"
delivery.start_date
"
,
"
delivery.stop_date
"
,
"
destination_decision_title
"
,
"
source_title
"
,
"
destination_title
"
,
"
total_quantity
"
,
"
task_line_quantity_unit_title
"
],
'
extended_search
'
:
(
'
selection_domain_state_task_domain: "confirmed"
'
)
},
action_name
:
"
Tasks
"
,
action_count
:
"
......
"
,
span_id
:
"
task_id
"
,
count_promise
:
task_count_promise
});
work_item_list
.
push
({
display_options
:
{
'
jio_key
'
:
'
support_request_module
'
,
'
page
'
:
'
form
'
,
'
view
'
:
request_view
,
//'view',
'
field_listbox_sort_list:json
'
:
[[
"
delivery.start_date
"
,
"
descending
"
]],
'
extended_search
'
:
(
'
selection_domain_state_support_domain: "validated"
'
)
},
action_name
:
"
Support Requests
"
,
action_count
:
"
......
"
,
span_id
:
"
support_id
"
,
count_promise
:
task_count_promise
});
for
(
i
=
0
;
i
<
work_item_list
.
length
;
i
+=
1
)
{
promise_list
.
push
(
gadget
.
getUrlFor
({
command
:
'
display
'
,
options
:
work_item_list
[
i
].
display_options
}));
}
return
RSVP
.
all
(
promise_list
);
})
.
push
(
function
(
link_list
)
{
var
i
,
line_list
=
[];
for
(
i
=
0
;
i
<
work_item_list
.
length
;
i
+=
1
)
{
line_list
.
push
({
link
:
link_list
[
i
],
title
:
work_item_list
[
i
].
action_name
,
count
:
work_item_list
[
i
].
action_count
,
id
:
work_item_list
[
i
].
span_id
});
}
gadget
.
element
.
querySelector
(
'
.document_list
'
).
innerHTML
=
table_template
({
document_list
:
line_list
});
for
(
i
=
0
;
i
<
work_item_list
.
length
;
i
+=
1
)
{
setHTMLelementWithPromise
(
document
.
getElementById
(
work_item_list
[
i
].
span_id
),
work_item_list
[
i
].
count_promise
);
//generateInfo(gadget, document.getElementById(work_item_list[i].span_id), project_url + work_item_list[i].count_script);
}
});
})
...
...
@@ -164,5 +258,5 @@ lockGadgetInQueue, unlockGadgetInQueue, unlockGadgetInFailedQueue*/
return
true
;
});
}(
window
,
rJS
,
RSVP
,
document
,
FileReader
,
Blob
,
jIO
,
ensureArray
,
//Handlebars,
lockGadgetInQueue
,
unlockGadgetInQueue
,
unlockGadgetInFailedQueue
));
\ No newline at end of file
}(
window
,
rJS
,
RSVP
,
document
,
FileReader
,
Blob
,
jIO
,
ensureArray
,
lockGadgetInQueue
,
unlockGadgetInQueue
,
Handlebars
));
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment