Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
intranet-timesheet2-interval
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
project-open
intranet-timesheet2-interval
Commits
b4698783
Commit
b4698783
authored
Mar 24, 2021
by
Project Open
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Fixed issues for using the module in ]po[ V5.1
parent
eaa176b6
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
71 additions
and
21 deletions
+71
-21
timesheet-interval.adp
lib/timesheet-interval.adp
+49
-6
timesheet-interval.tcl
lib/timesheet-interval.tcl
+20
-0
intranet-timesheet2-interval-create.sql
sql/postgresql/intranet-timesheet2-interval-create.sql
+2
-15
No files found.
lib/timesheet-interval.adp
View file @
b4698783
...
@@ -21,9 +21,17 @@ Ext.require([
...
@@ -21,9 +21,17 @@ Ext.require([
'PO.store.timesheet.HourIntervalStore',
'PO.store.timesheet.HourIntervalStore',
'PO.store.timesheet.TaskTreeStore',
'PO.store.timesheet.TaskTreeStore',
'PO.store.timesheet.HourIntervalActivityStore',
'PO.store.timesheet.HourIntervalActivityStore',
'PO.view.gantt.GanttTreePanel',
'Ext.ux.TreeCombo'
'Ext.ux.TreeCombo'
]);
]);
// Global parameters from server-side
var default_material_id = parseInt('@default_material_id@'); // "Default" material
var default_cost_center_id = parseInt('@default_cost_center_id@'); // "The Company" cost-center
var default_uom_id = parseInt('@default_uom_id@'); // "Hour" default Unit of Measure
var default_effort_driven_type_id = parseInt('@default_effort_driven_type_id@'); // "Fixed Effort" as default
var write_project_p = parseInt('@write_p@'); // 0 or 1
function launchTimesheetIntervalLogging(){
function launchTimesheetIntervalLogging(){
...
@@ -32,10 +40,22 @@ function launchTimesheetIntervalLogging(){
...
@@ -32,10 +40,22 @@ function launchTimesheetIntervalLogging(){
var hourIntervalStore = Ext.StoreManager.get('hourIntervalStore');
var hourIntervalStore = Ext.StoreManager.get('hourIntervalStore');
var taskTreeStore = Ext.StoreManager.get('taskTreeStore');
var taskTreeStore = Ext.StoreManager.get('taskTreeStore');
var ganttTreePanel = Ext.create('PO.view.gantt.GanttTreePanel', {
var ganttTreePanel = Ext.create('PO.view.gantt.GanttTreePanel', {
width: 300,
id: 'ganttTreePanel',
debug: true, // getDebug('ganttTreePanel'),
rootVisible: false,
width: 500,
region: 'west',
region: 'west',
store: taskTreeStore
});
});
// Disabled the TreePanel editor
var editor = ganttTreePanel.findPlugin('cellediting');
if (editor) editor.disable();
// Work around columns messed up after state change
ganttTreePanel.headerCt.onColumnsChanged();
ganttTreePanel.view.refresh();
var timeEntryStore = [];
var timeEntryStore = [];
for (var i = @time_entry_store_start_hour@; i < @time_entry_store_end_hour@; i++) {
for (var i = @time_entry_store_start_hour@; i < @time_entry_store_end_hour@; i++) {
...
@@ -307,7 +327,6 @@ function launchTimesheetIntervalLogging(){
...
@@ -307,7 +327,6 @@ function launchTimesheetIntervalLogging(){
}
}
}
}
if (interval_date != null) {
if (interval_date != null) {
// The interval_date has been overwritten by the editor with a Date
// The interval_date has been overwritten by the editor with a Date
var value = new Date(interval_date);
var value = new Date(interval_date);
...
@@ -603,13 +622,27 @@ function launchTimesheetIntervalLogging(){
...
@@ -603,13 +622,27 @@ function launchTimesheetIntervalLogging(){
};
};
var debugHash = @debug_json;noquote@;
function getDebug(id) {
// Check for a debug setting for the specific Id
var debug = parseInt(debugHash[id]);
if (!isNaN(debug)) return debug;
// Use the default debug
debug = parseInt(debugHash['default']);
if (!isNaN(debug)) return debug;
// invalid configuration - enable debug
return 1;
};
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
// Start the application after loading the necessary stores
// Start the application after loading the necessary stores
//
//
Ext.onReady(function() {
Ext.onReady(function() {
Ext.QuickTips.init();
Ext.QuickTips.init();
var debug = getDebug('default');
var taskTreeStore = Ext.create('PO.store.timesheet.TaskTreeStore');
var taskTreeStore = Ext.create('PO.store.timesheet.TaskTreeStore');
var hourIntervalStore = Ext.create('PO.store.timesheet.HourIntervalStore');
var hourIntervalStore = Ext.create('PO.store.timesheet.HourIntervalStore');
...
@@ -635,11 +668,22 @@ Ext.onReady(function() {
...
@@ -635,11 +668,22 @@ Ext.onReady(function() {
// Load stores that need parameters
// Load stores that need parameters
taskTreeStore.getProxy().extraParams = { project_id: @project_id@ };
taskTreeStore.getProxy().extraParams = { project_id: @project_id@ };
taskTreeStore.load({
taskTreeStore.load({
callback: function() {
callback: function(records, operation, success) {
console.log('PO.store.timesheet.TaskTreeStore: loaded');
var me = this;
if (debug) console.log('PO.store.timesheet.TaskTreeStore: loaded');
if (!success) {
PO.Utilities.reportStoreError("TaskTreeStore", operation);
return;
}
var mainProjectNode = records[0];
mainProjectNode.set('sort_order','0');
me.setRootNode(mainProjectNode);
}
}
});
});
// Load stores that need parameters
// Load stores that need parameters
hourIntervalStore.getProxy().extraParams = { project_id: @project_id@, user_id: @current_user_id@, format: 'json' };
hourIntervalStore.getProxy().extraParams = { project_id: @project_id@, user_id: @current_user_id@, format: 'json' };
...
@@ -652,4 +696,3 @@ Ext.onReady(function() {
...
@@ -652,4 +696,3 @@ Ext.onReady(function() {
});
});
</script>
</script>
</div>
</div>
lib/timesheet-interval.tcl
View file @
b4698783
...
@@ -19,6 +19,8 @@ set data_list {}
...
@@ -19,6 +19,8 @@ set data_list {}
# project_id may be overwritten by SQLs below
# project_id may be overwritten by SQLs below
set
main_project_id
$project
_id
set
main_project_id
$project
_id
im_project_permissions
$current
_user_id
$main
_project_id view_p read_p write_p admin_p
# Create a random ID for the task_editor
# Create a random ID for the task_editor
set
task_editor_rand
[
expr
round
(
rand
()
* 100000000.0
)]
set
task_editor_rand
[
expr
round
(
rand
()
* 100000000.0
)]
...
@@ -31,3 +33,21 @@ set week_start_day [parameter::get_from_package_key -package_key "intranet-times
...
@@ -31,3 +33,21 @@ set week_start_day [parameter::get_from_package_key -package_key "intranet-times
set
please_add_note_required_l10n
[
lang::message::lookup
""
intranet-timesheet2-inverval.Please_add_a_note_required
"Please add a note (required)"
]
set
please_add_note_required_l10n
[
lang::message::lookup
""
intranet-timesheet2-inverval.Please_add_a_note_required
"Please add a note (required)"
]
# Default material and Unit of Measure: "Default" and "Hour"
set
default_material_id
[
im_material_default_material_id
]
set
default_cost_center_id
[
im_cost_center_company
]
set
default_uom_id
[
im_uom_hour
]
# 9722 = 'Fixed Work' is the default effort_driven_type
set
default_effort_driven_type_id
[
parameter::get_from_package_key -package_key
"intranet-ganttproject"
-parameter
"DefaultEffortDrivenTypeId"
-default
"9722"
]
# Create a debug JSON object that controls logging verbosity
set
debug_default
"default 0"
set
debug_list
[
parameter::get_from_package_key -package_key
"intranet-gantt-editor"
-parameter DebugHash -default
$debug
_default
]
array
set debug_hash
$debug
_list
set
debug_json_list
{}
foreach
id
[
array
names debug_hash
]
{
lappend debug_json_list
"'
$id
':
$debug
_hash(
$id
)"
}
set
debug_json
"{
\n\t
[
join
$debug
_json_list
",
\n\t
"
]
\n
}"
sql/postgresql/intranet-timesheet2-interval-create.sql
View file @
b4698783
...
@@ -185,12 +185,7 @@ create trigger im_hour_interval_delete_tr after delete on im_hour_intervals for
...
@@ -185,12 +185,7 @@ create trigger im_hour_interval_delete_tr after delete on im_hour_intervals for
-- ------------------------------------------------------------
-- ------------------------------------------------------------
SELECT
im_component_plugin__new
(
SELECT
im_component_plugin__new
(
null
,
-- plugin_id
null
,
'im_component_plugin'
,
now
(),
null
,
null
,
null
,
'im_component_plugin'
,
-- object_type
now
(),
-- creation_date
null
,
-- creation_user
null
,
-- creation_ip
null
,
-- context_id
'Timesheet Interval'
,
-- plugin_name
'Timesheet Interval'
,
-- plugin_name
'intranet-timesheet2-interval'
,
-- package_name
'intranet-timesheet2-interval'
,
-- package_name
'top'
,
-- location
'top'
,
-- location
...
@@ -200,20 +195,12 @@ SELECT im_component_plugin__new (
...
@@ -200,20 +195,12 @@ SELECT im_component_plugin__new (
'im_timesheet_interval_portlet -project_id $project_id'
'im_timesheet_interval_portlet -project_id $project_id'
);
);
-- ------------------------------------------------------------
-- ------------------------------------------------------------
-- Resource leveling editor
-- Resource leveling editor
-- ------------------------------------------------------------
-- ------------------------------------------------------------
SELECT
im_menu__new
(
SELECT
im_menu__new
(
null
,
-- p_menu_id
null
,
'im_menu'
,
now
(),
null
,
null
,
null
,
'im_menu'
,
-- object_type
now
(),
-- creation_date
null
,
-- creation_user
null
,
-- creation_ip
null
,
-- context_id
'sencha-task-editor'
,
-- package_name
'sencha-task-editor'
,
-- package_name
'resource_leveling_editor'
,
-- label
'resource_leveling_editor'
,
-- label
'Resource Leveling Editor'
,
-- name
'Resource Leveling Editor'
,
-- name
...
...
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