forked from extern/egroupware
*Calendar - Quick add dialog now shows conflict warning instead of quietly stopping
This commit is contained in:
parent
3c9419ee1a
commit
cd76cccf8b
@ -34,6 +34,7 @@ class calendar_uiforms extends calendar_ui
|
|||||||
var $public_functions = array(
|
var $public_functions = array(
|
||||||
'freetimesearch' => True,
|
'freetimesearch' => True,
|
||||||
'ajax_add' => true,
|
'ajax_add' => true,
|
||||||
|
'ajax_conflicts' => true,
|
||||||
'edit' => true,
|
'edit' => true,
|
||||||
'process_edit' => true,
|
'process_edit' => true,
|
||||||
'export' => true,
|
'export' => true,
|
||||||
@ -1469,6 +1470,32 @@ class calendar_uiforms extends calendar_ui
|
|||||||
$this->edit();
|
$this->edit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function ajax_conflicts()
|
||||||
|
{
|
||||||
|
$participants = json_decode($_GET['participants'],true);
|
||||||
|
unset($_GET['participants']);
|
||||||
|
|
||||||
|
$content = $this->default_add_event();
|
||||||
|
|
||||||
|
// Process edit wants to see input values
|
||||||
|
$participants = array(1=> false);
|
||||||
|
$participants['cal_resources'] = '';
|
||||||
|
foreach($content['participants'] as $id => $status)
|
||||||
|
{
|
||||||
|
$quantity = $role = '';
|
||||||
|
calendar_so::split_status($status,$quantity,$role);
|
||||||
|
$participants[] = array(
|
||||||
|
'uid' => $id,
|
||||||
|
'status' => $status,
|
||||||
|
'quantity' => $quantity,
|
||||||
|
'role' => $role
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$content['participants'] = $participants;
|
||||||
|
$content['button'] = array('apply' => true);
|
||||||
|
return $this->process_edit($content);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Edit a calendar event
|
* Edit a calendar event
|
||||||
*
|
*
|
||||||
|
@ -1655,7 +1655,6 @@ app.classes.calendar = (function(){ "use strict"; return AppJS.extend(
|
|||||||
// Open dialog to use as target
|
// Open dialog to use as target
|
||||||
var add_dialog = et2_dialog.show_dialog(null, '', ' ', null, [], et2_dialog.PLAIN_MESSAGE, this.egw);
|
var add_dialog = et2_dialog.show_dialog(null, '', ' ', null, [], et2_dialog.PLAIN_MESSAGE, this.egw);
|
||||||
|
|
||||||
|
|
||||||
// Call the server, get it into the dialog
|
// Call the server, get it into the dialog
|
||||||
options = jQuery.extend({menuaction: 'calendar.calendar_uiforms.ajax_add', template: 'calendar.add'}, options);
|
options = jQuery.extend({menuaction: 'calendar.calendar_uiforms.ajax_add', template: 'calendar.add'}, options);
|
||||||
this.egw.json(
|
this.egw.json(
|
||||||
@ -1699,16 +1698,36 @@ app.classes.calendar = (function(){ "use strict"; return AppJS.extend(
|
|||||||
// Wait a bit to make sure etemplate button finishes processing, or it will error
|
// Wait a bit to make sure etemplate button finishes processing, or it will error
|
||||||
window.setTimeout(function() {
|
window.setTimeout(function() {
|
||||||
var template = etemplate2.getById('calendar-add');
|
var template = etemplate2.getById('calendar-add');
|
||||||
if(template)
|
if(template && template.name === 'calendar.add')
|
||||||
{
|
{
|
||||||
template.clear();
|
template.clear();
|
||||||
|
this.dialog.destroy();
|
||||||
|
delete app.calendar.quick_add;
|
||||||
}
|
}
|
||||||
this.dialog.destroy();
|
else if (template)
|
||||||
if(this.event)
|
|
||||||
{
|
{
|
||||||
this.event.destroy();
|
// Open conflicts
|
||||||
|
var data = jQuery.extend({},template.widgetContainer.getArrayMgr('content').data, app.calendar.quick_add);
|
||||||
|
|
||||||
|
egw.openPopup(
|
||||||
|
egw.link(
|
||||||
|
'/index.php?menuaction=calendar.calendar_uiforms.ajax_conflicts',
|
||||||
|
data
|
||||||
|
),
|
||||||
|
850, 300,
|
||||||
|
'conflicts', 'calendar'
|
||||||
|
);
|
||||||
|
|
||||||
|
delete app.calendar.quick_add;
|
||||||
|
|
||||||
|
// Close the JS dialog
|
||||||
|
this.dialog.destroy();
|
||||||
|
|
||||||
|
// Do not submit this etemplate
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}.bind({dialog: add_dialog, event: event}), 100);
|
|
||||||
|
}.bind({dialog: add_dialog, event: ev}), 1000);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -1722,6 +1741,7 @@ app.classes.calendar = (function(){ "use strict"; return AppJS.extend(
|
|||||||
*/
|
*/
|
||||||
add_dialog_save: function(event, widget)
|
add_dialog_save: function(event, widget)
|
||||||
{
|
{
|
||||||
|
this.quick_add = widget.getInstanceManager().getValues(widget.getRoot());
|
||||||
// Close the dialog
|
// Close the dialog
|
||||||
jQuery(widget.getInstanceManager().DOMContainer.parentNode).dialog('close');
|
jQuery(widget.getInstanceManager().DOMContainer.parentNode).dialog('close');
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user