浏览代码

Add outline for a user profile modal

JC Brand 7 年之前
父节点
当前提交
5278e4fe79
共有 3 个文件被更改,包括 37 次插入2 次删除
  1. 22 1
      src/converse-profile.js
  2. 12 0
      src/templates/profile_modal.html
  3. 3 1
      src/templates/profile_view.html

+ 22 - 1
src/converse-profile.js

@@ -10,6 +10,7 @@
     define(["converse-core",
             "bootstrap",
             "tpl!chat_status_modal",
+            "tpl!profile_modal",
             "tpl!profile_view",
             "tpl!status_option",
             "converse-vcard",
@@ -19,6 +20,7 @@
             converse,
             bootstrap,
             tpl_chat_status_modal,
+            tpl_profile_modal,
             tpl_profile_view,
             tpl_status_option
         ) {
@@ -40,6 +42,17 @@
                   { __ } = _converse;
 
 
+            _converse.ProfileModal = _converse.BootstrapModal.extend({
+
+                toHTML () {
+                    return tpl_profile_modal(_.extend(this.model.toJSON(), {
+                        'heading_profile': __('Your profile'),
+                        'label_close': __('Close')
+                    }));
+                },
+            });
+
+
             _converse.ChatStatusModal = _converse.BootstrapModal.extend({
                 events: {
                     "submit form#set-xmpp-status": "onFormSubmitted",
@@ -85,6 +98,7 @@
             _converse.XMPPStatusView = Backbone.VDOMView.extend({
                 tagName: "div",
                 events: {
+                    "click a.show-profile": "showProfileModal",
                     "click a.change-status": "showStatusChangeModal",
                     "click .dropdown dd ul li a": "setStatus",
                     "click .logout": "logOut"
@@ -108,7 +122,14 @@
                     }));
                 },
 
-               showStatusChangeModal (ev) {
+                showProfileModal (ev) {
+                    if (_.isUndefined(this.profile_modal)) {
+                        this.profile_modal = new _converse.ProfileModal({model: this.model});
+                    }
+                    this.profile_modal.show(ev);
+                },
+
+                showStatusChangeModal (ev) {
                     if (_.isUndefined(this.status_modal)) {
                         this.status_modal = new _converse.ChatStatusModal({model: this.model});
                     }

+ 12 - 0
src/templates/profile_modal.html

@@ -0,0 +1,12 @@
+<div class="modal fade" id="user-profile-modal" tabindex="-1" role="dialog" aria-labelledby="user-profile-modal-label" aria-hidden="true">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title" id="user-profile-modal-label">{{{o.heading_profile}}}</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="{{{o.label_close}}}"><span aria-hidden="true">&times;</span></button>
+            </div>
+            <div class="modal-body">
+            </div>
+        </div>
+    </div>
+</div>

+ 3 - 1
src/templates/profile_view.html

@@ -1,7 +1,9 @@
 <div class="userinfo">
 <div class="d-flex">
     {[ if (o.image) { ]}
-    <img alt="User Avatar" class="avatar align-self-center" height="40px" width="40px" src="data:{{{o.image_type}}};base64,{{{o.image}}}"/>
+    <a class="show-profile" href="#">
+        <img alt="User Avatar" class="avatar align-self-center" height="40px" width="40px" src="data:{{{o.image_type}}};base64,{{{o.image}}}"/>
+    </a>
     {[ } ]}
     <span class="username w-100 align-self-center">{{{o.fullname}}}</span>
     <!-- <a class="chatbox-btn fa fa-vcard align-self-center" title="{{{o.title_your_profile}}}" data-toggle="modal" data-target="#userProfileModal"></a> -->