diff options
| author | Cam Jackson <camjackson89@gmail.com> | 2015-10-29 21:28:44 +1100 | 
|---|---|---|
| committer | Pixelated <pixelated@pix-poa-1> | 2015-11-27 17:17:09 -0200 | 
| commit | 3a9010d4c8a86983d06d6d5be3f68d6c03999e77 (patch) | |
| tree | 519e9ff88d1c763fbd6a9e687f1231e8abc65720 /web-ui/app/js/page | |
| parent | 07be9f6109e3dff49775aa51f0a481b5fd524d3b (diff) | |
Add the user settings icon, with a popup box
Diffstat (limited to 'web-ui/app/js/page')
| -rw-r--r-- | web-ui/app/js/page/default.js | 6 | ||||
| -rw-r--r-- | web-ui/app/js/page/events.js | 3 | ||||
| -rw-r--r-- | web-ui/app/js/page/user_settings_box.js | 46 | ||||
| -rw-r--r-- | web-ui/app/js/page/user_settings_icon.js | 35 | 
4 files changed, 90 insertions, 0 deletions
| diff --git a/web-ui/app/js/page/default.js b/web-ui/app/js/page/default.js index c3d39cd3..c8b88a08 100644 --- a/web-ui/app/js/page/default.js +++ b/web-ui/app/js/page/default.js @@ -42,6 +42,8 @@ define(      'views/i18n',      'views/recipientListFormatter',      'flight/lib/logger', +    'page/user_settings_icon', +    'page/user_settings_box',      'page/logout',      'page/logout_shortcut',      'feedback/feedback_trigger', @@ -77,6 +79,8 @@ define(      viewI18n,      recipientListFormatter,      withLogging, +    userSettingsIcon, +    userSettingsBox,      logout,      logoutShortcut,      feedback, @@ -113,6 +117,8 @@ define(        leftPaneDispatcher.attachTo(document);        offCanvas.attachTo(document); +      userSettingsIcon.attachTo('#user-settings-icon'); +      userSettingsBox.attachTo('#user-settings-box');        logout.attachTo('#logout');        logoutShortcut.attachTo('#logout-shortcut');        version.attachTo('.version'); diff --git a/web-ui/app/js/page/events.js b/web-ui/app/js/page/events.js index 6897cf63..1bed8cd1 100644 --- a/web-ui/app/js/page/events.js +++ b/web-ui/app/js/page/events.js @@ -96,6 +96,9 @@ define(function () {          doCompleteInput: 'ui:recipients:doCompleteInput',          doCompleteRecipients: 'ui:recipients:doCompleteRecipients',          clickToEdit: 'ui:recipients:clickToEdit' +      }, +      userSettingsBox: { +        toggle: 'ui:userSettingsBox:toggle'        }      },      search: { diff --git a/web-ui/app/js/page/user_settings_box.js b/web-ui/app/js/page/user_settings_box.js new file mode 100644 index 00000000..32a06ed3 --- /dev/null +++ b/web-ui/app/js/page/user_settings_box.js @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2014 ThoughtWorks, Inc. + * + * Pixelated is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Pixelated is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Pixelated. If not, see <http://www.gnu.org/licenses/>. + */ +define(['flight/lib/component', 'features', 'views/templates', 'page/events'], function (defineComponent, features, templates, events) { +  'use strict'; + +  return defineComponent(function () { +    this.defaultAttrs({ +      close: '#user-settings-close' +    }); + +    this.render = function () { +      this.$node.html(templates.page.userSettingsBox()); +      if (features.isLogoutEnabled()) { +        this.$node.addClass('extra-bottom-space'); +      } +    }; + +    this.toggleHidden = function() { +      if (this.$node.hasClass('hidden')) { +        this.$node.removeClass('hidden'); +      } else { +        this.$node.addClass('hidden'); +      } +    }; + +    this.after('initialize', function () { +      this.render(); +      this.on(document, events.ui.userSettingsBox.toggle, this.toggleHidden); +      this.on(this.attr.close, 'click', this.toggleHidden); +    }); +  }); +}); diff --git a/web-ui/app/js/page/user_settings_icon.js b/web-ui/app/js/page/user_settings_icon.js new file mode 100644 index 00000000..2d79c2d0 --- /dev/null +++ b/web-ui/app/js/page/user_settings_icon.js @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2014 ThoughtWorks, Inc. + * + * Pixelated is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Pixelated is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Pixelated. If not, see <http://www.gnu.org/licenses/>. + */ +define(['flight/lib/component', 'views/templates', 'page/events'], function (defineComponent, templates, events) { +  'use strict'; + +  return defineComponent(function () { + +    this.render = function () { +      this.$node.html(templates.page.userSettingsIcon()); +    }; + +    this.toggleUserSettingsBox = function() { +      this.trigger(document, events.ui.userSettingsBox.toggle); +    }; + +    this.after('initialize', function () { +      this.render(); +      this.on('click', this.toggleUserSettingsBox); +    }); +  }); +}); | 
