diff --git a/js/PasswdContentPanel.js b/js/PasswdContentPanel.js
deleted file mode 100644
index a282132..0000000
--- a/js/PasswdContentPanel.js
+++ /dev/null
@@ -1,34 +0,0 @@
-Ext.namespace('Zarafa.plugins.passwd');
-
-/**
- * @class Zarafa.plugins.passwd.PasswdContentPanel
- * @extends Zarafa.core.ui.ContentPanel
- *
- * Content panel that will layout the container
- */
-Zarafa.plugins.passwd.PasswdContentPanel = Ext.extend(Zarafa.core.ui.ContentPanel, {
-
- /**
- * @constructor
- * @param {Object} config configuration object that needs to be used when creating this dialog
- */
- constructor : function(config)
- {
- config = config || {};
-
- Ext.applyIf(config, {
- xtype : 'zarafa.passwdcontentpanel',
- layout : 'fit',
- height : 175,
- width : 400,
- title : _('Change password'),
- items : [{
- xtype : 'zarafa.passwdpanel'
- }]
- });
-
- Zarafa.plugins.passwd.PasswdContentPanel.superclass.constructor.apply(this, arguments);
- }
-});
-
-Ext.reg('zarafa.passwdcontentpanel', Zarafa.plugins.passwd.PasswdContentPanel);
\ No newline at end of file
diff --git a/js/PasswdPanel.js b/js/PasswdPanel.js
deleted file mode 100644
index 1bb2476..0000000
--- a/js/PasswdPanel.js
+++ /dev/null
@@ -1,129 +0,0 @@
-Ext.namespace('Zarafa.plugins.passwd');
-
-/**
- * @class Zarafa.plugins.passwd.PasswdPanel
- * @extends Ext.form.FormPanel
- *
- * Panel which holds a form that will be used to change the password
- */
-Zarafa.plugins.passwd.PasswdPanel = Ext.extend(Ext.form.FormPanel, {
- /**
- * @property
- * @type Ext.LoadMask
- * Save mask that will be displayed when request has been sent to server for password change
- * and waiting for the response.
- */
- saveMask : undefined,
-
- /**
- * @constructor
- * @param {Object} config configuration object that needs to be used when creating this dialog
- */
- constructor : function(config)
- {
- config = config || {};
-
- Ext.applyIf(config, {
- xtype : 'zarafa.passwdpanel',
- labelWidth : 150,
- defaults : {
- width : 200
- },
- items : [{
- xtype : 'displayfield',
- ref : 'userNameField',
- fieldLabel : 'User name'
- }, {
- xtype : 'textfield',
- ref : 'oldPasswdField',
- fieldLabel : 'Current password',
- inputType : 'password'
- }, {
- xtype : 'textfield',
- ref : 'newPasswdField',
- fieldLabel : 'New password',
- inputType : 'password'
- }, {
- xtype : 'textfield',
- ref : 'newPasswdRepeatField',
- fieldLabel : 'Retype new password',
- inputType : 'password'
- }],
- buttons : [{
- text : 'Ok',
- handler : this.onOk,
- scope : this
- }, {
- text : 'Cancel',
- handler : this.onCancel,
- scope : this
- }]
- });
-
- Zarafa.plugins.passwd.PasswdPanel.superclass.constructor.apply(this, arguments);
-
- this.on('afterrender', this.initialize, this);
- },
-
- /**
- * Function will initialize this dialog with some default values and will
- * also create object of {@link #saveMask}.
- */
- initialize : function()
- {
- this.userNameField.setValue(container.getUser().getUserName());
-
- this.saveMask = new Ext.LoadMask(this.getEl(), {
- msg : _('Saving please wait ...')
- })
- },
-
- /**
- * Handler function that will be called when user presses ok button
- * to change password.
- */
- onOk : function()
- {
- // show load mask
- this.saveMask.show();
-
- // send request
- container.getRequest().singleRequest('passwdmodule', 'save', {
- username : this.userNameField.getValue(),
- current_password : this.oldPasswdField.getValue(),
- new_password : this.newPasswdField.getValue(),
- new_password_repeat : this.newPasswdRepeatField.getValue()
- }, new Zarafa.plugins.passwd.data.PasswdResponseHandler({
- callbackFn : this.callbackFn,
- scope : this
- }));
- },
-
- /**
- * Handler function that will be called when user presses cancel button
- * to close the dialog.
- */
- onCancel : function()
- {
- // close the dialog
- this.dialog.close();
- },
-
- /**
- * Callback function that will be executed after response is received from server.
- * @param {Boolean} success boolean to indicate response contains success/failure data.
- * @param {Object} response response sent by server.
- */
- callbackFn : function(success, response)
- {
- // hide load mask
- this.saveMask.hide();
-
- // close the dialog
- if(success) {
- this.dialog.close();
- }
- }
-});
-
-Ext.reg('zarafa.passwdpanel', Zarafa.plugins.passwd.PasswdPanel);
\ No newline at end of file
diff --git a/js/PasswdPlugin.js b/js/PasswdPlugin.js
index 6aaec5c..40fb570 100644
--- a/js/PasswdPlugin.js
+++ b/js/PasswdPlugin.js
@@ -18,77 +18,29 @@ Zarafa.plugins.passwd.PasswdPlugin = Ext.extend(Zarafa.core.Plugin, {
{
Zarafa.plugins.passwd.PasswdPlugin.superclass.initPlugin.apply(this, arguments);
- this.registerInsertionPoint('main.maintabbar.right', this.putTabbarButton, this);
-
- // Register common specific dialog types
- Zarafa.core.data.SharedComponentType.addProperty('plugins.passwd.passwdpanel');
+ // Register categories for the settings
+ this.registerInsertionPoint('context.settings.categories', this.createSettingsCategory, this);
},
/**
- * Bid for the type of shared component and the given record.
- * @param {Zarafa.core.data.SharedComponentType} type Type of component a context can bid for.
- * @param {Ext.data.Record} record Optionally passed record.
- * @return {Number} The bid for the shared component
- */
- bidSharedComponent: function(type, record)
- {
- var bid = -1;
-
- switch (type) {
- // Bid for password dialog
- case Zarafa.core.data.SharedComponentType['plugins.passwd.passwdpanel']:
- bid = 1;
- break;
- }
-
- return bid;
- },
-
- /**
- * Will return the reference to the shared component.
- * Based on the type of component requested a component is returned.
- * @param {Zarafa.core.data.SharedComponentType} type Type of component a context can bid for.
- * @param {Ext.data.Record} record Optionally passed record.
- * @return {Ext.Component} Component
- */
- getSharedComponent: function(type, record)
- {
- var component;
-
- switch (type) {
- case Zarafa.core.data.SharedComponentType['plugins.passwd.passwdpanel']:
- component = Zarafa.plugins.passwd.PasswdContentPanel;
- break;
- }
-
- return component;
- },
-
- /**
- * Create the button to add to the insertion point as called
- * by init().
- * @return A struct with the necessary configuration for the button.
+ * Create the delegate {@link Zarafa.settings.ui.SettingsCategory Settings Category}
+ * to the {@link Zarafa.settings.SettingsContext}. This will create new
+ * {@link Zarafa.settings.ui.SettingsCategoryTab tabs} for the
+ * {@link Zarafa.calendar.ui.SettingsPasswdCategory Password}
+ * in the {@link Zarafa.settings.ui.SettingsCategoryWidgetPanel Widget Panel}.
+ * @param {String} insertionName insertion point name that is currently populated
+ * @param {Zarafa.settings.ui.SettingsMainPanel} settingsMainPanel settings main panel
+ * which is populating this insertion point
+ * @param {Zarafa.settings.SettingsContext} settingsContext settings context
+ * @return {Array} configuration object for the categories to register
* @private
*/
- putTabbarButton : function()
+ createSettingsCategory : function(insertionName, settingsMainPanel, settingsContext)
{
return {
- text : _('Change Password'),
- handler : this.clickPasswdButton
+ xtype : 'zarafa.settingspasswdcategory',
+ settingsContext : settingsContext
};
- },
-
- /**
- * Trigger function called when the user clicks the button in the
- * main tab bar.
- * @private
- */
- clickPasswdButton : function()
- {
- var componentType = Zarafa.core.data.SharedComponentType['plugins.passwd.passwdpanel'];
- Zarafa.core.data.UIFactory.openLayerComponent(componentType, undefined, {
- modal : true
- });
}
});
diff --git a/manifest.xml b/manifest.xml
index 53b8cc3..bea5081 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -6,7 +6,7 @@