Show restarting notification instead of network error (fixes #129)

This commit is contained in:
Jakob Borg committed 2014-04-16 15:16:44 +02:00
1 parent 116203aef8
commit 1ca7e47fd6
3 files changed
+35 -5

No files matched your search

+2 -2
View File
@@ -18,7 +18,7 @@ func init() {
bs, _ = ioutil.ReadAll(gr)
Assets["angular.min.js"] = bs
bs, _ = hex.DecodeString("1f8b080000096e8800ffd41b6b73db36f2bb7f05aaa62515cb94d2b9b9b9b1e3dcb4aedbf1a56d3271d32f1e7d804448424d813a10b2ad71f5df6ff120051020453fd2e43493580216fbc2625f04872fff2c32ca049af0fcb620fc1809be260334cd99a06c4dcadfab6c5dc87ffa377a393c18be9c67f90467e8c5319ae1ac0020cce6eb0c73f35b021d446bf852084ea7223a3938b8c11c151b36150bcae6e8b45c912cf3749d9138aae6a201ba1af7614535924896789e6584c7d165397a267806b0b335fca63943f18b629aaf8097170b21567d747f80e023c9ae38b9f9110b02544703353a27e2dd5bf82925024a7248af96a41851080b98bfdf9ed4266774ee8f2f37173fc2681439a32c4f894472350e20b96052908a056b9e709ef3c0ba8210762ee77c4aa04392f96c71b2ca4b446a7c384497b0216c5ea00999e59ca0499e6705caf2fc1a468420dca528840206146afc9ea6c728fa851682304004da0709a7b0eb6a57d07b9e8b7c9a674843a0efd39493a22005008acd0a2c2a12e44ec02f1816980b6d52db8185fc577c774958fa76b22a2cf4efd6629e4bbbf920b7f117baa402c56f7f5815fd1d6ab65e4e086f45fe01d06176c140ce1b9c5d5a04f40c2aa750fc60ccc670c2c8cde4e3f1bfc71c83fd671fc87fd70064eb063486403fb092a54a453b90eef801c9d9028e24a9295e22ff896604e959adffce9ab708fcac3cc6f78c9d333cc9486ad1d05308e67238cb6487571a672bd7bfe4d3069c6ae631282fe5f80fda23daf62d87d16edc4667d68f5d47325fd3cbf0f931c7c2d6c0c78ba79c998f2eaf12dbf76bb120e0c7a758f9c68f0ed77b11bec745719bf3b41da9056510af762321e4a5862a970d6ef8723d9d129292342e3db6fcd0198abf524eda1e55da8da3af191140e55a39c3a82fbd1fcee268415312f54f1c68d7cf97a3db03fdbfc7cc4f184cdde7e4618cdc4ff0f43ae5f90a14023a0075813aaec96692639e9a00b96de0534dee6354c695b37cb9c29cc47880267576e566e4338493dff092a0af4e215cac594a6694c11141df7e8b0cc024085097536234a85e9b257d07407e38116bced0d12b572c336c96bf31cbebf25954403288a48a8efa5a672640678763474da37953a139b1f55805c719d8e8422abdca206c722a8b486063e268288d79586ce0802e619b0b69b24511efd6a558e03aabae6dbb7a29e3abc2081cc8f596447d9d03c461c60cf2d256ed75bbef76069040a43fc7d385854f8e7b065d17586515c3081d22099ec06e7414dd6240e1b832ebc79ea875b61d11eafc58a959e75d90e91fcb6f81b04c002125bb8dfb030742a430194b98a32a51eca3217a351a8d5c489a1aff557eacbc12d607b7983288a732ef0ccee66b514d3bf3b06328a629a20c352958b94839992c70f1ee9641f2b5225c6c60593f042f3f656a7fe2cd6ebd11c1370d5824d12b9a8e2be17ec562912cf15d3c1aa07fa1977a2714c405fb612348f17b2e201a1f05726c0f4aaa5ea47d9f438772a5b866d2901275a1ed803512df228879d3058a49936a3da58cba8a1000f477c331a7c3d31a391f836b60f6023d543b8221e3742ba1ba8b6a39a7ba80e97c44eb654f98d2f6e4a05eda404e26d685e3c0eb7ecd0a879e43026fd41ef94c3c893eb26b38de2cb2634ef55595b5423b8148fa4a9f4ea2e677ab4b70f5f76a344e44fe710567f70c17043cfda19e00ed4da07a8e5ff52ddf20e531cb4f514f165d905ff6d05f7fa1dde8459a915e5d163d0d76d043716fc7a52cb1df133e85ac0ecf8951df21ea7dd3ef05a5352ab104aa07d5557e964116f8e9774526b14794cdf267db1747b9110535b61337e61d35e5333b5c85dea876742b4e97986f82e89a8476b5efeee627df0288904da20794ad5b46cad72afca36e589d0d5d41097d2a21c0d3074850d553d1248621008b8793ba6e552499129ac54025ec7464e21d703a2a1f9fcd6d7924b3d27f025c20ee980526391dbb1628014339b81c4f64da9f114556ea1034118a47a5b55c30241512d59c3d22b245d7bcccb81514cb6353277b88a26ffa758c2dae22fa91164676b0a446b55e4ca548ff0f4acdaf1faa4f53693c44694bc8d28a666df92ef68b5597ef243be9cc77867b7566bb455f65b2aff2376bcc30a69466da3a6dbefddf2dfb6da9fcb389507302ad71aa59943fc8de6d90ccb89c2a43b37aed0d6c1a881bc20bc01de2ef53aa27a31077ff68a6dd619f559be421da91cd98304f36480b37aec865ce09c5d43fc32190a454586dcd86d6491c7d5d3e3be8da16536dc27e30abc137643fc9e0b3955a3bcd014adeadd4ae27baf16a0ea863183ed4a5e049b1ca28d43a0329195e59c5cd1d3054eaf52e11e0c1e2fe49a0545ae585ddd3002aa089ff5cbefb2d29d4c3193adbc40e13fd01ba5f109c826d1da3fbe80caa7830b5a3df217f8b409b78051ce99eecf0cf2267d1d6a119da8c9e6c96f69a4a2bd5b9ddd318b385302b22bfffd4f8ac2b6056d204f7197f8976cd3968c0ac789140564c581adf6f07a541fbac4812a083f33bd848fd04d26d0afba893aa170fdbae7a3cfaac54c3c99f3965600928aae9bb14e751c6ef6a06a7a9a798bd1ab9b7390792e986e125d0dc76d04afdcc3caf38908b1341da250a51f4bafbaafd151622ec11834545ed49adfd3399d14c10bb09dbe4fe5919a5beda4529db8cec1eb4a2df744e14649d0fabfa575d4119c2a86a1bc19fd76ea337236c2e16307178d8d065517057745c27e58e7790fd09f2d775e0efc71e37fe377bd19a09cb78d46ac0bae7ac7cc500a5392303444f1e2a63a74360a8a090da3da89ddf0af9b24746b68a8894d31743f7b13d6bd507acc55aad1e82822d2dd3a4826ed6d2f2f8a15cbc93d86f951acedd68507e269ce0eb0e4588eec603a68673a7255ead8b45ec47a8068794143917b1f5b4efb17ee3331f985c2c082f590c1f1937816ff4bf9dddaf2c12f6f690c582167b0f328594a2ee821f61d0acb63b6093279ec5b38ee58e25fc151b375b674066d56597b96cc7add05d797f2f9aca0e92fc4ed5a3defaa5a5bdbb31cd08e6e7e54380d664c7be09e5f079e572adf7031da15763c55690ee8c43dd96661bdf40e158d8c45ba2efdeed5775a7eda8c34650a83c13fe97f138c353124f2b2f37a8178a72aedf6fa9ed004f63b2fd01e2fdc3926db362976c1790cac9a69e521c38886d5bf66d2129530cefa1b4976304d63a44afca0333f6af783ca200302157d2799ec4dd53f25eed0694faf894fd990491f94eab24d2b8d5839f67c8771c9ebd7cc750f1f21db9ca83aaa2e2d5d89f73edc8f2b5be2955e79e69e74c59184b2887099363a5d19e6a5a61ff6e09a113877b6decc78691fa1da2bae7971f5d6e85f97d6cf2b6b7d4b092b7aaac3041ad64a435692b17a10afe33256d5a52a57bc34887aa2591c6585091435ca917585f4e4ea60da3dd41753a92cf5a879717Line truncated
bs, _ = hex.DecodeString("1f8b080000096e8800ffd41b5d73db36f23dbf0255d3928a65cae9dcdcdc44716e5a37edf8d23699b8e98b470f940849a829500740b135aefefb2d3e48020448d11f69729a492c018bfdc6ee62098e9ffdc97342059ab1e29a63f60209b6c523342fa820748bcbdf9b7ccbe53ffd1b3d1b3f193f5be6c52ccdd1d3176891e61c8052badce62933bf25d093680b5fb860642ea2c993271f5386f88ecec58ad0253a2d5724eb22dbe6388eaab968842ea74358518d24922556e439667174518e9e099603ec620bbf494151fc94cf8b0df0f27425c466886e9f20f848b21b863ffe980a0c544f26d5e8128bb76f60484a558f32cc45ca84e65109039cc8498d5db242b122c801e0763f694c2ec8d21f5fefce7f84d128724669916189e4721a40724ea5a00e7b661e3356b0c03a8e317d2de77c4aa0639cfb6c31bc294a446a7c3c46176030bae468861705c3685614394779515cc1881098b9148550c080428ddf92ec058a7e215c600a88c03a20e11cbc42590dbd638528e6458e3404fa3ecb40dd1c730014bb0d785c24f08d805fc60adae5f6230bf9afe9cd05a6d99bd9865be8df6ec5b290367b2fcdfc0b591381e2373f6cf8b0464db7eb19669dc8df03ba949e5390f3639a5f5804f40c2aa7507c67ccc671c2c8cde4fdf1bf4b590afb237f8fffbb05205b37a03104fa819534532aaa41fae30724672bd8b2b8a17889fc279263a467b5fe7b6bde22f0b38a28df53fa9aa6b31c67160d3d8560ae80bd8e6bbcd2393bb9fea598b7e05433f7417921c77fd011d3f66f398cea711b9d593f7503c9724b2ec2fbc76c0b5b031fce1fb2673eb8bc4a6cdf6fc50a439c9fa72a767e70b83e88f05dcaf975c1b26ea4169441bca94742c84b0d55211d42f4c5763ec738c3595c4674f9210b147fa502b83daab41b475f532c80ca950a86d15046bf348fa315c970349c38d07e0e909fbd43a7ce08215af56c37a5505e71e9ed7de17f4a616bf992b773c4b0d832da26c9dd14763b4be757192b366038a0076605b35de1ddac48596612fdbe459fbd0494f9efac586f5286e37484664d31a5d3140b9426bfa56b8cbe3a85b4b6a5195e100a5b197dfb2d3200b32040534e89d1a07a69960c1d805a7fe8f879d3786ad82c7f6596b7a919c04032c8f88a8efa1ab69343a7c65153d3685e556826b61eab24be007f5849a55795904d4e55430918268ec6d271c67c0781640d66e6726b711ed7ebb254a44d56dd3de8eaa5ac031446e040aeb7241aea5a250e336690973e6eafabbfdb954a0215c9eb74beb2f0c971cfa19b02abea671ca12324c113b0464fd12d06148e4bb37eea89da64db11a1c98f5542f6b6822c4d69710d8465210ba5e3753c1c39102283c958c21c5705ef108dd1f393931317926426ce961fab3e86f54113130a79bfae9f1bb3c55654d3ce3c580cc5244384a23605ab502e279355cadf5e5328123798891d2c1b86e0e5a73ca24cbcd9bd3722d8ae058b247a49b26925dcafa95825ebf4263e19a17fa167da120ae29cfeb01398ff5e08a81a8e0367010f4aaa5e64439f438772a5b876d250baf5a1ed80b512df23c8cdf3158a719b6a3da59cf4152100e85bc371a7a3d306391f83eb60f6023dd4d88221e7744f6ccd10d5b14ff541abf7166d1ecfc294f69327cd2318d48e62cb9d00de8c6b563af4021244a3eecc67f249f4815ec1f6a6919d73aaafea782e74108864acf4e9246abe5e5d82abbf9727d344141f36b077cf528e21d21fe909d0de8c0b163f1f5ab141ca63969fa2813c1c423133407ffd85ead1f32cc783a62c7a1afc6080e241cda56c15bcc36c0ed567bac4467d4768f0cd701094d6a8c412a8995437c5590ed5eaa7b78a2cb68f095d148f661747b9110135761337ee1db5d533352eae0dd58d6ec3c83a65bb20ba36a15dedbbd6fce426800cd9267a40d9baf5a562adc27fd20fab63d00d1cf54f250444fa0009a27a3f9ac4380460f13069ea5665923926790c54c2414716de81a0a3eaf18573a690cccaf8097081bc631698e274ea7aa0040cd5e0723c91657f8e1559a943d044281f95de724e915448d408f608cb5663fb321356502cb74d93ec118abe19363176848ae847c28dece049ad6a3d9f4b91fe1f945a5cdd559fe6a47117a5ada14ae3eddaf243ec17ab2e3f48f6d2991f0c0feacc0e8bbeca64ffe76fd698614c29cdb49fba62fbbf3bec6da9fcb389d008029d79aa5d943ff0413348665c4e95a359cf045ad834101f31e3803bc4dfa7544f4e20effed14ebb879d559be42eda91cd98304f36480737aec865cd0987a97f865320ce88b0daaf2dad9338faba7cc6d1b72da6da99c36055937ec48749069f0135da690e50f276a3ac9ee806b1d9a08e63f8501782257c931338eb8ca464e9c63adcdc0043a55e6f1201112c1e4e0247a54dc1ed9e0650014dfce7e2ed6f09570f91c862173b4c0c47e87685d30c7ceb05ba8dcee0140fae76fc3bd46f116833dd0047ba773cfe931734da3b3443c618c856eba0ed68a5baa4adaa763ab26e03b8adb1cb57c575d4a907b32af25b58ad8ff5029e29bdf8d0fe29d16e1903259a154f1328ac31cde2dbfda8dc133e2b9204c8f5fa067c2128be873aa91e3b80e7a83691de6ed570f267412838138a1a262bc5b9d7fe7135936699a798831ab9b5390792d98ea66ba0b9efa195e6b67b5c71a09cc702774b14a2e83d5e501db4b010879f0f34b5503e94b67f260b920b6cf771db32082d13dd5775a2b3ddc86e632bfa6dfb444136f9b01a08aab128b320519d27f8f3d2ed15e7982ec50a268e8e5a1a350aee924c9ba4dcf11eb23f40fea60e7c7b1cc8047f73206eb8b04c699d0eacdbd62a568c5056503c42647257197b6d02430585d4ee41d5712b14cbee991c2b22524e5f0cdd0af7bc556fb00e6fb5da100ab6f44c534dba854fc7138c72712db1df6d359cbbd9a0fccc184eaf7a9c6374431f30b5ec3b2df166cb57b19fa15a0252c20b2662eb81e17de3c667de3085586156b2d85696d86780d6f8db3bfcca73c6c136b458117e70231328299a21f81e0e4d1bd6019f9c781e4f7b9e982ce12fe9b4dd3b0332ab46bd2c877b9a4237f67d5bb49d5c70f23b514f8b9bf7b30e5a639ee394bd2e9f2374163bf6a52f87cf4b976b6d0f748c9e4f155b41ba0b0647bf2cdff90e0adbc226de917d0f9a5f1d5ded401d7602aeea4cf85fe6e33c9de3785e45b951f3ac29e786c38ee321e0692db6df43bebf5bb16d56d4c53687524ef60595e22040ecbbaa6f0b49596278cfb5bd1a23b0d6217a596e98a97f9be51e07009372259dc729dc3d251fd46e40a9f72fd91f491059ef744aa26f906e8ac7a8771c9ebd7ac750f1ea1db9ca83aab2e2e5d49f73fdc88ab5be2b55fb9eeae04c68184ba8860993a3a5d39e6a5ae1f86e09a10b875bedec2f0c23cd6b48cdc82f3ffab815e6f7bec5dbc1a38655bc55c70a93d44a463a8bb67211aae03f53d1a6Line truncated
gr, _ = gzip.NewReader(bytes.NewBuffer(bs))
bs, _ = ioutil.ReadAll(gr)
Assets["app.js"] = bs
@@ -63,7 +63,7 @@ func init() {
bs, _ = ioutil.ReadAll(gr)
Assets["favicon.png"] = bs
bs, _ = hex.DecodeString("1f8b080000096e8800ffec5c6f73dbb6937e9f4f8170e6da64ce946c27e9fdc6913593d8699bb936c9c4c9f56e3a7d01912b113548b00068474d7d9ffd76019222254a96642975af7d9198248005f060ff3c00971a3c3c7f7bf6e17fdebd62894de5f0c180fe30c9b3c9690059c0b249c8f3fc3430d32cb289c82601d5011e0f1f303648c17216255c1bb0a74161c7e1bf825941626d1ec26f85b83a0dfe3bfcf8223c5369cead18490858a4320b19b67afdea14e20934da653c85d3e04ac075aeb46d54bd16b14d4e63b8121184eee680894c58c16568222ee1f4a877b82028061369915ba1b286ac856abcb089d20b35a4c82e9906891060b18d0acb444492120de3d360ccafe8b6973b64a8811556c2b0c66bd0f70f6a59bedd48296bace6793f32a65fdff55291f5f049507669a7124c0260fd60dc3db3d31cc76be193a5c6ae84b1918aa7ecb3bb642ce7718c7d872365ad4a4fd87f1ce69f9e9765639c5f38e6a990d313167c0ff20aac88387b03050407ac7e70c05e6804f680199e99d08016632fe2e681fb931c1db0e418ff3dc17f4ff1df33fcf74d3d843b77538ab8063149ec097b7278d8ea9ef74636ab7b2330c21822a539adf309cb5406adfa85fcf7e4595d3fe57a22b2d0aafc841df59e41daaadb73e252952993f308bae75417cf35e5a8de21aa440c998178689db1583d24655d2ca5655b5e3a46bd585e5a4b8e574aee2cad25c7f5ec464ac7a03d260bf0b9ce98d578d1069d4b3141bc233419d06d28a49aa839c44fd8e1f3b68e369eb89ec3673355cd95117e39d11a7061afe6b0ceb59a6830a6ee242995e5f86826a45ceaca144496a08ed92582eaab70c4752d16ed16c22ed94e218cf81d508b8eabc795d04849c973443bbc12869c5e2d2f1626977cda86b9dd66ade622a391cd812e8c0d33158e0a29c136a6808f9dfb08c97df8aee71aa27ec822cd96f5138ea48a2e6b581153e782d1bb54e65383ad3d5447b382118f2e275a15594cbd288d4b3a193d3a7ef2cd013b7e7a48ff1d3d7ede5644cd635118b4fc8642543a836bc09eceaf31ae0d3e6eacc3dcbcd05ab35eccd1e3cfb90109631cede1cc0fb4a67774387bdc547937c9e7b76355018cfe38928a5f76ab017b28520a773cb3b3e10ffa6ec930e4f67dcc7d30707e9e44a1ea695411d0a7c145156cceac9618c12437e634a8fa2be3d2c330641f54ce48b1c3d03fcbf8555d9b5f5189ff434ea0ba8c61cc0b8961187b03574f4c9c932d03cf2016b5101a14c7e9ebb28c421682deee231c699ec5c17020d2495542ae2260464714f342ba0b8f8effe5a22af3513f78721c94f6edae87ec621662a993bac75181969e9551d2dfd49850ccc07fd5a4dcb549598ec6e295b69a351638f21349115d22158a85bd006bb137f3e8318ebd39ad899ce609b100565fe1f2201f2807c6aa9683be1f4e095c1f917361bd8f9dfa055982a5af4f2bf8add0c6e2525c1f3095c9294352729d3131661944e8b6b89e3e67efc158ae2dbbe63ac36eabd52ec5e3a404129087287f2c26af3382b1c60705cf96ae351819a631ae495dda2ec7698264eeffb0ecb651b3a36e48faec6a0d9227ed12c7978261358b370031c468004f863562cbc59279b47ac64af9f04302cccfb7f0048125dcb011003a057e85de16d705add0321e6194e116e2de4cbd585a10e4e570acaa2b515044dcafdba27b837ede1ae3ed83a660dcb0990df41875b7a9ce333d6e2a6f39f4b5f4568dc733bdad97405db755b76b2a9104aec7e253d0b14ced07addbc64d79b9a0ec302924ba26d4cd39556e296d258f1abe07471d949ebac0c71e913f232fff7826a153c1bf5943bf2b877867fd2ec728c0dc45bb0b593b518af145e64246ec1440430edc9206e40a2313a3bf664e80db97cc3f9a73dc6d3e1c0c3f7f2649bd73a12122946f6eda3e78f9f06a66b2308aa5239987a20ee80173509e068de57e7dde2978c98c0ab474d6650696cfdcf73ae28855d4b0bc3e5f8e876b39bfd05bcc93f697895699f8ddfb3334545b2c2eed36738f549a229bdf7cfedee57893c4919ed1e5a31291c7153a176ea0f5e32d911af4bb35654b05fa4eaa1197de3c3cbe63811bef9dc03941d9b09532a52a06f97389d42fbd891be4b73430f607e3f29a4fcd9b221d81beb9f1e33d604b1abd9c5ad76824324ed6fa722feaf9838af60562a2d29d602869881b42e8daec06c11dabedc76ce60610b8ddc18dfb86220e63a496b8818877017c862c6e43dca9c97e157737de729b4831e0e539e0fc26835cbc738eeb90b51cb248c8195f7b8502067dbe72381beae6a05fc805beb05073bed65e386f6393d64d7f9b58f2387650ae05a3a4c85981f8228e1bfc71dfbcb7c95adfa0fe37f8aa9bea3d22ac34bc4d996a1bb5e4d9f01d806695a4675b50d90cdb9e8d27c46615eebfb49345cbbc03524bb2dff0141e959dac60275f84d73a85404da603c99d382b7a01b195372740d030f41ac83819db520837e37bc86dfdc19fc7c1f3da1910153e25b3bd23423ba608e7650c679a5bb82fdc00c564b871c4b5353f9770f568e529ea8b6c9453c44fc16a11dddce0dd5e34ed63be0f588a7c2fa0a8c2ee06951d6b9733d72bd066761c7c3714b7dd771360ff057b734ff7902812f4f574ff7a5c7181187c488471c4e0eebcc0a22807cfbe59c157909afcf99fc30dce0aad3192b1f72f7e648515b20c96bbb1c2642b2334536321ede19fe68e8d46b8170f5e2170f6ee631301f6e8e89099c5a5df0a086e2ecd5db088f2e21d687a393eb7efc5db0ce982e6f2e4e8e6e6df6812f7c1a1b7e8026d432c97bb817207b4e14fa0067b80e00e14e1bed1807fc2e23ab0fe858f50aa28bac5118a0fe55fe0f0c45ffb13947efb1d213d7aa5b5d2a6fb1d3850d90f18a21f3dee49c82636614376781f5f86bf51564470a797e04db2841327a2d4983fad71caa5442f834f7b1f440ae867d0d8e024489293343d31a6678c096e6e4e70995d55f6f9f3580bc86239f5a730d4d2e1ed28d2fedf826fa4ce4ed5bc36d074dffee7977da5dd52d33ab7a3cec4a1c72f5d8ada7a093ad51bfff21607097199e3c61211c790859fcc7a193af95c7a0e396c8a36e5beaeb5940d6a4b432b5b342e7df2410318f473e8acdb3db863a8d2815392f0491fc131912ab4815e9d39dbcbc0f683e14591535e14ebb36f952e52ef9c9bde7369171510266d7666b0b789b04931ea452aed475ca649bfeeb4af0117ddd07b941f50f90d126cff60837e37e8ed5a5c8a6078aea2828ea51c7fddf7048531054def654109497bed0b170fd7340276e68241bbaf59c0eb4a8472e7e160af95bef46e8aa52ae6b2360c526911e3087d1d67d7b55ff055c73c860e0b7085612cb854934ef7ee2b9469e04b5cbcaf436e1b6d984b40fd74ff8731cf26734e6c903c6d372b7d7adbeddc1661e11316a64e434223265937693aab0f917ce06b79ace4e91287d535b785Line truncated
bs, _ = hex.DecodeString("1f8b080000096e8800ffec5c5173dbb6b27ecfaf403873db64ae29d94ed2db7124cd2476da666e9b64e2e4f49ce9f4012221113508b00068474d7d7efbd905488aa428599225d73ded4362920016c0b78bdd0fe0528387676f4f3ffcebdd2b92d8548c1e0cf00f11544e8701930191d39066d930303319d984cb698075188d470f0819a4cc521225541b6687416e27e1d7c1bc20b1360bd9af39bf1c06ff0c3fbe084f559a51cbc782052452d23209ad5ebf1ab278ca6aed244dd930b8e4ec2a53dad6aa5ef1d826c3985df28885eee68070c92da7223411156c78d43b5c10143313699e59ae644dd642359adb44e9851a82cb0ba2990008a0d846b9253c42498966936130a19778dbcb1c32d8c0722bd8a8c26bd0f70f2a59bedd58296baca6593f32a65fddf5522e7bf02428bab433c14cc298f58371f7c4ce3218af659f2c367625848c553c239fdd2521198d63e83b1c2b6b557a42feef30fbf4bc289bc0fcc2094db9989d90e03b262e99e511256f58ce8203523d38202f34007b400c9526344cf3891771fdc0fd498e0e48720cff9ec0bfa7f0ef19fcfbaa1ac2adbb29445c313e4dec09797278d8e89ef6c65656bd211861cc22a529eaf984482559a37e2efe377956d54fa99e72195a959d90a3de339636eaf69cb8544965321ab1ee3955c5ada614cc3b04938899342c1e59b758ac1ea1b12e96a2da96974ec02e96975692e395923b4b2bc97135bbb1d231d31e9305f85c67c46ab868824e059f02de112c19a69b500835552dc44fc8e1f3a68dd69eb89ec3677353cd94e15e9db01a40b1972dac33ada69a1953759214c6727c341752a8ba5c0a5c2660637689a0ea2a1c535d898575cbc22ed9ce200cff8d81151d978f4ba191128266807678c90d3abd4a5ecc4d26e8ac0973b3cd5acdb9c491b540e7c6865285e35c08666b5380c7ce7d84e83e7cd7ad86601f224fe5b27ec2b150d145052b60ea5c30789772f954606b0fd5d1bc604ca38ba956b98cb117a541a5d3f1a3e3275f1d90e3a787f8dfd1e3e74d43d434e6b981955f3388d2664007e4695bc7a01b785cd3436b5eb05a652fa6e0f15b6e40b0098cf670ee071ad33b3a9c3fae9bbc9be4f39bb12a01067f1c09452fbacd803ce429863b2aed7cf883be531984dcbe8fb90f06cecfa328303d0d26c2f430382f83cda9d5022298a0c60c83b2bf222e3d0c43f24165040d3b0cfd33492fabdaf4124bfc1f7402e565cc2634171086a137e6eaf1a973b245e019c4bc128283a2307d5d9461c802d09b7d84634d651c8c063c9d9625e82a02627484312fc4bbf0e8f86b1755898ffac193e3a058dfee7a44cee721163ba97a1ce7b0d2651125fd4d8509c60cf8574eca5d9b9464b058bcd196b38602477e22c1a30ba04231b7e7cc5ae8cd3c7a0c63af4f6b2a6659822c805457a01ee003c5c048d972d0f7c32980eb03722eacf7a153af902558fafaa8c16fb836165471754094143302a4e44a123e219245e0b6a89e3d27ef99b1545b7245b5846e4b6d17e261521c08c843903fe1d3d71261acf001c173d5350623c234069d54a5cd72982613c4fd1f16ddd66a76d40dd19e5dad41f2a459e2f852302a67f186b198c5b0009e8c2ac4968bc5e5d1e8192a65a30f09237ebeb9270824a1868c1903a7402fc1db825e60155a42238832d4b2b837372f92e60879311cabaa4a181401f7aba6e8dea09f35c678f3a03118d7d6cc06760cb65b37e7b91dd78db718fa5a760be414aa2773dbadd4a0ae9ae6db359d4830aa27fc53d0a1aae683c66deda6b85c307836cd05b827b0cf9639370cb794870ddf33471f949eb9e0471ea14f434fff782ea1d3c8bf5ac3c64ba7786b1b2fc6c899b98d85e7a272a418e773e9c246ec8c40b38c518b569029884e04ff9a9600b737693f6a39ef26270e469f3fa3a4de19d72c4294afaf9b7e78f9f02a76b2308aa52369435105f580382887414dddafcf3a052f99510eab9d742d054be72e7c1d71c82c2a585e9f2dc7c3b56c2b7a8b79e21e33d14af2dfbc4f83856af345d56e33f748a52930facde7efdd8e5f9230d253bc7c5420f2b844e7dc0db47abc2552837eb7a56c6940df0a35a6c22f0f8fef84c3e67b27704e4136dbca98521533f15381d4cfbda91be4373830f23ba1e28acecc9b3c1d337d7dedc77b4096347a39b3aed1984b8aabf5e55eccf37b15ed0bc444a53bc150e0103784d0b5d90d823b36db8f72ee0600b8ddc10d7b873c0e63a097b089887701bc0426b721eed864bf86bb1b6fb94da418d0e22cb0bdd14017ef9ce33a842d6332e262ced75e8180419fae1cce86b639e8e762812f2cd46cd7da0befad6dd4ba29701d4b1ac70ecab5601418394b105fc4718d3fee9bf7d659eb1bb0ff1a5f7553bd47841587b729536da2963c1bbd634c9352d2b32da8ac84b6a79329b259057b30ed64a19a77406a51f61b9ab24745272bd8c99df05a671060c97828b91367852f21b6f2e608082c0cbd06324ec6b614c2cdf81e725b7ff8e771f0bc760e44894fc16c6f89d08e29c25911c389a696dd176e0062246c1c41b7e6a702ae1e6a1ea33e97e30c237ecaace6d1f535dcedc5d23e66fb8025cff6028acaed6e50d9b175b9e57ac9b4991f09df0ec56df7dd08d83fd8dedcd33d248a087d35dd3f1f575c20061f126e1c31b83d2fb020cac1b36f56f0054b4df6fc8fe106a7b9d610c9c8fb173f90dc725104cbddacc264ab456866c6b2b4077fea3b361ce15e3c7889c0e9bb8f7504c8a3a343621655bf1510d45c98db601165f93ba6f105796bdf0bb712e882a6e2e4e8fafa7f7012f7c1a137e8026e432c15bb817207b4e10fa0067b80e01614e1bed180bfc3e23ab0fe898f50ca28bac5118a0fe5777078e2affd094abff98e101fbdd25a69d3fd1e9c61d9f710a21f3dee0926a736212372781f5f88bf519647ec562fc2eb6409268e44a9367fd4714a85002f034f7b1f78cac0cfc062632741929ca4e989313d634c707d7d026a7655c9e7cf13cd998cc5cc9fc2604b87b7a348fb7f13be91393b53f3d680d37dfbff77fb4abb61a6557e47958d838f5fba34b5f59274cab7fec52d0c92c5459e1b49781c33197e32eb65e964ad141d74d8186d8a7d5d4395356a8b432b5ad42e7d02420d18f073e0ac9b3db863a8c28163a2f0491fc03191cab561bd2a7bb62799ed07a3f33cc3dc28d227df289da7de39d7bde7d22e4a204c5aefcc406f536e937cdc8b54da8fa848937ed5695f3350bac1f728df83f11b20d8fec106fd6ed0db15bfe0c1e84c45391e4b39febaef097263729cdecb1c9392f6da17280f741a3172ea8241b3af79c0eb4a8672e7e1cc5e297de1dd1449554c45b530d0a4790c23f475dcbaaefc82af3aa131eb5801ae308c39156adae9de7d8522157c898bf775d06dc31aa682817dbaffc398ca69cb890d92a7cd66854f6fba9d9b222cfb0485a9b390d0f0a9ec264da7d521920f7c0d8f953c5de2b0baLine truncated
gr, _ = gzip.NewReader(bytes.NewBuffer(bs))
bs, _ = ioutil.ReadAll(gr)
Assets["index.html"] = bs
+12 -2
View File
@@ -6,8 +6,9 @@
var syncthing = angular.module('syncthing', []);
syncthing.controller('SyncthingCtrl', function ($scope, $http) {
var prevDate = 0,
getOK = true;
var prevDate = 0;
var getOK = true;
var restarting = false;
$scope.connections = {};
$scope.config = {};
@@ -44,9 +45,16 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) {
$('#networkError').modal('hide');
getOK = true;
}
if (restarting) {
$('#restarting').modal('hide');
restarting = false;
}
}
function getFailed() {
if (restarting) {
return;
}
if (getOK) {
$('#networkError').modal({backdrop: 'static', keyboard: false});
getOK = false;
@@ -234,6 +242,8 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) {
};
$scope.restart = function () {
restarting = true;
$('#restarting').modal('show');
$http.post('/rest/restart');
$scope.configInSync = true;
};
+21 -1
View File
@@ -114,7 +114,7 @@
<p>The configuration has been saved but not activated. Syncthing must restart to activate the new configuration.</p>
</div>
<div class="panel-footer">
<button type="button" class="btn btn-sm btn-default pull-right" ng-click="restart()"><span class="glyphicon glyphicon-off"></span> Restart Now</button>
<button type="button" class="btn btn-sm btn-default pull-right" ng-click="restart()"><span class="glyphicon glyphicon-refresh"></span> Restart Now</button>
<div class="clearfix"></div>
</div>
</div>
@@ -321,6 +321,26 @@
</div>
</div>
<!-- Restarting modal -->
<div id="restarting" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header alert alert-info">
<h4 class="modal-title">
<span class="glyphicon glyphicon-refresh"></span>
Restarting
</h4>
</div>
<div class="modal-body">
<p>
Syncthing is restarting. Please hold&hellip;
</p>
</div>
</div>
</div>
</div>
<!-- Node editor modal -->
<div id="editNode" class="modal fade">