forked from extern/egroupware
Implement addressbook douplicates contact confirm dialog with new et2_dialog and make the conflicts contact popup selectable
This commit is contained in:
parent
5e2d655d40
commit
acd426c8ee
@ -190,14 +190,79 @@ app.classes.addressbook = AppJS.extend(
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
check_value: function(input, own_id)
|
/**
|
||||||
|
* Callback function to create confirm dialog for douplicates contacts
|
||||||
|
*
|
||||||
|
* @param {object} _data includes douplicats contacts information
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
_confirmdialog_callback: function(_data)
|
||||||
|
{
|
||||||
|
var confirmdialog = function(_title, _value, _buttons, _egw_or_appname){
|
||||||
|
|
||||||
|
return et2_createWidget("dialog", {
|
||||||
|
callback: function(_buttons, _value) {
|
||||||
|
if (_buttons == et2_dialog.OK_BUTTON)
|
||||||
|
{
|
||||||
|
var id = '';
|
||||||
|
var content = this.template.widgetContainer.getArrayMgr('content').data;
|
||||||
|
for (var row in _value.grid)
|
||||||
|
{
|
||||||
|
if (_value.grid[row].confirm == "true" && typeof content.grid !='undefined')
|
||||||
|
{
|
||||||
|
id = this.options.value.content.grid[row].confirm;
|
||||||
|
egw.open(id, 'addressbook');
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
title: _title||egw.lang('Input required'),
|
||||||
|
buttons: _buttons||et2_dialog.BUTTONS_OK_CANCEL,
|
||||||
|
value: {
|
||||||
|
content: {
|
||||||
|
grid: _value
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
template: egw.webserverUrl+'/addressbook/templates/default/dupconfirmdialog.xet',
|
||||||
|
|
||||||
|
}, et2_dialog._create_parent(_egw_or_appname))};
|
||||||
|
|
||||||
|
if (_data.msg && _data.doublicates)
|
||||||
|
{
|
||||||
|
|
||||||
|
var content = [];
|
||||||
|
|
||||||
|
for(var id in _data.doublicates)
|
||||||
|
{
|
||||||
|
content.push({"confirm":id,"name":_data.doublicates[id]});
|
||||||
|
}
|
||||||
|
confirmdialog('test',content,et2_dialog.BUTTONs_OK_CANCEL);
|
||||||
|
}
|
||||||
|
if (typeof _data.fileas_options == 'object')
|
||||||
|
{
|
||||||
|
var selbox = {};
|
||||||
|
(template && (selbox = template.widgetContainer.getWidgetById('fileas_type')))
|
||||||
|
{
|
||||||
|
selbox.set_select_options(_data.fileas_sel_options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {widget} widget widget
|
||||||
|
* @param {string} own_id Current AB id
|
||||||
|
*/
|
||||||
|
check_value: function(widget, own_id)
|
||||||
{
|
{
|
||||||
if(typeof etemplate2 != 'undefined') {
|
if(typeof etemplate2 != 'undefined') {
|
||||||
var template = etemplate2.getByApplication('addressbook')[0];
|
var template = etemplate2.getByApplication('addressbook')[0];
|
||||||
values = template.getValues(template.widgetContainer);
|
var values = template.getValues(template.widgetContainer);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (input.name.match(/n_/))
|
if (widget.id.match(/n_/))
|
||||||
{
|
{
|
||||||
var value = '';
|
var value = '';
|
||||||
if (values.n_prefix) value += values.n_prefix+" ";
|
if (values.n_prefix) value += values.n_prefix+" ";
|
||||||
@ -206,35 +271,11 @@ app.classes.addressbook = AppJS.extend(
|
|||||||
if (values.n_family) value += values.n_family+" ";
|
if (values.n_family) value += values.n_family+" ";
|
||||||
if (values.n_suffix) value += values.n_suffix;
|
if (values.n_suffix) value += values.n_suffix;
|
||||||
|
|
||||||
var name = document.getElementById("exec[n_fn]");
|
var name = template.widgetContainer.getWidgetById("n_fn");
|
||||||
if(name == null && template)
|
if (typeof name != 'undefined') name.set_value(value);
|
||||||
{
|
|
||||||
name = template.widgetContainer.getWidgetById('n_fn');
|
|
||||||
name.set_value(value);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
name.value = value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
var request = new egw_json_request ('addressbook.addressbook_ui.ajax_check_values', [values, input.name, own_id])
|
|
||||||
request.sendRequest(true, function(data) {
|
egw.json('addressbook.addressbook_ui.ajax_check_values', [values, widget.id, own_id],this._confirmdialog_callback,this,true,this).sendRequest();
|
||||||
if (data.msg && confirm(data.msg))
|
|
||||||
{
|
|
||||||
for(var id in data.doublicates)
|
|
||||||
{
|
|
||||||
egw.open(id, 'addressbook');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (typeof data.fileas_options == 'object')
|
|
||||||
{
|
|
||||||
var selbox = {};
|
|
||||||
(template && (selbox = template.widgetContainer.getWidgetById('fileas_type')))
|
|
||||||
{
|
|
||||||
selbox.set_select_options(data.fileas_sel_options);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
add_whole_list: function(list)
|
add_whole_list: function(list)
|
||||||
|
Loading…
Reference in New Issue
Block a user