Download:
child 26:8d301732c5cc
parent 24:04329aa80b7a
25:bab5df239765
Anton Shestakov <av6@dwimlabs.net>, Mon, 21 Mar 2016 20:10:19 +0800
index: get version info from server on connect, show it in a message log

5 файлов изменено, 133 вставок(+), 3 удалений(-) [+]
coffee/index.coffee file | annotate | diff | comparison | revisions
css/tram-im.css file | annotate | diff | comparison | revisions
index.html file | annotate | diff | comparison | revisions
js/index.js file | annotate | diff | comparison | revisions
js/index.js.map file | annotate | diff | comparison | revisions
--- a/coffee/index.coffee Mon Mar 21 19:57:24 2016 +0800
+++ b/coffee/index.coffee Mon Mar 21 20:10:19 2016 +0800
@@ -1,3 +1,52 @@
+window.messages ?= new Tram.Messages()
+window.logApp ?= new Tram.LogApp(el: $('[data-app="log"]'), collection: messages)
+
+
+onConnected = ->
+ getVersion()
+
+
+getText = (el) ->
+ if not el
+ return null
+
+ str = ''
+ if el.childNodes.length is 0 and el.nodeType is Strophe.ElementType.TEXT
+ str += el.nodeValue
+
+ for node in el.childNodes
+ if node.nodeType is Strophe.ElementType.TEXT
+ str += node.nodeValue
+
+ return str
+
+
+getVersion = ->
+ iq = $iq(type: 'get', id: X.conn.getUniqueId('version'), to: Tram.config.domain).c('query', xmlns: Strophe.NS.VERSION)
+
+ okcb = (stanza) ->
+ name = getText stanza.getElementsByTagName('name')[0]
+ version = getText stanza.getElementsByTagName('version')[0]
+ os = getText stanza.getElementsByTagName('os')[0]
+ delay = stanza.getElementsByTagName('delay')[0]
+ stamp = if delay then new Date(delay.getAttribute('stamp')) else new Date()
+ messages.add
+ id: stanza.getAttribute('id')
+ type: stanza.getAttribute('type')
+ from: stanza.getAttribute('from')
+ stamp: stamp
+ cls: 'info'
+ name: name
+ version: version
+ os: os
+ text: "connected to #{ name } #{ version } on #{ os }"
+
+ failcb = (stanza) ->
+ console.error("couldn't get version", stanza?.innerHTML)
+
+ X.conn.sendIQ(iq.tree(), okcb, failcb, 5000)
+
+
window.X = new Tram.XMPPInterface()
@@ -17,6 +66,7 @@
X.on 'connected attached', ->
$('[data-step="login"]').addClass('uk-hidden')
$('[data-step="main"]').removeClass('uk-hidden')
+ onConnected()
$('button[data-disconnect]').on 'click', ->
--- a/css/tram-im.css Mon Mar 21 19:57:24 2016 +0800
+++ b/css/tram-im.css Mon Mar 21 20:10:19 2016 +0800
@@ -11,10 +11,19 @@
margin-left: 115px;
}
}
+.log {
+ height: 300px;
+ overflow: auto;
+ margin-top: 15px;
+ margin-bottom: 15px;
+}
.splitter {
border-top: 1px solid lightgray;
margin: 10px 0;
}
+.message .info {
+ color: teal;
+}
.column {
display: table-cell;
vertical-align: middle;
--- a/index.html Mon Mar 21 19:57:24 2016 +0800
+++ b/index.html Mon Mar 21 20:10:19 2016 +0800
@@ -56,6 +56,8 @@
<button type="button" class="uk-button" data-disconnect>
<i class="uk-icon-sign-out"></i>&nbsp;Log out
</button>
+
+ <div class="log" data-app="log"></div>
</div>
<script type="text/template" id="message-template">
--- a/js/index.js Mon Mar 21 19:57:24 2016 +0800
+++ b/js/index.js Mon Mar 21 20:10:19 2016 +0800
@@ -1,6 +1,74 @@
// Generated by CoffeeScript 1.10.0
(function() {
- var $form;
+ var $form, getText, getVersion, onConnected;
+
+ if (window.messages == null) {
+ window.messages = new Tram.Messages();
+ }
+
+ if (window.logApp == null) {
+ window.logApp = new Tram.LogApp({
+ el: $('[data-app="log"]'),
+ collection: messages
+ });
+ }
+
+ onConnected = function() {
+ return getVersion();
+ };
+
+ getText = function(el) {
+ var i, len, node, ref, str;
+ if (!el) {
+ return null;
+ }
+ str = '';
+ if (el.childNodes.length === 0 && el.nodeType === Strophe.ElementType.TEXT) {
+ str += el.nodeValue;
+ }
+ ref = el.childNodes;
+ for (i = 0, len = ref.length; i < len; i++) {
+ node = ref[i];
+ if (node.nodeType === Strophe.ElementType.TEXT) {
+ str += node.nodeValue;
+ }
+ }
+ return str;
+ };
+
+ getVersion = function() {
+ var failcb, iq, okcb;
+ iq = $iq({
+ type: 'get',
+ id: X.conn.getUniqueId('version'),
+ to: Tram.config.domain
+ }).c('query', {
+ xmlns: Strophe.NS.VERSION
+ });
+ okcb = function(stanza) {
+ var delay, name, os, stamp, version;
+ name = getText(stanza.getElementsByTagName('name')[0]);
+ version = getText(stanza.getElementsByTagName('version')[0]);
+ os = getText(stanza.getElementsByTagName('os')[0]);
+ delay = stanza.getElementsByTagName('delay')[0];
+ stamp = delay ? new Date(delay.getAttribute('stamp')) : new Date();
+ return messages.add({
+ id: stanza.getAttribute('id'),
+ type: stanza.getAttribute('type'),
+ from: stanza.getAttribute('from'),
+ stamp: stamp,
+ cls: 'info',
+ name: name,
+ version: version,
+ os: os,
+ text: "connected to " + name + " " + version + " on " + os
+ });
+ };
+ failcb = function(stanza) {
+ return console.error("couldn't get version", stanza != null ? stanza.innerHTML : void 0);
+ };
+ return X.conn.sendIQ(iq.tree(), okcb, failcb, 5000);
+ };
window.X = new Tram.XMPPInterface();
@@ -19,7 +87,8 @@
X.on('connected attached', function() {
$('[data-step="login"]').addClass('uk-hidden');
- return $('[data-step="main"]').removeClass('uk-hidden');
+ $('[data-step="main"]').removeClass('uk-hidden');
+ return onConnected();
});
$('button[data-disconnect]').on('click', function() {
--- a/js/index.js.map Mon Mar 21 19:57:24 2016 +0800
+++ b/js/index.js.map Mon Mar 21 20:10:19 2016 +0800
@@ -6,5 +6,5 @@
"coffee/index.coffee"
],
"names": [],
- "mappings": ";AAAA;AAAA,MAAA;;EAAA,MAAM,CAAC,CAAP,GAAe,IAAA,IAAI,CAAC,aAAL,CAAA;;EAGf,CAAC,CAAC,EAAF,CAAK,YAAL,EAAmB,SAAA;WACjB,CAAA,CAAE,kBAAF,CAAqB,CAAC,QAAtB,CAA+B,WAA/B;EADiB,CAAnB;;EAIA,CAAC,CAAC,EAAF,CAAK,UAAL,EAAiB,SAAA;WACf,CAAA,CAAE,qBAAF,CAAwB,CAAC,WAAzB,CAAqC,WAArC;EADe,CAAjB;;EAIA,CAAC,CAAC,EAAF,CAAK,cAAL,EAAqB,SAAA;IACnB,CAAA,CAAE,qBAAF,CAAwB,CAAC,WAAzB,CAAqC,WAArC;WACA,CAAA,CAAE,oBAAF,CAAuB,CAAC,QAAxB,CAAiC,WAAjC;EAFmB,CAArB;;EAKA,CAAC,CAAC,EAAF,CAAK,oBAAL,EAA2B,SAAA;IACzB,CAAA,CAAE,qBAAF,CAAwB,CAAC,QAAzB,CAAkC,WAAlC;WACA,CAAA,CAAE,oBAAF,CAAuB,CAAC,WAAxB,CAAoC,WAApC;EAFyB,CAA3B;;EAKA,CAAA,CAAE,yBAAF,CAA4B,CAAC,EAA7B,CAAgC,OAAhC,EAAyC,SAAA;WACvC,CAAC,CAAC,UAAF,CAAa,YAAb;EADuC,CAAzC;;EAIA,KAAA,GAAQ,CAAA,CAAE,uBAAF;;EAGR,KAAK,CAAC,IAAN,CAAW,OAAX,CAAmB,CAAC,EAApB,CAAuB,SAAvB,EAAkC,SAAC,CAAD;AAChC,QAAA;IAAA,IAAG,CAAC,CAAI,IAAC,CAAA,QAAL,IAAiB,IAAC,CAAA,KAAD,KAAY,EAA9B,CAAA,IAAsC,CAAC,CAAC,OAAF,KAAa,EAAtD;MACE,CAAC,CAAC,cAAF,CAAA;MACA,KAAA,GAAQ,KAAK,CAAC,IAAN,CAAW,OAAX,CAAmB,CAAC,KAApB,CAA0B,IAA1B;MACR,KAAA,GAAQ,KAAK,CAAC,IAAN,CAAW,OAAX,CAAmB,CAAC,EAApB,CAAuB,KAAA,GAAQ,CAA/B;MACR,IAAG,KAAK,CAAC,MAAN,KAAkB,CAArB;eACE,KAAK,CAAC,KAAN,CAAA,EADF;OAAA,MAAA;eAGE,KAAK,CAAC,IAAN,CAAW,QAAX,CAAoB,CAAC,OAArB,CAA6B,OAA7B,EAHF;OAJF;;EADgC,CAAlC;;EAWA,KAAK,CAAC,IAAN,CAAW,QAAX,CAAoB,CAAC,EAArB,CAAwB,OAAxB,EAAiC,SAAC,CAAD;AAC/B,QAAA;IAAA,CAAC,CAAC,cAAF,CAAA;IACA,EAAA,GAAK;IACL,IAAI,CAAC,UAAU,CAAC,UAAhB,CAA2B,CAAA,CAAE,sBAAF,CAA3B;IACA,EAAA,IAAM,IAAI,CAAC,UAAU,CAAC,gBAAhB,CAAiC,CAAA,CAAE,WAAF,CAAjC,EAAiD,IAAjD;IACN,EAAA,IAAM,IAAI,CAAC,UAAU,CAAC,gBAAhB,CAAiC,CAAA,CAAE,WAAF,CAAjC;IACN,IAAG,EAAH;aACE,CAAC,CAAC,OAAF,CAAU,CAAA,CAAE,WAAF,CAAc,CAAC,GAAf,CAAA,CAAoB,CAAC,IAArB,CAAA,CAAV,EAAuC,CAAA,CAAE,WAAF,CAAc,CAAC,GAAf,CAAA,CAAvC,EADF;;EAN+B,CAAjC;AAvCA"
+ "mappings": ";AAAA;AAAA,MAAA;;;IAAA,MAAM,CAAC,WAAgB,IAAA,IAAI,CAAC,QAAL,CAAA;;;;IACvB,MAAM,CAAC,SAAc,IAAA,IAAI,CAAC,MAAL,CAAY;MAAA,EAAA,EAAI,CAAA,CAAE,kBAAF,CAAJ;MAA2B,UAAA,EAAY,QAAvC;KAAZ;;;EAGrB,WAAA,GAAc,SAAA;WACZ,UAAA,CAAA;EADY;;EAId,OAAA,GAAU,SAAC,EAAD;AACR,QAAA;IAAA,IAAG,CAAI,EAAP;AACE,aAAO,KADT;;IAGA,GAAA,GAAM;IACN,IAAG,EAAE,CAAC,UAAU,CAAC,MAAd,KAAwB,CAAxB,IAA8B,EAAE,CAAC,QAAH,KAAe,OAAO,CAAC,WAAW,CAAC,IAApE;MACE,GAAA,IAAO,EAAE,CAAC,UADZ;;AAGA;AAAA,SAAA,qCAAA;;MACE,IAAG,IAAI,CAAC,QAAL,KAAiB,OAAO,CAAC,WAAW,CAAC,IAAxC;QACE,GAAA,IAAO,IAAI,CAAC,UADd;;AADF;AAIA,WAAO;EAZC;;EAeV,UAAA,GAAa,SAAA;AACX,QAAA;IAAA,EAAA,GAAK,GAAA,CAAI;MAAA,IAAA,EAAM,KAAN;MAAa,EAAA,EAAI,CAAC,CAAC,IAAI,CAAC,WAAP,CAAmB,SAAnB,CAAjB;MAAgD,EAAA,EAAI,IAAI,CAAC,MAAM,CAAC,MAAhE;KAAJ,CAA2E,CAAC,CAA5E,CAA8E,OAA9E,EAAuF;MAAA,KAAA,EAAO,OAAO,CAAC,EAAE,CAAC,OAAlB;KAAvF;IAEL,IAAA,GAAO,SAAC,MAAD;AACL,UAAA;MAAA,IAAA,GAAO,OAAA,CAAQ,MAAM,CAAC,oBAAP,CAA4B,MAA5B,CAAoC,CAAA,CAAA,CAA5C;MACP,OAAA,GAAU,OAAA,CAAQ,MAAM,CAAC,oBAAP,CAA4B,SAA5B,CAAuC,CAAA,CAAA,CAA/C;MACV,EAAA,GAAK,OAAA,CAAQ,MAAM,CAAC,oBAAP,CAA4B,IAA5B,CAAkC,CAAA,CAAA,CAA1C;MACL,KAAA,GAAQ,MAAM,CAAC,oBAAP,CAA4B,OAA5B,CAAqC,CAAA,CAAA;MAC7C,KAAA,GAAW,KAAH,GAAkB,IAAA,IAAA,CAAK,KAAK,CAAC,YAAN,CAAmB,OAAnB,CAAL,CAAlB,GAA6D,IAAA,IAAA,CAAA;aACrE,QAAQ,CAAC,GAAT,CACE;QAAA,EAAA,EAAI,MAAM,CAAC,YAAP,CAAoB,IAApB,CAAJ;QACA,IAAA,EAAM,MAAM,CAAC,YAAP,CAAoB,MAApB,CADN;QAEA,IAAA,EAAM,MAAM,CAAC,YAAP,CAAoB,MAApB,CAFN;QAGA,KAAA,EAAO,KAHP;QAIA,GAAA,EAAK,MAJL;QAKA,IAAA,EAAM,IALN;QAMA,OAAA,EAAS,OANT;QAOA,EAAA,EAAI,EAPJ;QAQA,IAAA,EAAM,eAAA,GAAiB,IAAjB,GAAuB,GAAvB,GAA2B,OAA3B,GAAoC,MAApC,GAA2C,EARjD;OADF;IANK;IAiBP,MAAA,GAAS,SAAC,MAAD;aACP,OAAO,CAAC,KAAR,CAAc,sBAAd,mBAAsC,MAAM,CAAE,kBAA9C;IADO;WAGT,CAAC,CAAC,IAAI,CAAC,MAAP,CAAc,EAAE,CAAC,IAAH,CAAA,CAAd,EAAyB,IAAzB,EAA+B,MAA/B,EAAuC,IAAvC;EAvBW;;EA0Bb,MAAM,CAAC,CAAP,GAAe,IAAA,IAAI,CAAC,aAAL,CAAA;;EAGf,CAAC,CAAC,EAAF,CAAK,YAAL,EAAmB,SAAA;WACjB,CAAA,CAAE,kBAAF,CAAqB,CAAC,QAAtB,CAA+B,WAA/B;EADiB,CAAnB;;EAIA,CAAC,CAAC,EAAF,CAAK,UAAL,EAAiB,SAAA;WACf,CAAA,CAAE,qBAAF,CAAwB,CAAC,WAAzB,CAAqC,WAArC;EADe,CAAjB;;EAIA,CAAC,CAAC,EAAF,CAAK,cAAL,EAAqB,SAAA;IACnB,CAAA,CAAE,qBAAF,CAAwB,CAAC,WAAzB,CAAqC,WAArC;WACA,CAAA,CAAE,oBAAF,CAAuB,CAAC,QAAxB,CAAiC,WAAjC;EAFmB,CAArB;;EAKA,CAAC,CAAC,EAAF,CAAK,oBAAL,EAA2B,SAAA;IACzB,CAAA,CAAE,qBAAF,CAAwB,CAAC,QAAzB,CAAkC,WAAlC;IACA,CAAA,CAAE,oBAAF,CAAuB,CAAC,WAAxB,CAAoC,WAApC;WACA,WAAA,CAAA;EAHyB,CAA3B;;EAMA,CAAA,CAAE,yBAAF,CAA4B,CAAC,EAA7B,CAAgC,OAAhC,EAAyC,SAAA;WACvC,CAAC,CAAC,UAAF,CAAa,YAAb;EADuC,CAAzC;;EAIA,KAAA,GAAQ,CAAA,CAAE,uBAAF;;EAGR,KAAK,CAAC,IAAN,CAAW,OAAX,CAAmB,CAAC,EAApB,CAAuB,SAAvB,EAAkC,SAAC,CAAD;AAChC,QAAA;IAAA,IAAG,CAAC,CAAI,IAAC,CAAA,QAAL,IAAiB,IAAC,CAAA,KAAD,KAAY,EAA9B,CAAA,IAAsC,CAAC,CAAC,OAAF,KAAa,EAAtD;MACE,CAAC,CAAC,cAAF,CAAA;MACA,KAAA,GAAQ,KAAK,CAAC,IAAN,CAAW,OAAX,CAAmB,CAAC,KAApB,CAA0B,IAA1B;MACR,KAAA,GAAQ,KAAK,CAAC,IAAN,CAAW,OAAX,CAAmB,CAAC,EAApB,CAAuB,KAAA,GAAQ,CAA/B;MACR,IAAG,KAAK,CAAC,MAAN,KAAkB,CAArB;eACE,KAAK,CAAC,KAAN,CAAA,EADF;OAAA,MAAA;eAGE,KAAK,CAAC,IAAN,CAAW,QAAX,CAAoB,CAAC,OAArB,CAA6B,OAA7B,EAHF;OAJF;;EADgC,CAAlC;;EAWA,KAAK,CAAC,IAAN,CAAW,QAAX,CAAoB,CAAC,EAArB,CAAwB,OAAxB,EAAiC,SAAC,CAAD;AAC/B,QAAA;IAAA,CAAC,CAAC,cAAF,CAAA;IACA,EAAA,GAAK;IACL,IAAI,CAAC,UAAU,CAAC,UAAhB,CAA2B,CAAA,CAAE,sBAAF,CAA3B;IACA,EAAA,IAAM,IAAI,CAAC,UAAU,CAAC,gBAAhB,CAAiC,CAAA,CAAE,WAAF,CAAjC,EAAiD,IAAjD;IACN,EAAA,IAAM,IAAI,CAAC,UAAU,CAAC,gBAAhB,CAAiC,CAAA,CAAE,WAAF,CAAjC;IACN,IAAG,EAAH;aACE,CAAC,CAAC,OAAF,CAAU,CAAA,CAAE,WAAF,CAAc,CAAC,GAAf,CAAA,CAAoB,CAAC,IAArB,CAAA,CAAV,EAAuC,CAAA,CAAE,WAAF,CAAc,CAAC,GAAf,CAAA,CAAvC,EADF;;EAN+B,CAAjC;AAzFA"
}
\ No newline at end of file