Bladeren bron

[bugfix] hide chat pannel when no room is selected

B Thibault 8 jaren geleden
bovenliggende
commit
c3dddf9699
4 gewijzigde bestanden met toevoegingen van 7 en 2 verwijderingen
  1. 2 0
      cli/workflow.js
  2. 2 1
      srv/public/mimouchat.min.js
  3. 2 0
      srv/public/style.css
  4. 1 1
      srv/src/template/index.js

+ 2 - 0
cli/workflow.js

@@ -179,6 +179,7 @@ function selectRoom(room) {
     });
     if (!DATA.history[SELECTED_ROOM.id] || DATA.history[SELECTED_ROOM.id].messages.length < KEEP_MESSAGES)
         fetchHistory(SELECTED_ROOM, function(success) {});
+    document.getElementById(R.id.mainSection).classList.remove(R.klass.noRoomSelected);
 }
 
 /**
@@ -203,6 +204,7 @@ function unstarChannel(room) {
 
 function unselectRoom() {
     document.getElementById("room_" +SELECTED_ROOM.id).classList.remove(R.klass.selected);
+    document.getElementById(R.id.mainSection).classList.add(R.klass.noRoomSelected);
 }
 
 /**

+ 2 - 1
srv/public/mimouchat.min.js

@@ -91,7 +91,8 @@ c.open("GET",a,!0);c.send(null)}function e(){var a=h.createLinearGradient(0,0,0,
 y[b]=[f];for(var k in d)d[k].Ja||d[k].$a||h.push({src:"api/avatar?user="+d[k].id});c(h,function(c){a(g,c);x[b]=m.toDataURL();y[b].forEach(function(a){a(x[b])})})}}}();var X=0,M=null,P=null,T=null,V=null;function lb(){var a=new XMLHttpRequest;a.timeout=6E4;a.onreadystatechange=function(){if(4===a.readyState){var b=document.createElement("script"),c=document.createElement("link");b.innerHTML=a.response;b.language="text/javascript";c.href="hljs-androidstudio.css";c.rel="stylesheet";document.head.appendChild(c);document.body.appendChild(b)}};a.open("GET","highlight.pack.js",!0);a.send(null)}
 function Gb(){var a=M,b=new XMLHttpRequest;b.open("GET","api/hist?room="+a.id,!0);b.onreadystatechange=function(){if(4===b.readyState&&b.response){var c=b.response;try{c=JSON.parse(c)}catch(e){}var d=E.a[a.id];d?d=!!la(d,c,Date.now()):(E.a[a.id]=new Y(a,100,c,Date.now()),d=!0);d&&(Bb(H(E.context,a.id),a,c),a===M&&Q())}};b.send(null)}
 function Hb(a){var b=new XMLHttpRequest;b.timeout=6E4;b.onreadystatechange=function(){if(4===b.readyState)if(b.status){var c=null,d=2===Math.floor(b.status/100);if(d){X&&(X=0,Ya(!0));c=b.response;try{c=JSON.parse(c)}catch(e){c=null}}else X?(X+=Math.floor((X||5)/2),X=Math.min(60,X)):(X=5,Ya(!1));a(d,c)}else X&&(X=0,Ya(!0)),Hb(a)};b.open("GET","api?v="+E.b,!0);b.send(null)}function pb(){var a=new XMLHttpRequest;a.open("POST","api/typing?room="+M.id,!0);a.send(null)}
-function Ib(a,b){a?(b&&E.update(b),tb()):setTimeout(tb,1E3*X)}function tb(){Hb(Ib)}function kb(a){M&&document.getElementById("room_"+M.id).classList.remove("selected");document.getElementById("room_"+a.id).classList.add("selected");document.body.classList.remove("no-room-selected");M=a;P=H(E.context,a.id);Za();Ua(P.a.id,P.m,function(a){document.getElementById("chatCtx").style.backgroundImage="url("+a+")"});(!E.a[M.id]||100>E.a[M.id].a.length)&&Gb()}
+function Ib(a,b){a?(b&&E.update(b),tb()):setTimeout(tb,1E3*X)}function tb(){Hb(Ib)}
+function kb(a){M&&(document.getElementById("room_"+M.id).classList.remove("selected"),document.getElementById("chatSystemContainer").classList.add("no-room-selected"));document.getElementById("room_"+a.id).classList.add("selected");document.body.classList.remove("no-room-selected");M=a;P=H(E.context,a.id);Za();Ua(P.a.id,P.m,function(a){document.getElementById("chatCtx").style.backgroundImage="url("+a+")"});(!E.a[M.id]||100>E.a[M.id].a.length)&&Gb();document.getElementById("chatSystemContainer").classList.remove("no-room-selected")}
 function nb(a,b,c){var d=M;new FileReader;var e=new FormData,f=new XMLHttpRequest;e.append("file",b);e.append("filename",a);f.onreadystatechange=function(){4===f.readyState&&(204===f.status?c(null):c(f.statusText))};f.open("POST","api/file?room="+d.id);f.send(e)}
 function Jb(a,b,c){var d=new XMLHttpRequest;b="api/msg?room="+a.id+"&text="+encodeURIComponent(b);c&&(b+="&attachments="+encodeURIComponent(JSON.stringify([{fallback:c.text,author_name:I(c.J).name,text:c.text,footer:a.b?K.message:a.name,ts:c.l}])));d.open("POST",b,!0);d.send(null)}
 function ob(a){if(V){var b=new XMLHttpRequest;b.open("PUT","api/msg?room="+M.id+"&ts="+V.id+"&text="+encodeURIComponent(a),!0);b.send(null);return!0}if("/"===a[0]){var c=a.indexOf(" "),b=a.substr(0,-1===c?void 0:c);a=-1===c?"":a.substr(c);var c=P,d=qb.La(b);return d?(d.exec(c,M,a.trim()),!0):c&&(b=c.i.data[b])?(c=new XMLHttpRequest,c.open("POST","api/cmd?room="+M.id+"&cmd="+encodeURIComponent(b.name.substr(1))+"&args="+encodeURIComponent(a.trim()),!0),c.send(null),!0):!1}Jb(M,a,T);return!0}

+ 2 - 0
srv/public/style.css

@@ -57,6 +57,8 @@ button, .button { border: 1px solid black; border-radius: 3px; background: rgb(2
 .chatsystem-title { display: inline-block; padding: 14px 10px; font-size: 1.75em; font-style: italic; }
 .chatsystem-header-star { background: center center no-repeat /100%; background-image: url("star_empty.png"); display: inline-block; height: 1em; width: 1em; }
 .chatsystem-container.starred .chatsystem-header-star { background-image: url("star_full.png"); }
+.chatsystem-container.no-room-selected { position: relative; visibility: hidden; }
+.chatsystem-container.no-room-selected::after { position: absolute; top: 0; bottom: 0; left: 0; right: 0; background: #e0e0e0; content: " "; visibility: visible; }
 .chatsystem-whoistyping { margin: 0; padding: 0 10px; height: 1.5em; line-height: 1.5em; background: #EAEAEA; }
 .chatsystem-whoistyping > li { display: inline; }
 .chatsystem-whoistyping .typing-container { margin: 0 5px; background: rgb(156, 156, 156); padding: 0 2px; border-radius: 2px; display: inline-block; height: 14px; line-height: 12px ;}

+ 1 - 1
srv/src/template/index.js

@@ -73,7 +73,7 @@ module.exports.exec = function(req, res) {
                   <button id="settingCommit"></button>
               </footer>
           </section>
-          <div class="chatsystem-container" id="chatSystemContainer">
+          <div class="chatsystem-container no-room-selected" id="chatSystemContainer">
               <header class="chatsystem-header"><span class="chatsystem-title" id="currentRoomTitle"></span><span id="currentRoomStar" class="chatsystem-header-star"></span></header>
               <div class="chatsystem-content" id="chatWindow"></div>
               <ul class="chatsystem-whoistyping" id="whoistyping"></ul>