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
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
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
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
erp5
Commits
844ef6b1
Commit
844ef6b1
authored
Dec 18, 2019
by
Roque
Committed by
Roque
Dec 24, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5_officejs: improvements in gantt chart (for project management)
parent
368c2a37
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
762 additions
and
347 deletions
+762
-347
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_project_gantt_css.css
...tem/web_page_module/gadget_officejs_project_gantt_css.css
+33
-0
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_project_gantt_css.xml
...tem/web_page_module/gadget_officejs_project_gantt_css.xml
+338
-0
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_project_gantt_html.html
...m/web_page_module/gadget_officejs_project_gantt_html.html
+8
-1
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_project_gantt_html.xml
...em/web_page_module/gadget_officejs_project_gantt_html.xml
+163
-151
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_project_gantt_js.js
...eItem/web_page_module/gadget_officejs_project_gantt_js.js
+57
-44
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_project_gantt_js.xml
...Item/web_page_module/gadget_officejs_project_gantt_js.xml
+163
-151
No files found.
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_project_gantt_css.css
0 → 100644
View file @
844ef6b1
.ui-icon-spinner
{
opacity
:
1
;
}
.ui-icon-spinner
::before
{
content
:
"\f110"
;
animation
:
spin
0.5s
infinite
linear
;
}
.first-loader
{
position
:
fixed
;
left
:
50%
;
top
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
font-size
:
300%
;
animation-name
:
fadein
;
animation-duration
:
0.2s
;
animation-delay
:
0.3s
;
animation-fill-mode
:
both
;
animation-timing-function
:
ease-in
;
}
.gadget-content
.field_container
>
div
>
div
>
div
.ui-field-contain
div
.spinner
{
width
:
0%
;
}
.gadget-content
.field_container
>
div
>
div
>
div
.ui-field-contain
div
.hidden
{
visibility
:
hidden
;
}
.gadget-gantt
.ui-hidden
{
visibility
:
hidden
;
}
\ No newline at end of file
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_project_gantt_css.xml
0 → 100644
View file @
844ef6b1
This diff is collapsed.
Click to expand it.
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_project_gantt_html.html
View file @
844ef6b1
...
...
@@ -14,10 +14,17 @@
<!-- custom script -->
<script
src=
"gadget_officejs_project_gantt.js"
type=
"text/javascript"
></script>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"gadget_officejs_project_gantt.css"
>
</head>
<body>
<div
class=
"gantt-content"
>
<div
class=
"gadget-gantt"
>
<div
id=
"gantt_spinner"
class=
"ui-icon-spinner ui-btn-icon-notext first-loader spinner"
></div>
<div
class=
"empty-gantt ui-hidden"
>
<span>
There are no tasks for this project
</span>
</div>
<div
class=
"gantt-content ui-hidden"
>
</div>
</div>
</body>
</html>
\ No newline at end of file
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_project_gantt_html.xml
View file @
844ef6b1
This diff is collapsed.
Click to expand it.
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_project_gantt_js.js
View file @
844ef6b1
/*global window, rJS, RSVP, console */
/*global window, rJS, RSVP,
document,
console */
/*jslint nomen: true, indent: 2 */
(
function
(
window
,
rJS
,
RSVP
)
{
(
function
(
window
,
rJS
,
RSVP
,
document
)
{
"
use strict
"
;
/////////////////////////////////////////////////////////////////
...
...
@@ -47,6 +47,7 @@
})
.
declareJob
(
"
renderGantt
"
,
function
()
{
var
gadget
=
this
,
empty_gantt_element
=
gadget
.
element
.
querySelector
(
"
.empty-gantt
"
),
option_dict
=
gadget
.
property_dict
.
option_dict
;
return
gadget
.
declareGadget
(
"
unsafe/gadget_officejs_widget_gantt_dhtmlx.html
"
,
...
...
@@ -99,54 +100,66 @@
tree_list
=
[],
data_list
=
[],
sale_order_uid
,
delivery_data
,
tree_data
;
delivery_data
,
tree_data
,
start_date
,
gantt_spinner
=
document
.
getElementById
(
"
gantt_spinner
"
),
now
=
new
Date
();
task_list
=
task_list
.
data
.
rows
;
console
.
log
(
"
task_list
"
,
task_list
);
for
(
i
=
0
;
i
<
task_list
.
length
;
i
=
i
+
1
)
{
task
=
task_list
[
i
].
value
;
if
(
task
.
source_project_uid
!==
undefined
)
{
if
(
source_project_uid_list
.
indexOf
(
task
.
source_project_uid
)
===
-
1
)
{
source_project_uid_list
.
push
(
task
.
source_project_uid
);
console
.
log
(
"
task_list:
"
,
task_list
);
if
(
task_list
.
length
)
{
gadget
.
element
.
querySelector
(
"
.gantt-content
"
).
classList
.
remove
(
"
ui-hidden
"
);
for
(
i
=
0
;
i
<
task_list
.
length
;
i
=
i
+
1
)
{
task
=
task_list
[
i
].
value
;
if
(
task
.
source_project_uid
!==
undefined
)
{
if
(
source_project_uid_list
.
indexOf
(
task
.
source_project_uid
)
===
-
1
)
{
source_project_uid_list
.
push
(
task
.
source_project_uid
);
}
if
(
!
task
.
start_date
)
{
start_date
=
new
Date
();
}
else
{
start_date
=
task
.
start_date
;
}
source_project_data
=
source_project_dict
[
task
.
source_project_uid
]
||
{
'
start_date
'
:
new
Date
(
start_date
),
'
stop_date
'
:
new
Date
(
task
.
stop_date
),
'
title
'
:
task
.
source_project_title
,
'
type
'
:
'
project
'
,
'
id
'
:
task
.
source_project_uid
};
source_project_data
.
start_date
=
new
Date
(
Math
.
min
.
apply
(
null
,
[
source_project_data
.
start_date
,
new
Date
(
start_date
)]));
source_project_data
.
stop_date
=
new
Date
(
Math
.
max
.
apply
(
null
,
[
source_project_data
.
stop_date
,
new
Date
(
task
.
stop_date
)]));
source_project_dict
[
task
.
source_project_uid
]
=
source_project_data
;
}
source_project_data
=
source_project_dict
[
task
.
source_project_uid
]
||
{
'
start_date
'
:
new
Date
(
task
.
start_date
),
'
stop_date
'
:
new
Date
(
task
.
stop_date
),
'
title
'
:
task
.
source_project_title
,
'
type
'
:
'
project
'
,
'
id
'
:
task
.
source_project_uid
};
source_project_data
.
start_date
=
new
Date
(
Math
.
min
.
apply
(
null
,
[
source_project_data
.
start_date
,
new
Date
(
task
.
start_date
)]));
source_project_data
.
stop_date
=
new
Date
(
Math
.
max
.
apply
(
null
,
[
source_project_data
.
stop_date
,
new
Date
(
task
.
stop_date
)]));
source_project_dict
[
task
.
source_project_uid
]
=
source_project_data
;
}
if
(
i
===
0
)
{
// We assume that by the sort on order_reference that the first line is a level 1 line
sale_order_uid
=
task
.
parent_uid
;
}
if
(
task
.
start_date
!==
undefined
&&
task
.
stop_date
!==
undefined
)
{
delivery_data
=
{
'
title
'
:
task
.
title
,
'
id
'
:
task
.
uid
,
'
tree_id
'
:
task
.
uid
,
'
parent_id
'
:
task
.
source_project_uid
,
'
start_date
'
:
task
.
start_date
,
'
stop_date
'
:
task
.
stop_date
};
if
(
task
.
parent_uid
!==
sale_order_uid
)
{
delivery_data
.
parent_id
=
task
.
parent_uid
;
if
(
i
===
0
)
{
// We assume that by the sort on order_reference that the first line is a level 1 line
sale_order_uid
=
task
.
parent_uid
;
}
if
(
task
.
start_date
&&
task
.
stop_date
)
{
delivery_data
=
{
'
title
'
:
task
.
title
,
'
id
'
:
task
.
uid
,
'
tree_id
'
:
task
.
uid
,
'
parent_id
'
:
task
.
source_project_uid
,
'
start_date
'
:
task
.
start_date
,
'
stop_date
'
:
task
.
stop_date
};
if
(
task
.
parent_uid
!==
sale_order_uid
)
{
delivery_data
.
parent_id
=
task
.
parent_uid
;
}
data_list
.
push
(
delivery_data
);
}
data_list
.
push
(
delivery_data
);
}
}
for
(
i
=
0
;
i
<
source_project_uid_list
.
length
;
i
=
i
+
1
)
{
source_project_data
=
source_project_dict
[
source_project_uid_list
[
i
]];
data_list
.
push
(
source_project_data
);
}
gantt_data
.
data_list
=
data_list
;
console
.
log
(
"
gantt_data
"
,
gantt_data
);
return
gadget
.
property_dict
.
gantt_widget
.
render
(
gantt_data
);
for
(
i
=
0
;
i
<
source_project_uid_list
.
length
;
i
=
i
+
1
)
{
source_project_data
=
source_project_dict
[
source_project_uid_list
[
i
]];
data_list
.
push
(
source_project_data
);
}
gantt_data
.
data_list
=
data_list
;
gantt_spinner
.
classList
.
add
(
"
hidden
"
);
return
gadget
.
property_dict
.
gantt_widget
.
render
(
gantt_data
);
}
else
{
gantt_spinner
.
classList
.
add
(
"
hidden
"
);
empty_gantt_element
.
classList
.
remove
(
"
ui-hidden
"
);
}
});
});
}(
window
,
rJS
,
RSVP
));
\ No newline at end of file
}(
window
,
rJS
,
RSVP
,
document
));
\ No newline at end of file
bt5/erp5_officejs/PathTemplateItem/web_page_module/gadget_officejs_project_gantt_js.xml
View file @
844ef6b1
This diff is collapsed.
Click to expand it.
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