[DE] Use sdk methods

This commit is contained in:
Julia Radzhabova 2022-11-28 18:25:02 +03:00
parent 5251f9f5e3
commit fa29dd9a48
5 changed files with 135 additions and 84 deletions

View file

@ -60,7 +60,6 @@ define([
},
onLaunch: function () {
this._state = {};
this.roles = [];
},
setApi: function (api) {
@ -75,7 +74,7 @@ define([
this.api.asc_registerCallback('asc_onEndAction', _.bind(this.onLongActionEnd, this));
this.api.asc_registerCallback('asc_onError', _.bind(this.onError, this));
this.api.asc_registerCallback('asc_onDownloadUrl', _.bind(this.onDownloadUrl, this));
this.api.asc_registerCallback('asc_onRefreshRolesList', _.bind(this.onRefreshRolesList, this));
this.api.asc_registerCallback('asc_onUpdateOFormRoles', _.bind(this.onRefreshRolesList, this));
// this.api.asc_registerCallback('asc_onShowContentControlsActions',_.bind(this.onShowContentControlsActions, this));
// this.api.asc_registerCallback('asc_onHideContentControlsActions',_.bind(this.onHideContentControlsActions, this));
@ -395,11 +394,12 @@ define([
// }
config.isEdit && config.canFeatureContentControl && config.isFormCreator && me.showCreateFormTip(); // show tip only when create form in docxf
// change to event asc_onRefreshRolesList
me.onRefreshRolesList([
{name: 'employee 1', color: Common.Utils.ThemeColor.getRgbColor('ff0000'), fields: 5},
{name: 'employee 2', color: Common.Utils.ThemeColor.getRgbColor('00ff00'), fields: 1},
{name: 'manager', color: null, fields: 10}
]);
me.onRefreshRolesList();
// me.onRefreshRolesList([
// {name: 'employee 1', color: Common.Utils.ThemeColor.getRgbColor('ff0000'), fields: 5},
// {name: 'employee 2', color: Common.Utils.ThemeColor.getRgbColor('00ff00'), fields: 1},
// {name: 'manager', color: null, fields: 10}
// ]);
me.onChangeProtectDocument();
});
},
@ -451,36 +451,40 @@ define([
},
onRefreshRolesList: function(roles) {
this.roles = roles;
if (!roles) {
var oform = this.api.asc_GetOForm();
oform && (roles = oform.asc_getAllRoles());
}
this.view && this.view.fillRolesMenu(roles, this._state.lastRole);
},
onManagerClick: function() {
var me = this;
(new DE.Views.RolesManagerDlg({
this.api.asc_GetOForm() && (new DE.Views.RolesManagerDlg({
api: me.api,
handler: function(result, settings) {
me.roles = settings;
me.onRefreshRolesList(me.roles);
Common.component.Analytics.trackEvent('ToolBar', 'Roles Manager');
// me.roles = settings;
// me.onRefreshRolesList(me.roles);
// Common.component.Analytics.trackEvent('ToolBar', 'Roles Manager');
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
},
roles: me.roles,
// roles: me.roles,
props : undefined
})).on('close', function(win){
}).show();
},
showRolesList: function(callback) {
var me = this;
(new DE.Views.SaveFormDlg({
var me = this,
oform = this.api.asc_GetOForm();
oform && (new DE.Views.SaveFormDlg({
handler: function(result, settings) {
if (result=='ok')
callback.call(me);
else
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
},
roles: me.roles
roles: oform.asc_getAllRoles()
})).show();
},

View file

@ -611,7 +611,7 @@ define([
this.api = api;
if (this.api) {
// this.api.asc_registerCallback('asc_onParaSpacingLine', _.bind(this._onLineSpacing, this));
this.api.asc_registerCallback('asc_onRefreshRolesList', _.bind(this.onRefreshRolesList, this));
this.api.asc_registerCallback('asc_onUpdateOFormRoles', _.bind(this.onRefreshRolesList, this));
}
Common.NotificationCenter.on('storage:image-insert', _.bind(this.insertImageFromStorage, this));
return this;
@ -1585,23 +1585,28 @@ define([
}
if (!roles) {
roles = this.api.asc_GetOForm().asc_getAllRoles();
// change to event asc_onRefreshRolesList
roles = [
{name: 'employee 1', color: Common.Utils.ThemeColor.getRgbColor('ff0000'), fields: 5},
{name: 'employee 2', color: Common.Utils.ThemeColor.getRgbColor('00ff00'), fields: 1},
{name: 'manager', color: null, fields: 10}
];
// roles = [
// {name: 'employee 1', color: Common.Utils.ThemeColor.getRgbColor('ff0000'), fields: 5},
// {name: 'employee 2', color: Common.Utils.ThemeColor.getRgbColor('00ff00'), fields: 1},
// {name: 'manager', color: null, fields: 10}
// ];
}
var lastrole = this.cmbRoles.getSelectedRecord();
lastrole = lastrole ? lastrole.get('value') : '';
lastrole = lastrole ? lastrole.value : '';
var arr = [];
var me = this;
roles && roles.forEach(function(item) {
var role = item.asc_getSettings(),
color = role.asc_getColor();
arr.push({
displayValue: item.name,
value: item.name,
color: item.color ? '#' + Common.Utils.ThemeColor.getHexColor(item.color.get_r(), item.color.get_g(), item.color.get_b()) : 'transparent'
displayValue: role.asc_getName() || me.textAnyone,
value: role.asc_getName(),
color: color ? '#' + Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()) : 'transparent'
});
});
this.cmbRoles.setData(arr);
@ -1671,7 +1676,8 @@ define([
textLetters: 'Letters',
textDigits: 'Digits',
textNone: 'None',
textComplex: 'Complex Field'
textComplex: 'Complex Field',
textAnyone: 'Anyone'
}, DE.Views.FormSettings || {}));
});

View file

@ -117,6 +117,10 @@ define([
me.fireEvent('forms:mode', [true, item.caption]);
}
}, me));
this.btnViewFormRoles.menu.on('show:after', function (menu) {
me.fillRolesMenu();
});
this.btnManager && this.btnManager.on('click', function (b, e) {
me.fireEvent('forms:manager');
});
@ -155,6 +159,7 @@ define([
this.appConfig = options.config;
this.paragraphControls = [];
this._state = {};
var me = this;
var _set = Common.enumLock;
@ -457,17 +462,30 @@ define([
},
fillRolesMenu: function(roles, lastRole) {
if (!(this.btnViewFormRoles && this.btnViewFormRoles.menu && this.btnViewFormRoles.menu.isVisible())) {
this._state.roles = roles;
this._state.lastRole = lastRole;
return;
}
roles = roles || this._state.roles;
lastRole = lastRole || this._state.lastRole;
this._state.roles = this._state.lastRole = undefined;
if (!roles) return;
var checkedIndex = 0,
me = this;
this.btnViewFormRoles.menu.removeAll();
roles && roles.forEach(function(item, index) {
if (item.name===lastRole)
var role = item.asc_getSettings(),
color = role.asc_getColor();
if (role.asc_getName()===lastRole)
checkedIndex = index;
me.btnViewFormRoles.menu.addItem(new Common.UI.MenuItem({
caption: item.name,
color: item.color ? '#' + Common.Utils.ThemeColor.getHexColor(item.color.get_r(), item.color.get_g(), item.color.get_b()) : 'transparent',
caption: role.asc_getName() || me.textAnyone,
color: color ? '#' + Common.Utils.ThemeColor.getHexColor(color.get_r(), color.get_g(), color.get_b()) : 'transparent',
checkable: true,
toggleGroup: 'formtab-view-role',
template: _.template([
@ -550,7 +568,8 @@ define([
capBtnComplex: 'Complex Field',
tipEmailField: 'Insert email address',
tipPhoneField: 'Insert phone number',
tipComplexField: 'Insert complex field'
tipComplexField: 'Insert complex field',
textAnyone: 'Anyone'
}
}()), DE.Views.FormsTab || {}));
});

View file

@ -75,7 +75,6 @@ define([ 'text!documenteditor/main/app/template/RolesManagerDlg.template',
this.api = options.api;
this.handler = options.handler;
this.props = options.props;
this.roles = options.roles;
this.wrapEvents = {
onRefreshRolesList: _.bind(this.onRefreshRolesList, this)
@ -156,24 +155,29 @@ define([ 'text!documenteditor/main/app/template/RolesManagerDlg.template',
},
_setDefaults: function (props) {
this.refreshRolesList(this.roles, 0);
this.api.asc_registerCallback('asc_onRefreshRolesList', this.wrapEvents.onRefreshRolesList);
this.refreshRolesList(this.api.asc_GetOForm().asc_getAllRoles(), 0);
this.api.asc_registerCallback('asc_onUpdateOFormRoles', this.wrapEvents.onRefreshRolesList);
},
onRefreshRolesList: function(roles) {
this.refreshRolesList(roles);
},
refreshRolesList: function(roles, selectedItem) {
refreshRolesList: function(roles, selectedRole) {
(selectedRole===undefined) && (selectedRole = this.lastSelectedRole); // when add or delete roles
this.lastSelectedRole = undefined;
if (selectedRole===undefined && this.rolesList.store.length>0) {
var rec = this.rolesList.getSelectedRec();
rec && (selectedRole = rec.get('name'));
}
if (roles) {
this.roles = roles;
var arr = [];
for (var i=0; i<this.roles.length; i++) {
var role = this.roles[i];
for (var i=0; i<roles.length; i++) {
var role = roles[i].asc_getSettings();
arr.push({
name: role.name,//role.asc_getName(),
color: role.color,//role.asc_getColor(),
fields: role.fields,//role.asc_getFields(),
name: role.asc_getName() || this.textAnyone,
color: role.asc_getColor(),
fields: role.fields || 0,//role.asc_getFields(),
index: i,
scope: this
});
@ -181,10 +185,18 @@ define([ 'text!documenteditor/main/app/template/RolesManagerDlg.template',
this.rolesList.store.reset(arr);
}
if (this.rolesList.store.length>0) {
var me = this;
this.rolesList.selectByIndex(0);
var me = this,
rec;
(selectedRole===undefined) && (selectedRole = 0);
if (typeof selectedRole === 'string') { // name
rec = this.rolesList.store.findWhere({name: selectedRole});
this.rolesList.selectRecord(rec);
} else {
selectedRole = Math.min(selectedRole, this.rolesList.store.length-1);
rec = this.rolesList.selectByIndex(selectedRole);
}
setTimeout(function() {
me.rolesList.scrollToRecord(me.rolesList.store.at(0));
me.rolesList.scrollToRecord(rec || me.rolesList.store.at(0));
}, 50);
}
this.updateButtons();
@ -219,25 +231,29 @@ define([ 'text!documenteditor/main/app/template/RolesManagerDlg.template',
var color = settings.color,
name = settings.name,
store = me.rolesList.store;
this.lastSelectedRole = name;
if (isEdit) {
// me.api.asc_editRole(settings);
rec.set('name', name);
rec.set('color', color);
} else {
// me.api.asc_addRole(settings);
rec = store.push({
name: name,
color: color,
fields: 0,
index: store.length,
scope: me
});
if (rec) {
me.rolesList.selectRecord(rec);
setTimeout(function() {
me.rolesList.scrollToRecord(rec);
}, 50);
}
var role = new AscCommon.CRoleSettings();
role.asc_putName(name);
role.asc_putColor(color);
me.api.asc_GetOForm().asc_addRole(role);
// rec = store.push({
// name: name,
// color: color,
// fields: 0,
// index: store.length,
// scope: me
// });
// if (rec) {
// me.rolesList.selectRecord(rec);
// setTimeout(function() {
// me.rolesList.scrollToRecord(rec);
// }, 50);
// }
}
me.updateButtons();
}
@ -268,17 +284,20 @@ define([ 'text!documenteditor/main/app/template/RolesManagerDlg.template',
var callback = function(toRole) {
var index = store.indexOf(rec);
if (toRole) {
var item = store.findWhere({name: toRole});
item && item.set('fields', item.get('fields') + rec.get('fields'));
// me.api.asc_moveFieldsToRole(rec.get('name'), toRole); // from - to
}
// me.api.asc_delRole(rec.get('name'));
store.remove(rec);
me.refreshRolesIndexes();
(store.length>0) && me.rolesList.selectByIndex(index<store.length ? index : store.length-1);
me.rolesList.scrollToRecord(me.rolesList.getSelectedRec());
me.updateButtons();
this.lastSelectedRole = index;
me.api.asc_delRole(rec.get('name'), toRole); // remove role and move it's fields
// if (toRole) {
// var item = store.findWhere({name: toRole});
// item && item.set('fields', item.get('fields') + rec.get('fields'));
// // me.api.asc_moveFieldsToRole(rec.get('name'), toRole); // from - to
// }
// me.api.asc_delRole(rec.get('name'), toRole); // remove role and move it's fields
// store.remove(rec);
// me.refreshRolesIndexes();
// (store.length>0) && me.rolesList.selectByIndex(index<store.length ? index : store.length-1);
// me.rolesList.scrollToRecord(me.rolesList.getSelectedRec());
// me.updateButtons();
};
if (rec.get('fields')<1) {
@ -314,15 +333,15 @@ define([ 'text!documenteditor/main/app/template/RolesManagerDlg.template',
},
getSettings: function() {
var arr = [];
this.rolesList.store.each(function(item, index) {
arr.push({
name: item.get('name'),
color: item.get('color'),
fields: item.get('fields')
});
});
return arr;
// var arr = [];
// this.rolesList.store.each(function(item, index) {
// arr.push({
// name: item.get('name'),
// color: item.get('color'),
// fields: item.get('fields')
// });
// });
// return arr;
},
onPrimary: function() {
@ -383,7 +402,7 @@ define([ 'text!documenteditor/main/app/template/RolesManagerDlg.template',
},
close: function () {
this.api.asc_unregisterCallback('asc_onRefreshRolesList', this.wrapEvents.onRefreshRolesList);
this.api.asc_unregisterCallback('asc_onUpdateOFormRoles', this.wrapEvents.onRefreshRolesList);
Common.UI.Window.prototype.close.call(this);
},
@ -408,7 +427,8 @@ define([ 'text!documenteditor/main/app/template/RolesManagerDlg.template',
warnCantDelete: 'You cannot delete this role because it has associated fields.',
textUp: 'Move role up',
textDown: 'Move role down',
textDescription: 'Add roles and set the order in which the fillers receive and sign the document'
textDescription: 'Add roles and set the order in which the fillers receive and sign the document',
textAnyone: 'Anyone'
}, DE.Views.RolesManagerDlg || {}));
});

View file

@ -129,11 +129,12 @@ define([ 'common/main/lib/view/AdvancedSettingsWindow',
if (roles) {
this.roles = roles;
var arr = [];
var me = this;
for (var i=0; i<this.roles.length; i++) {
var role = this.roles[i];
var role = roles[i].asc_getSettings();
(role.fields>0) && arr.push({
name: role.name,//role.asc_getName(),
color: role.color,//role.asc_getColor(),
name: role.asc_getName() || me.textAnyone,
color: role.asc_getColor(),
fields: role.fields,//role.asc_getFields(),
index: i,
scope: this
@ -153,7 +154,8 @@ define([ 'common/main/lib/view/AdvancedSettingsWindow',
saveButtonText : 'Save',
textEmpty: 'There are no roles associated with fields.',
textDescription: 'When saving to the oform, only roles with fields are added to the filling list',
textFill: 'Filling list'
textFill: 'Filling list',
textAnyone: 'Anyone'
}, DE.Views.SaveFormDlg || {}));
});