Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
sencha-core
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
sencha-core
Commits
dcf0a27d
Commit
dcf0a27d
authored
Mar 05, 2021
by
Project Open
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- Created first - more or less - working object member panel
parent
6da06005
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
82 additions
and
96 deletions
+82
-96
ObjectMemberPanel.js
www/view/ObjectMemberPanel.js
+26
-41
POObjectMembers.js
www/view/field/POObjectMembers.js
+56
-55
No files found.
www/view/ObjectMemberPanel.js
View file @
dcf0a27d
...
...
@@ -16,9 +16,10 @@ Ext.define('PO.view.ObjectMemberPanel', {
id
:
'objectMemberPanel'
,
alias
:
'objectMemberPanel'
,
title
:
'
Task Propertie
s'
,
title
:
'
Member
s'
,
id
:
'objectMemberPanel'
,
senchaPreferenceStore
:
null
,
userStore
:
null
,
debug
:
false
,
width
:
500
,
...
...
@@ -74,14 +75,14 @@ Ext.define('PO.view.ObjectMemberPanel', {
});
// Grid with assigned users
var
taskProperty
Members
=
Ext
.
create
(
'Ext.grid.Panel'
,
{
var
object
Members
=
Ext
.
create
(
'Ext.grid.Panel'
,
{
title
:
'Members'
,
id
:
'
taskProperty
Members'
,
id
:
'
object
Members'
,
store
:
objectMemberStore
,
width
:
200
,
debug
:
me
.
debug
,
stateful
:
true
,
stateId
:
'
taskProperty
Members'
,
stateId
:
'
object
Members'
,
selType
:
'rowmodel'
,
plugins
:
taskMemberRowEditing
,
columns
:
[
...
...
@@ -90,7 +91,7 @@ Ext.define('PO.view.ObjectMemberPanel', {
{
text
:
'Initials'
,
width
:
60
,
dataIndex
:
'initials'
,
hidden
:
false
},
{
text
:
'Name'
,
dataIndex
:
'name'
,
flex
:
1
,
editor
:
{
xtype
:
'combobox'
,
store
:
Ext
.
StoreManager
.
get
(
'
pro
jectMemberStore'
),
store
:
Ext
.
StoreManager
.
get
(
'
ob
jectMemberStore'
),
displayField
:
'name'
,
valueField
:
'name'
,
queryMode
:
'local'
,
...
...
@@ -118,9 +119,9 @@ Ext.define('PO.view.ObjectMemberPanel', {
// Small controller in order to handle the (+) / (-) buttons for
// adding and removing users.
var
taskProperty
MembersController
=
Ext
.
create
(
'Ext.app.Controller'
,
{
var
object
MembersController
=
Ext
.
create
(
'Ext.app.Controller'
,
{
objectMemberStore
:
objectMemberStore
,
taskPropertyMembers
:
taskProperty
Members
,
objectMembers
:
object
Members
,
init
:
function
()
{
var
me
=
this
;
this
.
control
({
...
...
@@ -131,23 +132,23 @@ Ext.define('PO.view.ObjectMemberPanel', {
},
onAssigButtonAdd
:
function
(
button
,
event
)
{
var
me
=
this
;
if
(
me
.
debug
)
console
.
log
(
'ObjectMemberPanel.
taskProperty
MembersController.onAssigButtonAdd'
);
if
(
me
.
debug
)
console
.
log
(
'ObjectMemberPanel.
object
MembersController.onAssigButtonAdd'
);
var
newRecord
=
me
.
objectMemberStore
.
add
({
role_id
:
100
})[
0
];
// Cancel editing
var
editing
=
me
.
taskProperty
Members
.
editingPlugin
;
var
editing
=
me
.
object
Members
.
editingPlugin
;
editing
.
cancelEdit
();
editing
.
startEdit
(
newRecord
,
0
);
// Start editing the first row
},
onAssigButtonDel
:
function
(
button
,
event
)
{
var
me
=
this
;
if
(
me
.
debug
)
console
.
log
(
'ObjectMemberPanel.
taskProperty
MembersController.onAssigButtonDel'
);
if
(
me
.
debug
)
console
.
log
(
'ObjectMemberPanel.
object
MembersController.onAssigButtonDel'
);
// Cancel editing
var
editing
=
me
.
taskProperty
Members
.
editingPlugin
;
var
editing
=
me
.
object
Members
.
editingPlugin
;
editing
.
cancelEdit
();
var
lastSelected
=
me
.
taskProperty
Members
.
getSelectionModel
().
getLastSelected
();
var
lastSelected
=
me
.
object
Members
.
getSelectionModel
().
getLastSelected
();
if
(
lastSelected
)
{
me
.
objectMemberStore
.
remove
(
lastSelected
);
}
else
{
...
...
@@ -163,7 +164,7 @@ Ext.define('PO.view.ObjectMemberPanel', {
id
:
'taskPropertyTabpanel'
,
border
:
false
,
items
:
[
taskProperty
Members
object
Members
],
buttons
:
[{
text
:
'OK'
,
...
...
@@ -179,7 +180,7 @@ Ext.define('PO.view.ObjectMemberPanel', {
// store panels in the main object
me
.
objectMemberStore
=
objectMemberStore
;
me
.
taskPropertyMembers
=
taskProperty
Members
;
me
.
objectMembers
=
object
Members
;
me
.
taskPropertyTabpanel
=
taskPropertyTabpanel
;
if
(
me
.
debug
)
console
.
log
(
'PO.view.ObjectMemberPanel.initialize: Finished'
);
...
...
@@ -193,16 +194,12 @@ Ext.define('PO.view.ObjectMemberPanel', {
if
(
me
.
debug
)
console
.
log
(
'PO.view.ObjectMemberPanel.onButtonOK'
);
// Finish the editor of the TaskASsigments list in case the user didn't press "Update" yet.
var
editing
=
me
.
taskProperty
Members
.
editingPlugin
;
var
editing
=
me
.
object
Members
.
editingPlugin
;
editing
.
completeEdit
();
// Write timestamp to make sure that data are modified and redrawn.
me
.
taskModel
.
set
(
'last_modified'
,
Ext
.
Date
.
format
(
new
Date
(),
'Y-m-d H:i:s'
));
// ---------------------------------------------------------------
// "General" form panel with start- and end date, %done, work etc.
!!!
var
fields
=
me
.
taskPropertyFormGeneral
.
getValues
(
false
,
true
,
true
,
true
);
// get all fields into object
var
fields
=
me
.
taskPropertyFormGeneral
.
getValues
(
false
,
true
,
true
,
true
);
// get all fields into object
var
oldStartDate
=
me
.
taskModel
.
get
(
'start_date'
);
var
oldEndDate
=
me
.
taskModel
.
get
(
'end_date'
);
...
...
@@ -243,7 +240,7 @@ Ext.define('PO.view.ObjectMemberPanel', {
// ---------------------------------------------------------------
// Notes form
!!!
fields
=
me
.
taskPropertyFormNotes
.
getValues
(
false
,
true
,
true
,
true
);
fields
=
me
.
taskPropertyFormNotes
.
getValues
(
false
,
true
,
true
,
true
);
me
.
taskModel
.
set
(
fields
);
// ---------------------------------------------------------------
...
...
@@ -305,39 +302,27 @@ Ext.define('PO.view.ObjectMemberPanel', {
* Show the properties of the specified task model.
* Write changes back to the task immediately (at the moment).
*/
setValue
:
function
(
task
)
{
setValue
:
function
(
memberArray
)
{
var
me
=
this
;
if
(
me
.
debug
)
console
.
log
(
'PO.view.ObjectMemberPanel.setValue: Starting'
);
var
projectMemberStore
=
Ext
.
StoreManager
.
get
(
'projectMemberStore'
);
// Default values for task if not defined yet by ]po[
// ToDo: Unify with default values in onButtonAdd
if
(
""
==
task
.
get
(
'planned_units'
))
{
task
.
set
(
'planned_units'
,
'0'
);
}
if
(
""
==
task
.
get
(
'uom_id'
))
{
task
.
set
(
'uom_id'
,
""
+
default_uom_id
);
}
// "Day" as UoM
if
(
""
==
task
.
get
(
'material_id'
))
{
task
.
set
(
'material_id'
,
""
+
default_material_id
);
}
// "Default" material
if
(
""
==
task
.
get
(
'priority'
))
{
task
.
set
(
'priority'
,
'500'
);
}
if
(
""
==
task
.
get
(
'start_date'
))
{
task
.
set
(
'start_date'
,
Ext
.
Date
.
format
(
new
Date
(),
'Y-m-d'
));
}
if
(
""
==
task
.
get
(
'end_date'
))
{
task
.
set
(
'end_date'
,
Ext
.
Date
.
format
(
new
Date
(),
'Y-m-d'
));
}
if
(
""
==
task
.
get
(
'role_id_completed'
))
{
task
.
set
(
'role_id_completed'
,
'0'
);
}
var
objectMemberStore
=
Ext
.
StoreManager
.
get
(
'objectMemberStore'
);
// Load the data into the various forms
!!!
me
.
taskPropertyFormGeneral
.
getForm
().
loadRecord
(
task
);
!!!
me
.
taskPropertyFormNotes
.
getForm
().
loadRecord
(
task
);
//
me.taskPropertyFormGeneral.getForm().loadRecord(task);
//
me.taskPropertyFormNotes.getForm().loadRecord(task);
// Load member information into the memberStore
me
.
objectMemberStore
.
removeAll
();
var
members
=
task
.
get
(
'assignees'
);
if
(
members
.
constructor
!==
Array
)
{
members
=
[];
}
// Newly created task...
members
.
forEach
(
function
(
v
)
{
if
(
memberArray
.
constructor
!==
Array
)
{
memberArray
=
[];
}
// Newly created?
memberArray
.
forEach
(
function
(
v
)
{
var
userId
=
""
+
v
.
user_id
;
var
userModel
=
projectMemb
erStore
.
getById
(
userId
);
var
userModel
=
me
.
us
erStore
.
getById
(
userId
);
if
(
!
userModel
)
{
return
;
}
// User not set in member row
var
assigModel
=
new
PO
.
model
.
ObjectMemberModel
(
userModel
.
data
);
assigModel
.
set
(
'role_id'
,
v
.
role_id
);
me
.
objectMemberStore
.
add
(
assigModel
);
});
me
.
taskModel
=
task
;
// Save the model for reference
if
(
me
.
debug
)
console
.
log
(
'PO.view.ObjectMemberPanel.setValue: Finished'
);
}
});
...
...
www/view/field/POObjectMembers.js
View file @
dcf0a27d
...
...
@@ -139,13 +139,17 @@ Ext.define('PO.view.field.POObjectMembers', {
* Format membership list to a String
*/
formatMembers
:
function
(
me
,
memberExpr
)
{
if
(
me
.
debug
)
console
.
log
(
'POObjectMembers.formatMembers: Starting: memberExpr='
+
memberExpr
);
if
(
Ext
.
isString
(
memberExpr
))
{
return
memberExpr
;
}
if
(
!
memberExpr
)
{
return
""
;
}
if
(
memberExpr
.
constructor
===
Array
)
{
if
(
memberExpr
.
length
==
0
)
{
return
""
;
}
}
if
(
me
.
debug
)
console
.
log
(
'POObjectMembers.formatMembers: Starting: memberExpr='
+
memberExpr
);
var
projectMemberStore
=
me
.
memberStore
;
var
groupStore
=
me
.
groupStore
;
var
result
=
""
;
if
(
null
!=
memberExpr
)
{
memberExpr
.
forEach
(
function
(
member
)
{
if
(
""
!=
result
)
{
result
=
result
+
";"
;
}
var
userId
=
""
+
member
.
user_id
;
...
...
@@ -171,7 +175,6 @@ Ext.define('PO.view.field.POObjectMembers', {
result
=
result
+
'['
+
roleString
+
']'
;
}
});
}
return
result
;
}
},
// End statics
...
...
@@ -237,30 +240,28 @@ Ext.define('PO.view.field.POObjectMembers', {
* Open the TaskProperty panel with the Members
* tab open in order to edit membership.
*/
onTriggerClick
:
function
(
a
,
b
,
c
,
d
)
{
onTriggerClick
:
function
(
event
)
{
var
me
=
this
;
if
(
me
.
debug
)
console
.
log
(
'POObjectMembers.onTriggerClick: Starting'
);
var
panel
=
Ext
.
getCmp
(
me
.
gridPanelId
);
var
value
=
panel
.
getSelectionModel
().
getLastSelected
();
var
taskPropertyPanel
=
Ext
.
getCmp
(
'objectMemberPanel'
);
taskPropertyPanel
.
setValue
(
value
);
taskPropertyPanel
.
setActiveTab
(
'taskPropertyMembers'
);
taskPropertyPanel
.
show
();
// Show handled by picker management
var
treePanel
=
Ext
.
getCmp
(
'ganttTreePanel'
);
var
value
=
treePanel
.
getSelectionModel
().
getLastSelected
();
var
taskPropertyPanel
=
Ext
.
getCmp
(
'ganttTaskPropertyPanel'
);
taskPropertyPanel
.
setValue
(
value
);
taskPropertyPanel
.
setActiveTab
(
'taskPropertyAssignments'
);
taskPropertyPanel
.
show
();
// Show handled by picker management
var
budgetItem
=
panel
.
getSelectionModel
().
getLastSelected
();
var
fieldValue
=
this
.
getValue
();
var
objectMemberPanel
=
Ext
.
getCmp
(
'objectMemberPanel'
);
objectMemberPanel
.
show
();
// Show handled by picker management
objectMemberPanel
.
setValue
(
fieldValue
);
objectMemberPanel
.
setActiveTab
(
'objectMembers'
);
if
(
0
)
{
// Create the panel showing properties of a task, but don't show it yet.
var
objectMemberPanel
=
Ext
.
create
(
"PO.view.gantt.GanttTaskPropertyPanel"
,
{
debug
:
getDebug
(
'objectMemberPanel'
),
senchaPreferenceStore
:
senchaPreferenceStore
,
ganttTreePanelController
:
ganttTreePanelController
});
objectMemberPanel
.
hide
();
}
}
});
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