fixing a couple more imports to get addressbook list show up

This commit is contained in:
Ralf Becker 2021-06-09 11:11:34 +02:00
parent c440dffa54
commit 38cb855017
14 changed files with 320 additions and 375 deletions

View File

@ -1,75 +1,55 @@
"use strict";
/** /**
* EGroupware - Addressbook - Javascript UI * EGroupware - Addressbook - Javascript UI
* *
* @link: https://www.egroupware.org * @link: https://www.egroupware.org
* @package addressbook * @package addressbook
* @author Hadi Nategh <hn-AT-stylite.de> * @author Hadi Nategh <hn-AT-stylite.de>
* @copyright (c) 2008-13 by Ralf Becker <RalfBecker-AT-outdoor-training.de> * @author Ralf Becker <rb-AT-egroupware.org>
* @copyright (c) 2008-21 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
*/ */
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.CRMView = void 0;
/*egw:uses /*egw:uses
/api/js/jsapi/egw_app.js /api/js/jsapi/egw_app.js
*/ */
require("jquery"); import 'jquery';
require("jqueryui"); import 'jqueryui';
require("../jsapi/egw_global"); import { EgwApp } from '../../api/js/jsapi/egw_app';
require("../etemplate/et2_types"); import { et2_nextmatch } from "../../api/js/etemplate/et2_extension_nextmatch";
var egw_app_1 = require("../../api/js/jsapi/egw_app");
var et2_extension_nextmatch_1 = require("../../api/js/etemplate/et2_extension_nextmatch");
/** /**
* UI for Addressbook CRM view * UI for Addressbook CRM view
* *
*/ */
var CRMView = /** @class */ (function (_super) { export class CRMView extends EgwApp {
__extends(CRMView, _super);
/** /**
* Constructor * Constructor
* *
* CRM is part of addressbook * CRM is part of addressbook
*/ */
function CRMView() { constructor() {
var _this =
// call parent // call parent
_super.call(this, 'addressbook') || this; super('addressbook');
// List ID // List ID
_this.list_id = ""; this.list_id = "";
// Reference to the list // Reference to the list
_this.nm = null; this.nm = null;
// Which addressbook contact id(s) we are showing entries for // Which addressbook contact id(s) we are showing entries for
_this.contact_ids = []; this.contact_ids = [];
// Private js for the list // Private js for the list
_this.app_obj = null; this.app_obj = null;
// Push data key(s) to check for our contact ID in the entry's ACL data // Push data key(s) to check for our contact ID in the entry's ACL data
_this.push_contact_ids = ["contact_id"]; this.push_contact_ids = ["contact_id"];
return _this;
} }
/** /**
* Destructor * Destructor
*/ */
CRMView.prototype.destroy = function (_app) { destroy(_app) {
this.nm = null; this.nm = null;
if (this.app_obj != null) { if (this.app_obj != null) {
this.app_obj.destroy(_app); this.app_obj.destroy(_app);
} }
// call parent // call parent
_super.prototype.destroy.call(this, _app); super.destroy(_app);
}; }
/** /**
* A template from an app is ready, looks like it might be a CRM view. * A template from an app is ready, looks like it might be a CRM view.
* Check it, get CRM ready, and bind accordingly * Check it, get CRM ready, and bind accordingly
@ -77,13 +57,13 @@ var CRMView = /** @class */ (function (_super) {
* @param et2 * @param et2
* @param appname * @param appname
*/ */
CRMView.view_ready = function (et2, app_obj) { static view_ready(et2, app_obj) {
// Check to see if the template is for a CRM view // Check to see if the template is for a CRM view
if (et2.app == app_obj.appname) { if (et2.app == app_obj.appname) {
return CRMView.reconnect(app_obj); return CRMView.reconnect(app_obj);
} }
// Make sure object is there, etemplate2 will pick it up and call our et2_ready // Make sure object is there, etemplate2 will pick it up and call our et2_ready
var crm = undefined; let crm = undefined;
// @ts-ignore // @ts-ignore
if (typeof et2.app_obj.crm == "undefined" && app.classes.crm) { if (typeof et2.app_obj.crm == "undefined" && app.classes.crm) {
// @ts-ignore // @ts-ignore
@ -95,7 +75,7 @@ var CRMView = /** @class */ (function (_super) {
} }
// We can set this now // We can set this now
crm.set_view_obj(app_obj); crm.set_view_obj(app_obj);
}; }
/** /**
* This function is called when the etemplate2 object is loaded * This function is called when the etemplate2 object is loaded
* and ready. The associated app [is supposed to have] already called its own et2_ready(), * and ready. The associated app [is supposed to have] already called its own et2_ready(),
@ -104,25 +84,24 @@ var CRMView = /** @class */ (function (_super) {
* @param {etemplate2} et2 newly ready object * @param {etemplate2} et2 newly ready object
* @param {string} name Template name * @param {string} name Template name
*/ */
CRMView.prototype.et2_ready = function (et2, name) { et2_ready(et2, name) {
// call parent // call parent
_super.prototype.et2_ready.call(this, et2, name); super.et2_ready(et2, name);
}; }
/** /**
* Our CRM has become disconnected from its list, probably because something submitted. * Our CRM has become disconnected from its list, probably because something submitted.
* Find it, and get things working again. * Find it, and get things working again.
* *
* @param app_obj * @param app_obj
*/ */
CRMView.reconnect = function (app_obj) { static reconnect(app_obj) {
var _a; var _a;
// Check // Check
var contact_ids = app_obj.et2.getArrayMgr("content").getEntry("action_id") || ""; let contact_ids = app_obj.et2.getArrayMgr("content").getEntry("action_id") || "";
debugger; debugger;
if (!contact_ids) if (!contact_ids)
return; return;
for (var _i = 0, _b = egw_app_1.EgwApp._instances; _i < _b.length; _i++) { for (let existing_app of EgwApp._instances) {
var existing_app = _b[_i];
if (existing_app instanceof CRMView && existing_app.list_id == app_obj.et2.getInstanceManager().uniqueId) { if (existing_app instanceof CRMView && existing_app.list_id == app_obj.et2.getInstanceManager().uniqueId) {
// List was reloaded. Rebind. // List was reloaded. Rebind.
existing_app.app_obj.destroy(existing_app.app_obj.appname); existing_app.app_obj.destroy(existing_app.app_obj.appname);
@ -136,12 +115,12 @@ var CRMView = /** @class */ (function (_super) {
return existing_app.set_view_obj(app_obj); return existing_app.set_view_obj(app_obj);
} }
} }
}; }
/** /**
* Set the associated private app JS * Set the associated private app JS
* We try and pull the needed info here * We try and pull the needed info here
*/ */
CRMView.prototype.set_view_obj = function (app_obj) { set_view_obj(app_obj) {
this.app_obj = app_obj; this.app_obj = app_obj;
// Make sure object is there, etemplate2 will pick it up and call our et2_ready // Make sure object is there, etemplate2 will pick it up and call our et2_ready
app_obj.et2.getInstanceManager().app_obj.crm = this; app_obj.et2.getInstanceManager().app_obj.crm = this;
@ -153,24 +132,24 @@ var CRMView = /** @class */ (function (_super) {
// For easy reference later // For easy reference later
this.list_id = app_obj.et2.getInstanceManager().uniqueId; this.list_id = app_obj.et2.getInstanceManager().uniqueId;
this.nm = app_obj.et2.getDOMWidgetById('nm'); this.nm = app_obj.et2.getDOMWidgetById('nm');
var contact_ids = app_obj.et2.getArrayMgr("content").getEntry("action_id") || ""; let contact_ids = app_obj.et2.getArrayMgr("content").getEntry("action_id") || "";
if (typeof contact_ids == "string") { if (typeof contact_ids == "string") {
contact_ids = contact_ids.split(","); contact_ids = contact_ids.split(",");
} }
this.set_contact_ids(contact_ids); this.set_contact_ids(contact_ids);
// Override the push handler // Override the push handler
this._override_push(app_obj); this._override_push(app_obj);
}; }
/** /**
* Set or change which contact IDs we are showing entries for * Set or change which contact IDs we are showing entries for
*/ */
CRMView.prototype.set_contact_ids = function (ids) { set_contact_ids(ids) {
this.contact_ids = ids; this.contact_ids = ids;
var filter = { action_id: this.contact_ids }; let filter = { action_id: this.contact_ids };
if (this.nm !== null) { if (this.nm !== null) {
this.nm.applyFilters(filter); this.nm.applyFilters(filter);
} }
}; }
/** /**
* Handle a push notification about entry changes from the websocket * Handle a push notification about entry changes from the websocket
* *
@ -186,7 +165,7 @@ var CRMView = /** @class */ (function (_super) {
* @param {object|null} pushData.acl Extra data for determining relevance. eg: owner or responsible to decide if update is necessary * @param {object|null} pushData.acl Extra data for determining relevance. eg: owner or responsible to decide if update is necessary
* @param {number} pushData.account_id User that caused the notification * @param {number} pushData.account_id User that caused the notification
*/ */
CRMView.prototype.push = function (pushData) { push(pushData) {
if (pushData.app !== this.app_obj.appname || !this.nm) if (pushData.app !== this.app_obj.appname || !this.nm)
return; return;
// If we know about it and it's an update, just update. // If we know about it and it's an update, just update.
@ -194,13 +173,13 @@ var CRMView = /** @class */ (function (_super) {
// (server responds then with null / no entry causing the entry to disappear) // (server responds then with null / no entry causing the entry to disappear)
if (pushData.type !== "add" && this.egw.dataHasUID(this.uid(pushData))) { if (pushData.type !== "add" && this.egw.dataHasUID(this.uid(pushData))) {
// Check to see if it's in OUR nextmatch // Check to see if it's in OUR nextmatch
var uid_1 = this.uid(pushData); let uid = this.uid(pushData);
var known = Object.values(this.nm.controller._indexMap).filter(function (row) { return row.uid == uid_1; }); let known = Object.values(this.nm.controller._indexMap).filter(function (row) { return row.uid == uid; });
var type = pushData.type; let type = pushData.type;
if (known && known.length > 0) { if (known && known.length > 0) {
if (!this.id_check(pushData.acl)) { if (!this.id_check(pushData.acl)) {
// Was ours, not anymore, and we know this now - no server needed. Just remove from nm. // Was ours, not anymore, and we know this now - no server needed. Just remove from nm.
type = et2_extension_nextmatch_1.et2_nextmatch.DELETE; type = et2_nextmatch.DELETE;
} }
return this.nm.refresh(pushData.id, type); return this.nm.refresh(pushData.id, type);
} }
@ -208,38 +187,34 @@ var CRMView = /** @class */ (function (_super) {
if (this.id_check(pushData.acl)) { if (this.id_check(pushData.acl)) {
return this._app_obj_push(pushData); return this._app_obj_push(pushData);
} }
}; }
/** /**
* Check to see if the given entry is "ours" * Check to see if the given entry is "ours"
* *
* @param entry * @param entry
*/ */
CRMView.prototype.id_check = function (entry) { id_check(entry) {
var _this = this;
// Check if it's for one of our contacts // Check if it's for one of our contacts
for (var _i = 0, _a = this.push_contact_ids; _i < _a.length; _i++) { for (let field of this.push_contact_ids) {
var field = _a[_i];
if (entry && entry[field]) { if (entry && entry[field]) {
var val = typeof entry[field] == "string" ? [entry[field]] : entry[field]; let val = typeof entry[field] == "string" ? [entry[field]] : entry[field];
if (val.filter(function (v) { return _this.contact_ids.indexOf(v) >= 0; }).length > 0) { if (val.filter(v => this.contact_ids.indexOf(v) >= 0).length > 0) {
return true; return true;
} }
} }
} }
return false; return false;
}; }
/** /**
* Override the list's push handler to do nothing, we'll call it if we want it. * Override the list's push handler to do nothing, we'll call it if we want it.
* *
* @param app_obj * @param app_obj
* @private * @private
*/ */
CRMView.prototype._override_push = function (app_obj) { _override_push(app_obj) {
this._app_obj_push = app_obj.push.bind(app_obj); this._app_obj_push = app_obj.push.bind(app_obj);
app_obj.push = function (pushData) { return false; }; app_obj.push = function (pushData) { return false; };
}; }
return CRMView; }
}(egw_app_1.EgwApp));
exports.CRMView = CRMView;
app.classes.crm = CRMView; app.classes.crm = CRMView;
//# sourceMappingURL=CRM.js.map //# sourceMappingURL=CRM.js.map

View File

@ -4,7 +4,8 @@
* @link: https://www.egroupware.org * @link: https://www.egroupware.org
* @package addressbook * @package addressbook
* @author Hadi Nategh <hn-AT-stylite.de> * @author Hadi Nategh <hn-AT-stylite.de>
* @copyright (c) 2008-13 by Ralf Becker <RalfBecker-AT-outdoor-training.de> * @author Ralf Becker <rb-AT-egroupware.org>
* @copyright (c) 2008-21 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
*/ */
@ -14,8 +15,6 @@
import 'jquery'; import 'jquery';
import 'jqueryui'; import 'jqueryui';
import '../jsapi/egw_global';
import '../etemplate/et2_types';
import {EgwApp, PushData} from '../../api/js/jsapi/egw_app'; import {EgwApp, PushData} from '../../api/js/jsapi/egw_app';
import {etemplate2} from "../../api/js/etemplate/etemplate2"; import {etemplate2} from "../../api/js/etemplate/etemplate2";
@ -278,5 +277,4 @@ export class CRMView extends EgwApp
} }
} }
app.classes.crm = CRMView; app.classes.crm = CRMView;

View File

@ -1,64 +1,46 @@
"use strict";
/** /**
* EGroupware - Addressbook - Javascript UI * EGroupware - Addressbook - Javascript UI
* *
* @link: https://www.egroupware.org * @link: https://www.egroupware.org
* @package addressbook * @package addressbook
* @author Hadi Nategh <hn-AT-stylite.de> * @author Hadi Nategh <hn-AT-egroupware.org>
* @copyright (c) 2008-13 by Ralf Becker <RalfBecker-AT-outdoor-training.de> * @author Ralf Becker <rb-AT-egroupware.org>
* @copyright (c) 2008-21 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
*/ */
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
/*egw:uses /*egw:uses
/api/js/jsapi/egw_app.js /api/js/jsapi/egw_app.js
*/ */
require("jquery"); import 'jquery';
require("jqueryui"); import 'jqueryui';
require("../jsapi/egw_global"); import { EgwApp } from '../../api/js/jsapi/egw_app';
require("../etemplate/et2_types"); import { etemplate2 } from "../../api/js/etemplate/etemplate2";
var egw_app_1 = require("../../api/js/jsapi/egw_app"); import { et2_dialog } from "../../api/js/etemplate/et2_widget_dialog";
var etemplate2_1 = require("../../api/js/etemplate/etemplate2");
/** /**
* UI for Addressbook * UI for Addressbook
* *
* @augments AppJS * @augments AppJS
*/ */
var AddressbookApp = /** @class */ (function (_super) { class AddressbookApp extends EgwApp {
__extends(AddressbookApp, _super);
/** /**
* Constructor * Constructor
* *
* @memberOf app.addressbook * @memberOf app.addressbook
*/ */
function AddressbookApp() { constructor() {
var _this =
// call parent // call parent
_super.call(this, 'addressbook') || this; super('addressbook');
// These fields help with push // These fields help with push
_this.push_grant_fields = ["owner", "shared_with"]; this.push_grant_fields = ["owner", "shared_with"];
_this.push_filter_fields = ["tid", "owner", "cat_id"]; this.push_filter_fields = ["tid", "owner", "cat_id"];
return _this;
} }
/** /**
* Destructor * Destructor
*/ */
AddressbookApp.prototype.destroy = function (_app) { destroy(_app) {
// call parent // call parent
_super.prototype.destroy.call(this, _app); super.destroy(_app);
}; }
/** /**
* This function is called when the etemplate2 object is loaded * This function is called when the etemplate2 object is loaded
* and ready. If you must store a reference to the et2 object, * and ready. If you must store a reference to the et2 object,
@ -67,14 +49,14 @@ var AddressbookApp = /** @class */ (function (_super) {
* @param {etemplate2} et2 newly ready object * @param {etemplate2} et2 newly ready object
* @param {string} name * @param {string} name
*/ */
AddressbookApp.prototype.et2_ready = function (et2, name) { et2_ready(et2, name) {
// r49769 let's CRM view run under currentapp == "addressbook", which causes // r49769 let's CRM view run under currentapp == "addressbook", which causes
// app.addressbook.et2_ready called before app.infolog.et2_ready and therefore // app.addressbook.et2_ready called before app.infolog.et2_ready and therefore
// app.addressbook.et2 would point to infolog template, if we not stop here // app.addressbook.et2 would point to infolog template, if we not stop here
if (name.match(/^infolog|tracker\./)) if (name.match(/^infolog|tracker\./))
return; return;
// call parent // call parent
_super.prototype.et2_ready.call(this, et2, name); super.et2_ready(et2, name);
switch (name) { switch (name) {
case 'addressbook.edit': case 'addressbook.edit':
var content = this.et2.getArrayMgr('content').data; var content = this.et2.getArrayMgr('content').data;
@ -102,7 +84,7 @@ var AddressbookApp = /** @class */ (function (_super) {
if (app.addressbook) if (app.addressbook)
app.addressbook.show_custom_country(this); app.addressbook.show_custom_country(this);
}); });
}; }
/** /**
* Observer method receives update notifications from all applications * Observer method receives update notifications from all applications
* *
@ -125,13 +107,13 @@ var AddressbookApp = /** @class */ (function (_super) {
* or null, if not triggered on server-side, which adds that info * or null, if not triggered on server-side, which adds that info
* @return {false|*} false to stop regular refresh, thought all observers are run * @return {false|*} false to stop regular refresh, thought all observers are run
*/ */
AddressbookApp.prototype.observer = function (_msg, _app, _id, _type, _msg_type, _links) { observer(_msg, _app, _id, _type, _msg_type, _links) {
// Edit to the current entry // Edit to the current entry
var state = this.getState(); var state = this.getState();
if (_app === 'addressbook' && state && state.type && state.type === 'view' && state.id === _id) { if (_app === 'addressbook' && state && state.type && state.type === 'view' && state.id === _id) {
var content = egw.dataGetUIDdata('addressbook::' + _id); var content = egw.dataGetUIDdata('addressbook::' + _id);
if (content.data) { if (content.data) {
var view = etemplate2_1.etemplate2.getById('addressbook-view'); var view = etemplate2.getById('addressbook-view');
if (view) { if (view) {
view.widgetContainer._children[0].set_value({ content: content.data }); view.widgetContainer._children[0].set_value({ content: content.data });
} }
@ -152,7 +134,7 @@ var AddressbookApp = /** @class */ (function (_super) {
else if (!content) { else if (!content) {
// No data on the event, we'll have to reload if calendar column is visible // No data on the event, we'll have to reload if calendar column is visible
// to get the updated information // to get the updated information
var nm = etemplate2_1.etemplate2.getById('addressbook-index').widgetContainer.getWidgetById('nm'); var nm = etemplate2.getById('addressbook-index').widgetContainer.getWidgetById('nm');
var pref = nm ? nm._getPreferences() : false; var pref = nm ? nm._getPreferences() : false;
if (pref && pref.visible.indexOf('calendar_calendar') > -1) { if (pref && pref.visible.indexOf('calendar_calendar') > -1) {
nm.refresh(null, 'update'); nm.refresh(null, 'update');
@ -160,7 +142,7 @@ var AddressbookApp = /** @class */ (function (_super) {
} }
} }
return true; return true;
}; }
/** /**
* Handle a push notification about entry changes from the websocket * Handle a push notification about entry changes from the websocket
* *
@ -179,10 +161,10 @@ var AddressbookApp = /** @class */ (function (_super) {
* @param {object|null} pushData.acl Extra data for determining relevance. eg: owner or responsible to decide if update is necessary * @param {object|null} pushData.acl Extra data for determining relevance. eg: owner or responsible to decide if update is necessary
* @param {number} pushData.account_id User that caused the notification * @param {number} pushData.account_id User that caused the notification
*/ */
AddressbookApp.prototype.push = function (pushData) { push(pushData) {
var _a, _b, _c, _d, _e; var _a, _b, _c, _d, _e;
// show missed calls on their CRM view // show missed calls on their CRM view
var et2_id = (_a = this.et2) === null || _a === void 0 ? void 0 : _a.getInstanceManager().uniqueId; let et2_id = (_a = this.et2) === null || _a === void 0 ? void 0 : _a.getInstanceManager().uniqueId;
if (pushData.app === 'stylite' && pushData.acl.missed && if (pushData.app === 'stylite' && pushData.acl.missed &&
et2_id && et2_id.substr(0, 17) === 'addressbook-view-' && et2_id && et2_id.substr(0, 17) === 'addressbook-view-' &&
pushData.acl.account_id == this.egw.user('account_id') && pushData.acl.account_id == this.egw.user('account_id') &&
@ -194,14 +176,14 @@ var AddressbookApp = /** @class */ (function (_super) {
return; return;
// Update the contact list // Update the contact list
if (this.et2 && this.et2.getInstanceManager().name == "addressbook.index") { if (this.et2 && this.et2.getInstanceManager().name == "addressbook.index") {
return _super.prototype.push.call(this, pushData); return super.push(pushData);
} }
// Update CRM view (sidebox part), if open // Update CRM view (sidebox part), if open
var contact_id = ((_e = (_d = this.et2) === null || _d === void 0 ? void 0 : _d.getArrayMgr("content")) === null || _e === void 0 ? void 0 : _e.getEntry("id")) || 0; let contact_id = ((_e = (_d = this.et2) === null || _d === void 0 ? void 0 : _d.getArrayMgr("content")) === null || _e === void 0 ? void 0 : _e.getEntry("id")) || 0;
if (this.et2 && contact_id && contact_id == pushData.id) { if (this.et2 && contact_id && contact_id == pushData.id) {
this.et2.getInstanceManager().submit(); this.et2.getInstanceManager().submit();
} }
}; }
/** /**
* Change handler for contact / org selectbox * Change handler for contact / org selectbox
* *
@ -209,9 +191,9 @@ var AddressbookApp = /** @class */ (function (_super) {
* @param {et2_extension_nextmatch} nm * @param {et2_extension_nextmatch} nm
* @param {et2_selectbox} widget * @param {et2_selectbox} widget
*/ */
AddressbookApp.prototype.change_grouped_view = function (node, nm, widget) { change_grouped_view(node, nm, widget) {
var template = "addressbook.index.rows"; let template = "addressbook.index.rows";
var value = {}; let value = {};
if (nm.activeFilters.sitemgr_display) { if (nm.activeFilters.sitemgr_display) {
template = nm.activeFilters.sitemgr_display + '.rows'; template = nm.activeFilters.sitemgr_display + '.rows';
} }
@ -225,7 +207,7 @@ var AddressbookApp = /** @class */ (function (_super) {
template = widget.getValue().indexOf('duplicate') === 0 ? template = widget.getValue().indexOf('duplicate') === 0 ?
'addressbook.index.duplicate_rows' : 'addressbook.index.org_rows'; 'addressbook.index.duplicate_rows' : 'addressbook.index.org_rows';
} }
var promise = nm.set_template(template); let promise = nm.set_template(template);
value[widget.id] = widget.getValue(); value[widget.id] = widget.getValue();
if (promise) { if (promise) {
jQuery.when.apply(null, promise).done(function () { jQuery.when.apply(null, promise).done(function () {
@ -233,19 +215,19 @@ var AddressbookApp = /** @class */ (function (_super) {
}); });
} }
return !promise; return !promise;
}; }
/** /**
* Open CRM view from addressbook index itself * Open CRM view from addressbook index itself
* *
* @param _action * @param _action
* @param _senders * @param _senders
*/ */
AddressbookApp.prototype.view = function (_action, _senders) { view(_action, _senders) {
var extras = { let extras = {
contact_id: _senders[0].id.split('::').pop(), contact_id: _senders[0].id.split('::').pop(),
index: _senders[0]._index index: _senders[0]._index
}; };
var data = egw.dataGetUIDdata(_senders[0].id)['data']; let data = egw.dataGetUIDdata(_senders[0].id)['data'];
// CRM list // CRM list
if (_action.id != 'view') { if (_action.id != 'view') {
extras.crm_list = _action.id.replace('view-', ''); extras.crm_list = _action.id.replace('view-', '');
@ -256,37 +238,37 @@ var AddressbookApp = /** @class */ (function (_super) {
: data.n_fn + " (" + egw.lang(extras.crm_list) + ")"; : data.n_fn + " (" + egw.lang(extras.crm_list) + ")";
extras.icon = data.photo; extras.icon = data.photo;
return this.openCRMview(extras); return this.openCRMview(extras);
}; }
/** /**
* Open a CRM view for a contact: callback for link-registry / egw.open / other apps * Open a CRM view for a contact: callback for link-registry / egw.open / other apps
* *
* @param {CrmParams} _params object with attribute "contact_id" and optional "title", "crm_list", "icon" * @param {CrmParams} _params object with attribute "contact_id" and optional "title", "crm_list", "icon"
* @param {object} _senders use egw.dataGetUIDdata to get contact_id * @param {object} _senders use egw.dataGetUIDdata to get contact_id
*/ */
AddressbookApp.prototype.openCRMview = function (_params, _senders) { openCRMview(_params, _senders) {
var contact_id = typeof _params === 'object' ? _params.contact_id : _params; let contact_id = typeof _params === 'object' ? _params.contact_id : _params;
if (typeof _senders === 'object') { if (typeof _senders === 'object') {
var data = egw.dataGetUIDdata(_senders[0].id); let data = egw.dataGetUIDdata(_senders[0].id);
contact_id = data.data.contact_id; contact_id = data.data.contact_id;
} }
if (typeof contact_id !== 'undefined') { if (typeof contact_id !== 'undefined') {
var crm_list_1 = _params.crm_list || egw.preference('crm_list', 'addressbook'); let crm_list = _params.crm_list || egw.preference('crm_list', 'addressbook');
if (!crm_list_1 || crm_list_1 === '~edit~') if (!crm_list || crm_list === '~edit~')
crm_list_1 = 'infolog'; crm_list = 'infolog';
var url_1 = this.egw.link('/index.php', { let url = this.egw.link('/index.php', {
menuaction: 'addressbook.addressbook_ui.view', menuaction: 'addressbook.addressbook_ui.view',
ajax: 'true', ajax: 'true',
contact_id: contact_id, contact_id: contact_id,
crm_list: crm_list_1 crm_list: crm_list
}); });
// no framework, just open the url // no framework, just open the url
if (typeof this.egw.window.framework === 'undefined') { if (typeof this.egw.window.framework === 'undefined') {
return this.egw.open_link(url_1); return this.egw.open_link(url);
} }
var open_1 = function (_title) { let open = function (_title) {
var title = _title || this.egw.link_title('addressbook', contact_id, open_1); let title = _title || this.egw.link_title('addressbook', contact_id, open);
if (title) { if (title) {
this.egw.window.framework.tabLinkHandler(url_1, { this.egw.window.framework.tabLinkHandler(url, {
displayName: title, displayName: title,
icon: _params.icon || this.egw.link('/api/avatar.php', { icon: _params.icon || this.egw.link('/api/avatar.php', {
contact_id: contact_id, contact_id: contact_id,
@ -294,36 +276,36 @@ var AddressbookApp = /** @class */ (function (_super) {
}), }),
refreshCallback: function () { refreshCallback: function () {
var _a; var _a;
(_a = etemplate2_1.etemplate2.getById("addressbook-view-" + this.appName)) === null || _a === void 0 ? void 0 : _a.app_obj.addressbook.view_set_list(); (_a = etemplate2.getById("addressbook-view-" + this.appName)) === null || _a === void 0 ? void 0 : _a.app_obj.addressbook.view_set_list();
}, },
id: contact_id + '-' + crm_list_1 id: contact_id + '-' + crm_list
}); });
} }
}.bind(this); }.bind(this);
open_1(_params.title); open(_params.title);
} }
}; }
/** /**
* Set link filter for the already open & rendered list * Set link filter for the already open & rendered list
* *
* @param {Object} filter Object with key / value pairs of filters to set * @param {Object} filter Object with key / value pairs of filters to set
*/ */
AddressbookApp.prototype.view_set_list = function (filter) { view_set_list(filter) {
// Find the infolog list // Find the infolog list
var list = etemplate2_1.etemplate2.getById(jQuery(this.et2.getInstanceManager().DOMContainer).nextAll('.et2_container').attr('id')); var list = etemplate2.getById(jQuery(this.et2.getInstanceManager().DOMContainer).nextAll('.et2_container').attr('id'));
var nm = list ? list.widgetContainer.getWidgetById('nm') : null; var nm = list ? list.widgetContainer.getWidgetById('nm') : null;
if (nm) { if (nm) {
nm.applyFilters(filter); nm.applyFilters(filter);
} }
}; }
/** /**
* Run an action from CRM view toolbar * Run an action from CRM view toolbar
* *
* @param {object} _action * @param {object} _action
*/ */
AddressbookApp.prototype.view_actions = function (_action, _widget) { view_actions(_action, _widget) {
var app_id = _widget.dom_id.split('_'); var app_id = _widget.dom_id.split('_');
var et2 = etemplate2_1.etemplate2.getById(app_id[0]); var et2 = etemplate2.getById(app_id[0]);
var id = et2.widgetContainer.getArrayMgr('content').data.id; var id = et2.widgetContainer.getArrayMgr('content').data.id;
switch (_widget.id) { switch (_widget.id) {
case 'button[edit]': case 'button[edit]':
@ -342,13 +324,13 @@ var AddressbookApp = /** @class */ (function (_super) {
et2.widgetContainer._inst.submit(); et2.widgetContainer._inst.submit();
break; break;
} }
}; }
/** /**
* Open the calender to view the selected contacts * Open the calender to view the selected contacts
* @param {egwAction} _action * @param {egwAction} _action
* @param {egwActionObject[]} _senders * @param {egwActionObject[]} _senders
*/ */
AddressbookApp.prototype.view_calendar = function (_action, _senders) { view_calendar(_action, _senders) {
var extras = { var extras = {
filter: 'all', filter: 'all',
cat_id: '', cat_id: '',
@ -390,14 +372,14 @@ var AddressbookApp = /** @class */ (function (_super) {
extras.owner = extras.owner.join(','); extras.owner = extras.owner.join(',');
egw.open('', 'calendar', 'list', extras, 'calendar'); egw.open('', 'calendar', 'list', extras, 'calendar');
} }
}; }
/** /**
* Add appointment or show calendar for selected contacts, call default nm_action after some checks * Add appointment or show calendar for selected contacts, call default nm_action after some checks
* *
* @param _action * @param _action
* @param _senders * @param _senders
*/ */
AddressbookApp.prototype.add_cal = function (_action, _senders) { add_cal(_action, _senders) {
if (!_senders[0].id.match(/^(?:addressbook::)?[0-9]+$/)) { if (!_senders[0].id.match(/^(?:addressbook::)?[0-9]+$/)) {
// send org-view requests to server // send org-view requests to server
_action.data.nm_action = "submit"; _action.data.nm_action = "submit";
@ -417,13 +399,13 @@ var AddressbookApp = /** @class */ (function (_super) {
// Use framework to add calendar entry // Use framework to add calendar entry
egw.open('', 'calendar', 'add', extra); egw.open('', 'calendar', 'add', extra);
} }
}; }
/** /**
* View infolog entries linked to selected contact * View infolog entries linked to selected contact
* @param {egwAction} _action Select action * @param {egwAction} _action Select action
* @param {egwActionObject[]} _senders Selected contact(s) * @param {egwActionObject[]} _senders Selected contact(s)
*/ */
AddressbookApp.prototype.view_infolog = function (_action, _senders) { view_infolog(_action, _senders) {
var extras = { var extras = {
action: 'addressbook', action: 'addressbook',
action_id: [], action_id: [],
@ -453,14 +435,14 @@ var AddressbookApp = /** @class */ (function (_super) {
else { else {
egw.open('', 'infolog', 'list', extras, 'infolog'); egw.open('', 'infolog', 'list', extras, 'infolog');
} }
}; }
/** /**
* Add task for selected contacts, call default nm_action after some checks * Add task for selected contacts, call default nm_action after some checks
* *
* @param _action * @param _action
* @param _senders * @param _senders
*/ */
AddressbookApp.prototype.add_task = function (_action, _senders) { add_task(_action, _senders) {
if (!_senders[0].id.match(/^(addressbook::)?[0-9]+$/)) { if (!_senders[0].id.match(/^(addressbook::)?[0-9]+$/)) {
// send org-view requests to server // send org-view requests to server
_action.data.nm_action = "submit"; _action.data.nm_action = "submit";
@ -470,18 +452,18 @@ var AddressbookApp = /** @class */ (function (_super) {
_action.data.nm_action = "popup"; _action.data.nm_action = "popup";
} }
nm_action(_action, _senders); nm_action(_action, _senders);
}; }
/** /**
* Actions via ajax * Actions via ajax
* *
* @param {egwAction} _action * @param {egwAction} _action
* @param {egwActionObject[]} _selected * @param {egwActionObject[]} _selected
*/ */
AddressbookApp.prototype.action = function (_action, _selected) { action(_action, _selected) {
var _a, _b; var _a, _b;
var all = (_a = _action.parent.data.nextmatch) === null || _a === void 0 ? void 0 : _a.getSelection().all; let all = (_a = _action.parent.data.nextmatch) === null || _a === void 0 ? void 0 : _a.getSelection().all;
var no_notifications = ((_b = _action.parent.getActionById("no_notifications")) === null || _b === void 0 ? void 0 : _b.checked) || false; let no_notifications = ((_b = _action.parent.getActionById("no_notifications")) === null || _b === void 0 ? void 0 : _b.checked) || false;
var ids = []; let ids = [];
// Loop so we get just the app's ID // Loop so we get just the app's ID
for (var i = 0; i < _selected.length; i++) { for (var i = 0; i < _selected.length; i++) {
var id = _selected[i].id; var id = _selected[i].id;
@ -492,14 +474,14 @@ var AddressbookApp = /** @class */ (function (_super) {
egw.json("addressbook.addressbook_ui.ajax_action", [_action.id, ids, all, no_notifications]).sendRequest(true); egw.json("addressbook.addressbook_ui.ajax_action", [_action.id, ids, all, no_notifications]).sendRequest(true);
break; break;
} }
}; }
/** /**
* [More...] in phones clicked: copy allways shown phone numbers to phone popup * [More...] in phones clicked: copy allways shown phone numbers to phone popup
* *
* @param {jQuery.event} _event * @param {jQuery.event} _event
* @param {et2_widget} _widget * @param {et2_widget} _widget
*/ */
AddressbookApp.prototype.showphones = function (_event, _widget) { showphones(_event, _widget) {
this._copyvalues({ this._copyvalues({
tel_home: 'tel_home2', tel_home: 'tel_home2',
tel_work: 'tel_work2', tel_work: 'tel_work2',
@ -509,14 +491,14 @@ var AddressbookApp = /** @class */ (function (_super) {
jQuery('table.editphones').css('display', 'inline'); jQuery('table.editphones').css('display', 'inline');
_event.stopPropagation(); _event.stopPropagation();
return false; return false;
}; }
/** /**
* [OK] in phone popup clicked: copy phone numbers back to always shown ones * [OK] in phone popup clicked: copy phone numbers back to always shown ones
* *
* @param {jQuery.event} _event * @param {jQuery.event} _event
* @param {et2_widget} _widget * @param {et2_widget} _widget
*/ */
AddressbookApp.prototype.hidephones = function (_event, _widget) { hidephones(_event, _widget) {
this._copyvalues({ this._copyvalues({
tel_home2: 'tel_home', tel_home2: 'tel_home',
tel_work2: 'tel_work', tel_work2: 'tel_work',
@ -526,13 +508,13 @@ var AddressbookApp = /** @class */ (function (_super) {
jQuery('table.editphones').css('display', 'none'); jQuery('table.editphones').css('display', 'none');
_event.stopPropagation(); _event.stopPropagation();
return false; return false;
}; }
/** /**
* Copy content of multiple fields * Copy content of multiple fields
* *
* @param {object} what object with src: dst pairs * @param {object} what object with src: dst pairs
*/ */
AddressbookApp.prototype._copyvalues = function (what) { _copyvalues(what) {
for (var name in what) { for (var name in what) {
var src = this.et2.getWidgetById(name); var src = this.et2.getWidgetById(name);
var dst = this.et2.getWidgetById(what[name]); var dst = this.et2.getWidgetById(what[name]);
@ -546,17 +528,17 @@ var AddressbookApp = /** @class */ (function (_super) {
if (typeof what[val] != 'undefined') if (typeof what[val] != 'undefined')
tel_prefer.set_value(what[val]); tel_prefer.set_value(what[val]);
} }
}; }
/** /**
* Callback function to create confirm dialog for duplicates contacts * Callback function to create confirm dialog for duplicates contacts
* *
* @param {object} _data includes duplicates contacts information * @param {object} _data includes duplicates contacts information
* *
*/ */
AddressbookApp.prototype._confirmdialog_callback = function (_data) { _confirmdialog_callback(_data) {
var confirmdialog = function (_title, _value, _buttons, _egw_or_appname) { var confirmdialog = function (_title, _value, _buttons, _egw_or_appname) {
return et2_createWidget("dialog", { return et2_createWidget("dialog", {
callback: function (_buttons, _value) { callback(_buttons, _value) {
if (_buttons == et2_dialog.OK_BUTTON) { if (_buttons == et2_dialog.OK_BUTTON) {
var id = ''; var id = '';
var content = this.template.widgetContainer.getArrayMgr('content').data; var content = this.template.widgetContainer.getArrayMgr('content').data;
@ -583,7 +565,7 @@ var AddressbookApp = /** @class */ (function (_super) {
for (var id in _data.doublicates) { for (var id in _data.doublicates) {
content.push({ "confirm": id, "name": _data.doublicates[id] }); content.push({ "confirm": id, "name": _data.doublicates[id] });
} }
confirmdialog(this.egw.lang('Duplicate warning'), content, et2_dialog.BUTTONs_OK_CANCEL); confirmdialog(this.egw.lang('Duplicate warning'), content, et2_dialog.BUTTONS_OK_CANCEL);
} }
if (typeof _data.fileas_options == 'object' && this.et2) { if (typeof _data.fileas_options == 'object' && this.et2) {
var selbox = this.et2.getWidgetById('fileas_type'); var selbox = this.et2.getWidgetById('fileas_type');
@ -591,14 +573,14 @@ var AddressbookApp = /** @class */ (function (_super) {
selbox.set_select_options(_data.fileas_sel_options); selbox.set_select_options(_data.fileas_sel_options);
} }
} }
}; }
/** /**
* Callback if certain fields get changed * Callback if certain fields get changed
* *
* @param {widget} widget widget * @param {widget} widget widget
* @param {string} own_id Current AB id * @param {string} own_id Current AB id
*/ */
AddressbookApp.prototype.check_value = function (widget, own_id) { check_value(widget, own_id) {
// if we edit an account, call account_change to let it do it's stuff too // if we edit an account, call account_change to let it do it's stuff too
if (this.et2.getWidgetById('account_lid')) { if (this.et2.getWidgetById('account_lid')) {
this.account_change(null, widget); this.account_change(null, widget);
@ -621,8 +603,8 @@ var AddressbookApp = /** @class */ (function (_super) {
name.set_value(value); name.set_value(value);
} }
egw.json('addressbook.addressbook_ui.ajax_check_values', [values, widget.id, own_id], this._confirmdialog_callback, this, true, this).sendRequest(); egw.json('addressbook.addressbook_ui.ajax_check_values', [values, widget.id, own_id], this._confirmdialog_callback, this, true, this).sendRequest();
}; }
AddressbookApp.prototype.show_custom_country = function (selectbox) { show_custom_country(selectbox) {
if (!selectbox) if (!selectbox)
return; return;
var custom_field_name = selectbox.id.replace("countrycode", "countryname"); var custom_field_name = selectbox.id.replace("countrycode", "countryname");
@ -645,14 +627,14 @@ var AddressbookApp = /** @class */ (function (_super) {
if (region) { if (region) {
region.set_country_code(selectbox.value); region.set_country_code(selectbox.value);
} }
}; }
/** /**
* Add a new mailing list. If any contacts are selected, they will be added. * Add a new mailing list. If any contacts are selected, they will be added.
* *
* @param {egwAction} owner * @param {egwAction} owner
* @param {egwActionObject[]} selected * @param {egwActionObject[]} selected
*/ */
AddressbookApp.prototype.add_new_list = function (owner, selected) { add_new_list(owner, selected) {
if (!owner || typeof owner == 'object') { if (!owner || typeof owner == 'object') {
var filter = this.et2.getWidgetById('filter'); var filter = this.et2.getWidgetById('filter');
owner = filter.getValue() || egw.preference('add_default', 'addressbook'); owner = filter.getValue() || egw.preference('add_default', 'addressbook');
@ -676,7 +658,7 @@ var AddressbookApp = /** @class */ (function (_super) {
} }
} }
this._add_new_list_prompt(owner, contacts); this._add_new_list_prompt(owner, contacts);
}; }
/** /**
* Ask the user for a name, then create a new list with the provided contacts * Ask the user for a name, then create a new list with the provided contacts
* in it. * in it.
@ -684,10 +666,10 @@ var AddressbookApp = /** @class */ (function (_super) {
* @param {int} owner * @param {int} owner
* @param {String[]} contacts * @param {String[]} contacts
*/ */
AddressbookApp.prototype._add_new_list_prompt = function (owner, contacts) { _add_new_list_prompt(owner, contacts) {
var lists = this.et2.getWidgetById('filter2'); var lists = this.et2.getWidgetById('filter2');
var owner_options = this.et2.getArrayMgr('sel_options').getEntry('filter') || {}; let owner_options = this.et2.getArrayMgr('sel_options').getEntry('filter') || {};
var callback = function (button, values) { let callback = function (button, values) {
if (button == et2_dialog.OK_BUTTON) { if (button == et2_dialog.OK_BUTTON) {
egw.json('addressbook.addressbook_ui.ajax_set_list', [0, values.name, values.owner, contacts], function (result) { egw.json('addressbook.addressbook_ui.ajax_set_list', [0, values.name, values.owner, contacts], function (result) {
if (typeof result == 'object') if (typeof result == 'object')
@ -714,7 +696,7 @@ var AddressbookApp = /** @class */ (function (_super) {
}).sendRequest(true); }).sendRequest(true);
} }
}; };
var dialog = et2_createWidget("dialog", { let dialog = et2_createWidget("dialog", {
callback: callback, callback: callback,
title: this.egw.lang('Add a new list'), title: this.egw.lang('Add a new list'),
buttons: et2_dialog.BUTTONS_OK_CANCEL, buttons: et2_dialog.BUTTONS_OK_CANCEL,
@ -730,7 +712,7 @@ var AddressbookApp = /** @class */ (function (_super) {
class: "et2_prompt", class: "et2_prompt",
minWidth: 400 minWidth: 400
}, this.et2); }, this.et2);
}; }
/** /**
* Rename the current distribution list selected in the nextmatch filter2 * Rename the current distribution list selected in the nextmatch filter2
* *
@ -740,7 +722,7 @@ var AddressbookApp = /** @class */ (function (_super) {
* @param {egwAction} action Action selected in context menu (rename) * @param {egwAction} action Action selected in context menu (rename)
* @param {egwActionObject[]} selected The selected row(s). Not used for this. * @param {egwActionObject[]} selected The selected row(s). Not used for this.
*/ */
AddressbookApp.prototype.rename_list = function (action, selected) { rename_list(action, selected) {
var lists = this.et2.getWidgetById('filter2'); var lists = this.et2.getWidgetById('filter2');
var list = lists.getValue() || 0; var list = lists.getValue() || 0;
var value = null; var value = null;
@ -762,11 +744,11 @@ var AddressbookApp = /** @class */ (function (_super) {
}).sendRequest(true); }).sendRequest(true);
} }
}, this.egw.lang('Name for the distribution list'), this.egw.lang('Rename list'), value.label); }, this.egw.lang('Name for the distribution list'), this.egw.lang('Rename list'), value.label);
}; }
/** /**
* OnChange for distribution list selectbox * OnChange for distribution list selectbox
*/ */
AddressbookApp.prototype.filter2_onchange = function () { filter2_onchange() {
var filter = this.et2.getWidgetById('filter'); var filter = this.et2.getWidgetById('filter');
var filter2 = this.et2.getWidgetById('filter2'); var filter2 = this.et2.getWidgetById('filter2');
var widget = this.et2.getWidgetById('nm'); var widget = this.et2.getWidgetById('nm');
@ -786,11 +768,11 @@ var AddressbookApp = /** @class */ (function (_super) {
return false; return false;
} }
return true; return true;
}; }
/** /**
* Method to enable actions by comparing a field with given value * Method to enable actions by comparing a field with given value
*/ */
AddressbookApp.prototype.nm_compare_field = function () { nm_compare_field() {
var field = this.et2.getWidgetById('filter2'); var field = this.et2.getWidgetById('filter2');
if (field) if (field)
var val = field.get_value(); var val = field.get_value();
@ -800,13 +782,13 @@ var AddressbookApp = /** @class */ (function (_super) {
else { else {
return false; return false;
} }
}; }
/** /**
* Apply advanced search filters to index nextmatch * Apply advanced search filters to index nextmatch
* *
* @param {object} filters * @param {object} filters
*/ */
AddressbookApp.prototype.adv_search = function (filters) { adv_search(filters) {
var index = window.opener.etemplate2.getById('addressbook-index'); var index = window.opener.etemplate2.getById('addressbook-index');
if (!index) { if (!index) {
alert('Could not find index'); alert('Could not find index');
@ -823,14 +805,14 @@ var AddressbookApp = /** @class */ (function (_super) {
nm.activeFilters = {}; nm.activeFilters = {};
nm.applyFilters(filters); nm.applyFilters(filters);
return false; return false;
}; }
/** /**
* Mail vCard * Mail vCard
* *
* @param {object} _action * @param {object} _action
* @param {array} _elems * @param {array} _elems
*/ */
AddressbookApp.prototype.adb_mail_vcard = function (_action, _elems) { adb_mail_vcard(_action, _elems) {
var link = { 'preset[type]': [], 'preset[file]': [] }; var link = { 'preset[type]': [], 'preset[file]': [] };
var content = { data: { files: { file: [], type: [] } } }; var content = { data: { files: { file: [], type: [] } } };
var nm = this.et2.getWidgetById('nm'); var nm = this.et2.getWidgetById('nm');
@ -855,19 +837,19 @@ var AddressbookApp = /** @class */ (function (_super) {
return; return;
} }
} }
}; }
/** /**
* Action function to set business or private mail checkboxes to user preferences * Action function to set business or private mail checkboxes to user preferences
* *
* @param {egwAction} action Action user selected. * @param {egwAction} action Action user selected.
*/ */
AddressbookApp.prototype.mailCheckbox = function (action) { mailCheckbox(action) {
var preferences = { var preferences = {
business: action.getManager().getActionById('email_business').checked ? true : false, business: action.getManager().getActionById('email_business').checked ? true : false,
private: action.getManager().getActionById('email_home').checked ? true : false private: action.getManager().getActionById('email_home').checked ? true : false
}; };
this.egw.set_preference('addressbook', 'preferredMail', preferences); this.egw.set_preference('addressbook', 'preferredMail', preferences);
}; }
/** /**
* Action function to add the email address (business or home) of the selected * Action function to add the email address (business or home) of the selected
* contacts to a compose email popup window. * contacts to a compose email popup window.
@ -878,7 +860,7 @@ var AddressbookApp = /** @class */ (function (_super) {
* 'email_business' or 'email_home', from server side definition of actions. * 'email_business' or 'email_home', from server side definition of actions.
* @param {egwActionObject[]} selected Selected rows * @param {egwActionObject[]} selected Selected rows
*/ */
AddressbookApp.prototype.addEmail = function (action, selected) { addEmail(action, selected) {
// Check for all selected. // Check for all selected.
var nm = this.et2.getWidgetById('nm'); var nm = this.et2.getWidgetById('nm');
if (fetchAll(selected, nm, jQuery.proxy(function (ids) { if (fetchAll(selected, nm, jQuery.proxy(function (ids) {
@ -921,7 +903,7 @@ var AddressbookApp = /** @class */ (function (_super) {
break; break;
} }
return false; return false;
}; }
/** /**
* Merge the selected contacts into the target document. * Merge the selected contacts into the target document.
* *
@ -931,7 +913,7 @@ var AddressbookApp = /** @class */ (function (_super) {
* @param {egwAction} action - The document they clicked * @param {egwAction} action - The document they clicked
* @param {egwActionObject[]} selected - Rows selected * @param {egwActionObject[]} selected - Rows selected
*/ */
AddressbookApp.prototype.merge_mail = function (action, selected, target) { merge_mail(action, selected, target) {
// Special processing for email documents - ask about infolog // Special processing for email documents - ask about infolog
if (action && action.data && selected.length > 1) { if (action && action.data && selected.length > 1) {
var callback = function (button, value) { var callback = function (button, value) {
@ -956,7 +938,7 @@ var AddressbookApp = /** @class */ (function (_super) {
// Normal processing for only one contact selected // Normal processing for only one contact selected
return nm_action(action, selected, target); return nm_action(action, selected, target);
} }
}; }
/** /**
* Retrieve the current state of the application for future restoration * Retrieve the current state of the application for future restoration
* *
@ -965,12 +947,12 @@ var AddressbookApp = /** @class */ (function (_super) {
* *
* @return {object} Application specific map representing the current state * @return {object} Application specific map representing the current state
*/ */
AddressbookApp.prototype.getState = function () { getState() {
// Most likely we're in the list view // Most likely we're in the list view
var state = _super.prototype.getState.call(this); var state = super.getState();
if (jQuery.isEmptyObject(state)) { if (jQuery.isEmptyObject(state)) {
// Not in a list view. Try to find contact ID // Not in a list view. Try to find contact ID
var etemplates = etemplate2_1.etemplate2.getByApplication('addressbook'); var etemplates = etemplate2.getByApplication('addressbook');
for (var i = 0; i < etemplates.length; i++) { for (var i = 0; i < etemplates.length; i++) {
var content = etemplates[i].widgetContainer.getArrayMgr("content"); var content = etemplates[i].widgetContainer.getArrayMgr("content");
if (content && content.getEntry('id')) { if (content && content.getEntry('id')) {
@ -980,7 +962,7 @@ var AddressbookApp = /** @class */ (function (_super) {
} }
} }
return state; return state;
}; }
/** /**
* Set the application's state to the given state. * Set the application's state to the given state.
* *
@ -992,7 +974,7 @@ var AddressbookApp = /** @class */ (function (_super) {
* *
* @return {boolean} false - Returns false to stop event propagation * @return {boolean} false - Returns false to stop event propagation
*/ */
AddressbookApp.prototype.setState = function (state, template) { setState(state, template) {
var current_state = this.getState(); var current_state = this.getState();
// State should be an object, not a string, but we'll parse // State should be an object, not a string, but we'll parse
if (typeof state == "string") { if (typeof state == "string") {
@ -1010,11 +992,11 @@ var AddressbookApp = /** @class */ (function (_super) {
} }
else if (jQuery.isEmptyObject(state)) { else if (jQuery.isEmptyObject(state)) {
// Regular handling first to clear everything but advanced search // Regular handling first to clear everything but advanced search
_super.prototype.setState.call(this, state); super.setState(state);
// Clear advanced search, which is in session and etemplate // Clear advanced search, which is in session and etemplate
egw.json('addressbook.addressbook_ui.ajax_clear_advanced_search', [], function () { egw.json('addressbook.addressbook_ui.ajax_clear_advanced_search', [], function () {
framework.setWebsiteTitle('addressbook', ''); framework.setWebsiteTitle('addressbook', '');
var index = etemplate2_1.etemplate2.getById('addressbook-index'); var index = etemplate2.getById('addressbook-index');
if (index && index.widgetContainer) { if (index && index.widgetContainer) {
var nm = index.widgetContainer.getWidgetById('nm'); var nm = index.widgetContainer.getWidgetById('nm');
if (nm) { if (nm) {
@ -1029,7 +1011,7 @@ var AddressbookApp = /** @class */ (function (_super) {
else if (state.state.grouped_view) { else if (state.state.grouped_view) {
// Deal with grouped views that are not valid (not in list of options) // Deal with grouped views that are not valid (not in list of options)
// by faking viewing that organisation // by faking viewing that organisation
var index = etemplate2_1.etemplate2.getById('addressbook-index'); var index = etemplate2.getById('addressbook-index');
if (index && index.widgetContainer) { if (index && index.widgetContainer) {
var grouped = index.widgetContainer.getWidgetById('grouped_view'); var grouped = index.widgetContainer.getWidgetById('grouped_view');
var options; var options;
@ -1055,15 +1037,15 @@ var AddressbookApp = /** @class */ (function (_super) {
if (typeof state.state.advanced_search === 'undefined') { if (typeof state.state.advanced_search === 'undefined') {
state.state.advanced_search = false; state.state.advanced_search = false;
} }
return _super.prototype.setState.call(this, state); return super.setState(state);
}; }
/** /**
* Field changed, call server validation * Field changed, call server validation
* *
* @param {jQuery.Event} _ev * @param {jQuery.Event} _ev
* @param {et2_button} _widget * @param {et2_button} _widget
*/ */
AddressbookApp.prototype.account_change = function (_ev, _widget) { account_change(_ev, _widget) {
switch (_widget.id) { switch (_widget.id) {
case 'account_passwd': case 'account_passwd':
case 'account_lid': case 'account_lid':
@ -1089,16 +1071,16 @@ var AddressbookApp = /** @class */ (function (_super) {
}, this).sendRequest(); }, this).sendRequest();
break; break;
} }
}; }
/** /**
* Get title in order to set it as document title * Get title in order to set it as document title
* @returns {string} * @returns {string}
*/ */
AddressbookApp.prototype.getWindowTitle = function () { getWindowTitle() {
var widget = this.et2.getWidgetById('n_fn'); var widget = this.et2.getWidgetById('n_fn');
if (widget) if (widget)
return widget.options.value; return widget.options.value;
}; }
/** /**
* Enable/Disable geolocation action items in contextmenu base on address availabilty * Enable/Disable geolocation action items in contextmenu base on address availabilty
* *
@ -1106,7 +1088,7 @@ var AddressbookApp = /** @class */ (function (_super) {
* @param {egwActionObject[]} _selected selected rows * @param {egwActionObject[]} _selected selected rows
* @returns {boolean} return false if no address found * @returns {boolean} return false if no address found
*/ */
AddressbookApp.prototype.geoLocation_enabled = function (_action, _selected) { geoLocation_enabled(_action, _selected) {
// multiple selection is not supported // multiple selection is not supported
if (_selected.length > 1) if (_selected.length > 1)
return false; return false;
@ -1132,7 +1114,7 @@ var AddressbookApp = /** @class */ (function (_super) {
fields += addrs[i] ? addrs[i] : ''; fields += addrs[i] ? addrs[i] : '';
} }
return (url !== '' && fields !== '') ? true : false; return (url !== '' && fields !== '') ? true : false;
}; }
/** /**
* Generate a geo location URL based on geolocation_url in * Generate a geo location URL based on geolocation_url in
* site configuration * site configuration
@ -1143,7 +1125,7 @@ var AddressbookApp = /** @class */ (function (_super) {
* @param {string} _src_type type of source address ('browser'|'one'|'two') * @param {string} _src_type type of source address ('browser'|'one'|'two')
* @returns {Boolean|string} return url and return false if no address * @returns {Boolean|string} return url and return false if no address
*/ */
AddressbookApp.prototype.geoLocationUrl = function (_dest_data, _dest_type, _src_data, _src_type) { geoLocationUrl(_dest_data, _dest_type, _src_data, _src_type) {
var dest_type = _dest_type || 'one'; var dest_type = _dest_type || 'one';
var url = this.getGeolocationConfig(); var url = this.getGeolocationConfig();
// exit if no url or invalide url given // exit if no url or invalide url given
@ -1185,14 +1167,14 @@ var AddressbookApp = /** @class */ (function (_super) {
} }
} }
return url !== '' ? url : false; return url !== '' ? url : false;
}; }
/** /**
* Open a popup base on selected address in provided map * Open a popup base on selected address in provided map
* *
* @param {object} _action * @param {object} _action
* @param {object} _selected * @param {object} _selected
*/ */
AddressbookApp.prototype.geoLocationExec = function (_action, _selected) { geoLocationExec(_action, _selected) {
var content = egw.dataGetUIDdata(_selected[0].id); var content = egw.dataGetUIDdata(_selected[0].id);
var geolocation_src = egw.preference('geolocation_src', 'addressbook'); var geolocation_src = egw.preference('geolocation_src', 'addressbook');
var self = this; var self = this;
@ -1210,13 +1192,13 @@ var AddressbookApp = /** @class */ (function (_super) {
window.open(url, '_blank'); window.open(url, '_blank');
}).sendRequest(); }).sendRequest();
} }
}; }
/** /**
* Get geolocation_url stored in config|default url * Get geolocation_url stored in config|default url
* *
* @returns {String} * @returns {String}
*/ */
AddressbookApp.prototype.getGeolocationConfig = function () { getGeolocationConfig() {
// This default url should be identical to the first value of geolocation_url array // This default url should be identical to the first value of geolocation_url array
// defined in addressbook_hooks::config // defined in addressbook_hooks::config
var default_url = 'https://maps.here.com/directions/drive{{%rs=/%rs}}%r0,%t0,%z0,%c0{{%d=/%d}}%r1,%t1,%z1+%c1'; var default_url = 'https://maps.here.com/directions/drive{{%rs=/%rs}}%r0,%t0,%z0,%c0{{%d=/%d}}%r1,%t1,%z1+%c1';
@ -1224,19 +1206,19 @@ var AddressbookApp = /** @class */ (function (_super) {
if (geo_url) if (geo_url)
geo_url = geo_url[0]; geo_url = geo_url[0];
return geo_url || default_url; return geo_url || default_url;
}; }
/** /**
* Check to see if the selection contains at most one account * Check to see if the selection contains at most one account
* *
* @param {egwAction} action * @param {egwAction} action
* @param {egwActionObject[]} selected Selected rows * @param {egwActionObject[]} selected Selected rows
*/ */
AddressbookApp.prototype.can_merge = function (action, selected) { can_merge(action, selected) {
return selected.filter(function (row) { return selected.filter(function (row) {
var data = egw.dataGetUIDdata(row.id); var data = egw.dataGetUIDdata(row.id);
return data && data.data.account_id; return data && data.data.account_id;
}).length <= 1; }).length <= 1;
}; }
/** /**
* Check if the share action is enabled for this entry * Check if the share action is enabled for this entry
* This only works for single contacts * This only works for single contacts
@ -1246,29 +1228,29 @@ var AddressbookApp = /** @class */ (function (_super) {
* @param {egwActionObject} _target * @param {egwActionObject} _target
* @returns {boolean} if action is enabled * @returns {boolean} if action is enabled
*/ */
AddressbookApp.prototype.is_share_enabled = function (_action, _entries, _target) { is_share_enabled(_action, _entries, _target) {
var enabled = true; var enabled = true;
for (var i = 0; i < _entries.length; i++) { for (var i = 0; i < _entries.length; i++) {
var id = _entries[i].id.split('::'); let id = _entries[i].id.split('::');
if (isNaN(id[1])) { if (isNaN(id[1])) {
return false; return false;
} }
} }
return enabled; return enabled;
}; }
/** /**
* Check if selected user(s) is online then enable action * Check if selected user(s) is online then enable action
* @param _action * @param _action
* @param _selected * @param _selected
*/ */
AddressbookApp.prototype.videoconference_isUserOnline = function (_action, _selected) { videoconference_isUserOnline(_action, _selected) {
var list = app.status ? app.status.getEntireList() : {}; let list = app.status ? app.status.getEntireList() : {};
for (var sel in _selected) { for (let sel in _selected) {
if (sel == '0' && _selected[sel]['id'] == 'nm') if (sel == '0' && _selected[sel]['id'] == 'nm')
continue; continue;
var row = egw.dataGetUIDdata(_selected[sel]['id']); let row = egw.dataGetUIDdata(_selected[sel]['id']);
var enabled = false; let enabled = false;
for (var entry in list) { for (let entry in list) {
if (row.data && row.data.account_id && row.data.account_id == list[entry]['account_id']) { if (row.data && row.data.account_id && row.data.account_id == list[entry]['account_id']) {
enabled = list[entry]['data']['status']['active']; enabled = list[entry]['data']['status']['active'];
} }
@ -1277,19 +1259,19 @@ var AddressbookApp = /** @class */ (function (_super) {
return false; return false;
} }
return true; return true;
}; }
AddressbookApp.prototype.videoconference_isThereAnyCall = function (_action, _selected) { videoconference_isThereAnyCall(_action, _selected) {
return this.videoconference_isUserOnline(_action, _selected) && egw.getSessionItem('status', 'videoconference-session'); return this.videoconference_isUserOnline(_action, _selected) && egw.getSessionItem('status', 'videoconference-session');
}; }
/** /**
* Call action * Call action
* @param _action * @param _action
* @param _selected * @param _selected
*/ */
AddressbookApp.prototype.videoconference_actionCall = function (_action, _selected) { videoconference_actionCall(_action, _selected) {
var data = []; let data = [];
for (var sel in _selected) { for (let sel in _selected) {
var row = egw.dataGetUIDdata(_selected[sel]['id']); let row = egw.dataGetUIDdata(_selected[sel]['id']);
data.push({ data.push({
id: row.data.account_id, id: row.data.account_id,
name: row.data.n_fn, name: row.data.n_fn,
@ -1303,29 +1285,28 @@ var AddressbookApp = /** @class */ (function (_super) {
else { else {
app.status.makeCall(data); app.status.makeCall(data);
} }
}; }
/** /**
* Check if new shared_with value is allowed / user has rights to share into that AB * Check if new shared_with value is allowed / user has rights to share into that AB
* *
* Remove the entry again, if user is not allowed * Remove the entry again, if user is not allowed
*/ */
AddressbookApp.prototype.shared_changed = function () { shared_changed() {
var shared = this.et2.getInputWidgetById('shared_values'); let shared = this.et2.getInputWidgetById('shared_values');
var value = shared === null || shared === void 0 ? void 0 : shared.get_value(); let value = shared === null || shared === void 0 ? void 0 : shared.get_value();
if (value) { if (value) {
this.egw.json('addressbook.addressbook_ui.ajax_check_shared', [{ this.egw.json('addressbook.addressbook_ui.ajax_check_shared', [{
contact: this.et2.getInstanceManager().getValues(this.et2), contact: this.et2.getInstanceManager().getValues(this.et2),
shared_values: value, shared_values: value,
shared_writable: this.et2.getInputWidgetById('shared_writable').get_value() shared_writable: this.et2.getInputWidgetById('shared_writable').get_value()
}], function (_data) { }], _data => {
if (Array.isArray(_data) && _data.length) { if (Array.isArray(_data) && _data.length) {
// remove not allowed entries // remove not allowed entries
shared.set_value(value.filter(function (val) { return _data.indexOf(val) === -1; })); shared.set_value(value.filter(val => _data.indexOf(val) === -1));
} }
}).sendRequest(); }).sendRequest();
} }
}; }
return AddressbookApp; }
}(egw_app_1.EgwApp));
app.classes.addressbook = AddressbookApp; app.classes.addressbook = AddressbookApp;
//# sourceMappingURL=app.js.map //# sourceMappingURL=app.js.map

View File

@ -3,8 +3,9 @@
* *
* @link: https://www.egroupware.org * @link: https://www.egroupware.org
* @package addressbook * @package addressbook
* @author Hadi Nategh <hn-AT-stylite.de> * @author Hadi Nategh <hn-AT-egroupware.org>
* @copyright (c) 2008-13 by Ralf Becker <RalfBecker-AT-outdoor-training.de> * @author Ralf Becker <rb-AT-egroupware.org>
* @copyright (c) 2008-21 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
*/ */
@ -14,11 +15,12 @@
import 'jquery'; import 'jquery';
import 'jqueryui'; import 'jqueryui';
import '../jsapi/egw_global';
import '../etemplate/et2_types';
import {EgwApp, PushData} from '../../api/js/jsapi/egw_app'; import {EgwApp, PushData} from '../../api/js/jsapi/egw_app';
import {etemplate2} from "../../api/js/etemplate/etemplate2"; import {etemplate2} from "../../api/js/etemplate/etemplate2";
import {et2_dialog} from "../../api/js/etemplate/et2_widget_dialog";
import {et2_selectbox} from "../../api/js/etemplate/et2_widget_selectbox";
import {fetchALL} from "../../api/js/etemplate/et2_extension_nextmatch_actions.js";
/** /**
* Object to call app.addressbook.openCRMview with * Object to call app.addressbook.openCRMview with
@ -695,11 +697,11 @@ class AddressbookApp extends EgwApp
{ {
content.push({"confirm":id,"name":_data.doublicates[id]}); content.push({"confirm":id,"name":_data.doublicates[id]});
} }
confirmdialog(this.egw.lang('Duplicate warning'),content,et2_dialog.BUTTONs_OK_CANCEL); confirmdialog(this.egw.lang('Duplicate warning'),content,et2_dialog.BUTTONS_OK_CANCEL);
} }
if (typeof _data.fileas_options == 'object' && this.et2) if (typeof _data.fileas_options == 'object' && this.et2)
{ {
var selbox = this.et2.getWidgetById('fileas_type'); var selbox = <et2_selectbox>this.et2.getWidgetById('fileas_type');
if (selbox) if (selbox)
{ {
selbox.set_select_options(_data.fileas_sel_options); selbox.set_select_options(_data.fileas_sel_options);

View File

@ -6,9 +6,10 @@
* @copyright 2011 by Andreas Stöckel * @copyright 2011 by Andreas Stöckel
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package egw_action * @package egw_action
* @version $Id$
*/ */
import {EGW_AO_SHIFT_STATE_BLOCK, EGW_AO_SHIFT_STATE_MULTI, EGW_AO_SHIFT_STATE_NONE} from "./egw_action.js";
/** /**
* Sets properties given in _data in _obj. Checks whether the property keys * Sets properties given in _data in _obj. Checks whether the property keys
* exists and if corresponding setter functions are available. Properties starting * exists and if corresponding setter functions are available. Properties starting

View File

@ -15,7 +15,8 @@
/api/js/jquery/jquery-tap-and-hold/jquery.tapandhold.js; /api/js/jquery/jquery-tap-and-hold/jquery.tapandhold.js;
*/ */
import {egwAction, egwActionImplementation} from './egw_action.js'; import {egwAction, egwActionImplementation, egwActionObject} from './egw_action.js';
import {egwFnct} from './egw_action_common.js';
import {egwMenu, _egw_active_menu} from "./egw_menu.js"; import {egwMenu, _egw_active_menu} from "./egw_menu.js";
import '../jquery/jquery-tap-and-hold/jquery.tapandhold.js'; import '../jquery/jquery-tap-and-hold/jquery.tapandhold.js';

View File

@ -16,6 +16,7 @@
et2_dataview_view_container; et2_dataview_view_container;
et2_dataview_view_spacer; et2_dataview_view_spacer;
*/ */
import { et2_implements_registry } from "./et2_core_interfaces";
import { et2_dataview_IViewRange } from "./et2_dataview_interfaces"; import { et2_dataview_IViewRange } from "./et2_dataview_interfaces";
import { et2_dataview_container } from "./et2_dataview_view_container"; import { et2_dataview_container } from "./et2_dataview_view_container";
import { et2_dataview_spacer } from "./et2_dataview_view_spacer"; import { et2_dataview_spacer } from "./et2_dataview_view_spacer";
@ -551,7 +552,7 @@ export class et2_dataview_grid extends et2_dataview_container {
const container = this._map[i]; const container = this._map[i];
// Check which type the container object has // Check which type the container object has
const isSpacer = container instanceof et2_dataview_spacer; const isSpacer = container instanceof et2_dataview_spacer;
const hasIViewRange = !isSpacer && container.implements(et2_dataview_IViewRange); const hasIViewRange = !isSpacer && et2_implements_registry.et2_dataview_IViewRange(container, et2_dataview_IViewRange);
// If the container has one of those special types, calculate the // If the container has one of those special types, calculate the
// view range and use that to update the view range of the element // view range and use that to update the view range of the element
// or to request new elements for the spacer // or to request new elements for the spacer

View File

@ -18,6 +18,7 @@
et2_dataview_view_spacer; et2_dataview_view_spacer;
*/ */
import {et2_implements_registry} from "./et2_core_interfaces";
import {et2_dataview_IViewRange} from "./et2_dataview_interfaces"; import {et2_dataview_IViewRange} from "./et2_dataview_interfaces";
import {et2_dataview_container} from "./et2_dataview_view_container"; import {et2_dataview_container} from "./et2_dataview_view_container";
import {et2_dataview_spacer} from "./et2_dataview_view_spacer"; import {et2_dataview_spacer} from "./et2_dataview_view_spacer";
@ -795,7 +796,7 @@ export class et2_dataview_grid extends et2_dataview_container implements et2_dat
// Check which type the container object has // Check which type the container object has
const isSpacer = container instanceof et2_dataview_spacer; const isSpacer = container instanceof et2_dataview_spacer;
const hasIViewRange = !isSpacer && container.implements(et2_dataview_IViewRange); const hasIViewRange = !isSpacer && et2_implements_registry.et2_dataview_IViewRange(container, et2_dataview_IViewRange);
// If the container has one of those special types, calculate the // If the container has one of those special types, calculate the
// view range and use that to update the view range of the element // view range and use that to update the view range of the element

View File

@ -269,7 +269,7 @@ export class et2_nextmatch extends et2_DOMWidget implements et2_IResizeable, et2
// Sub-objects used for actual work // Sub-objects used for actual work
private readonly header: et2_nextmatch_header_bar; private readonly header: et2_nextmatch_header_bar;
dataview: any; dataview: any;
private controller: any; controller: any;
private rowProvider: any; private rowProvider: any;

View File

@ -14,6 +14,8 @@ import { et2_dataview_controller } from "./et2_dataview_controller";
import { et2_dataview_column } from "./et2_dataview_model_columns"; import { et2_dataview_column } from "./et2_dataview_model_columns";
import { framework } from "../jsapi/egw_global"; import { framework } from "../jsapi/egw_global";
import { egw_getActionManager, egw_getObjectManager, egwActionObjectManager, egwActionObject, EGW_AO_FLAG_DEFAULT_FOCUS, EGW_AO_EXEC_SELECTED, EGW_AO_FLAG_IS_CONTAINER } from "../egw_action/egw_action.js"; import { egw_getActionManager, egw_getObjectManager, egwActionObjectManager, egwActionObject, EGW_AO_FLAG_DEFAULT_FOCUS, EGW_AO_EXEC_SELECTED, EGW_AO_FLAG_IS_CONTAINER } from "../egw_action/egw_action.js";
import { nm_action } from "./et2_extension_nextmatch_actions.js";
import { egwIsMobile } from "../egw_action/egw_action_common.js";
/** /**
* @augments et2_dataview_controller * @augments et2_dataview_controller
*/ */

View File

@ -38,6 +38,8 @@ import {
EGW_AO_FLAG_DEFAULT_FOCUS, EGW_AO_FLAG_DEFAULT_FOCUS,
EGW_AO_EXEC_SELECTED, EGW_AO_FLAG_IS_CONTAINER EGW_AO_EXEC_SELECTED, EGW_AO_FLAG_IS_CONTAINER
} from "../egw_action/egw_action.js"; } from "../egw_action/egw_action.js";
import {nm_action} from "./et2_extension_nextmatch_actions.js";
import {egwIsMobile} from "../egw_action/egw_action_common.js";
/** /**
* @augments et2_dataview_controller * @augments et2_dataview_controller

View File

@ -160,7 +160,10 @@ egw.extend('files', egw.MODULE_WND_LOCAL, function(_app, _wnd)
if (_jsFiles.length === 1) // running this in below case fails when loading app.js from etemplate.load() if (_jsFiles.length === 1) // running this in below case fails when loading app.js from etemplate.load()
{ {
const src = _jsFiles[0]; const src = _jsFiles[0];
promise = import(_prefix ? _prefix+src : src); promise = import(_prefix ? _prefix+src : src)
.catch((err) => {
console.log(src+":\n\n"+err.message);
});
} }
else else
{ {

View File

@ -1,4 +1,3 @@
"use strict";
/** /**
* EGroupware - Infolog - Javascript UI * EGroupware - Infolog - Javascript UI
* *
@ -8,60 +7,41 @@
* @copyright (c) 2008-13 by Ralf Becker <RalfBecker-AT-outdoor-training.de> * @copyright (c) 2008-13 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
*/ */
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
/*egw:uses /*egw:uses
/api/js/jsapi/egw_app.js /api/js/jsapi/egw_app.js
*/ */
require("jquery"); import 'jquery';
require("jqueryui"); import 'jqueryui';
require("../jsapi/egw_global"); import { EgwApp } from '../../api/js/jsapi/egw_app';
require("../etemplate/et2_types"); import { etemplate2 } from "../../api/js/etemplate/etemplate2";
var egw_app_1 = require("../../api/js/jsapi/egw_app"); import { CRMView } from "../../addressbook/js/CRM";
var etemplate2_1 = require("../../api/js/etemplate/etemplate2");
var CRM_1 = require("../../addressbook/js/CRM");
/** /**
* UI for Infolog * UI for Infolog
* *
* @augments AppJS * @augments AppJS
*/ */
var InfologApp = /** @class */ (function (_super) { class InfologApp extends EgwApp {
__extends(InfologApp, _super);
/** /**
* Constructor * Constructor
* *
* @memberOf app.infolog * @memberOf app.infolog
*/ */
function InfologApp() { constructor() {
var _this =
// call parent // call parent
_super.call(this, 'infolog') || this; super('infolog');
// These fields help with push filtering & access control to see if we care about a push message // These fields help with push filtering & access control to see if we care about a push message
_this.push_grant_fields = ["info_owner", "info_responsible"]; this.push_grant_fields = ["info_owner", "info_responsible"];
_this.push_filter_fields = ["info_owner", "info_responsible"]; this.push_filter_fields = ["info_owner", "info_responsible"];
_this._action_ids = []; this._action_ids = [];
_this._action_all = false; this._action_all = false;
return _this;
} }
/** /**
* Destructor * Destructor
*/ */
InfologApp.prototype.destroy = function (_app) { destroy(_app) {
// call parent // call parent
_super.prototype.destroy.call(this, _app); super.destroy(_app);
}; }
/** /**
* This function is called when the etemplate2 object is loaded * This function is called when the etemplate2 object is loaded
* and ready. If you must store a reference to the et2 object, * and ready. If you must store a reference to the et2 object,
@ -70,13 +50,13 @@ var InfologApp = /** @class */ (function (_super) {
* @param {etemplate2} _et2 newly ready object * @param {etemplate2} _et2 newly ready object
* @param {string} _name template name * @param {string} _name template name
*/ */
InfologApp.prototype.et2_ready = function (_et2, _name) { et2_ready(_et2, _name) {
var _a; var _a;
// call parent // call parent
_super.prototype.et2_ready.call(this, _et2, _name); super.et2_ready(_et2, _name);
// CRM View // CRM View
if (typeof CRM_1.CRMView !== "undefined") { if (typeof CRMView !== "undefined") {
CRM_1.CRMView.view_ready(_et2, this); CRMView.view_ready(_et2, this);
} }
switch (_name) { switch (_name) {
case 'infolog.index': case 'infolog.index':
@ -124,7 +104,7 @@ var InfologApp = /** @class */ (function (_super) {
} }
break; break;
} }
}; }
/** /**
* Observer method receives update notifications from all applications * Observer method receives update notifications from all applications
* *
@ -144,7 +124,7 @@ var InfologApp = /** @class */ (function (_super) {
* @param {object|null} _links app => array of ids of linked entries * @param {object|null} _links app => array of ids of linked entries
* or null, if not triggered on server-side, which adds that info * or null, if not triggered on server-side, which adds that info
*/ */
InfologApp.prototype.observer = function (_msg, _app, _id, _type, _msg_type, _links) { observer(_msg, _app, _id, _type, _msg_type, _links) {
if (typeof _links != 'undefined') { if (typeof _links != 'undefined') {
if (typeof _links.infolog != 'undefined') { if (typeof _links.infolog != 'undefined') {
switch (_app) { switch (_app) {
@ -160,7 +140,7 @@ var InfologApp = /** @class */ (function (_super) {
if (_app == 'infolog' && this.et2.getInstanceManager() && this.et2.getInstanceManager().app == 'addressbook' && this.et2.getInstanceManager().name == 'infolog.index') { if (_app == 'infolog' && this.et2.getInstanceManager() && this.et2.getInstanceManager().app == 'addressbook' && this.et2.getInstanceManager().name == 'infolog.index') {
this.et2._inst.refresh(_msg, _app, _id, _type); this.et2._inst.refresh(_msg, _app, _id, _type);
} }
}; }
/** /**
* Retrieve the current state of the application for future restoration * Retrieve the current state of the application for future restoration
* *
@ -169,23 +149,23 @@ var InfologApp = /** @class */ (function (_super) {
* *
* @return {object} Application specific map representing the current state * @return {object} Application specific map representing the current state
*/ */
InfologApp.prototype.getState = function () { getState() {
var state = { let state = {
action: null, action: null,
action_id: null action_id: null
}; };
var nm = {}; let nm = {};
// Get index etemplate // Get index etemplate
var et2 = etemplate2_1.etemplate2.getById('infolog-index'); var et2 = etemplate2.getById('infolog-index');
if (et2) { if (et2) {
state = et2.widgetContainer.getWidgetById("nm").getValue(); state = et2.widgetContainer.getWidgetById("nm").getValue();
var content = et2.widgetContainer.getArrayMgr('content'); let content = et2.widgetContainer.getArrayMgr('content');
nm = content && content.data && content.data.nm ? content.data.nm : {}; nm = content && content.data && content.data.nm ? content.data.nm : {};
} }
state.action = nm.action || null; state.action = nm.action || null;
state.action_id = nm.action_id || null; state.action_id = nm.action_id || null;
return state; return state;
}; }
/** /**
* Set the application's state to the given state. * Set the application's state to the given state.
* *
@ -196,7 +176,7 @@ var InfologApp = /** @class */ (function (_super) {
* *
* @return {boolean} false - Returns false to stop event propagation * @return {boolean} false - Returns false to stop event propagation
*/ */
InfologApp.prototype.setState = function (state) { setState(state) {
// as we have to set state.state.action, we have to set all other // as we have to set state.state.action, we have to set all other
// for "No filter" favorite to work as expected // for "No filter" favorite to work as expected
var to_set = { col_filter: null, filter: '', filter2: '', cat_id: '', search: '', action: null }; var to_set = { col_filter: null, filter: '', filter2: '', cat_id: '', search: '', action: null };
@ -206,15 +186,15 @@ var InfologApp = /** @class */ (function (_super) {
if (typeof state.state[name] == 'undefined') if (typeof state.state[name] == 'undefined')
state.state[name] = to_set[name]; state.state[name] = to_set[name];
} }
return _super.prototype.setState.call(this, state); return super.setState(state);
}; }
/** /**
* Enable or disable the date filter * Enable or disable the date filter
* *
* If the filter is set to something that needs dates, we enable the * If the filter is set to something that needs dates, we enable the
* header_left template. Otherwise, it is disabled. * header_left template. Otherwise, it is disabled.
*/ */
InfologApp.prototype.filter_change = function () { filter_change() {
var filter = this.et2.getWidgetById('filter'); var filter = this.et2.getWidgetById('filter');
var nm = this.et2.getWidgetById('nm'); var nm = this.et2.getWidgetById('nm');
var dates = this.et2.getWidgetById('infolog.index.dates'); var dates = this.et2.getWidgetById('infolog.index.dates');
@ -236,7 +216,7 @@ var InfologApp = /** @class */ (function (_super) {
break; break;
} }
} }
}; }
/** /**
* show or hide the details of rows by selecting the filter2 option * show or hide the details of rows by selecting the filter2 option
* either 'all' for details or 'no_description' for no details * either 'all' for details or 'no_description' for no details
@ -244,7 +224,7 @@ var InfologApp = /** @class */ (function (_super) {
* @param {Event} event Change event * @param {Event} event Change event
* @param {et2_nextmatch} nm The nextmatch widget that owns the filter * @param {et2_nextmatch} nm The nextmatch widget that owns the filter
*/ */
InfologApp.prototype.filter2_change = function (event, nm) { filter2_change(event, nm) {
var filter2 = nm.getWidgetById('filter2'); var filter2 = nm.getWidgetById('filter2');
if (nm && filter2) { if (nm && filter2) {
// Show / hide descriptions // Show / hide descriptions
@ -282,21 +262,21 @@ var InfologApp = /** @class */ (function (_super) {
nm.update_in_progress = in_progress; nm.update_in_progress = in_progress;
} }
return false; return false;
}; }
/** /**
* Show or hide details by changing the CSS class * Show or hide details by changing the CSS class
* *
* @param {boolean} show * @param {boolean} show
* @param {DOMNode} dom_node * @param {DOMNode} dom_node
*/ */
InfologApp.prototype.show_details = function (show, dom_node) { show_details(show, dom_node) {
// Show / hide descriptions // Show / hide descriptions
egw.css((dom_node && dom_node.id ? "#" + dom_node.id + ' ' : '') + ".et2_box.infoDes", "display:" + (show ? "block;" : "none;")); egw.css((dom_node && dom_node.id ? "#" + dom_node.id + ' ' : '') + ".et2_box.infoDes", "display:" + (show ? "block;" : "none;"));
if (egwIsMobile()) { if (egwIsMobile()) {
var $select = jQuery('.infoDetails'); var $select = jQuery('.infoDetails');
(show) ? $select.each(function (i, e) { jQuery(e).hide(); }) : $select.each(function (i, e) { jQuery(e).show(); }); (show) ? $select.each(function (i, e) { jQuery(e).hide(); }) : $select.each(function (i, e) { jQuery(e).show(); });
} }
}; }
/** /**
* Confirm delete * Confirm delete
* If entry has children, asks if you want to delete children too * If entry has children, asks if you want to delete children too
@ -304,14 +284,14 @@ var InfologApp = /** @class */ (function (_super) {
*@param _action *@param _action
*@param _senders *@param _senders
*/ */
InfologApp.prototype.confirm_delete = function (_action, _senders) { confirm_delete(_action, _senders) {
var _a; var _a;
var children = false; let children = false;
var child_button = jQuery('#delete_sub').get(0) || jQuery('[id*="delete_sub"]').get(0); let child_button = jQuery('#delete_sub').get(0) || jQuery('[id*="delete_sub"]').get(0);
this._action_all = (_a = _action.parent.data.nextmatch) === null || _a === void 0 ? void 0 : _a.getSelection().all; this._action_all = (_a = _action.parent.data.nextmatch) === null || _a === void 0 ? void 0 : _a.getSelection().all;
this._action_ids = []; this._action_ids = [];
if (child_button) { if (child_button) {
for (var i = 0; i < _senders.length; i++) { for (let i = 0; i < _senders.length; i++) {
this._action_ids.push(_senders[i].id.split("::").pop()); this._action_ids.push(_senders[i].id.split("::").pop());
if (jQuery(_senders[i].iface.getDOMNode()).hasClass('infolog_rowHasSubs')) { if (jQuery(_senders[i].iface.getDOMNode()).hasClass('infolog_rowHasSubs')) {
children = true; children = true;
@ -321,22 +301,22 @@ var InfologApp = /** @class */ (function (_super) {
child_button.style.display = children ? 'block' : 'none'; child_button.style.display = children ? 'block' : 'none';
} }
nm_open_popup(_action, _senders); nm_open_popup(_action, _senders);
}; }
/** /**
* Callback for action using ids set(!) in this._action_ids and this._action_all * Callback for action using ids set(!) in this._action_ids and this._action_all
* *
* @param _action * @param _action
*/ */
InfologApp.prototype.actionCallback = function (_action) { actionCallback(_action) {
egw.json("infolog.infolog_ui.ajax_action", [_action, this._action_ids, this._action_all]).sendRequest(true); egw.json("infolog.infolog_ui.ajax_action", [_action, this._action_ids, this._action_all]).sendRequest(true);
}; }
/** /**
* Add email from addressbook * Add email from addressbook
* *
* @param ab_id * @param ab_id
* @param info_cc * @param info_cc
*/ */
InfologApp.prototype.add_email_from_ab = function (ab_id, info_cc) { add_email_from_ab(ab_id, info_cc) {
var ab = document.getElementById(ab_id); var ab = document.getElementById(ab_id);
if (!ab || !ab.value) { if (!ab || !ab.value) {
jQuery("tr.hiddenRow").css("display", "table-row"); jQuery("tr.hiddenRow").css("display", "table-row");
@ -354,7 +334,7 @@ var InfologApp = /** @class */ (function (_super) {
} }
} }
return false; return false;
}; }
/** /**
* If one of info_status, info_percent or info_datecompleted changed --> set others to reasonable values * If one of info_status, info_percent or info_datecompleted changed --> set others to reasonable values
* *
@ -363,7 +343,7 @@ var InfologApp = /** @class */ (function (_super) {
* @param {string} percent_id * @param {string} percent_id
* @param {string} datecompleted_id * @param {string} datecompleted_id
*/ */
InfologApp.prototype.status_changed = function (changed_id, status_id, percent_id, datecompleted_id) { status_changed(changed_id, status_id, percent_id, datecompleted_id) {
// Make sure this doesn't get executed while template is loading // Make sure this doesn't get executed while template is loading
if (this.et2 == null || this.et2.getInstanceManager() == null) if (this.et2 == null || this.et2.getInstanceManager() == null)
return; return;
@ -415,13 +395,13 @@ var InfologApp = /** @class */ (function (_super) {
else if (completed && datecompleted && datecompleted.value == '') { else if (completed && datecompleted && datecompleted.value == '') {
// todo: set current date in correct format // todo: set current date in correct format
} }
}; }
/** /**
* handle "print" action from "Actions" selectbox in edit infolog window. * handle "print" action from "Actions" selectbox in edit infolog window.
* check if the template is dirty then submit the template otherwise just open new window as print. * check if the template is dirty then submit the template otherwise just open new window as print.
* *
*/ */
InfologApp.prototype.edit_actions = function () { edit_actions() {
var widget = this.et2.getWidgetById('action'); var widget = this.et2.getWidgetById('action');
var template = this.et2._inst; var template = this.et2._inst;
if (template) { if (template) {
@ -442,21 +422,21 @@ var InfologApp = /** @class */ (function (_super) {
template.submit(); template.submit();
} }
} }
}; }
/** /**
* Open infolog entry for printing * Open infolog entry for printing
* *
* @param {aciton object} _action * @param {aciton object} _action
* @param {object} _selected * @param {object} _selected
*/ */
InfologApp.prototype.infolog_menu_print = function (_action, _selected) { infolog_menu_print(_action, _selected) {
var id = _selected[0].id.replace(/^infolog::/g, ''); var id = _selected[0].id.replace(/^infolog::/g, '');
egw.open(id, 'infolog', 'edit', { print: 1 }); egw.open(id, 'infolog', 'edit', { print: 1 });
}; }
/** /**
* Trigger print() onload window * Trigger print() onload window
*/ */
InfologApp.prototype.infolog_print_preview_onload = function () { infolog_print_preview_onload() {
var that = this; var that = this;
jQuery('#infolog-edit-print').bind('load', function () { jQuery('#infolog-edit-print').bind('load', function () {
var isLoadingCompleted = true; var isLoadingCompleted = true;
@ -474,20 +454,20 @@ var InfologApp = /** @class */ (function (_super) {
} }
}, 100); }, 100);
}); });
}; }
/** /**
* Trigger print() function to print the current window * Trigger print() function to print the current window
*/ */
InfologApp.prototype.infolog_print_preview = function () { infolog_print_preview() {
this.egw.message(this.egw.lang('Printing...')); this.egw.message(this.egw.lang('Printing...'));
this.egw.window.print(); this.egw.window.print();
}; }
/** /**
* *
*/ */
InfologApp.prototype.add_link_sidemenu = function () { add_link_sidemenu() {
egw.open('', 'infolog', 'add'); egw.open('', 'infolog', 'add');
}; }
/** /**
* Wrapper so add -> New actions in the context menu can pass current * Wrapper so add -> New actions in the context menu can pass current
* filter values into new edit dialog * filter values into new edit dialog
@ -497,12 +477,12 @@ var InfologApp = /** @class */ (function (_super) {
* @param {egwAction} action * @param {egwAction} action
* @param {egwActionObject[]} selected * @param {egwActionObject[]} selected
*/ */
InfologApp.prototype.add_action_handler = function (action, selected) { add_action_handler(action, selected) {
var nm = action.getManager().data.nextmatch || false; var nm = action.getManager().data.nextmatch || false;
if (nm) { if (nm) {
this.add_with_extras(nm, action.id, nm.getArrayMgr('content').getEntry('action'), nm.getArrayMgr('content').getEntry('action_id')); this.add_with_extras(nm, action.id, nm.getArrayMgr('content').getEntry('action'), nm.getArrayMgr('content').getEntry('action_id'));
} }
}; }
/** /**
* Opens a new edit dialog with some extra url parameters pulled from * Opens a new edit dialog with some extra url parameters pulled from
* standard locations. Done with a function instead of hardcoding so * standard locations. Done with a function instead of hardcoding so
@ -513,7 +493,7 @@ var InfologApp = /** @class */ (function (_super) {
* @param _action string Special action for new infolog entry * @param _action string Special action for new infolog entry
* @param _action_id string ID for special action * @param _action_id string ID for special action
*/ */
InfologApp.prototype.add_with_extras = function (widget, _type, _action, _action_id) { add_with_extras(widget, _type, _action, _action_id) {
// We use widget.getRoot() instead of this.et2 for the case when the // We use widget.getRoot() instead of this.et2 for the case when the
// addressbook tab is viewing a contact + infolog list, there's 2 infolog // addressbook tab is viewing a contact + infolog list, there's 2 infolog
// etemplates // etemplates
@ -542,23 +522,23 @@ var InfologApp = /** @class */ (function (_super) {
action_id: typeof action_id.join != "undefined" ? action_id.join(',') : action_id action_id: typeof action_id.join != "undefined" ? action_id.join(',') : action_id
}; };
egw.open('', 'infolog', 'add', extras); egw.open('', 'infolog', 'add', extras);
}; }
/** /**
* Get title in order to set it as document title * Get title in order to set it as document title
* @returns {string} * @returns {string}
*/ */
InfologApp.prototype.getWindowTitle = function () { getWindowTitle() {
var widget = this.et2.getWidgetById('info_subject'); var widget = this.et2.getWidgetById('info_subject');
if (widget) if (widget)
return widget.options.value; return widget.options.value;
}; }
/** /**
* View parent entry with all children * View parent entry with all children
* *
* @param {aciton object} _action * @param {aciton object} _action
* @param {object} _selected * @param {object} _selected
*/ */
InfologApp.prototype.view_parent = function (_action, _selected) { view_parent(_action, _selected) {
var data = egw.dataGetUIDdata(_selected[0].id); var data = egw.dataGetUIDdata(_selected[0].id);
if (data && data.data && data.data.info_id_parent) { if (data && data.data && data.data.info_id_parent) {
egw.link_handler(egw.link('/index.php', { egw.link_handler(egw.link('/index.php', {
@ -568,7 +548,7 @@ var InfologApp = /** @class */ (function (_super) {
ajax: "true" ajax: "true"
}), "infolog"); }), "infolog");
} }
}; }
/** /**
* Mess with the query for parent widget to exclude self * Mess with the query for parent widget to exclude self
* *
@ -576,7 +556,7 @@ var InfologApp = /** @class */ (function (_super) {
* @param {et2_link_entry} widget * @param {et2_link_entry} widget
* @returns {boolean} * @returns {boolean}
*/ */
InfologApp.prototype.parent_query = function (request, widget) { parent_query(request, widget) {
// No ID yet, no need to filter // No ID yet, no need to filter
if (!widget.getRoot().getArrayMgr('content').getEntry('info_id')) { if (!widget.getRoot().getArrayMgr('content').getEntry('info_id')) {
return true; return true;
@ -587,7 +567,7 @@ var InfologApp = /** @class */ (function (_super) {
// Exclude self from results - no app needed since it's just one app // Exclude self from results - no app needed since it's just one app
request.options.exclude = [widget.getRoot().getArrayMgr('content').getEntry('info_id')]; request.options.exclude = [widget.getRoot().getArrayMgr('content').getEntry('info_id')];
return true; return true;
}; }
/** /**
* View a list of timesheets for the linked infolog entry * View a list of timesheets for the linked infolog entry
* *
@ -596,7 +576,7 @@ var InfologApp = /** @class */ (function (_super) {
* @param {egwAction} _action * @param {egwAction} _action
* @param {egwActionObject[]} _selected * @param {egwActionObject[]} _selected
*/ */
InfologApp.prototype.timesheet_list = function (_action, _selected) { timesheet_list(_action, _selected) {
var extras = { var extras = {
link_app: 'infolog', link_app: 'infolog',
link_id: false link_id: false
@ -610,17 +590,17 @@ var InfologApp = /** @class */ (function (_super) {
break; break;
} }
egw.open("", "timesheet", "list", extras, 'timesheet'); egw.open("", "timesheet", "list", extras, 'timesheet');
}; }
/** /**
* Go to parent entry * Go to parent entry
* *
* @param {aciton object} _action * @param {aciton object} _action
* @param {object} _selected * @param {object} _selected
*/ */
InfologApp.prototype.has_parent = function (_action, _selected) { has_parent(_action, _selected) {
var data = egw.dataGetUIDdata(_selected[0].id); var data = egw.dataGetUIDdata(_selected[0].id);
return data && data.data && data.data.info_id_parent > 0; return data && data.data && data.data.info_id_parent > 0;
}; }
/** /**
* Submit template if widget has a value * Submit template if widget has a value
* *
@ -629,10 +609,10 @@ var InfologApp = /** @class */ (function (_super) {
* @param {DOMNode} _node * @param {DOMNode} _node
* @param {et2_widget} _widget * @param {et2_widget} _widget
*/ */
InfologApp.prototype.submit_if_not_empty = function (_node, _widget) { submit_if_not_empty(_node, _widget) {
if (_widget.get_value()) if (_widget.get_value())
this.et2._inst.submit(); this.et2._inst.submit();
}; }
/** /**
* Toggle encryption * Toggle encryption
* *
@ -640,13 +620,13 @@ var InfologApp = /** @class */ (function (_super) {
* @param {et2_button} _widget * @param {et2_button} _widget
* @param {DOMNode} _node * @param {DOMNode} _node
*/ */
InfologApp.prototype.toggleEncrypt = function (_event, _widget, _node) { toggleEncrypt(_event, _widget, _node) {
if (!this.egw.user('apps').stylite) { if (!this.egw.user('apps').stylite) {
this.egw.message(this.egw.lang('InfoLog encryption requires EPL Subscription') + ': <a href="http://www.egroupware.org/EPL">www.egroupware.org/EPL</a>'); this.egw.message(this.egw.lang('InfoLog encryption requires EPL Subscription') + ': <a href="http://www.egroupware.org/EPL">www.egroupware.org/EPL</a>');
return; return;
} }
this._get_stylite(function () { app.stylite.toggleEncrypt.call(app.stylite, _event, _widget, _node); }); this._get_stylite(function () { app.stylite.toggleEncrypt.call(app.stylite, _event, _widget, _node); });
}; }
/** /**
* Make sure stylite javascript is loaded, and call the given callback when it is * Make sure stylite javascript is loaded, and call the given callback when it is
* *
@ -654,11 +634,12 @@ var InfologApp = /** @class */ (function (_super) {
* @param {object} attrs * @param {object} attrs
* *
*/ */
InfologApp.prototype._get_stylite = function (callback, attrs) { _get_stylite(callback, attrs) {
// use app object from etemplate2, which might be private and not just window.app // use app object from etemplate2, which might be private and not just window.app
var app = this.et2.getInstanceManager().app_obj; var app = this.et2.getInstanceManager().app_obj;
if (!app.stylite) { if (!app.stylite) {
var self = this; var self = this;
// @ToDo: @new-js-loader
egw_LAB.script('stylite/js/app.js?' + this.et2.getArrayMgr('content').getEntry('encryption_ts')).wait(function () { egw_LAB.script('stylite/js/app.js?' + this.et2.getArrayMgr('content').getEntry('encryption_ts')).wait(function () {
app.stylite = new app.classes.stylite; app.stylite = new app.classes.stylite;
app.stylite.et2 = self.et2; app.stylite.et2 = self.et2;
@ -671,18 +652,18 @@ var InfologApp = /** @class */ (function (_super) {
app.stylite.et2 = this.et2; app.stylite.et2 = this.et2;
callback.apply(app.stylite, attrs); callback.apply(app.stylite, attrs);
} }
}; }
/** /**
* OnChange callback for responsible * OnChange callback for responsible
* *
* @param {jQuery.Event} _event * @param {jQuery.Event} _event
* @param {et2_widget} _widget * @param {et2_widget} _widget
*/ */
InfologApp.prototype.onchangeResponsible = function (_event, _widget) { onchangeResponsible(_event, _widget) {
if (app.stylite && app.stylite.onchangeResponsible) { if (app.stylite && app.stylite.onchangeResponsible) {
app.stylite.onchangeResponsible.call(app.stylite, _event, _widget); app.stylite.onchangeResponsible.call(app.stylite, _event, _widget);
} }
}; }
/** /**
* Action handler for context menu change responsible action * Action handler for context menu change responsible action
* *
@ -691,7 +672,7 @@ var InfologApp = /** @class */ (function (_super) {
* @param {egwAction} _action * @param {egwAction} _action
* @param {egwActionObject[]} _selected * @param {egwActionObject[]} _selected
*/ */
InfologApp.prototype.change_responsible = function (_action, _selected) { change_responsible(_action, _selected) {
var et2 = _selected[0].manager.data.nextmatch.getInstanceManager(); var et2 = _selected[0].manager.data.nextmatch.getInstanceManager();
var responsible = et2.widgetContainer.getWidgetById('responsible'); var responsible = et2.widgetContainer.getWidgetById('responsible');
if (responsible) { if (responsible) {
@ -711,14 +692,14 @@ var InfologApp = /** @class */ (function (_super) {
} }
} }
nm_open_popup(_action, _selected); nm_open_popup(_action, _selected);
}; }
/** /**
* Handle encrypted info_desc for print purpose * Handle encrypted info_desc for print purpose
* and triggers print action after decryption * and triggers print action after decryption
* *
* @param {Keyring} _keyring Mailvelope keyring to use * @param {Keyring} _keyring Mailvelope keyring to use
*/ */
InfologApp.prototype.printEncrypt = function (_keyring) { printEncrypt(_keyring) {
//this.mailvelopeAvailable(this.toggleEncrypt); //this.mailvelopeAvailable(this.toggleEncrypt);
var info_desc = this.et2.getWidgetById('info_des'); var info_desc = this.et2.getWidgetById('info_des');
var self = this; var self = this;
@ -731,17 +712,16 @@ var InfologApp = /** @class */ (function (_super) {
}, function (_err) { }, function (_err) {
self.egw.message(_err, 'error'); self.egw.message(_err, 'error');
}); });
}; }
/** /**
* Blur NM count (used for limit modified optimization not returning (an exact) count * Blur NM count (used for limit modified optimization not returning (an exact) count
* *
* @param blur * @param blur
*/ */
InfologApp.prototype.blurCount = function (blur) { blurCount(blur) {
var _a; var _a;
(_a = document.querySelector('div#infolog-index_nm.et2_nextmatch .header_count')) === null || _a === void 0 ? void 0 : _a.classList.toggle('blur_count', blur); (_a = document.querySelector('div#infolog-index_nm.et2_nextmatch .header_count')) === null || _a === void 0 ? void 0 : _a.classList.toggle('blur_count', blur);
}; }
return InfologApp; }
}(egw_app_1.EgwApp));
app.classes.infolog = InfologApp; app.classes.infolog = InfologApp;
//# sourceMappingURL=app.js.map //# sourceMappingURL=app.js.map

View File

@ -14,11 +14,8 @@
import 'jquery'; import 'jquery';
import 'jqueryui'; import 'jqueryui';
import '../jsapi/egw_global';
import '../etemplate/et2_types';
import {EgwApp} from '../../api/js/jsapi/egw_app'; import {EgwApp} from '../../api/js/jsapi/egw_app';
import {et2_dialog} from "../../api/js/etemplate/et2_widget_dialog";
import {etemplate2} from "../../api/js/etemplate/etemplate2"; import {etemplate2} from "../../api/js/etemplate/etemplate2";
import {et2_nextmatch} from "../../api/js/etemplate/et2_extension_nextmatch"; import {et2_nextmatch} from "../../api/js/etemplate/et2_extension_nextmatch";
import {CRMView} from "../../addressbook/js/CRM"; import {CRMView} from "../../addressbook/js/CRM";
@ -783,6 +780,7 @@ class InfologApp extends EgwApp
if (!app.stylite) if (!app.stylite)
{ {
var self = this; var self = this;
// @ToDo: @new-js-loader
egw_LAB.script('stylite/js/app.js?'+this.et2.getArrayMgr('content').getEntry('encryption_ts')).wait(function() egw_LAB.script('stylite/js/app.js?'+this.et2.getArrayMgr('content').getEntry('encryption_ts')).wait(function()
{ {
app.stylite = new app.classes.stylite; app.stylite = new app.classes.stylite;