Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
intranet-timesheet2-weekly
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-weekly
Commits
b005ca28
Commit
b005ca28
authored
Mar 29, 2021
by
Project Open
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- WIP - now with "Task" column, but without editor
parent
f8196f61
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
157 additions
and
49 deletions
+157
-49
#*scratch*#
#*scratch*#
+77
-0
*scratch*
*scratch*
+42
-0
index.adp
www/index.adp
+35
-49
index.tcl
www/index.tcl
+3
-0
No files found.
#*scratch*#
0 → 100644
View file @
b005ca28
;; This buffer is for text that is not saved, and for Lisp evaluation.
;; To create a file, visit it with C-x C-f and enter text in its buffer.
text: "Project",
flex: 1,
dataIndex: 'project_id',
renderer: hourGridProjectRenderer,
editor: {
xtype: 'treecombo',
store: taskTreeStore,
rootVisible: false,
displayField: 'project_name',
valueField: 'id',
allowBlank: false
}
}, {
{text: 'Task Match', coltype: 'config', flex: 1, dataIndex: 'match_task_id', sortable: true,
renderer: function(task_id) { var taskModel = taskTreeStore.getById(task_id); if (!taskModel) return ""; return taskModel.get('project_name'); },
getEditor: function(record, defaultField) {
var objectType = record.get('object_type'); if ("im_budget_item" !== objectType) return false;
return Ext.create('Ext.grid.CellEditor', {
field: Ext.create('PO.view.field.POComboTree', {
queryMode: 'local', store: taskTreeStore, displayField: 'project_name', valueField: 'id'
})
});
}
},
text: 'Task',
flex: 1,
dataIndex: 'task_id',
renderer: function(task_id) {
var taskModel = taskTreeStore.getById(task_id);
if (!taskModel) return "";
return taskModel.get('project_name');
},
getEditor: function(record, defaultField) {
if (!record) return;
var objectType = record.get('object_type');
if ("im_hour" !== objectType) return false;
return Ext.create('Ext.grid.CellEditor', {
field: Ext.create('PO.view.field.POComboTree', {
queryMode: 'local', store: taskTreeStore, displayField: 'project_name', valueField: 'id'
})
});
}
}, {
renderer: function(task_id) {
var taskModel = taskTreeStore.getById(task_id);
if (!taskModel) return "";
return taskModel.get('project_name');
},
getEditor: function(record, defaultField) {
if (!record) return;
var objectType = record.get('object_type');
if ("im_hour" !== objectType) return false;
return Ext.create('Ext.grid.CellEditor', {
field: Ext.create('PO.view.field.POComboTree', {
queryMode: 'local', store: taskTreeStore, displayField: 'project_name', valueField: 'id'
})
});
}
*scratch*
0 → 100644
View file @
b005ca28
;; This buffer is for text that is not saved, and for Lisp evaluation.
;; To create a file, visit it with C-x C-f and enter text in its buffer.
text: "Project",
flex: 1,
dataIndex: 'project_id',
renderer: hourGridProjectRenderer,
editor: {
xtype: 'treecombo',
store: taskTreeStore,
rootVisible: false,
displayField: 'project_name',
valueField: 'id',
allowBlank: false
}
}, {
text: 'Task',
flex: 1,
dataIndex: 'task_id',
renderer: function(task_id) {
var taskModel = taskTreeStore.getById(task_id);
if (!taskModel) return "";
return taskModel.get('project_name');
},
getEditor: function(record, defaultField) {
if (!record) return;
var objectType = record.get('object_type');
if ("im_hour" !== objectType) return false;
return Ext.create('Ext.grid.CellEditor', {
field: Ext.create('PO.view.field.POComboTree', {
queryMode: 'local', store: taskTreeStore, displayField: 'project_name', valueField: 'id'
})
});
}
}, {
www/index.adp
View file @
b005ca28
...
...
@@ -64,58 +64,39 @@ function launchTimesheetWeeklyLogging(){
}
});
// !!!
var hourGrid = Ext.create('Ext.grid.Panel', {
store: hourStore,
layout: 'fit',
region: 'center',
plugins: [rowEditing],
columns: [
{
text: "Project",
flex: 1,
dataIndex: 'project_id',
renderer: hourGridProjectRenderer,
editor: {
xtype: 'treecombo',
store: taskTreeStore,
rootVisible: false,
displayField: 'project_name',
valueField: 'id',
allowBlank: false
}
}, {
{
text: 'Task',
flex: 1,
dataIndex: '
task
_id',
dataIndex: '
project
_id',
renderer: function(task_id) {
var taskModel = taskTreeStore.getById(task_id);
if (!taskModel) return "";
return taskModel.get('project_name');
},
getEditor: function(record, defaultField) {
if (!record) return;
var objectType = record.get('object_type');
if ("im_hour" !== objectType) return false;
return Ext.create('Ext.grid.CellEditor', {
field: Ext.create('PO.view.field.POComboTree', {
queryMode: 'local', store: taskTreeStore, displayField: 'project_name', valueField: 'id'
})
});
}
}, {
text: "Date",
xtype: 'datecolumn',
dataIndex: 'day',
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
editor: {
xtype: 'datefield',
allowBlank: true,
startDay: @week_start_day@
}
}, {
text: "Note", flex: 1, dataIndex: 'note',
editor: { allowBlank: true }
}],
editor: {}
}, {
text: "Date",
xtype: 'datecolumn',
dataIndex: 'day',
renderer: Ext.util.Format.dateRenderer('Y-m-d'),
editor: {
xtype: 'datefield',
allowBlank: true,
startDay: @week_start_day@
}
}, {
text: "Hours", flex: 1, dataIndex: 'hours', editor: { xtype: 'numberfield', minValue: 0 }
}, {
text: "Note", flex: 1, dataIndex: 'note',
editor: { allowBlank: true }
}],
columnLines: true,
enableLocking: true,
collapsible: false,
...
...
@@ -309,8 +290,6 @@ function launchTimesheetWeeklyLogging(){
},
/*
* Start logging the time, for entirely manual entries.
*/
...
...
@@ -323,9 +302,12 @@ function launchTimesheetWeeklyLogging(){
buttonDeleteEntry.enable();
rowEditing.cancelEdit();
// !!!
var day = PO.Utilities.dateToPg(new Date());
var hour = new Ext.create('PO.model.timesheet.Hour', {
user_id: @current_user_id@,
project_id: @project_id@,
task_id: @project_id@,
day: day
});
...
...
@@ -390,18 +372,22 @@ function launchTimesheetWeeklyLogging(){
},
onButtonDeleteEntry: function() {
var me = this;
console.log('GanttButtonController.ButtonDeleteLogging');
var records = hourGrid.getSelectionModel().getSelection();
var buttonAddEntry = Ext.getCmp('buttonAddEntry');
// var buttonDeleteEntry = Ext.getCmp('buttonDeleteEntry');
buttonAddEntry.enable();
// buttonDeleteEntry.enable();
rowEditing.cancelEdit();
var records = hourGrid.getSelectionModel().getSelection();
// Not logging already - enable the "start" button
if (1 == records.length) { // Exactly one record enabled
var record = records[0];
hourStore.remove(record);
record.destroy();
}
// Stop logging
this.loggingTask = null;
this.loggingStartDate = null;
}
},
/**
...
...
@@ -573,7 +559,7 @@ Ext.onReady(function() {
});
// Load stores that need parameters
taskTreeStore.getProxy().extraParams = { project_id:
0
};
taskTreeStore.getProxy().extraParams = { project_id:
@project_id@
};
taskTreeStore.load({
callback: function(records, operation, success) {
var me = this;
...
...
@@ -591,7 +577,7 @@ Ext.onReady(function() {
});
// Load stores that need parameters
hourStore.getProxy().extraParams = { project_id:
45956
, user_id: @current_user_id@, format: 'json' };
hourStore.getProxy().extraParams = { project_id:
@project_id@
, user_id: @current_user_id@, format: 'json' };
hourStore.load({
callback: function() {
console.log('PO.store.timesheet.HourStore: loaded');
...
...
www/index.tcl
View file @
b005ca28
...
...
@@ -22,6 +22,9 @@ set left_navbar_html " "
set
data_list
{}
set
project_id 45956
# Create a random ID for the task_editor
set
task_editor_rand
[
expr
round
(
rand
()
* 100000000.0
)]
set
task_editor_id
"task_editor_
$task
_editor_rand"
...
...
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