Display Last Seen value in the UI

This commit is contained in:
Audrius Butkevicius committed 2014-08-25 12:54:50 +01:00
1 parent 84c6f147ad
commit c66b24feeb
3 files changed
+23 -2

No files matched your search

+2 -2
View File
@@ -28,7 +28,7 @@ func init() {
bs, _ = ioutil.ReadAll(gr)
Assets["angular.min.js"] = bs
bs, _ = hex.DecodeString("1f8b080000096e8800ffec7d7b73db4692f8fffa1463febc016953a06c675dfbb32ce71cc5ded3c6b15d969dbd2a457b0592431211083000289967ebbb5f77cf009827084a4a76b7ea588945627a7a7a7a7afa350f8c46ec385b6df278be2859ff78c01e1f3cfa96fd2dbac8c6ecfb2c9fb3289d02445ae6f1785d6679c1fa05e7ac5c7076fceeedc70f27df7ffaf8eec3299bc5091f847b80ee6592304257b09c173cbfe4d3907d2a38cb66502d2e5891adf30967936cca19fc9c67973c4ff9948d37d018fbe9e4e37e516e128eb89278c2d3029b8b4a3681d23167b36c0d24c529d1f0e6e4f8d5dbd357d47cb8b7377af06b91c469c9c67976056d3f6365bee643682b2de374cdabdfab645de0ffe2377b30829af3241b4709bbff8ccda2a400a0289daf932897bf11682f58c3970278312983c3bdbdcb2867c5269d40b7d2393baa6a84cb6cba4e783fa8cb82213b0b565131899255ce278b322cf3282d92a8e4c1f9e09010adf3641c01fa231600df087f5d3f840ecce2797fb686077196b2fefd4559aedee7d9653ce5f990ddaff155cf06eccb1e838f06184ef92c5a2765117e2ef2d97ff2089ebd8d96d4e87fed1f9f7e78bdff31bbe02934bea5ee71965dc4bcaaabd514552d8242e0dd691995f1e4350c56f126c3c6fb8248fc006366f1e7672c48808dfbc1b02e28d6335110fe5a646940cfaf8169f8bfcea232cf92049006af2e795a1e9779028c5778564cb2150c2c75abe60f3d0c93a828a91674275d278960008e0b969cfc008f0f64d768d4d793092f8ad7293c6f1a98466554e15570dfe7cbb8ec079f4edea5209c3c181cd610f59778c6fab2a517ec4045821f441cceb2fc5534592842c0916013163fc08b2283199164f37e8fa07a43467fc3785a7d2b37c80cf19d283fb4f0681db06a1915ae95dfd792571e0e637367d4a984a7f372c1f6d9a3f3a676cd72b32a50af202e78f9315ef26c5d2a3c31d941831dce79d9af26d843168c88fee2bb224e27fc288047a2c981563594a3dcaf47db28e7799ee57dfa17ca94de0fd99f0f0ee4836b456c24e86e42339b79a5e6f61c486268e6e85170773d7f7460757d470ada5ab75a6ed102a7d5d3764da06a4ff89e649308a12a36e2b8816ebafc018a8516a89e4287defd088fd086344fd3e8329e038674fef22adae050a3f968ca335202f67354fa515e0a4b22ca70a8552535c996ab8453178ed897eb43bd0c2d84eff9498accd0686dca534e6c29eccac4667c7e76ae3d0703c7131b7cb9a1591b04dad314801d3856795666932c395e80be07f3af3144c2e47c95e525703eb21b1365ef6164627ee5adede814f82fe92bec984dea7a35cfc12c9da4b34cd673cbefc3de08ad546f508b6a235b5850a87310fc98d731b82ce8afcce2bc281982aca339afbc982486872b6127c90fc287602ef3a0a83c19151b7943e03945d266a267153548af385b44979c4597519c44633003eca3a831643d9ef6545405ea63d9a06c895dc5e0c12da372b22070068c82bffb9f4ec1865c2dc076b3deff2cf63ffebd47902a365109047c5383a0fb986625fd3e7edb0b1bed2d6c6b3a1f8a6a20f78d1a0153c7fa0810d38c833fcf09b690f6029e3c7c68ea39040070823b8bcf75e354b501009751124fdf1036701b4bd014cae0b9ac69cecb759e12e2ca5ebd38628fd937dfb0248491e59fdfcd68d807eca85610d5e7dab09268e82b62146c8f5c0d377a099da7badad9c1b9c3568f731e5d186defe9dfae07529efb574076763508c7f0b71f8c39309cafd3047c32454f6a96c4526b8d2621154c78a5e982aabd5a8f8af97d2ae6494fd5c22afa4a1ad0e8573561a64639383c83104b0e0d5f09d96d183a9d5d047268b140a735e57cfab2517f3574902f0370397fe089e289c2c3699ccbe760b9e37ca096a215c24254b5eaf3325b4f1658f06935458f5f145d9b649c4c3c44e47c093192930ebba8220286578ea783107076781e17173529e6f035ceaa3a6064b12130ca35d6e370dc9356edeb57c58e99e3a37aa54e6f5821224ec1fb318a6acbd9885ef571184f1d6b3ff87f292fafb2fc82547f30401b1625fd60013ad7a201a01b8cdb618bc5ba447efb21ddc257715a7a781d596dcc44d0428231dbd86dfb911a531d5ca3e6fce3d9ca583338e8c20a0c0fb9f4073a700375c654f8065042318cae24546f45841be8129c5b7ac30d1616a570f9e85199751acd37a0bb9213b40962b2dfba1f60e16104161f80a27e4ddb408982c0ee8aa698e21e22e9eb82ec6804d65cb860e4378077502ca29c8b5c0c2203335e2e4233fe20e749e5c65bc4e1084211f7f1cc120e49f7714d530548884e7e1832b5373567077e93127c006557f23f82b9fe4e1014f6c4a6df493376f687b8905e76278a410a398ca6ed9f9f551d8030f87c4b9bc73b3448d37c4b739e39e303d7cc58dd4e3a5e15cfd8c1d02a8100d65774927ebf2979f1312ba3c409f06e5d6e8178399dc22802fa9ac2089ee870d74e2bd4cca8edbdfbef521000f1af17758be238a6388db2628e3133874b0beec2772b1a81f0d38797e065ad4a8ca68eec2c12688a9319c415182488e809ede52282200342229672d003e0ff47158e14b4c7944fd03e4c872626d0235711040f65c6a2e2a28e58f0f732ba80e8834d16593c81e0e3fb35699d69960625d531514195f17a8e28966cbace912834ff71946082630d017a9191dee225a2a5cc23292d0b111051c64b996aaea2adcbb888cb90fd7dc1539948161840fdad30436d1314c9688d7001d832237d19a5987cced902fe81e86b9e0d912ad97b13c76f6bb09be8c4ee6925a88e88ac9f912a342ed964bdc4d496a00a154a124d787fd4ffee19fcf78fafe183c35f8a0783a612fcfae508fee99ffde3f0fcc1207c707ff0f51ff0ef08c2bbfb8f7a8e78e35e53d965c30d1280a85e53e1a8c71e32cc7d80d6bb0297fd21eb1d2ea3cffb204454f4e4e0c1e36f1f3c797a60c63d8c63d6dca10580a0870a0b9eabd8f799c0f580b2487665fca0cbb1f63a1ad476a728882c031f6730d3f8f435fc5ba8317f3d01551b41dade302e171ca3a19e02866c4148dd19b9a7b77506f52cadea004111914f5b727cc41767968dbc9aef901cca73f214d75d3e7d38419b96a530eaa253ae4c869999d41a537d267210a4a3648f067eb484b4caaa21714a1853d7489a6ea4c82f0e2904b0fc6b0f0b2b11b9768fece906a2a1a5c652372b0b020cbab24a4f8a91edc0ef4e4323503b59e8629d20b967b1edbabda7863326786f9a162c01f371a4d26f3b77981151b8df32239a46715e10f67fa1e9d158f8ef90349a2392c6e09b3b9f35baa755fb16d8a0d5598794985594dca6f9b96e9bb5261e6d022ba5877b4e2c38c6e0ec606a6ec826b4a073e0a6a2cee34d962b4c76dea0ebc832ac8d12d9133e56af0d1e3fd572af9b283f7bf0831d7b78e4e5149072ee478bcc80ca8fee604c42d157ccLine truncated
bs, _ = hex.DecodeString("1f8b080000096e8800ffec7dff73db36b2f8effe2b507d72a594c89493f432f789a3f4a54e72cfd734c9c449efcdb8be37940449ac295225293b7e89fff7b7bb00497ca528dbedddcd3c4d1b4bc462b1582c16bb8b05381ab1a36c7d95c78b65c9fa4703f6e8e0e177ec6fd17936613f64f98245e90c20d2328f279b32cb0bd62f3867e592b3a3776f3f7e38fee1d3c7771f4ed83c4ef820dc03742f928411ba82e5bce0f9059f85ec53c15936876a71c18a6c934f399b6633cee0e722bbe079ca676c72058db19f8e3fee17e555c21157124f795a607351c9a6503ae16c9e6d80a438251ade1c1fbd7a7bf28a9a0ff7f646f77f2d92382dd924cf2ea1eda7accc377c086da5659c6e78f57b9d6c0afc5ffc66f74750739164932861f79eb27994140014a58b4d12e5f23702ed051bf852002fa66570b8b77711e5acb84aa7d0ad74c1c6558d7095cd3609ef0775593064a7c13a2aa651b2cef9745986651ea54512953c381b1c12a24d9e4c22403f6601f08df0d7f543e8c03c5ef4e71b78106729ebdf5b96e5fa7d9e5dc4339e0fd9bd1a5ff56cc0beec31f86880e18ccfa34d5216e1e7229fff278fe0d9db68458dfed7fed1c987d7fb1fb3739e42e35bea1e65d979ccabba5a4d51d5222804de9d9451194f5fc360156f326cbc2f88c40f30661e7f7eca8204d8b81f0ceb8262331705e1af459606f4fc1a9886ffeb2c2af32c490069f0ea82a7e5519927c0788567c5345bc3c052b76afed0c330898a926a4177d24d920806e0b860c9f14b787c20bb46a3be994e7951bc4ee179d3c02c2aa30aaf82fb1e5fc5653ff874fc2e05e1e4c14022c24f3c677dd9c27376a056c60f220ce759fe2a9a2e95c1e748a8098b1fe04191c14c48b245bf4750bd21a3bf613cabbe9557c804f19d283eb4f068845bb58c0ad7caef6ba56b0ece6273a7d4a984a78b72c9f6d9c3b3a676cd6ab32a50af202e78f9315ef16c532a3c31d941831c2e78d9af26d603168c88fee2fb224ea77c1cc023d1e440ab1acad1edd7a36c94f33ccff23efd0b654aef87eccf0707f2c1b5222e1274376199cf2d69b97dcf9318d08f1f0677d7e38707569777a4a0ad75abe596597f523d6d9ff9aab684ef49368d10aa62238e17e8a28b97502c667df5143af4ee4778846b46f3348d2ee2056048172f2ea32b1c625c2e9af28c26bdfd1c957c949762e59065aa469a66ab75c289fe31fb727da897e172e07b7e9c222734429bf294134f0abb32f1189f9f9e69cf6135e3890dbebaa2a91a04dad314801d38d6795666d32c395a827287b55ee38684c9f93acb4b607b643726cadec3b0c4fcd25bdbd1293056d257d8319bd4cd7a91c31a749cce33473d58a92a746e997ed01be14ad51bd4e2dbc81b1614eabc045be6750c660bda2cf3382f4a86209b68c12b4b2689e1e15aac95640be1435832f3a0a8ac19151b5944603d4572dd44eb2a6a905e72b68c2e388b2ea2388926b024b08fa2c690f578da535115a89b6583b22576198315b78acae992c019f00ffeee7f3a81f5e47209eb37ebfdcf72ffe3df7b04a962139540e8af6a103421d3aca4df476f7b61a3cfc4fa9a2e86a21acc8546b5c0b2c7fa0810d32c843fcf08b6906b073c79f0c0d47d0800e004771a9fe90b55d506005c44493c7b43d8c0742c417b2883e75a59735e6ef29410576bd7f3317bc4befd9625218c2cfffc6e4ec33e60e35a69549f6b63c5c445bf2246c1f6d0d570a3abd080aaab9d1e9c39d6ed49cea373a3ed3dfddbf540ca73ff12c8ce2e07e104fef683090786f34d9a805da6e84e6d75b1545da360ae07baf6ba07557bb56e15d3fe44cc939eaa9955f49534a00150d584091ce560fc0c422c3934ec2664b7b1f8e9ec2290438b053aad29e7b3178d56aca1837c1580d9f992278a350a0f67712e9fc32a1ee703b51457262c440dac3e2fb3cd7489059fd633b4fa45d1b549c6f1d44344ce57e02739e9b08b2a226078e5783a0801c387e771715e93620e5f63b0aa0346ab383847b9c67a1c0eb9d0c18cf8a659dbccf111f3481d91faab6abc6ac6723db682b638050349795c2fb08d348a96ecf5b5c6d40ffe5fcacbcb2c3fa7c52118e02a1725fd6009ea576b13201b4ced70c5725322cbdd50ae19a29879dd786cccc0af5fd937a2fbb7e07363675a1c35d88614b48cad97ab5b6720f1029d432e0d840eec406d3113c602949027a353aa9a2fc2e9401be1cca2da0d461600973e4b58669dbaf006b456728cab8198e6b7ee07acedc0efe507a0a85fd3a67a04b0e28aa698622f22e99b8256d008d671619391c5007641b18c722e2231880c16f072199a738cac29951b6f1187c31545dc4773c73427ba8f6a9a2a404274fc72c8d4ded49c6d9b2a1f40cd95fc8f60aebf1304853db1e977d28c9d7d1917d2ecee4431482187d1b40df6d3aa03e00c9f5944624b38818afe367a8e76208626fc16523cf3c907ae2d6e753be9645d3c650743ab045c5d5fd171fac355c98b8f5919254e80779b720bc48bd90c9807e86b0a2378a2c35d1fbabb5709c5f6defd772908004fd98bba45a91c915347f132c79899c3a57982e1bb358d40f8e9c30bb0bdd625ba5e633bce045ae4780ede06ba0ec2d5c265731981eb01fe134b39e808f00aa20a470a9a65c6a7b84acc862626d0319711b81465c6a2e2bcf663f0f72a3a079f844d97593c0597e4870d69a459960625d531514195c9668128566cb6c991285cfde328c150c8065cf922239dc64b444b31495268162220a28c5732085df9601771119721fbfb92a732c42c30806a5c63ecda2628923e1ce102b05546ba344a312c9db325fc033ed9221b2255b2f7268edf36b082a269bba795a0aa22b27e46aa70e1c9a69b1506bf0455a86c9268cafba3fef74fe1bf7f7c0def1ffe52dc1f3495e0d72f63f8a77ffa8fc3b3fb83f0febdc1d77fc0bf2370faee3dec39bc906f9aca2ee7c3200188ea3515c63df68061940434e22518f20f58ef70157dde0721a2a2c707f71f7d77fff19303d31b621ce3e90e2d00043d5058f04cc5becf04aefb146fb22be3070d908dd3eca8dbeee41bd1aac12719cc343e7b0dff6a91807a02aaeb07ad04c6c273ced147ea2960c81684344c2abdad53a867695507088a887cda120d24be38e37164f17c8fe4502494a7b823f3e9c331ae77590aa32e3ae58a6f98b14bad31d59e22e3411a51f668e0470b59abac1a12a7c442eb1a49330a2d229143f2022c83d3c3c27ab1748fecc915f8482b8da56e561604187465951e41a3b503bf3b171a81dac94217eb04c93d8b6dd7ed3d350c35c17bcbf9c01dbbf178acd2eff63b5c6e873d239a46715e10f67fa1e9d1acf0df23693447248dc1b7773e6b744babb62db041abb30e2931ab28014df373dd366b4d3cda04564a0ff79c58708cc1d8c180dd904d69cbe7c04d451ddd9baed61802bd41d79165581b25b2276cac5e1b3c7eaa8d6037517ef6e0073bf660ece5Line truncated
gr, _ = gzip.NewReader(bytes.NewBuffer(bs))
bs, _ = ioutil.ReadAll(gr)
Assets["app.js"] = bs
@@ -73,7 +73,7 @@ func init() {
bs, _ = ioutil.ReadAll(gr)
Assets["favicon.png"] = bs
bs, _ = hex.DecodeString("1f8b080000096e8800ffec7d6b572437b2e077ff0a75ddb11b66a92ae8d7ec62e02e0ded19c6eec781eeebf5fa78e7a832555532f96a49099431f3db372294ef476516053473c71fbaa9cc544a11a18850442814b9f7e4f8fdd1c79f3ebc6173e37b075fed3d190ebf1a8fd951182d949ccd0ddb38da64cfb6775eb0bff3f370c25e876ac678e0428bc02839894da834dbd042303317ece8fdbb8fa727af3f7d7c7f7ac6a6d2139b23eceed0f31875a799125aa80be18ed8272d583885d7a4663a8c95239813ba82c1e52cbc102a102e9b2c6030f6f6e4e3509b8527b02f4f3a22d0381c37cc81a713c1a6610c20c98060f8e1e4e8cdbbb33734fce8abe110b042e498c783d9fe40040316cc863c8af6077a1138307c30a35b0e62147a9e50fb83b3f4c99151de80391ed77a7f808dbc909f0fb04bc1dd83af18dbf385e1cc9973a585d91fc4663afc9f83fcc1dc9868283ec7f2627ff07f869f0e8747a11f7123279e806e614411c05b276ff6853b1385f702ee8bfdc185149751a84ca1e9a574cd7cdf15174086215d6c01e2d248ee0db5c33db1bf33daae75e40aed281919190685be6acd786ce6a1aab5f064700e13e701c5e0b17162c3a4833dcd9598ee0fa6fc022f471110f2e02b7cc148e389838c88ec77767d8df3fc0ee6f71d8cb4b17973b337b6adb2016c67933034da281e8d1dadc7d9d5c897c108ee0c1238901bf45c0833a876a08006977cb1a4315d33b388006323ae0c8e444f189b84ee825dd34fc622eeba00fd70121a13fabbec2fdbd1d5b7c9b329506838e5bef416bb6cf037e15d08231dcede89580cb65876638b1d2a989a2da679a087c0fa726abbb8f98afecc77b6d8fc19fc7b0eff5ec0bf97d9f0e5214e2d5ad0f71aa3c5deff280ce0733593c1d084d12edb19bd147ea9ed084933f4c320d41107d96c04ebad08bc708bbd0d03eec05f500a3a045901208f40a2a55000e225409875531982831ca0e0b928d2ee8121a932ea00b9bafe1467a7fde91478a5fd69d6b3bbb4e7c6a759cf6e468549a85ca12ced8230a8e0e585b3b042e65db6fd6d99af0a77a89be1cb9cbda2504b14d65de460501717d501a436c3201c4e62d057261b8a6e137b0f91bd2d68951701312ff683ec1d57eac8e3309732002912c389173ae7291c207556c900f7a7fc91310e6974609dfcc1843be73385ca18470915803f9b6c3c7bfe6a8b3d7bb18dffed6c7e5ba6a0e2ae8cf52e7b5e403ea5cf4e74c55ee4f753423e83dbcfd2db3755bc80cd8291cb41a755f8dc135380763b67f4127a3bdbf96de27ceec919d21f91fcb69b562981d335a24e5f9c0bf644faa8d079601a240196afecb5cbb93462483283af5e820e2ce99e4b61a9ff627bbbb127b7a6c62cfecf40897541e18eb4cf3d6f58a2622b40c9cbffdb17aee46cc3e757094dfff2ea2fd1d566d6412257600044a02680a50fec9da2f4658d191bff19781fcc00c338cb9601068bacc115458c66a3ddac2dfb331045819699c09acfa239505a8350314022bc6438551325f8b94613c10be175252215c23b1eb0e058c3e20db6c6a534f3628f969ff488fd799cddae10410199d259b9c9d8716f4c220846c2d85a095fed1186f8c89517555be3cd052cb564671cec8de1b95d42c110631fc308444a31b461f05ec02f3253845fe013fb07d550fad315531e7b603140f782dac919a775dfae700441d20942c181382a79866b23484f798ce14481bd07b0497f963e41fd36605a39f6e79004e6d50bb200d89c38737ff0fcd980596b65b0b3f397c118b0c3deb3a1a2ca38d8099b4b17b4eef00a16e4269321cade8ebdc2eb29f2859f24b7195e642220e1255808713403ad234e8269380ac465017d6a0836ad0983c43eb01799053831413a00fe847f39c1adf9614d493052cfb3813636cb0314693cf316d11cad2796fd1a3a7371a1e06f1c0d529a7d237c9dc97fde098844a0617d10f9afe105f762f85f280d93be3fb8be2ea28b2db4b9b9191c7cb27781c7d8f5d749ebaf6fca5344038d2d090a941c7bb24cd704175785911b5e06656c794298ff1854db01dbce666807a39e492e8abd54703c78e34a6301fcfc4d30017aec4d324e06093648ad09fce3a5f17346c9c6f54510978024340e32508b7308caf3544421ce61e7c4cd5db7326355140e5d976177b0ba876a91344588cb44ed820885a2174440954b6129d3011576d9054f464879215d149b15a086c5c19c59e5ad7b81ee84b30eb0d3ee6e4746d99f8a9f153aa65dd0cc61a93939be4f1aea796c90817b011d4ea79d10dbee6e473f58c70d57a6271b4ea1f9bc039e53dbe37d52904fc2b81fc8b0722b33147e64165dd2837d2e017a6f1c7bcdda337f922cfcf8039617bbdab72cd4b63d9a07df49a50dacf3975b2c0cbc0503e7fc326072ca02e108adb95a7ccb129ab24bae02b49b125322b74470417c02fd4fe5ec24408f3d53d3d0716e179480f186be3bdc79565c5d0bcf810ec263f4ff3019b6bc2254db22ad5d6ab5377f5e58d34a6d285830487904dc4ae10a170cace70719edda0740f3abaaf0a3c2147e9c63ec0969102b3296d89c6b361102dc097e8171a8d880b907a6a803be18bce18e581eddf0639c860430b43a9346148d0203a3dcf5a860c594a6be1d7cf43f2b564a0f3b058d13ed176d141681bb9858460f2ac95513a2c6521e48db545e0d1a26b37ca37459b8c82de7b2708859ec819d0cbc5c61fd1293a7fde18bf9f24cee34db40e31a7da7cdbc87468178b54c1e86e8164703265da4773282147ab9642452747d8daf1ce1830dfc353a39066b98a6102e0537b64ff46ef0ef0f0076c5e65c2a75a576d01284b049f42acdc8b42b596e40078f473a35e822b0c93086f81f257c536b106f02627f92812baed020ad75dfc3522e1a5ccc5209687373d3d5572e07058703c9a9c10974e6969c67869b382778238475433ceb64783917607fc7c17940d6ec27fba36e61f7ef4b032b4602503eb33fd6eacbe18155cd67c9afeede6a7d800a6ce2a016182820dc3110631bd7d7d8ef07a11c601f3e130596ff7ab319ba9521976e234737837d028d1f10e6b62715c7c6de82f5af2ce655fd99487eaa778a225796f2547a5926c6b5d1faacabd586d5a04fb3a0dbc053f1155689c226d7da284922d04c5493065a9a9faab647f870debdfac1d476ae7cd9ea51f005a0ef2503bb19e21846490217056d06efbbad388ddb915a1f5f1b201b8691083af0fe8e5ade01c2c7520907e9b716dea965eb83dfe6fd9c50f297910c2eb827dbb8a7375912ab76a8e5ac8b2e6f940ad7244b330e5f922d665e38e97287ff0a6db8d714ecb80b22cca8f7efa42734fb9d71ef922ff4bbd89f08757353d3dfd20084c9f05bec9f2d9dbd5e18ea6c22038edcf7facbd1771efa5de4fd2174ee8fba1e767e47c4a5be1e116d1d2f8cdd21863dbc907785ebde83dbf77e4aaede3a046e6fcf5b145500eead9d8003b65d0eLine truncated
bs, _ = hex.DecodeString("1f8b080000096e8800ffec7d6b771c37aee0f7fc0abaef249666d5dd925fd9ab48ba2b4bce8c12bf8e64df6c36273b875dc5ee66542f932c491d45f3db1700ebfde8aa56cbb266271f6c7555b1400004400024517b8f8edf1d7df8f9fd2b3637be77f0d5dea3e1f0abf1981d85d142c9d9dcb08da34df6647be719fb819f8713f6325433c603175a0446c9496c42a5d986168299b96047efde7e383d79f9f1c3bbd33336959ed81c21b843cf63044e3325b45017c21db18f5ab0700aaf49cd74182b473027740583cb59782154205c36594067eccdc987a1360b4f202c4f3a22d0d81d37cc81a713c1a6610c28c98070787d72f4eaedd92bea7ef4d57008542171cce3c16c7f2082010b66431e45fb03bd081ce83e98d12d07290a3d4fa8fdc159fae4c8286fc01c8f6bbd3fc0465ec8cf07085270f7e02bc6f67c613873e65c6961f607b1990effe7207f3037261a8a4fb1bcd81ffcefe1c7c3e151e847dcc88927002cf4280278ebe4d5be7067a2f05ec07db13fb890e2320a952934bd94ae99efbbe202d830a48b2d205c1ac9bda176b827f67746db3540aed08e929191615080556bc663330f55ad8527837318380f38068f8d131b261d84345762ba3f98f20bbc1c45c0c883aff005238d270e3226b23fd8f5358ef35b18dfb7d0d3c6e6cdcdded8b6ca3ab0c0266168b4513c1a3b5a8fb3ab912f8311dc192478a034e8b910665005a08007977cb1a4315d33b388806223ae0cf6444f189b84ee825dd34fc622eeba80fd70121a13fabbecdbede8eabbe4d91438349c725f7a8b5d36f8bbf02e84910e676f452c065b2cbbb1c50e150ccd16d33cd043107d39b5206ebea23ff39d2d367f02ff9ec2bf67f0ef79d67db98b534b16c05ea3b7d8fb1f850e7cae6632189a30da653ba3e7c22fb51d216b867e18843ae2a09b8d68bd1181176eb13761c01df80b464187a02b80e41168b4140a50bc040c3330952e38e8012a9e8b2aed1e18d22aa30e50aaeb4f7174da9f4e4156da9f6690dda5901b9f6690dd8c0b9350b94259de056150a1cb0b676185cdbb6cfbbbb25c15ee1098e1f35cbca2504b54d65d9460301717d50ea436c3201c4e62b05726eb8a6e93780f51bc2d6a951781302ff683ec1d57eac8e3309632002d12c389173ae7291ea075d6c880f4a7f291090e5974109dfcc1843be73385c6187b0915a03f9b6c3c79fa628b3d79b68dffed6c7e57e6a0e2ae8cf52e7b5a203ee5cf4e74c59ee5f753463e81db4fd2db3755ba40cc8291cbc1a655e4dc1353c0763b17f412793bdbf96d927ceec919f21f89fcae9b572983d339a2ce5f1c0bf648fa68d079601a3401a6afecb5cbb93462483a83af5e820d2cd99e4b61b9ff6c7bbb11925b336396fe2760c4bab07047dae79e372c71b115a1e4e5ffe50b5772b6e1f3ab84a7dfbef836badacc00247a050e4004660244fac0de296a5fd698b1f15f41f6c10d308cb36c1a6030c91a9c51c46836dacddab2bf025314589909ccf92c9a03a73528150322c24b86433551829f6b7411bc105e57225221bce381088e354cdee06b5c4a332f42b4f2a447ecafe3ec7685090ad8948eca4d268e7b6352417012c6d64bf86a8f28c447aebca8fa1aaf2e60aa253fe3606f0ccfed140a8e18fb1046a0528aa10f83f7027e91b922fc029fd83f6886d29fae98f2d8038f01c00b6a27679ce67d3bc311060910c482037354f20ce746d09e721fc389027f0f7093fe2c7d82f66dc0b472eccf2129cc8b67e401b03949e6fee0e99301b3deca6067e7dbc118a843e8595751a51f04c2e6d205ab3bbc8209b9c96588b2b763aff07a4a7ce127e96d4617b908c878091e421ccdc0ea8893601a8e027159209f1a824f6bc220f10fec45e6014e4c9076803fe15fce70eb7e5857129cd4f3aca38dcd7207451ecfbc453447ef8965bf86ce5c5c28f81b47839467df085f67fa9f0301950834cc0f22ff35bce05e0cff0ba561d0f707d7d74572b18536373783838ff62ec818bbfe3a69fdf54d7988a8a3b165418193634f96f99ad0e2aa3072c3cba04c2d4f18f31f836a3b10dbd90cfd60b433c945114a85c68357ae3416c14fdf0413e0c7de249364d06083dc9ac03f5eea3f1794ac5f5f0471094922e32043b53886603c4f4514e218760edcdc752b235625e1d075198283d93d548ba429625c666a1746a814bd3002ae5c0acb990eac1064173e1923e58574516d56c01a260773668db7ee85ba13ce3ad04ec1dd8e8db23f173f290c4cbbb099c3547372fc3979a8e7b14101ee8574389d76626cc1dd8e7f308f1bae4c4f319c42f379073ea716e2e7e4209f84713f9461e6566628fcc82cbab407612e417a6f1c7bcdd6337f924cfcf803a6173bdbb74cd4b63dba07df4ba50dccf3975b2c0cbc0583e0fc326072ca02e108adb95a7cc7129eb24bae02f49b125722f74470427c04f0a772761260c49e9969009cfb052564bca1ef0e779e1467d7c273e083f018fd3f4cba2dcf08d5b6c86b975aedcd9f16e6b4521b4a160c521981b052b8c20507ebe941c6bbf60ed0fdaa1afca830841fe6987b421ec48a9c2536e79a4d848070825f601e2a36e0ee812bea402c066fb823966737fc188721410cbdcea41165a3c0c128831e15bc98d2d0b7a38ff167c54be9e1a7a073a2fda28fc222081713cfe85e35b9ea42d444ca036d9bcaab41c360966f942e0b17b9e75c560e318b3df09341962ba25f12f2141ebe984fcf144eb30d74ae3176dacc21342ac48b65fa30c4b0381a30e922bf931ea4d0cb3523d1a2eb6b7ce5081f6ce0afd1c93178c334847029b8b13031bac1bfaf01ed8acfb954eb4aeda025286193ea559a916b57f2dc800f1e8f74ead045e093610ef13f4af4a6de20de04c2fe2203575ca1435a03dfc3532e3a5ccc7209787373d3052bd78342c081ecd410043a73cbce33c34d9c33bc11c3ba239e01195ece05f8df71701e9037fbd1fea87bd8fd616910c54800c967f6c75ab01c1e58d37c96fcea8656830126b049825a70a0847047478c6d5c5f23dcf74239203e7c260a22fff56633762b632edd46896e46fb041adf23ce6d4f2a818dbd05f35f59cdabf633d1fcd4ee1455aeace5a9f6b24c8d6bbdf59957ab0dab499f6645b789a7e22bac92854daeb5519254a099a9264db4343f556d8ff0e1bc7bf683a1ed9cf9b2d9a3100b00ec251dbb19e19846491217056b06efbbad348ddb895a9f5e9b201b8691083ae8fe9e5ade01c1c7520907f9b716dda967eb43dce6fd9270f2d7910c2eb827dba4a7375b12af76a8e5ac8b2faf940ad7644b330d5f522c665e38e90a87ff066db8d794ecb80b26cc08faf7d2139afdc1b877c917fa6dec4f84bab9a9d96f6900c3a4fb2df6cf16602f1786804d64c051fa5e7e39fece43bf8bbdaf43e7f371d743e077c45c82f58078eb7861ec0e31ede185bc2b5df70ec2be77530af5d661707b7bde62a802086fed001cb0ed720a28bcc4d837774bLine truncated
gr, _ = gzip.NewReader(bytes.NewBuffer(bs))
bs, _ = ioutil.ReadAll(gr)
Assets["index.html"] = bs
+16
View File
@@ -80,6 +80,7 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
$scope.repos = {};
$scope.seenError = '';
$scope.upgradeInfo = {};
$scope.stats = {};
$http.get(urlbase+"/lang").success(function (langs) {
// Find the first language in the list provided by the user's browser
@@ -175,6 +176,7 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
$scope.$on('NodeDisconnected', function (event, arg) {
delete $scope.connections[arg.data.id];
refreshNodeStats();
});
$scope.$on('NodeConnected', function (event, arg) {
@@ -332,10 +334,18 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
});
}
var refreshNodeStats = debounce(function () {
$http.get(urlbase+"/stats/node").success(function (data) {
$scope.stats = data;
console.log("refreshNodeStats", data);
});
}, 500);
$scope.init = function() {
refreshSystem();
refreshConfig();
refreshConnectionStats();
refreshNodeStats();
$http.get(urlbase + '/version').success(function (data) {
$scope.version = data;
@@ -1049,6 +1059,12 @@ syncthing.filter('clean', function () {
};
});
syncthing.filter('asDate', function() {
return function (input) {
return new Date(input);
}
})
syncthing.directive('optionEditor', function () {
return {
restrict: 'C',
+5
View File
@@ -342,6 +342,11 @@
<th><span class="glyphicon glyphicon-tag"></span>&emsp;<span translate>Version</span></th>
<td class="text-right">{{nodeVer(nodeCfg)}}</td>
</tr>
<tr ng-if="!connections[nodeCfg.NodeID]">
<th><span class="glyphicon glyphicon-eye-open"></span>&emsp;<span translate>Last seen</span></th>
<td translate ng-if="stats[nodeCfg.NodeID].LastSeen.indexOf('1970') > -1" class="text-right">Never</td>
<td ng-if="stats[nodeCfg.NodeID].LastSeen.indexOf('1970') < 0" class="text-right">{{stats[nodeCfg.NodeID].LastSeen | asDate | date:'short'}}</td>
</tr>
</tbody>
</table>
</div>