Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
tev
plugin_event
Commits
e828ab23
Commit
e828ab23
authored
Dec 19, 2016
by
LE GAC Renaud
Browse files
Update HistoryContextMenu in order to use Date field.
parent
c5f2209e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
122 additions
and
75 deletions
+122
-75
static/plugin_event/src/grid/plugin/HistoryContextMenu.js
static/plugin_event/src/grid/plugin/HistoryContextMenu.js
+122
-75
No files found.
static/plugin_event/src/grid/plugin/HistoryContextMenu.js
View file @
e828ab23
...
...
@@ -16,26 +16,26 @@ Ext.define("Event.grid.plugin.HistoryContextMenu", {
textCloseEvent
:
"
Close event...
"
,
textDestroy
:
"
Delete
"
,
textDuplicate
:
"
Duplicate
"
,
textEndBy
:
"
The selected event ends by
"
,
textNeverEnd
:
"
The selected event never ends.
"
,
textNew
:
"
New
"
,
textEnterNewDate
:
"
Please enter a
new
date:
"
,
textEnterNewDate
:
"
Please enter a
closing
date:
"
,
textSplit
:
"
Split into two
"
,
textSplitEvent
:
"
Split into two events...
"
,
textSplitMsg
:
"
The following operation will be performed:
"
+
"
<ol>
"
+
"
<li>Close the selected event.
"
+
"
<li>Duplicate the selected event with:
"
+
"
<ul>
"
+
"
<li>start date = end date of the current event + 1 day.
"
+
"
<li>end date is not defined.
"
+
"
</ul>
"
+
"
<li>Edit the duplicated event in order to modify it.
"
+
"
</ol>
"
,
textSplitMsg
:
"
The following operations will be performed:<br><br>
"
+
"
1. Close the selected event.<br>
"
+
"
2. Duplicate the selected event with:
"
+
"
<ul>
"
+
"
<li>start date = end date + 1 day.
"
+
"
<li>no end date.
"
+
"
</ul>
"
+
"
3. Edit the duplicated event.
"
,
textUpdate
:
"
Update
"
,
// private short-cut
buttonOk
:
null
,
dateField
:
null
,
rowEditor
:
null
,
splitMsg
:
null
,
window
:
null
,
// jshint strict: false
...
...
@@ -47,16 +47,14 @@ Ext.define("Event.grid.plugin.HistoryContextMenu", {
init
:
function
(
grid
)
{
var
me
=
this
,
rowEditor
=
grid
.
getPlugin
(
"
rowEditor
"
);
rowEditor
=
grid
.
getPlugin
(
"
rowEditor
"
),
panelCfg
,
formCfg
,
window
;
// protection
if
(
!
rowEditor
)
{
throw
new
Error
(
"
no grid row editor !!!
"
);
}
// alias
me
.
rowEditor
=
rowEditor
;
// the contextmenu menu
me
.
menu
=
{
items
:
[{
...
...
@@ -90,6 +88,63 @@ Ext.define("Event.grid.plugin.HistoryContextMenu", {
}]
};
// instantiate the window for close and split actions
// It contains a panel for the split message and a form to
// retrieve the closing date
panelCfg
=
{
html
:
me
.
textSplitMsg
,
itemId
:
"
splitmsg
"
,
padding
:
5
,
};
formCfg
=
{
items
:
[{
allowBlank
:
false
,
altFormats
:
""
,
fieldLabel
:
me
.
textEnterNewDate
,
format
:
"
Y-m-d
"
,
labelAlign
:
"
top
"
,
name
:
"
newEndDate
"
,
padding
:
5
,
xtype
:
"
datefield
"
}],
buttons
:
[{
// Validation is not working ?
// formBind: true,
// disabled: true,
itemId
:
"
closesplitaction
"
,
text
:
"
OK
"
},
{
text
:
"
Cancel
"
,
handler
:
function
()
{
this
.
up
(
"
window
"
).
hide
();
}
}]
};
window
=
Ext
.
create
(
"
Ext.window.Window
"
,
{
closeAction
:
"
hide
"
,
defaults
:
{
border
:
false
,
frame
:
true
,
layout
:
"
fit
"
},
items
:
[
panelCfg
,
formCfg
],
layout
:
"
form
"
,
modal
:
true
,
padding
:
0
,
plain
:
true
,
width
:
300
});
// short-cuts
me
.
buttonOk
=
window
.
down
(
"
#closesplitaction
"
);
me
.
dateField
=
window
.
down
(
"
datefield
"
);
me
.
rowEditor
=
rowEditor
;
me
.
splitMsg
=
window
.
down
(
"
#splitmsg
"
);
me
.
window
=
window
;
// initialise the base class
me
.
callParent
(
arguments
);
},
...
...
@@ -105,25 +160,22 @@ Ext.define("Event.grid.plugin.HistoryContextMenu", {
var
me
=
this
,
record
=
me
.
rowEditor
.
getSelected
(),
endDate
=
record
.
get
(
"
HistoryEnd_date
"
),
msg
=
""
;
msg
+=
(
endDate
?
me
.
textEndBy
+
endDate
+
"
.
"
:
me
.
textNeverEnd
);
msg
+=
"
<br>
"
+
me
.
textEnterNewDate
;
// ask for a new end date and update the record
Ext
.
Msg
.
prompt
(
me
.
textCloseEvent
,
msg
,
function
(
buttonId
,
newEndDate
)
{
if
(
buttonId
===
"
ok
"
)
{
record
.
set
(
"
HistoryEnd_date
"
,
newEndDate
);
}
},
null
,
false
,
endDate
);
endDate
=
record
.
get
(
"
HistoryEnd_date
"
)
||
new
Date
(),
window
=
me
.
window
;
me
.
splitMsg
.
hide
();
me
.
dateField
.
setValue
(
endDate
);
me
.
buttonOk
.
setHandler
(
function
()
{
var
newEndDate
=
me
.
dateField
.
getValue
();
newEndDate
=
Ext
.
Date
.
format
(
newEndDate
,
"
Y-m-d
"
);
record
.
set
(
"
HistoryEnd_date
"
,
newEndDate
);
me
.
window
.
hide
();
});
window
.
setTitle
(
me
.
textCloseEvent
);
window
.
show
();
},
/**
...
...
@@ -140,44 +192,39 @@ Ext.define("Event.grid.plugin.HistoryContextMenu", {
var
me
=
this
,
rowEditor
=
me
.
rowEditor
,
record
=
rowEditor
.
getSelected
(),
endDate
=
record
.
get
(
"
HistoryEnd_date
"
),
msg
=
me
.
textSplitMsg
;
msg
+=
(
endDate
?
me
.
textEndBy
+
endDate
+
"
.
"
:
me
.
textNeverEnd
);
msg
+=
"
<br>
"
+
me
.
textEnterNewDate
;
Ext
.
Msg
.
prompt
(
me
.
textSplitEvent
,
msg
,
function
(
buttonId
,
newEndDate
)
{
var
newRecord
,
startDate
;
if
(
buttonId
===
"
cancel
"
)
{
return
;
}
// close the current event
record
.
set
(
"
HistoryEnd_date
"
,
newEndDate
);
// duplicate record
startDate
=
new
Date
(
newEndDate
);
startDate
=
Ext
.
Date
.
add
(
startDate
,
Ext
.
Date
.
DAY
,
1
);
startDate
=
Ext
.
Date
.
format
(
startDate
,
"
Y-m-d
"
);
newRecord
=
record
.
copy
();
newRecord
.
set
(
"
HistoryId
"
,
null
,
{
dirty
:
false
});
newRecord
.
set
(
"
HistoryStart_date
"
,
startDate
,
{
dirty
:
false
});
newRecord
.
set
(
"
HistoryEnd_date
"
,
null
,
{
dirty
:
false
});
// edit and insert the duplicated record below the current one
rowEditor
.
setCurrentIndex
();
rowEditor
.
formPanel
.
setAction
(
'
duplicate
'
,
newRecord
);
rowEditor
.
window
.
setTitle
(
rowEditor
.
duplicateTitle
);
rowEditor
.
window
.
show
();
},
null
,
false
,
endDate
);
endDate
=
record
.
get
(
"
HistoryEnd_date
"
)
||
new
Date
(),
window
=
me
.
window
;
me
.
splitMsg
.
show
();
me
.
dateField
.
setValue
(
endDate
);
me
.
buttonOk
.
setHandler
(
function
()
{
var
newEndDate
,
newRecord
,
startDate
;
// close the current event
newEndDate
=
me
.
dateField
.
getValue
();
newEndDate
=
Ext
.
Date
.
format
(
newEndDate
,
"
Y-m-d
"
);
record
.
set
(
"
HistoryEnd_date
"
,
newEndDate
);
me
.
window
.
hide
();
// duplicate record
startDate
=
new
Date
(
newEndDate
);
startDate
=
Ext
.
Date
.
add
(
startDate
,
Ext
.
Date
.
DAY
,
1
);
startDate
=
Ext
.
Date
.
format
(
startDate
,
"
Y-m-d
"
);
newRecord
=
record
.
copy
();
newRecord
.
set
(
"
HistoryId
"
,
null
,
{
dirty
:
false
});
newRecord
.
set
(
"
HistoryStart_date
"
,
startDate
,
{
dirty
:
false
});
newRecord
.
set
(
"
HistoryEnd_date
"
,
null
,
{
dirty
:
false
});
// edit and insert the duplicated record below the current one
rowEditor
.
setCurrentIndex
();
rowEditor
.
formPanel
.
setAction
(
"
duplicate
"
,
newRecord
);
rowEditor
.
window
.
setTitle
(
rowEditor
.
duplicateTitle
);
rowEditor
.
window
.
show
();
});
window
.
setTitle
(
me
.
textSplitEvent
);
window
.
show
();
}
});
\ 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