summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGislene Pereira <gislene01@gmail.com>2015-12-01 12:29:33 -0200
committerPixelated <pixelated@pix-poa-1>2015-12-03 21:16:58 -0200
commit10d378faf09ec71147994ba0c47033f1745272b3 (patch)
treeb3bc0e7a1b9b339a4e88951b7586faffaa949669
parent1e0032ceaeb50e0c557f57dd7e1cfb34397b28e3 (diff)
Issue #411 - Display user email in user settings popup [w/ @jeffhsta]
-rw-r--r--service/pixelated/resources/root_resource.py2
-rw-r--r--service/pixelated/resources/user_settings_resource.py30
-rw-r--r--web-ui/app/js/page/user_settings_box.js27
-rw-r--r--web-ui/app/templates/page/user_settings_box.hbs2
4 files changed, 57 insertions, 4 deletions
diff --git a/service/pixelated/resources/root_resource.py b/service/pixelated/resources/root_resource.py
index 7bb7b3ad..f1e5d02b 100644
--- a/service/pixelated/resources/root_resource.py
+++ b/service/pixelated/resources/root_resource.py
@@ -5,6 +5,7 @@ from pixelated.resources.attachments_resource import AttachmentsResource
from pixelated.resources.contacts_resource import ContactsResource
from pixelated.resources.features_resource import FeaturesResource
from pixelated.resources.feedback_resource import FeedbackResource
+from pixelated.resources.user_settings_resource import UserSettingsResource
from pixelated.resources.mail_resource import MailResource
from pixelated.resources.mails_resource import MailsResource
from pixelated.resources.tags_resource import TagsResource
@@ -47,6 +48,7 @@ class RootResource(Resource):
self.putChild('mails', MailsResource(mail_service, draft_service))
self.putChild('mail', MailResource(mail_service))
self.putChild('feedback', FeedbackResource(feedback_service))
+ self.putChild('user-settings', UserSettingsResource(self.account_email))
self._mode = MODE_RUNNING
diff --git a/service/pixelated/resources/user_settings_resource.py b/service/pixelated/resources/user_settings_resource.py
new file mode 100644
index 00000000..034dca15
--- /dev/null
+++ b/service/pixelated/resources/user_settings_resource.py
@@ -0,0 +1,30 @@
+#
+# Copyright (c) 2015 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/>.
+import json
+
+from twisted.web.resource import Resource
+from pixelated.resources import respond_json
+
+
+class UserSettingsResource(Resource):
+ isLeaf = True
+
+ def __init__(self, account_email):
+ Resource.__init__(self)
+ self.account_email = account_email
+
+ def render_GET(self, request):
+ return respond_json({'account_email': self.account_email}, request)
diff --git a/web-ui/app/js/page/user_settings_box.js b/web-ui/app/js/page/user_settings_box.js
index 32a06ed3..299f6237 100644
--- a/web-ui/app/js/page/user_settings_box.js
+++ b/web-ui/app/js/page/user_settings_box.js
@@ -14,7 +14,15 @@
* 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) {
+define(
+ [
+ 'flight/lib/component',
+ 'features',
+ 'views/templates',
+ 'page/events',
+ 'helpers/monitored_ajax'
+ ], function (defineComponent, features, templates, events, monitoredAjax) {
+
'use strict';
return defineComponent(function () {
@@ -23,10 +31,24 @@ define(['flight/lib/component', 'features', 'views/templates', 'page/events'], f
});
this.render = function () {
- this.$node.html(templates.page.userSettingsBox());
if (features.isLogoutEnabled()) {
this.$node.addClass('extra-bottom-space');
}
+
+ var success = function (userSettings) {
+ this.$node.html(templates.page.userSettingsBox(userSettings));
+ this.on(this.attr.close, 'click', this.toggleHidden);
+ };
+
+ var failure = function (resp) {
+ var msg = i18n('Could not get mail address');
+ this.trigger(document, events.ui.userAlerts.displayMessage, { message: msg });
+ };
+
+ monitoredAjax(this, '/user-settings', {
+ type: 'GET',
+ contentType: 'application/json; charset=utf-8'
+ }).done(success.bind(this)).fail(failure.bind(this));
};
this.toggleHidden = function() {
@@ -40,7 +62,6 @@ define(['flight/lib/component', 'features', 'views/templates', 'page/events'], f
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/templates/page/user_settings_box.hbs b/web-ui/app/templates/page/user_settings_box.hbs
index 187d603b..eb227dcf 100644
--- a/web-ui/app/templates/page/user_settings_box.hbs
+++ b/web-ui/app/templates/page/user_settings_box.hbs
@@ -4,4 +4,4 @@
<h1>User Settings</h1>
<i class="shortcut-label"></i>
</header>
-<p>$account_email</p>
+<p>{{ account_email }}</p>