forked from extern/egroupware
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>
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.EgwApp = void 0;
|
||||
require("jquery");
|
||||
require("jqueryui");
|
||||
require("../jsapi/egw_global");
|
||||
@ -190,6 +191,42 @@ var EgwApp = /** @class */ (function () {
|
||||
var id_app = _senders[0].id.split('::');
|
||||
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) {
|
||||
};
|
||||
/**
|
||||
|
@ -292,6 +292,47 @@ export abstract class EgwApp
|
||||
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 : [])
|
||||
{
|
||||
}
|
||||
|
@ -1214,12 +1214,18 @@ class calendar_so
|
||||
'filter'=> $filter,
|
||||
'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);
|
||||
$selects = array_merge($selects,$data['selects']);
|
||||
// create a flat array, if app implementes multiple hooks using given app-name
|
||||
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;
|
||||
case 'series':
|
||||
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;
|
||||
case 'cancel':
|
||||
default:
|
||||
|
@ -1334,7 +1334,23 @@ export class et2_calendar_event extends et2_valueWidget implements et2_IDetached
|
||||
break;
|
||||
case 'series':
|
||||
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;
|
||||
case 'cancel':
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user