diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..e283f2d --- /dev/null +++ b/build.xml @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + var Ext = {}; + var Zarafa = {}; + var container = {}; + var _ = function(key, domain) {}; + var dgettext = function(domain, msgid) {}; + var dngettext = function(domain, msgid, msgid_plural, count) {}; + var dnpgettext = function(domain, msgctxt, msgid, msgid_plural, count) {}; + var dpgettext = function(domain, msgctxt, msgid) {}; + var ngettext = function(msgid, msgid_plural, count) {}; + var npgettext = function(msgctxt, msgid, msgid_plural, count) {}; + var pgettext = function(msgctxt, msgid) {}; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config.php b/config.php new file mode 100644 index 0000000..fae929e --- /dev/null +++ b/config.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/js/ABOUT.js b/js/ABOUT.js new file mode 100644 index 0000000..c9da29e --- /dev/null +++ b/js/ABOUT.js @@ -0,0 +1,8 @@ +Ext.namespace('Zarafa.plugins.passwd'); + +/** + * @class Zarafa.plugins.passwd.ABOUT + * + * The copyright string holding the copyright notice for the Zarafa passwd Plugin. + */ +Zarafa.plugins.sugarcrm.ABOUT = "Something should be here"; diff --git a/js/PasswdPlugin.js b/js/PasswdPlugin.js new file mode 100644 index 0000000..9ff37b0 --- /dev/null +++ b/js/PasswdPlugin.js @@ -0,0 +1,56 @@ +Ext.namespace('Zarafa.plugins.passwd'); + +/** + * @class Zarafa.plugins.passwd.PasswdPlugin + * @extends Zarafa.core.Plugin + * + * Passwd plugin. + * Allows users to change password from webapp. + */ +Zarafa.plugins.passwd.PasswdPlugin = Ext.extend(Zarafa.core.Plugin, { + + /** + * Initialize the plugin by registering to the insertion point + * to add something to the right end of the main tab bar. + * @protected + */ + initPlugin : function() + { + Zarafa.plugins.passwd.PasswdPlugin.superclass.initPlugin.apply(this, arguments); + + this.registerInsertionPoint('main.maintabbar.right', this.putTabbarButton, this); + }, + + /** + * Create the button to add to the insertion point as called + * by init(). + * @return A struct with the necessary configuration for the button. + * @private + */ + putTabbarButton : function() + { + return { + text : _('Change Password'), + handler : this.clickPasswdButton + }; + }, + + /** + * Trigger function called when the user clicks the button in the + * main tab bar. + * @private + */ + clickPasswdButton : function() + { + // open a dialog + } +}); + +Zarafa.onReady(function() { + container.registerPlugin(new Zarafa.core.PluginMetaData({ + name : 'passwd', + displayName : _('Password Change Plugin'), + about : Zarafa.plugins.passwd.ABOUT, + pluginConstructor : Zarafa.plugins.passwd.PasswdPlugin + })); +}); diff --git a/manifest.xml b/manifest.xml new file mode 100644 index 0000000..9c55014 --- /dev/null +++ b/manifest.xml @@ -0,0 +1,34 @@ + + + + + 0.1 + Passwd + Password Changer Plugin + Saket Patel + http://www.zarafa.com + Change your password from zarafa webapp + + + config.php + + + + + + php/plugin.passwd.php + php/class.passwdmodule.php + + + js/passwd.js + js/passwd-debug.js + js/PasswdPlugin.js + js/ABOUT.js + + + + + + diff --git a/php/class.passwdmodule.php b/php/class.passwdmodule.php new file mode 100644 index 0000000..d8590b2 --- /dev/null +++ b/php/class.passwdmodule.php @@ -0,0 +1,42 @@ +data as $actionType => $actionData) + { + if(isset($actionType)) { + try { + switch($actionType) + { + case "save": + $this->save($actionData); + break; + default: + $this->handleUnknownActionType($actionType); + } + } catch (MAPIException $e) { + $this->sendFeedback(false, $this->errorDetailsFromException($e)); + } + + } + } + } +} +?> \ No newline at end of file diff --git a/php/plugin.passwd.php b/php/plugin.passwd.php new file mode 100644 index 0000000..bec8323 --- /dev/null +++ b/php/plugin.passwd.php @@ -0,0 +1,55 @@ + + */ + +class Pluginpasswd extends Plugin { + + public function __construct() {} + + /** + * Function initializes the Plugin and registers all hooks + */ + function init() { + $this->registerHook('server.core.settings.init.before'); + } + + /** + * Function is executed when a hook is triggered by the PluginManager + * + * @param string $eventID the id of the triggered hook + * @param mixed $data object(s) related to the hook + */ + function execute($eventID, &$data) { + switch($eventID) { + case 'server.core.settings.init.before' : + $this->injectPluginSettings($data); + break; + } + } + + /** + * Called when the core Settings class is initialized and ready to accept sysadmin default + * settings. Registers the sysadmin defaults for the SugarCRM plugin. + * @param Array $data Reference to the data of the triggered hook + */ + function injectPluginSettings(&$data) { + $data['settingsObj']->addSysAdminDefaults(Array( + 'zarafa' => Array( + 'v1' => Array( + 'plugins' => Array( + 'sugarcrm' => Array( + 'enable' => PLUGIN_PASSWD_USER_DEFAULT_ENABLE, + ) + + ) + ) + ) + )); + } +} +?>