mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 14:41:29 +01:00
WIP to display calls in calendar
This commit is contained in:
parent
f115c63f8a
commit
cf9e3ae4e1
@ -11,6 +11,7 @@
|
|||||||
* @author Nathan Gray <ng@groupware.org>
|
* @author Nathan Gray <ng@groupware.org>
|
||||||
*/
|
*/
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.EgwApp = void 0;
|
||||||
require("jquery");
|
require("jquery");
|
||||||
require("jqueryui");
|
require("jqueryui");
|
||||||
require("../jsapi/egw_global");
|
require("../jsapi/egw_global");
|
||||||
@ -190,6 +191,42 @@ var EgwApp = /** @class */ (function () {
|
|||||||
var id_app = _senders[0].id.split('::');
|
var id_app = _senders[0].id.split('::');
|
||||||
egw.open(id_app[1], this.appname);
|
egw.open(id_app[1], this.appname);
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* Open a CRM view for a contact
|
||||||
|
*
|
||||||
|
* @param _action
|
||||||
|
* @param _senders
|
||||||
|
* @param _contact_id default: use contact_id from data of _senders[0].id
|
||||||
|
*/
|
||||||
|
EgwApp.prototype.openCRMview = function (_action, _senders) {
|
||||||
|
var contact_id = _senders;
|
||||||
|
if (typeof _senders === 'object') {
|
||||||
|
var data = egw.dataGetUIDdata(_senders[0].id);
|
||||||
|
contact_id = data.data.contact_id;
|
||||||
|
}
|
||||||
|
if (typeof contact_id !== 'undefined') {
|
||||||
|
var crm_list_1 = egw.preference('crm_list', 'addressbook');
|
||||||
|
if (!crm_list_1 || crm_list_1 === '~edit~')
|
||||||
|
crm_list_1 = 'infolog';
|
||||||
|
var open_1 = function (_title) {
|
||||||
|
var title = _title || this.egw.link_title('addressbook', contact_id, open_1);
|
||||||
|
if (title) {
|
||||||
|
this.egw.openTab(contact_id, 'addressbook', 'view', {
|
||||||
|
crm_list: crm_list_1
|
||||||
|
}, {
|
||||||
|
displayName: title,
|
||||||
|
icon: this.egw.link('/api/avatar.php', {
|
||||||
|
contact_id: contact_id,
|
||||||
|
etag: (new Date).valueOf() / 86400 | 0 // cache for a day, better then no invalidation
|
||||||
|
}),
|
||||||
|
refreshCallback: 'app.addressbook.view_refresh',
|
||||||
|
id: contact_id + '-' + crm_list_1
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}.bind(this);
|
||||||
|
open_1();
|
||||||
|
}
|
||||||
|
};
|
||||||
EgwApp.prototype._do_action = function (action_id, selected) {
|
EgwApp.prototype._do_action = function (action_id, selected) {
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
|
@ -292,6 +292,47 @@ export abstract class EgwApp
|
|||||||
egw.open(id_app[1], this.appname);
|
egw.open(id_app[1], this.appname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open a CRM view for a contact
|
||||||
|
*
|
||||||
|
* @param _action
|
||||||
|
* @param _senders
|
||||||
|
* @param _contact_id default: use contact_id from data of _senders[0].id
|
||||||
|
*/
|
||||||
|
openCRMview(_action, _senders)
|
||||||
|
{
|
||||||
|
let contact_id = _senders;
|
||||||
|
if (typeof _senders === 'object')
|
||||||
|
{
|
||||||
|
let data = egw.dataGetUIDdata(_senders[0].id);
|
||||||
|
contact_id = data.data.contact_id;
|
||||||
|
}
|
||||||
|
if (typeof contact_id !== 'undefined')
|
||||||
|
{
|
||||||
|
let crm_list = egw.preference('crm_list', 'addressbook');
|
||||||
|
if (!crm_list || crm_list === '~edit~') crm_list = 'infolog';
|
||||||
|
let open = function(_title)
|
||||||
|
{
|
||||||
|
let title = _title || this.egw.link_title('addressbook', contact_id, open);
|
||||||
|
if (title)
|
||||||
|
{
|
||||||
|
this.egw.openTab(contact_id,'addressbook', 'view', {
|
||||||
|
crm_list: crm_list
|
||||||
|
}, {
|
||||||
|
displayName: title,
|
||||||
|
icon: this.egw.link('/api/avatar.php', {
|
||||||
|
contact_id: contact_id,
|
||||||
|
etag: (new Date).valueOf()/86400|0 // cache for a day, better then no invalidation
|
||||||
|
}),
|
||||||
|
refreshCallback: 'app.addressbook.view_refresh',
|
||||||
|
id: contact_id + '-'+crm_list
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}.bind(this);
|
||||||
|
open();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_do_action(action_id : string, selected : [])
|
_do_action(action_id : string, selected : [])
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -1214,12 +1214,18 @@ class calendar_so
|
|||||||
'filter'=> $filter,
|
'filter'=> $filter,
|
||||||
'query' => $query,
|
'query' => $query,
|
||||||
));
|
));
|
||||||
foreach(self::$integration_data as $data)
|
foreach(self::$integration_data as $app => $data)
|
||||||
{
|
{
|
||||||
if (is_array($data['selects']))
|
foreach(isset($data[1]) ? $data : [$data] as $key => $data)
|
||||||
{
|
{
|
||||||
//echo $app; _debug_array($data);
|
// create a flat array, if app implementes multiple hooks using given app-name
|
||||||
$selects = array_merge($selects,$data['selects']);
|
self::$integration_data[$data['selects'][0]['app']] = $data;
|
||||||
|
|
||||||
|
if (is_array($data['selects']))
|
||||||
|
{
|
||||||
|
//echo $app; _debug_array($data);
|
||||||
|
$selects = array_merge($selects,$data['selects']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1057,7 +1057,20 @@ var et2_calendar_event = /** @class */ (function (_super) {
|
|||||||
break;
|
break;
|
||||||
case 'series':
|
case 'series':
|
||||||
case 'single':
|
case 'single':
|
||||||
egw.open(edit_id, event_data.app || 'calendar', 'edit', extra_params);
|
// ToDo: find a nicer way to open CRM view for calls
|
||||||
|
if (event_data.app === 'stylite') {
|
||||||
|
var contact_id = void 0;
|
||||||
|
for (var uid in event_data.participants) {
|
||||||
|
if (typeof uid === 'string' && uid[0] === 'c') {
|
||||||
|
contact_id = parseInt(uid.substr(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (contact_id)
|
||||||
|
app.calendar.openCRMview({}, contact_id);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
egw.open(edit_id, event_data.app || 'calendar', 'edit', extra_params);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'cancel':
|
case 'cancel':
|
||||||
default:
|
default:
|
||||||
|
@ -1334,7 +1334,23 @@ export class et2_calendar_event extends et2_valueWidget implements et2_IDetached
|
|||||||
break;
|
break;
|
||||||
case 'series':
|
case 'series':
|
||||||
case 'single':
|
case 'single':
|
||||||
egw.open(edit_id, event_data.app||'calendar', 'edit', extra_params);
|
// ToDo: find a nicer way to open CRM view for calls
|
||||||
|
if (event_data.app === 'stylite')
|
||||||
|
{
|
||||||
|
let contact_id;
|
||||||
|
for(let uid in event_data.participants)
|
||||||
|
{
|
||||||
|
if (typeof uid === 'string' && uid[0] === 'c')
|
||||||
|
{
|
||||||
|
contact_id = parseInt(uid.substr(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (contact_id) app.calendar.openCRMview({}, contact_id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
egw.open(edit_id, event_data.app||'calendar', 'edit', extra_params);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'cancel':
|
case 'cancel':
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user