forked from extern/egroupware
fixing a couple more imports to get addressbook list show up
This commit is contained in:
parent
c440dffa54
commit
38cb855017
@ -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
|
@ -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;
|
@ -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
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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';
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
{
|
{
|
||||||
|
@ -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
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user