From 358862c7ad58ded0f001055c3e11ab5aad15eec0 Mon Sep 17 00:00:00 2001 From: Ryan Sullivan Date: Wed, 21 May 2014 13:50:06 -0400 Subject: [PATCH 1/3] Ignore sublime files and Godeps changes --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 5b1c7081..adf7dccf 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ stcli.exe *.tar.gz *.zip *.asc +Godeps/ +*.sublime* \ No newline at end of file From 8a5a573851924cbe64292f552bce6d405f54bb52 Mon Sep 17 00:00:00 2001 From: Ryan Sullivan Date: Wed, 21 May 2014 14:35:51 -0400 Subject: [PATCH 2/3] Fixed issue #239 Saving an unchanged config does not prompt for reboot --- auto/gui.files.go | 2 +- gui/app.js | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/auto/gui.files.go b/auto/gui.files.go index 7266cddb..73fec608 100644 --- a/auto/gui.files.go +++ b/auto/gui.files.go @@ -18,7 +18,7 @@ func init() { bs, _ = ioutil.ReadAll(gr) Assets["angular.min.js"] = bs - bs, _ = hex.DecodeString("1f8b080000096e8800ffd43c5b73db3697eff915a89a965422534e76b7b363c5e9b44edaf5e6e68993bcb87ea04448624c812a09dad6b8faefdf390048020448d176d2a69ef9bed8b89c3bce0d60c78f3ee749cc389966e9554eb303c2b3828ec82c653c66052dff5e27458eff937f9347e307e3478b249d8609797840e66192c3a2902d8a24ccd4dfb8e88157c02f39cfe219f7260f1e5c8619c9376cc697315b90c37247b04aa322a1be57cd792372763e9c880d45964c43007348bc8ce6024eb52e4042b3344968e67ba7e5e811cf1280302fe0ef3865c47f98cfd23550f870c9f97a486e1e10f841d8eb8c5ebe083902df9f54a30bcadfbd8221e4b51e45e461c625e58245a0042725742485518130870537db4963721e2fecf1d5e6f80572e619a32c8d2802393b77003966c8a8419e9aa75996668e7d39a5ec25ced99840f234b1c9cae83a2db910e3e331390535b2454ea6749e66944cd334c94992a61730c239cd4c8c9c8bc5408b18bf89a303e2bd8e734e190002ed008733b015a1357292a53c9da509912bc82f5104e2ce690e0bf9660d76e8717acde12fa5056988db9106fc4d787d4a59f46abace35f0ef0abe485167ef51cdafe355cc89ff2afe759c0f6bd8ac584d69d609fd3dc00bd93103462fc3e454c32067483945fc5b435696e306ae26ef0eff24cc423820c97bfa67018b74e180c808080876b248c8a85ed21f3e00395ac249a60dc923f0dfe28412392b15d05ff41a86df85a7f985b1972c9c2634d290c8290273299c765ac345f3ec24fb753a6b812966ee02f214c77f959e54b7701c26f5b80eced8fff1849dd8e4c8118293eecde7a61f5a14f1a9fbf8a953a58befe3f17d8edc47935184f64bc1971482c72c14aef7a3c1f24e8027619e5fa559d40d545ba500afeb914e6a3fbcd60f170c90fffbf0e1e49480472380a897ae4b7157e105c2c569319b511ad1c82fa30bfec473e27f2782893eaaa92a6631f7871373caf7be6794033717c2677b4374d261e27bcb38a25e63b51daaf0676b905007ae5b92516fec26c215194d52b6b6c87e0bc137d8f26a2736a3bcc8581b936e31b7c9f2661ace2ea22c5d83aa011f581628fb826ea66998452a81d9b688ba8bc12a7cce818f252eae72109d3691870400d02f939bc7c41be71b38882ba031476bca73bfde1c853c6c32679addc4a5580911c8c0fd1ac943992af86eea14f05241fabefaf777d3cf1095029059eeeb49c33080b3f4329c2d35e0716429c62900918cfc8c600e3d18a06c06031fdf1f1fa5ab75cac00120a4bee2d1c420e09ec5d1b925892657faef6e1ab52cafb7a6307b64e91560c75c13b2bb2b7f383256f008267d5cb357e5a44332264ff6f7f7cd9571a4dc4ff9a3a5b0b0df69063183c85ca7b88dd9b4e0d5b4318f4e11244e6246da042c3c1c4e06cb307f77c5208f5bd38c6f84a21cebf1a7ac2d26d6ecd61ae1d9a6050a22459556ccbd09f9325885d7fefe88fc2f79243521561cb35f379ce61f520e617dcf91ae5bab50f43c1ada141a982bc1b5a386e4aa0f6e63592bf22d81f8375b129fb689d612ca7e5f161c0b6d6d18e6f4f8b081ce86601a98be410e35cea1cb38cda2aae9c6761d565910f53ea7cd32ca8d6e3b79d02c9520c3e3456eb87b1c6ec636cc2dd2b9e995701df8a543a8cc0a16d179cc20f973873e4858d8059c71e6e9d1c7c0608306dd40d100a7f83b44d10af994a7eb3560764216653b973ec643cfec4023e6ebdde572f1efd9fe79c0d38f80203b02d540b0792c27402fd39c67fe93e1c4e4436d3f24032c0f21191890bffe22f5e87194d0419317390d663620fea0a6129b0527349b41fc08175429e63119fc301c38b95522d1186a06f7757a9440c2f9f5f51db379fa15941d613d967d315d1b0af362504d2b66750ebdb62cae06934bbdb7425a67f12acc364e480ef1992a344de2abeb11a2781bc30ee9cabe9a880702fe7e3fa88606d7330e5cc10a88464e33c16325518c5d0b341a264db18a68374f52c81f018ddb296203cbe11471f8686e64f6482d3a7958e7088e6a43f016fe3d7e716eda1c2e6ccaa61c0f30674ca8408b420451b882666929c78ca044bc464422141b99eddb9473223e1e94265a08403f0c9b103b1c8ef722ce15ef95237688f578862cfd1b849a5edc569eaa6eba8dd056904ae6edd2b21df5372b2edb37f69299ed0877ca4cf78bb6c8b011f4374b4c112684a6fa505d7efde70e7d6b22ffc758683881ce18d5ceca27ba530d488c49a93034ed6ea1854cb5e2926639c076d1f735c593c410783fb5e3dea16788b51122b6a463b28b1cacb060125729facd0a404838d5db1f486f8996d5a22412eac428359045053748285bf025a45be4490bc75572d0c1a882066972ab31bc0d5736bf5dd600eb5b28d297741065aab8ccd4a1c2fdc91df2f932cedfba286dea8449d535b6f90d09ab9c4b2eee95650dfc429647629399dc3745b44b3e7d84d35b32348ab9d6916f6909fadef7e5ad59df36a5684a0f9d096e784977a374de2a36da9bc6a2e0dd5a9cff40de1928576db8087bd529cf827c9dc4dcf746c859b8d60edeb576f0ae030eb10c0cc151d9afd3dceac3012a10c7ff9fbe7b1be4e26e329e6f7c8392e188dc2c691881ab392037de51ca801ebef7016ccb0391866b204bde298c3fe729f3b60662974606d8ff1eb4750244ebba55de469bdc6cd8b775dbf3657ae5ed1686da6aacdc7165dca03d5f163cc2b3d3ddb2b63097fb9c3d16ab40a7fc43bca269c17db351ee83a29efecf7e5b23f676ace07173868786bb2cc116590646a1763c0ce835d848e4df6c47a50bb4494114a0a797d760e04e751acb4e693297eddd46a43602b5cd6f4d58505dcec1612287956fae8683cf69cce07c118709e0e29740499a050f4103279920da70b8687ea5d8eee47c4c0d84911d9f774afe46e71150461b16ae00e7b687f4dd3ecb14bf7bcddf2f1c28b229a7ddf27161b46ede44efdd2d92dd57672e39f44b939c21b3b4e9ef6aa3d6cd57cef638dd6265930ead3728ae24308990d712f2c6c9ddc51573a2d9dc80d998e8c1e53d386d726b4b7e47f8fd27a25f33364032d169af6556072e6944a294d1118927b765b497cd2b2cc4257b6b55e5689bb92c584012cea83f266320d80374d5c85e39a252110b66e5a55c6ef88ea94e850465678b46dec3894b1a129367e6199515084c3c7eecea43e86bcfe273bd4a3485d2717d5a6eae399e584b15e566182c7fa6190d2f7af427e46d22406a39d292e3750109831d9a5b7c5a90a719f7cbd64098d1bbba9e6fe124a67c49b392ceb624532ff05bfd786f378eb989edb85b6abf4e0f114342d574e577b06ad6501118e6c4327bd6b31da233df6ea00e8ec324e9d643e913358baab5d7742ccaa8ad92786835df95553a2812b7965871f5340d79cb69db465b594c03ccddc973eb51e94eeb982534cc5e9697aa9d29a1fe52d5a0f3cca45af55df6c8937341d6ce8029f68d05259e9bca791643de9f6c6cb5c2a1d649ad7390db1bafe8aae9f1cb6dc2b9c8f2e1ffabc034ab1cf5a8d916c2b9e1b0a35901705aead575dac760ca75e63b1f57db0103f87b98bd5de9a576d4a5570e29325e82085580c3dc76d5621a9032a1b31e2059199d63af81f4ac7420e7f6dbba3b978328b79eb50652f4650a314b1d3bf5e010ff9d4bb0bf9f654c563b79964ff9d7e99748560d9aad645561b19255dc65adaad28fb3737bceb44d2d9ed9e6597927d9ba2eab240b8a2b5974a363e5413894b8dc3154634206b31b79800e1421cdd794cdf88a3fb23476d36bab48d671e562290bf5575b8a8792cfd11a6321ea36c7f64de57c5228ddc7b897397e997e81d291a1038737352e85eea9847f4b9d8ccfa8351df578f1abeedf6efb404d6d73be50db81f1966f8cabf732ce77c4da0af51d93780a6a970c3b88525aba2551d52755ad44b55d47ecb8b050e5bcd1536d2d472d586feb0cddb5de558fb6b6afd4f17813aefdf633d40a40b5d6efa08a313e90ba9b3eaa032a4c411fdb5927e89f2140b2507ef0d4b82b188947d1785720d8a948d344ea8723322da9d42e134371ad271fc7d5d789e4c71f895a30752e68deb12a30cfd4f2a1ab5ada7b62956e6adb73b5adcc9f35a832620bb8564fa60157eeab21cbadcfabad201d4d36222cb6c8260c5ec419c4d934db08d4d55ffdb1d7009eeb006c1ad09013fdfbcb95f6e961e248dc8dc26b759695615e91a18ca5bc46b7118ac0b2d231265a8ad5e826af746489cc6256d8281e6a4c27f2006b123589484c22223a8b5710aa004d02454c61d012c58b98e7f83dd2accc6f5023f8919ff5f04f81df37ca2e09a07c812edfe4895f9374217f09a702f5101f9557334ff6cb7a1131371eb0038d50574bc8266b92ccadfef9adea1e782c8415a1f9d16d49bddaad7d0ec2d6051f11f152d5c1a2980e78fa5b7c4d23bf12a0b1ab7620c209d8044d63868fa2fad3d33ce46250a8a172046d4f51f749eb7b5609e539b8aca7ff4d1ee9ff58f9b758393e742c9db8b0764be9e9109f387be4f7f836a4f5a1e91ec4bce9474c2715f740ffca8d5e7fd59aa5a0ecd21e708fb7cbce56143f6eff86ec4c3cf9d5fee9906673e97decec3694f521e93e66d68b964e22ee81fde22b1859be849073471b3388773e556a411a2657e1267f5b7e9efdf5eddbf9465e277f17c5b365c12e8e5f7c61625da40eb4c765e2b97d9889302ca52c9ef3f9e3e0e6c9e8a7ed78d12cc1c5e29d60d59058ac2a91bdaa73dd6928276064ffb80ce42de8f8ec8ff11f7f9c8f9d22c02f7a247baa9bffec90fc578b6d68fa77dac7200882317ef32301e650b0535f07bef77428a538180fdaa41889c435bea4be978a8250762ebb64a99f33f99f393920de9137d28645ff5efd7754aa619e852c9f254564cd885ae7c07e38856d1a807da87ed5506c35b07405e8387ec0fe4cea110b9bc3017e773f206cb127bef1381c9865ef99821940aa3b78fe6c2c763e5718ece3a689a960f19f85e84d6942ea92d19f056cc6ffeac3e20d52a27191c4ece2a08621c4302234598d48c8790659f28c6749d33c702c78088ace69960705cb97f19c57f5837f19d3ab4f61e2ee598aef8dfa74c3ca9ff1985c510267ac4822e671998a82b49d8b256520d94fb82ae69b86b4442775626d55cffd6bda6487ad62e4bc8338be94bd534291919c844946c3687327f2447bad9dbedd34c4399100bfa874ac116563957c1a4d66eb5a4c99f37f000000ffff010000ffffe00d9c80f8480000") + bs, _ = hex.DecodeString("1f8b080000096e8800ffd43c6b53dc36bbdff32b946d5a7b93c54b72cee99c81904e4bd21e4e6e4c48f285f2c1bb16ac8357dec8726087f2dfdfe791645bb264af81a44d9979df822ecf5dcf4d72a60f3f1559ca0499f1fca2a07c87085ed20999e74ca4aca4d5dfabac2cf07fea6ff2707a6ffaf02ccb6771461eec90d3382b6051ccceca2ce6fa6f5c742f28e19742f0742e82dd7bf7bec49c146b36178b949d91bd6a47b4cc9332a36150cf0513727c32de951b4a9ecd6200b347024e0b09a75e1721a13ccf32cac3e0a81add173c0308a725fc9de68c840f8a79be020a1f2c84588dc9d53d023f087bc5e997e7b140e0dbbbf5e819156f5fc210f2da8c22f2980b45b964b199cbb3e4ed0a71153077750d24e28c428b34323a3767edc9d3f4cc1d5fae0f9e23cb8135caf2842290e3130f90038612b0e8d6f394f39c7bf61594b21738e7620295d0cc258bd3556ef1389d9223d02f3b2bc88c9ee69c92599e6705c9f2fc1c4684a0dcc628845c0cb4c8f1ab34d921c1abb410940120501b7038072392ea24873c17f93ccf885a417e4d12d043410b5828d62b30d040d04b017f69f5280bbd9e18c05fc7974794252f67abc200ffb61467392af31deaff55ba4c05095fa6bf4d8b71039b95cb19e5bdd0df01bc981d3060f44b9c1d1918d40ca9a6487863c8da72fcc0f5e4ede11fc63c869393bda39f4b58640a0744464040b093255246cd92e1f001c8fe028e386d491e81ff9e6694a859a580e1a23730fc215dd0af8cbd60f12ca38981444d1198cbc10dd0062e9a672fd9aff279074c39731b904738fe9b72b1a685e33069c64d70d6fe0f87ecd025478d109cf46f3eb1fdd059991ef98f9f3e55a6f83e1cdce5c87db0194568bf96624121aacc63e9933f582c6f04781817c545ce937ea0c62a0d78d58cf452fbfe9579b86080fcdffbf78747043c1a014483745d89bb8e3b10478ecaf99cd28426611576f0273d25e17d1965cc514355294b4538deb5a7c2e007460570732e7d763046271d6761b048131ab456bb310c7fae2d129a887643329a8dfd447485cc86946b5764bfc7e01b5c797513cba92839eb62d22fe62e595ecde2f979c2f315a81af0816581b2cfe97a96c73cd199cd7587a8fb18acc3e729f0b1c0c5757262d226139408008655d6f38804d3620d0771093416684d4511369b9358c46de66cb3dbf5295641043270bf41f258a50aa19f3a0dbc5290b9aff9fdedec1344a50864568466d2308ee02cbd88e70b03789a388af10a402623bf2098bd0006289bc3c0877707fbf972953370000869a8780c3148b8c76972e248a2cd95f9bb9f4623cb1bac294c1d597e01d8310985ecee221c4fac152281c910d76cd5c9ea984cc9e3eded6d7b659a68f753fd18b92decf79a41ca203237b96f6b362f453d6dcda35304899394912e014b0f8793d1222ede5e30c8e356948bb55494673dfe5445c7ae337bed8c08beee80824851a53573af63b18896f165b83d21ff4b1e2a4dc81507ecb7b5a0c5fb5c4058dff2a4ebce2a14bd48c62e8516e65a70dda821b91a82db5ad689fc9a40fc9b2f4848bb44eb08657b280b9e85ae362c737ab4d742e742b00dccdca0865ae7d0679c7651d576639b0eab2a88069fd37619e547d72afbd05d418627cac272f738dc8e6d985be4a7b657c275e097f6a0322b59424f5306c99f3ff441c2c2cee18cb3c08c3e16061734e8068a0638c5f7114527e42391af5680d90b59d6f342f998003db3078d9c6f7657cbe57f8fb74f22917f00047c1f5403c1e6919a00bdcc0ac1c3c7e35d9b0fbd7d8f8cb03c84646044fefa8b34a3074946476d5ed43498d98884a3864aec221c523e87f8119f51ad984764f4e378e4e5568bc460a81ddc57f97e0609e7b7d777ca4ef36fa0ec04eb31fed5746d292c4841359d98f5390cbab2b8064ca1f4de0969c5d365ccd75e481ef1d92ab44de29beb11a27817c31ee9aa869b8c0712fef630a896065773015cc10a88465e33c163a5504c7d0b0c1a76db6295d1ee34cb217f04347ea7880d2c8f53c4e1fd532bb3476ad1c9c33a4f70d41ba237f0df83e727b6cde1c2b66caaf10873c68c4ab4284410852f68569672c0084a2468452442b1c3d9bd4d3b2712e24169a38500f4e3b80db1c7e104cfd342f35e3b628f580fe6c8d2bf41a8f9f94de5a9eba69b086d09a964d12d2dd7517fb7e2727de32099b98e70a3cc4cbfe88a0c1b417fb3c434615268ba0fd5e7d77fe9d1b721f27f8c859613e88d51ddac7ca41bd580c4d8944a4333ee163ac8d42bbe505e006c1f7ddf523c590a81f76337ee0d7a86589b2062473a36bbc8c1120b26799562deac00844c50b3fd81f4566859234aa2a0ee5aa506b2a8e1461965676201e91679dcc1719d1cf430aaa1419adc690c6fe2a5cb6f9f35c0fa0e8acc253d44d92aae3275a8707ff6877cb1488b373e4adb3a614a75ad6d614bc23ae7528b076559a3b054e591dc6427f76d116d92cf10e10c960c4d526174e4fd92b1ae16ab0b53d8be0eadcbbf482f324bdf30f8a1ba6f1bdae094edecb137358ebfd08dc44ea790059e5352941cfe2f5f5275d33b97173d8921edf07ecd0bfd5cc65911367c4e889fb3b1b7286fdd7db69ab0cec20a5aa46e377450b19c99bbea48f0a85865a90883094a325e192ee2d27011979180a80b264bda4d62d58758e585d3350474a082ff3f7afb262ae44d6a7adad2ed7842ae16344ec031ee90ab603f674093d87a0f27210035c62b204ddd804c3f15390baeadce65fd5bbf618cb0813fea6a65c8de7ba7daad3ebf7de3d0755d502cf28bc0e9d338f2d15bad951beebc5bb4178b522478f8fb7bee0ee66a9fb749e47418a8789f2e695e8ad0eef487a0bb27ffb3ddd549be192be82fbcf1ade5ef2bb025e760277ac783885e82d924e1d5f5a4f2e12e298802f4f4e212ecdeab4e6bd911cd4e557fba956a589986cb6f435854df2ec219237b7570a987a34f79cae0d8118f09e0e2174049cea307a081432e89b622069a5f25b65bf9405b0371e226181b257f65f2082893358b9780f37a80f45beecc2b7eff9abf5f380985dc96f6cbc787d1b93a9497077e916cbefbf3c961589ee78df9954ddf6f8cda345f353be074cb956d3a8ce6a6bc53c12c48ddaba82b337f1b5acec96e790b666b62009777e0b4cdad2bf9fec8fc8f04c4766c809ca6d75eabb4145cd2842439a31392eede94d14136afb1109fec9d55b5a36d27e36001593ca7e1944c81e000d0d5235bd588ce501c98b597f2b9e15b66403512949d2b1a7591286f99484a9eda6754955030f1e891af9162ae3d4e4fcc32d7164acffd6fb5b9e178d759aa29b7c360f533e3343e1fd06051d7a100a9e3482b8e5725240c6e68eef0695191731156bd8d98d3dbba9eefe124e6624179456757926976283afdf860378eb989ebb83b8ad75e0f914242d576e5b7b06ad6521118e6ae63f66c603fc764bedb403d1cc759d6af87ca271a16d568afed58b4513b35bdb1cca89c0b7fda8bd7ae58880d340d754debda46575d4f23ccddc933e755ec46eb986734e62faa5be1de94d07c6a6bd1796c53ad1b475be4f189246b63c094fba69292c04fe5294f21efcfd6ae5ae1509ba43639c8cd8d57b605cdf8e537e14266f9f0ff75609ad78e7ad2ee6be1dcd85bcad657b1bca35e5de5430ca65a673f54f2753f3080bf83d99b955e7a47537a159022e32d8e540538ccebbe5acc00522574ce0b2a27a3f3ecb5901e570ee4c47d1c78eb7210e536b0d6408abe4e21e6a863a31e3ce2bf7509f6f7b38cc96a2fcfea238555fe3592558b662759d5589c64157739abeaf4e3f8c49db36dd38867ae79d6de49f5deab2ac981e24b16fde8587510f6142e7f0c359850c1ec4a1da01d4d48bbd3d78eaff8a34a633fbdae8a541d572d56b2d07f75a57828f902ad3195a2ee726cdf55cea784d27f8c0799e3d7e917681d593af07853eb56eb8e4af8b7d4c9f80edcd0d18027cbfa02f1a62fecf436ef13bb0d186ff848ba7ef0e37d086dacd01f62c9b7ac6ec9b08128ada51b12557f13d64954d72dc5867b0c5dce5b3dd5ce72d481f5a6c9d07deb7df56867fb4a1f8fd7f12aec3e439d00746bfd16aa98e20bafdbe9a33ea0d214ccb18d7582f91d05240bd5175badbb82897cd58d7705929d9a3443a4613c21b38a4ae3363496f792ea755f731f4a7efa89e80533ef82f625b106f3542f1ffbaaa5adc74ee9a6b73dd3dbaafcd980aa22b684ebf4645a70d5be06b2dafaacde0ad2316423c362876ce2e879ca21cee67c2d51d77f0dc7de0078660270694043cecc2f4b97c6b793992771b70aafe531afc2bc26431b4bf50ec0452803cbd2c498192956ab9bbc3491652a8b5962a3786c309da9036c48d42622b38948e83c5de2c52d18321431a5454b929ea5a2c00faae6557e831ac1af149d978b1afcb655762900d5137af5a850fe9ae567ea977826518ff1557c3df378bbaa171173eb053ed00875b5826cb3a6c8bc363f2cd6dd8380c5b022b63f27aea8d7bb8def59d8aa1413229fda7a5894d391c87f4f2f6912d602b476350e443a0197a059caf055d7707ada875c0e4a35d48ea0eb2ded36e97c90aba03c0397f5e4bfc943f33f4efe2d574ef73c4b777d58fba5f4648c6fb403f2477a13d286d07407625e0f23a6978a3ba07fe9476f3ecbe53928bbb207dc136cb2b325c5cff6bf233b936f968dfff448b3bdf42e767613ca86907417331b444b2f1177c07efe0d8cac5840c8b9a58d59c47bdf5a75208db38b785dbca9be2ffff6f6ed7de46f92bf89e2f9a264e707cfbf32b13e5247c6eb38f9bd40cc6518565296ef11c36974f578f2f3f5f4ac5d82cbc51bc1ea21b95857225b75e7bad7500ec1c8fe7119a85bd0e9f19fd33fff3c997a45809f2429f67437ffe91ef9af0edb30f4efb58f51144553fc6849012ca060a7a1097cebc9584971341d75493191896bfa8586412e0b42d5b9ec93a579ced43fe0b24382fd60620ccbfebdfe1762ea61c16356ccb332716664adb3e33e9cc2360dc0ded3bf1a28ae0db07409e8047e81ff54e9110b9bbd11fec30123c2ceb6e4472a7b23bbec3dd63023487547cf9e4ee5ce671a837bdc0c31952cfd5ccade9421a43e197d2e6133feb31567af9112838b2c65e73b0d0c298609a1d9724262213864c973c1b3b679e058f400145d505e44252b16e9a9a8eb87f04b4a2f3ec699bf67293f981ad20dab7ea6537241099cb1324b5820542a0ad2f62e569481643fe2aa54ac5bd2929dd45d67abfe5ea1a14d75d86a464e7a88130bd53b25141929489c711a27eb5b9127db6bddf46da6212d8802f855a5e38c681babe5d36a323bd762da9cff030000ffff010000ffff6965c7dcd2490000") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) Assets["app.js"] = bs diff --git a/gui/app.js b/gui/app.js index f57a225b..5b8e503d 100644 --- a/gui/app.js +++ b/gui/app.js @@ -10,6 +10,7 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { var prevDate = 0; var getOK = true; var restarting = false; + var oldOptions = {}; $scope.connections = {}; $scope.config = {}; @@ -251,13 +252,18 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { }; $scope.editSettings = function () { + oldOptions = angular.copy($scope.config.Options); $('#settings').modal({backdrop: 'static', keyboard: true}); } $scope.saveSettings = function () { - $scope.configInSync = false; - $scope.config.Options.ListenAddress = $scope.config.Options.ListenStr.split(',').map(function (x) { return x.trim(); }); - $http.post(urlbase + '/config', JSON.stringify($scope.config), {headers: {'Content-Type': 'application/json'}}); + // Make sure something changed + if(! angular.equals(oldOptions, $scope.config.Options)){ + $scope.configInSync = false; + $scope.config.Options.ListenAddress = $scope.config.Options.ListenStr.split(',').map(function (x) { return x.trim(); }); + $http.post(urlbase + '/config', JSON.stringify($scope.config), {headers: {'Content-Type': 'application/json'}}); + } + $('#settings').modal("hide"); }; From a97985b428909d99319dcddca0190f658ea08158 Mon Sep 17 00:00:00 2001 From: Ryan Sullivan Date: Wed, 21 May 2014 15:54:16 -0400 Subject: [PATCH 3/3] Added suggestions to settings fix. --- auto/gui.files.go | 4 ++-- gui/app.js | 12 +++++++++--- gui/index.html | 8 ++++---- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/auto/gui.files.go b/auto/gui.files.go index c2f04e44..8ec36dc7 100644 --- a/auto/gui.files.go +++ b/auto/gui.files.go @@ -18,7 +18,7 @@ func init() { bs, _ = ioutil.ReadAll(gr) Assets["angular.min.js"] = bs - bs, _ = hex.DecodeString("1f8b080000096e8800ffd41c5973db36fa3dbf0251d3924a64cae9ee7476ec389dd649bbde5c9e38c98beb074a8424c614a800606c8dabffbe1f0e92000152b49cb4a966da4838be1bdf81c3e3871f5996128e2634bf62981e204e0b3c42d39cf09414b8fcbdca0a26fe53bfd1c3f1bdf1c379964fe20c3d3840b33863302826f3228ba9fe2d06dd0b0af8c2384da73c38bc77ef734c115b93295fa4648e8eca19d1324f8a0c8741d5178cd0f9c5f0504e2868368901cc110a2866124e352e1284d23ccb300d83b3b2f598d30c20cc0af89de604850fd8345f01850f169caf86e8e61e828f80bda2f8f3b3980be0fb8755eb1cf3372fa049f05ab70ae431e58a72c962dd9767c99b95c0c5a0ef6603248a1e8556d048f0d4ecb53b67e9dc6d5fae4f9e099603ab95e4091640ce2f3c404e88908045b7eec794e6d4338f614c9e8b3e1713a804672e5914af728bc7f1189d817ec99ca1099ee514a3499e670c65797e092d9c636a63e45c0e065a64fb4d9a1ca0e065ca38260008d4061c4ec188a43ad129cd793ecd33a446a05f9204f4c03083817cbd02030d38bee6f04bab4759e86664007f155f9f6192bc98ac9801fe4dc1e7b950e65ba1ff97e932e5287c91fe3a66c31a362996134c3ba1bf0578313921c0e8e7383b3330a81e5476a1f0d690b5e5f881ebcedde19fc634869593bdc59f0a18640a07448640403093245246f590fef001c8f10296386e485e00ff2dcd3052bd4a01fd456f60f85dbaa05f08794ee24986130389ea42d097831bc0355c619e9d64bfcca72d3065cf2e20cf44fbafcac59a162e9a51dd6e82b3e6bf3f25a72e39aa05894effe40bdb0fcd8bf4ccbffcf4aa32c5f7fee42e4beebdcda880f64bc11718a2ca34963ef9bdc5f25680a7316357394dba811aa334e055ddd249edbb97e6e28206f4df77ef4ecf10783404887ae9ba14771577208e9c15d329c6094ec232ec884f3a43e17d1965cc564355294979383cb4bbc2e03b82397073297d7630144e3acec260912638688c766398f86c2c12ea88764b32ea89dd44b485cc9a948d2bb2df62f00daebcda89a5981794b431e917739b2c6f26f1f432a1f90a540df8c0b240d997783dc9639ae8cc66d322ea2e06abf039033e166270959c98b4c9042502806199f53c42c198ad61212e814626ac89b1b09e9cc43c6e32679bdda14fb10a229021e61b240f55aa10faa9d3c04b0599f3eaef6f261f212a452033169a49c33082b5f43c9e2e0ce069e228c62b00998cfc2cc01c05d080c9141adebf3d39ce97ab9c80031090fa8ac71083847b9e26178e249a5c99dffd341a595e6f4d89d491e457805d24a190dd5d85c391358227d0198a317b55b23a4463f4787f7fdf1e9926dafd941f23b785f95e33480944e63af76df4e605afbaad7ee11441e22825a84dc0d2c389ce6811b3375704f2b815a67c2d15e5192f3e65d171e8f46e9c164ed72d500452a1d28ab957315f44cbf83adc1fa1ffa0874a1372c409f975cd317b977308eb7b9e74dd192544cf93a14ba185b9125c3b6a48aefae0b686b522df20887fd3050a719b681da1ecf765c133d0d586654e8f8e1ae85c08b68199135453631dfa8cd32eaa9a6e6cdb62550551ef75da2ca3fce81a659f705790e1f18259ee5e3437639bc82df299ed95c438f04b4750991524c1b39440f2e70f7d90b0904b58e32430a38f85c1050dba81a20156f17d81a215f219cf572bc0ec852ceb79ae7c4c203cb3078decaf6797c3e5bfe7fb1711cfdf03027a0caa8160f34875805e268cd3f0f1f0d0e6434f3f4203511e423230407ffe89ead69324c383262faa1bcc6c80c2414da5d84538c5740af1239e63ad984768f0fd70e0e5568bc460a819dc57f9710609e7d7d7774a66f957507622ea31fac5746d292c484135ad98f53a0cdab2b81a0c537a6f85b4a2e932a66b2f248ff86c15da26f1d5f50851bc8d618f74d5869b8c0712fe7e3fa8960657530e5cc10888465e3311cb4aa118fb0618341c36c52aa3dd2ccb217f04347ea72836b03c4e51341fcfaccc5e502b9c3c8cf304473d217a0dff9e3cbbb06d4e0c6ccaa66c8f44ce98618956081144e10b9aa5a59c10242412342212c26287b37d9a764e28140ba5891602d0f7c326c40e87133c4b99e6bd72c41eb19e4c054bff04a1e697b795a7ae9b6e23b425a492ac5d5aaea3fe66c5e5fac65e32731de15699997ed11599d808fa8b25a6099342d3fb505d7efde70e7d1b22ffdb58683881ce18d5ceca07bc550d82189b526968c6d9420b997ac4674c19c0f6d1f735c593a510783fb4e3dea26788b58940ec48c7665770b01405933c4a314f560042c6b1b9fd21e82dd1925a9448413db44a0dc1a2861b6598ccf902d22df4b885e32a39e86054438334b9d5185ec74b975f8f35e85445f7f6cc4f0683b6f4a4d233a06f996c0ee9e0d1b69832f18782f9277f06c117297bed63bca962a22ca1312d6c28cc904b5fa18485aab6e4a461a788b6c9a78f707a4b0627293736f8fd92b14e2acbf35798be0eadb3c4480f322be930f8ae3cbeebbb5f2a77c787de4c3bfe8cb7123b1e43527989112b28fc2f5f6275703c95e7468921edf07ec50bfe54c4190b6b3e47c8cfd9d05be3378e521b7bbacec0125aa40e4b748cb27ca33bea8cd388adb29487c14848325e191ee7daf038d71187200e268b9a7bce6a5b639533671312d0810afe77f6e675c4e4c16c3a6be8763842370b1c27e0670fd04d709c13a089efbd839510801ae31590a60e54c61f594e828db5115a7deb368c81380f18b4ed8cc8adfc56b55bc706f60146cbe9c36db7ed5bc4a7219bc718db4ed81bacb145c113e11b76e1cd4f5409d2bb5be53bd83026ec269dcdeefc0b1fe40dc18d9054822d2805dbd3331e44f81a4c31096f36a3322eb8a4081420bee7d7b096bc62b4869de16ca6b6d01bd990950cb9fcd68445d50128ac5b745405acaa39fa98a7049632f2d88d18fc1c28c969f400d6c82995445b5148a8ac14db4e7ed5d640eaa64096e0015b9a7c324e0fd922bf0afcb0e2640b309f166f4c7901f9c99ac44ba07fd343930d77eb55a57fcc5f2fe804432a8fb70adbc1e89c94cab312bf48b61f75fae4d02fadf5e624e5fab85f2f107329a8de1e9e428e6cd261ece5ca232491a5a96324eba0d0bff92efbe419410374a3a307b37760b8c9b4ab80ee04e26f89dbcd1805a957a7d996d93378b9114a728247283dbc2da3bd4cbf2a473cb2774655bebb5933800564f1148763340682034057b5ec952d3a91726056cecae7d9774cd42a244276ae68d4f1a93c5b43297a622f55553842c7a347beed2373ec797a6116f7b6503a4ebdcbc935c787ce504db91d59cbcf84e2f8b2c7b6923a0406482d4b5a71bc2ad82274a37d8b6b8b584e7958eee8c414efea81be859598f305a6259d6df9a2b92fd3eace7b7b7391eeb8febba5c6eef41029e4684d8fbe835593868ac0300f1db3273d77b14ce6db0dd4c3719c65dd7a287da26151b5f69a8e451bb5b3f5600c330a7ce6cfa4c561b3a8177b9a863a9c766da36dfb0147efd225464f9dbbc05bad639ae1983e2fcfc23b3343f382b145e7b94db5de2edb438f2f24595b03a69c379694b4e4ae339a422991ad5db5c2a23649ad5391db1bafdc0c35e397df84992c1ce0ff55609a568e7ad4dccd137d436fc55d1d40d396b27a95f73198729c7d3dcbb7492302f85be8bd5d35a767d4d51c834c599c5d495580c3dc749577069032a173ee8d39199d67ae85f4bc742017ee95c89d2b4c21b79e2587a0e80b941c508f39ead8aa078ff877aec4fe7a9645b2dac9b37a9ab1cabf44b26ad1ec24ab1a8b93ac8a59cea82afd38bf70fb6cdb34e2996b9e957752270ea258f242f1258b7e74a45c08470a973f861a4ca86076a316d08126a4b921d98cafe2a32a643fbdae8a541d570e56b2d0bfda523c217926ac3195a26e736cdf54cea784d2bd8c7b99e397d936d03ab274e0f1a6d659de1d95f04fa993c5ed7743473d2e6aeb63d3dbde2bd4d3bc170bb760bce5d5f0ea9a93f7fab731423f3f933778dd92610b515a4bb724aa7a09d74a54db61ca96e3165dce5bdbb4ade5a803eb759da1fbc6fbead1d6ed2bbd3c5ec5abb07d0db5029057609ad7ee7ba9622ceeb5eda68f6a814a5330dbb6d609e6eb114816ca776aa1cdd048de65df8771929d8a3443a4613c4293924ae3d03696c7a7ea4e637d6c8b7ef801e90113ef80e6d1b806f3440f1ffaaaa5bdc74ee9a6a73dd5d3cafcd980aa22b684ebecc934e0aa79356435f5693515a463c84686c516d9c4d1b394429ccde95aa2ae7ef5c75e03786a02706910869c99ef6997c68bd1cc93b85b85d7f29c96615e93a18da5bcfde0229481656962cc8c14abb1a9bc3491652a8b598a8de2a1c174a616b021519b88cc2622c1d37429ce97c190a188292c5a92749e72269e914dcbfc466844bccd74ee6b6af0fb56d9a500940f07d4554af935cbe7ea4b3c91a887e22d40d5f378bfac1705e6c6bb03a011ea6a05d9664d91b9319f53ebdd8380c43022b61f5197d4ebd9c62b1eb22af808c90bc61e166577c4f3dfd26b9c849500ad59b503914ec0256892127197ad3f3dcd452e1ba51a2a47d07683781fb55e4356509e82cbfaf1dfe8a1f98f937fcb91e323cfd0431fd66e29fd381437d303f47b7a1bd2fad07407625ef523a6938a3ba07fe1476f5e46a63928bbb4073127d866674b2cfe58c1376467f2a6b6f14f87349b43ef6267b7a1ac0f497731b35eb474127107ec975fc1c8d80242ce8e366611efbd12d68234ceaee2357b5dbeaafffaf6ed7dda6092bf8de2e9a2209727cfbe30b13e52cd7b8ef295444c6518565296b730c37174f378f4d3663c6f96e072f056b0ba490ed695c85eb573dd6928a760647fbb0cd429e8f8fc8ff11f7f5c8cbd22100fb1147b7a37ffc911fa578b6d18faf7dac7208aa2b178aaa5003228d8716802dffb71a8a438180fdaa498c8c435fd8cc3209705a1dab9ec92a5b9ced49fad3940c17130329ae5febdfebb385533a73161d3ac489c1e59eb1c341fa4a9db7200fb487f35506c0cb07809e8b8f8bb034f941e45617334107f2e6180c87c4f3ecd391ad865efb9861941aa3b78fa642c673ed518dce56688a920e9a742ee4d1942ea92d1a702268b3fd6317f252831b8c852727950c3906218219c2d4728e69c42963ce5346b9a87688b1e80a219a62c2a085ba4335ed50fe1e7145f7d8833ff9ea57c26d66737acfc8cc7e80a23586345969080ab5414a4ed1dac2803c97e10a352be6e484beea41e3a53f52b8d9a36b5c3563172d1411c5fa8bd538405230cc519c571b2de893cb9bdd64edf761a528614c02f2a1da745db58259fc626b3732ca6cdf9ff000000ffff010000ffffb0b69304c84a0000") + bs, _ = hex.DecodeString("1f8b080000096e8800ffd41c6b73db36f27b7e05a2a62595c894d3bbe9dc58713aad93f67c7979e2245f5c7fa04448624c910a08c6d6b8faefb70b80244080146d276daa993616b058ec0bfbc043e3871ff3244e3999b2ec32a7ec807056d0119965298fd38296dfd74991e37ff23b7938be377eb848b26998900707641e26390085e9a24842a6be23d03daf803f72cee219f726f7ee7d0e19c937e98c2fe374410ecb11c12a8b8a84fa5ed5e78dc8d9f9702206142c998680e690788ce6024f051720a12c4b12ca7cefb46c3de22c010cf302bec7594afc07f92c5b03850f969caf87e4fa1e810fe25e33faf959c811f9fea46a5d50fee6053421af752b4e1e322e29172c0225d829b12329291513e60070bd9d343ae7f1c26e5f6d8e9f21679ed19a6611452467e70e24c729326a90a7fa296319738ccb294d9f639f3d13489e2636598caeb3920bd13e1e93535063bac8c994ce3346c934cb929c245976012d9c5366cec8b900065a44fb751c1d10ef659c739a0222d00e7038035b115a23272ce3d92c4b888420bf4411883ba73900f2cd1aecd0e3f48ac337a5056988db9186fc5578754ad3e8c5749d6be8df147c91a1cedea29a5fc6ab9813ff45fceb381fd6b8d36235a5ac13fb5bc017a6c72930fa394c4eb519640f29bb887f63ccca72dcc855e7edf19f842c840592bca59f0a00d2850322232020189946424635487ffc80e468092b9936248fc87f8b134a64af54407fd16b33fc2e3ccd2f69fa3c0da7098db449641781be0c563badf1a2797692fd329bb5e0143db741798aedbf4a4faa5b383693ba5d47678c7f7f929ed8e4c816829deec1e7a61f5a14f1a97bf9a955a58beffdf15d96dc7b9351c4f64bc1971482c72c14aef7bdc1f24e8427619e5f662cea46aa4129c4ebbaa593da772ff5c5050de4bfefde9d9c12f0680426eaa5eb52dc55788170715acc66944634f2cbe8829f784efcfb2298e8ad9aaae234e6fe706276f9de7729e5c0cd85f0d9de109d7498f8de328ea8d780b643157eb6060975e0ba2119f5c06e225c91d124656b8becb7107c832daf766219e5054bdb98748bb94d96d7d3707611b16c0daa86f9c0b240d9177433cd4216a90466db22ea2e06abf039073e96085ce5203a6d220f0900a15f26378f8837ce37b0105740638ed694e77e3d380a79d864ce34bb894bb112239081e33592873255f0ddd429e4a582f471f5df6fa61f212a0520b3dcd7938661006be979385b6ac8e3c8528c53002219f919d11c7ad040d31934bc7f7b7c94add6590a0e0031f5158f260681f72c8ece2d4934b9d2ff76d3a86579bd3585d9639a5dc2ec986b427677e90f4706048fa0d34798bd2a271d923179bcbfbf6f42c691723fe5474b6161bcd30ce21422739de2367ab38257dd463f3a4590388953d22660e1e1b0335886f99bcb14f2b835657c2314e580c74f595b4cacdeadd5c2d9a6050b4e8a2aad987b15f265b00aaffcfd11f90f79283521208ed35f379ce6ef320e617dcf91ae5b50287a1e0d6d0a8d992bc1b54f0dc9559fb90db0d6c9b704e2df6c497cda265a4b28fb7d597000dada30cce9d161633a1b836960fa00d9d458872ee3348baaa61bdbb5586541d47b9d36cb28f774dbc9bd66a904191e2f72c3dd637333b6616e91cd4daf8470e0970ea1322bd288cee314923f77e8838425bd80359e7a7af43166b051836ea06880557c1fa768c57ccab3f51a66766216653b973ec643cfec9846f4d7a34b70f1efd9fe79c0b3f730013b02d540b079243b402fd39c33fff17062f2a1861f92019687900c0cc89f7f92baf5384ae8a0c98bec06331b107f5053899b052794cd207e840baa14f3880cbe1f0e9cdc2a91680c3583fb3a3b4a20e1fcfafa8ed379f615941d613dc6be98ae0d857931a8a67566b50ebdb62cae46934bbdb7625ab37815b28d1393437ca60a4d93f8ea7a8428dec6b043ba725f4dc403817fbf1f564383eb1907ae0002a291d34c7059c929c62e008d864953ac22dacd930cf24798c6ed147103cbe114b1f9686e64f6482d3a79807304473520780dff1e3f3b376d0e019bb229db03cc19132aa6452182285c41b3b494e394a044bc464422143732db8729e7447c5c28cd6921007d3f6c62ec7038deb33857bc578ed821d6e319b2f44f106a76715379aabae926425b412a99b74bcb76d4dfacb86cdfd84b66b623dc2933dd2fda22c38da0bf58628a302134b50fd5e5d77feed0b726f2bf8d858613e88c51edac7ca03bd580c498940a43d3ce165ac854109f29cb01b78bbeaf299e2486c0fba17dee1d7a86581be1c496744c76918315164ce228453f59010c09a7faf607d25b4e9bd6a22412ebc42835904585374868bae04b48b7c8e3168eabe4a08351850dd2e45663781dae6c7e1dd6a05215d5db333f190cdad2934acf307dcb601da48347d362cac41f0ae69fdc19045fc6f96b17e34d15a7d2121ac3fc86c234b9f4158a5fc86a4b0c1a768a68977cfa08a7b7646814736d83df2d99f118f2b40b4a42829b9f98a3c0d84dd56d1c28060ae4cdbaacb3cb73591ce39bb00a482fbd5db870d7be130f00e8387cefbbf2ccb0ef26add8921f3ad3fbf033ed2da1bc60f0bf6c45e5a1f44c1c5645a61f946d80ea7ec512fd548449ee16cea853be432865ad682e3f3bd083cc5a509bd28ce7be2279e8dce030a9edd6538376e70e624d5e2f5c92d87644d5017763a7bd9583401e61a9ccc1885836d4296741be4e62ee7b2334b570adc5812b2d0e5c051c522b7024a4791220379bd6596e6d0dc37460a3ff3b7df33ac8c571793c6f08613822d74b1a4610fd0ec8b57794a54013df7b07fec9033b0fd7409a3ce61a7fccb3d4db1adbd3d55fdd2b6780a73483b6fd2a71c0d2ba2e8cc31cf358a9e54ce8a687292de25398bd36d7e2b8f7d0602d5f163c428f7d1bdedc4495289d7b88aee3266dc0eda4b3bd3dff18199c8951235128d1168c81eda9110f027a05a618f9d7db5119ad6d52700a10dff32b584b4e311a60a73499cb838d468e6aa4a836bf356141752c0deb961c566944d51c7ccce214963271d80d023f074a32163c803572c204d1466e802a2bc576abc0636a20b6135343f0305b1c7dd2ce74f36576e9b97185d10e642e2d5eebf202f2a34d1aae80fe6d0f4d36dcad53956e98bf5ed01185028bee14b635a3757e2d4eb0dc22d97d00ed9243bf62c3992996ebe37ebd40f4a5207b7b780a01d9a4438bb8e2600f131b79b8671cdfba8f44449f38b969a06e74f460f60e0c3799b615d09d40fc2d71bb19a32037ed34dbb2a6012f37225196d21189273765b497e95745a243f61654e5bb9b951c584012cea83f266320d883e9aa96bdb245255216ceca59b93cfb2d13b56a12949d2d1a79a82d4e3c494c9e984b5596f3d0f1e8916b534f873d8bcff52d1753281d7711cac135c7130b54516e46d6f2336534bce8b1d9278fe60153cb92961caf8b7ce9dbd1bec5b50579c6b85feeb3858cded6037d0b2b31e34bca4a3adbf2457db7acd59df7f6e698eed8febb65e7a3d343c490a3353dfa2dac3a6da8080c7362997dda736f5167bedd401d1c8749d2ad87d2276a16556bafe95894515b1b421a98b6ed92bb3369bc0280f5624fd39057066cdb68db14a2c1bb7845c953eb86f64eeb98253464cfcb1b0a9d99a17eeddba0f3cca45a6d62ee91c7e782ac9d01538c1b0b4a5a72d7398ba1944836b65a6151eba4d6a9c8cd8d576ccde8f1cb6dc2b9281ce0ff55609a558e7ad4dc63c5bea1b3e2aeae05b096b27a9df5319812cebc34e7dac5c200fe167a6f56cda91175359743a68c278a4215e030b75de59d86a44ce8acdb7c5646e7186b4c7a563a9073fba2eaad2b4c945bcf920329fa022507d463963a76eac121fe5b57627f3dcb98ac76f22cdfc5acb32f91ac1a345bc9aa9ac54a5671940555a51f67e7769f699b5a3cb3cdb3f24ef21c088b25271657b2e89e2e2d17c2a19ccb1d4335266430bb960be84011d2dc906cc657fcc80ad94dafad2259c795c05216ea5b5b8a8792cfd11a6321ea36c7f64de57c5228ddcbb897397e996d03a52343070e6f6a9cb0de5109ff943a19df24683aea717d5e1d66dff4b6a71ae6bceeb963c61b5ed82f9daafb52be06a11e058a7bd576c9b08328a5a51b1255bd4f6c25aaed3065c7718b2ae78d6ddad672d4c2f5baced05df0ae7ab475fb4a2d8f57e1da6f5f43ad08c4c5a4e663885eaa18e36dc3dbe9a35aa0c214f4b69d7582fea6079285f2f5a06f3234122f0cf6014eb05391a689d40f47645a52a91da587e2505bde34ad0fd3c90f3f1005307502342f2c28344f14f8d0552ded3db64a3735eca91a56e6cf1a5619b1055e6b4fa681578eab31cba14faba1201d4d36222cb6c8260c9ec50ce26cc63662eaea5bffd96b044f7504360d68c889fe9879a5bde34d1c89bb5178adce5819e61519ca58ca3b29f68422b0acf419132dc56a6c2aaff4c91299c5ac70a378a8319dc805ac49d42422318988e82c5ee1b1381832143185414b142f629ee3e3be5999dfa046f0c5ac758b56a1df37ca2e89a07cce212fb88a3f936c21ff08a762ea21bed0a87a1eef97f522cedc780d0234425d2d319bac4932b7fa5b76b57be0a5214084e60bf6927a355a7b5b95ae0b3e22e2dab78345d11df0ecb7f88a467e25406354ed408413b0099ac629de30ec4f4f73918b46a186ca11b4ddebde27ad97c32596a7e0b27efc3779a8ff63e5df02727ce8009db866ed96d28f437c2fe091dfe39b90d687a63b10f3aa1f319d54dc61fa17eee9f52be22c036597f68063bc5d76b6a2f84b11df909d89fbf3da3f1dd26c82dec5ce6e42591f92ee6266bd68e924e20eb35f7c0523cb9710726e696306f1ce8b7a2d9386c965b8c95f97bf75f0f5eddbf9e044277f17c5b365915e1c3ffbc2c4ba48d56f9f8ab72b211361584a59dc8df5c7c1f5e3d14fdbf1a259820be09d685593005695c85eb573dd69282760647fbb0ce429e8f8ec8ff11f7f9c8f9d22c0e771923db59bffe490fcabc53634fd3bed631004c1181fd049843914ecd4d791effd3894521c8c076d528c44e21a7fa6be97898250ee5c76c9525f67f237830e8877e48db466b17faf7e94a86ae62c4cf3595244568fa8750e9acf04e56d39c07da8fed4a6d86a68e90aa6e3f86b104fa41eb1b0391ce08f580c48bad8130fa60e0766d97ba6700690ea0e9e3e198b914fd50cf672d3c454a4f1a742ec4d6942ea92d1a70206e34fa82c5e21251a17499c5e1cd4388418468426ab110939679025cf384b9ae6816dc10350744e591e1469be8ce7bcaa1ffccf31bdfc1026ee3d4bf178afcf6e58f9198fc92525b0c68a244a3d2e535190b61358520692fd805031df34a425765227d650f576a6a64deeb0558c9c7710c79772ef945064242761c268186d6e459ed85e6ba76f370d714e24c22f2a1dab45d958259fc626b3752ca6ccf9ff000000ffff010000ffff50674cb0454c0000") 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("1f8b080000096e8800ffec5de973dc36b2ffeebf02e6eef3514fe4c847f66dc9a3a9722467e3daf8282b7e795ba97cc09098212292a00150f23c59fbb76f37c0fb98e18c478ab29b0fb186381ae84677e3d7608399de3f7d77f2e33fdebf22a18ea3d9bd29fe21114d96c70e4b1c922c5d9aa6c78e5a25be0e79b23445be48b41451c4e4b17356d49c681939c48fa852c70e368a043d779024a3c1ec1e21d398694afc904ac5f4b193e985fb57a7aa08b54e5df629e317c7ceffb91f5fba27224ea9e6f3880159189125d0ebf5ab63162c59ad5f426376ec5c7076990aa96b4d2f79a0c3e3805d709fb9e6e180f0846b4e2357f93462c74fbcc30ea180295ff2547391d468759ad14c8742765a443c392792452031a8d67ea609f7915228d9e2d859d00b7cf45210e4ec1e76d05c476c560a917c215757f04bbd15017b0b233d7a7c7d3d9dd856e50096d85c08adb4a4e9c4576a523e79314f3c2871f279e855c454c898b63334cf44af526042b3cf1a3b9b1a42e62258912bf393909406014cc89d0bad457c44fee730fdfc22af5b00d3ee82c63c5a1d11e77b165d30cd7d4adeb28c3907a42c38202f2548fb80289a285731c91796c4f53df3278bfe3bfca61c31a672c913578bf4883cf1be6171a3ad87937563910895529f95bd1a7379c392481c903722a13efc3d118912a09007c4391199e44cc2142f61862599d61014940db53b608962c14c1bd5d57286aad3ad45790dd72e6041866b4bcac15acabdb525e5a094c25cc880492bbb44242dbe22b1142d311f91c317cd95ae951832ee37d582a74271b48823d429b0c98bf6005c693711ee3c03a7a0cba14cb151381715ce4eadd511188bb23829fb045ca51185b5e409e83a73e791f0cf8b79806a5b4b067d2cf4a3541cc997a106d5a92ae6d43f5f4a9125018e22244c7f397ff4f4d95f0ec8d3e787f8cf93c72f9a129434e0993a22cf6acc17f279927e26cfabf242904fa1f869517cdde60bd42cf1020a8ea3a5e7115bc06c0f2b456fb0f7e4b02a369a4f23be44f923932f36cbaa1070e188bbf2c5b520f7798c5e9326bac712880e9b6676c9ac889f1f1ef6360f3adec332f9147c47cf50e08d26463b609398d85de2ded4a8be718df75d97fc28525845495cd79625f4a2dc62e805d6d83fa8f9c5cf802d6816c14e005b1433edf8921a7f6edddc34e0251174df144427f33a7490b060cd31dcb9a449e0cca63c5e163568520e51d2470febe293fbe4e95f8d632776e3719e3d05b76f24667f4f66a4f4f35315d3282a88853c00db763f83236e8e6f7d5ea6198cfe05840555b3de0dc2909be52d0a4eb2a8c647219dda4fa34b15e3112f9a0752a481b84cca3a534ff37de74f4ebb1d487fb9c46d1af53c7fa853791570fd2099abf4c5745e4a9e4adc92a69339fc471b0355f32e07885992356663e63b2be7646149c4fd73d89a83e0034bc5a3c740bd2ecc65b44a43dc7e49f9cb0d035c572bb6072c8619be0c0282ddc1e109b9c2a94d2730d2e8a1715d460d0dec5f322b82d6f0486270e05234fc8207a8b75b4c8fc13a9c31ad4101d5a839fa62d99a5fd17d4bc1f0f172f9247d68da1e361497e4f5a91db5aee47b918b0a338d6a366a7e62b1e84cce76df522692294da51ea92c0b681eb606fe6029f48d3b9d6451f5dcacadeaa6131097818513f009d6c50e7847db1e7df2775c2a0dcef5f28088245a1140ba9709e10b92309f2945e5ea05c967462ea94c10d6e6fe3b270f32e0208cfb407fc197af13748ba55301c2954f6a4c2672e300bc6ccd0fd4eb412c2c22e65f371fb6e9bfda6d5ddc724cab69f8ac5963f0b6332bb878cb58c002d8a39ecd4a890d93c51dacedabd2d98f212396df4c9add8884549139630011e8050bc81c62854468427dc057145cbe576d1724ce50e4f974b4281bc116cd40ee974dd2de7492369561e3a41153d676c1bc19cc49c34c6db4601fca759aeb84c07fae8acd9f7cd7252940c07c67b9195db7d3684db4ae2711a372c13f3b3d6bd52c683cd61ef29f1d8d67cb2c02c4010adad2e786e616f4b063b591182c4c1e214c414cf4b8a2d0abe57fe93501bb5488685387f000c59ad3e74c8d308bab2bec7082158ff097f7fa14d08359277864545b8a002709fefd01a68c2b36ce88eaad06eca989261a6001f88e68aa0a0c91023ac0a8fa4f0d0e0b0082853933c00270d0a0bccd9e4f722aa75c32dfacd3176222f7f75487d7d743646b4a3eb314ce34d5595daadd6daa0d73d09d6c34d262951bec36855b888e9432dcd23fd59bd86013ec2f85d819e2bcb647b048bfde98b4e2d3fc5969c953c4adadfe16df13d22c95ed222c0c37fb0a4ddb00a56672881780480fe5a001b01b0b69240cfd82ce2427dd59ee3ef1858830dc14294b5a0c7c676a769979a9c4b7c1802f6200e56df88a3b562845c2ffdf6c443b70d1634837cdca3212f336e0fc1b94d1a811096cc54a0c1836fa39e7e2176f69c87dc723a6c0c3d0e892aed4db2c9e33797d4d16587c40063a7dbbd2a6d39c271497f6db9b174828e2b63c7e10fe1ec51121b52da561fafc06c2f02391052ee2fb48d076b4f80e409b5818a0f675124900626e2910ecf21bc803cf985a5278431580c75db5a3dbce4c210f120cbb1f0064bc8358c399fd83a9be00b0d3ed7eabdf5b31d8edc625a64240332e8d3ace12cb03f213d7e19e0456a0b8a480701e86ddaaa7cbd555521c202d7862a3f3c4b406a78b5eb721cc3fc32460e003322cc4af112e947461011422906817b641d2102c0380d91fa8a492c7602bcec0f988393a42d18d095560f7f679d45a563cedea3fa8d83520698624796c816b558b2a0cdb7b0a2b9296d20cc513e5496b5df5a0efc962890af873714ef9e8f12f3b4411a3e288f1918465aa0821f0c9b54600b3cd151f2389ed36c7ba1de5b40c64a16db51d8bf587e6b501f283b8ef30ea1fc2fd034e752cf6ef1c11bc7c433e6a1ead059f6bb664b5826d2cf6e0cfa61db57f87f84a76a83a572d8e4ede7fdc07477e9abd67d2073b68a10b784c006e4b1a1d3db9befeafdb62752da43acd8bc907aad9d61cf3649ee2f2c50c34d1bfbe86a7dbe52a4b7b78fa98eece91c87487a5de7d750d4fc5469eeb03d07f9924224b7cf6eeefe4fe31c9c08a0106f418ee68eef1d56f28643b9a2dc621674c5e0c85b5e3914e6bc337ef554d0795f978f8ecace3d499bd33ef4987c0ca20f180264b264bdaf707882f161ba8df9a27691f8afc2f936a17ff7161fbf507e1033079772c770368cee2da7c63fecd00dd888359334773305bc188215c2574c8a401f63b9dcefe36b86a789dc7bc1c6df4eec55ce3f4c876cdcf98ea80ade79de2ad83b8ff380487c96cddf7dfc084dada53a1acb16f63516f69dfdffd247403433d7afabb0768403e613e8a44fddc34905fbc7f3ff0b68edb7d00bb3b8011902de8bb9396fe0116369cfedcab7edb539f49f3ed3316bd925248d59f62c1b0cebec7f522962c754866e4f02ee65abc159afbecab722cea70091847a854e31f17d464c95d5d41a9f7238f19d81e601976e47c7f14c747103d5c5f1f15b97480321692b3248856166a6127236aa3e1379f5f516934e94fb5a8abaf497ab08a302e89a9bdefbefbfbed66563474bacc332af33cb1f85b93793e2efdb3c83ec91f61922cc853d7492dbbf25e57d13bf99f4359937553b0295dcd2451036672cf8277198e26c0a2f2452615f3cafb135ec2f4c4999d652926c39209f94ec82cee66708d1a42c1184baec36cee010899f8348ac34939d4443258308527b93f80962b4d3ed8821d475bc3900ff49742ae2681f033044379beed69fdf16698e44a65c8e2b7595f52e21e4680c502967d464e7ad232d7a7d299637a8864843cb79e88c422a051a9ce65bc60db18fb2deddf365dd080f5e8ada974034e23b1ecf5e0b6417e3b65c08bdb36e899c1f268c4401fcdbfc57947c3c0c3e7cd6ebd21e326b7c33e43656cb4c1557c99f4c777272568b27b5bc3cf84cf07dc4c1f6fdd90296d0e5565d829067e1053ebe68c20f03d20b05c186833c215a124950240494c2e4151c80a3482bc06d94a583a52813caf41fc03e0ba15d07e10b228e2e98b061fe9686fd9709b36abcca4c299bcc05e7d926583bba04d3c59881bd0a5769a604bf485046e457940432a997be4bd71b3241451b0efb52f728d0756bec864be0beb5e1cc9ee7fe9eb29d8cd1529a483770723a6d9adac7e95c80bc31be7e1ed6bb95f9f0e2c340f3eedb05558626eb49fd5be81956d25ff373a9b17deaf01ca69bee0becda17e100754852fea4782d54be7e6a9e0d7ad7fbdc1259834c17f1090b7ae259a477cd3d612cfd555bc82c5fc42fc304bcef13470702a78cb280fdfb04fb9ca96aabde445a0910b88259e271442507b11e9939c748771265b30dd13a58cca012f231273340c2831e625d15119dfb1b868679c9d4402a16a2728d9d6848cda60783f08bf8ad8ffced91368015eae3876eee314c1d5bcfa0ca16c675b2f4cadba3b54d7f416a95194f010a387d40e4e7321649c5fc4c39f4e7e7d1aadf5955993b687a8d1c40e455a8a09754de9d543f0b7ae81d30ff1166341c84bccb99af7679e5cd08807e4c183beda804bbd6abf8fc04081ce19acb9907672607733eb704e01ef635da7074f52bcb291bf13ecc8b562146db8782d50b367c35e7e95bee5469cda056dc3bb49fd031790497ceb8213cb8f11f196f7a78c4b1680f5981975e6593f0e1a58fc351ecd9c627686ad7b989ea339731a93d30600945aa7b529d5af67b5ec4a7ef9d2b792a9345cc00cf16e4d62170b11bcf193c440771fa803a05fe01d603c0fc2eb328ed1ee19c9ef9481d3b2b62c6cb579bb66c879e40c2500e81f3ae33e833f81a8305f07000ff108421801a27fec0d333660c0b39f42000cf6962c4417788507873c20e78ca538d398c3a03aa49a4c593cc34dcd34984ee0c95e0702bea03f0b9a13571ce4a085f0b64ed5dbb014c6e2bc42dbd6595773416009f05a13cc761ed1e47c605ead13b5fe03df7edfb0d69429266b212e586fc569040b1d9accfb63e77b1117f90ab9e122953eb31d65a7d4e68bf51b67af999cd91b7589d2b02f607e71ee890a0df6a3cc24dc2af37ea87ddb6b5fb2a3f6551c1eaebc2c7e6e21c5600562e3be110b20023cd20ffa3c18393e2616e7a0a8ab4177957739d7332db794fb2be338f07d1e258aa554e235bcbe1bd99573e4e9111ee415e980e5f4f1f4606dc75c3c4547705b299366b7a499167846e21373dc065ab8421dc085cfc98f58f1e90469dd02f42bdfa9d4aed3d20b965ff76d2e7ecd6114bbf42e67d56740bfefb4face41d57246fddb2ffad062633863d1c2d93073732a672f58e21dc2bac8c10a20da1d7dc71a3697ac9d6b786a4874b9d8fe742a159bf136b6fa77c0dbf53b0f7b41dd4304f787bd31b97d2fd8bb22e4e1cf16f6eea91d81bd6d53bc7addb8c6b71681975ce126d2dc83f2f70faae5883acb515cb31c80e71bf69d0ff64a4e85c54996f04f19e6e3a462bb2da8dda87d15a625d1121ff7d455f8f80c6fb4028ff6e8047cc8c29e6d93f276edca236f724c89e50a448ab0d27ea3c4820d93e73584de364cd362472b1463f90621cafa1a9798d6b6faaa81ea2075480dfba670e35075ac29e1ede375c664eb479a13366e1814168c3529d3b96954ff9c9c566655188e6db7a3e99417574744b35f6b3556744376636b2bcbc167c4664d6329222e732511f1224c94498ffcc4c15e407b7cc90c72e40bc2f1409829f3650786eec623a8779a832ccdb7f0a88fc635c563cfd93fa713f3b7085b334ccba3f8f6a9fc9a1c5aae6d5c66f71b5a18869be21d0cc732bdd1746a4ad7319e14e574fb915efd4d7ec8fcf3b9f8dc77c8d0abea3575b71a5a5218d0d2ea3261fdbb0ef6ee634f94dd6f5fe3cf4aec6d503c6f482540731f156a21458c5a0340509118300c6a627560a10ecc5744da0d8a03047b7660e2f2cb5c5315de0929f55be922d0c89dfe4d8596f9053393583324a9beb56d2744afcd86deebe22b40c7b804662093ca57e4f1399d4b60ed6ce4fde8c3999981fde00b4e0297cddc2c25e670a8668cf88a7a8710b13a2a1c3ab36ad0eb1e605553e83bc6c28937501dbe35351e0ef58fd7dc0937cc2d99d1ebb9c9044f72f881ce73658cc2c737aca0bef861c20b668ee80c8280c8d90fc1d5825f8d56656f043296c2bd4189dc76889c7fa4ac894c6b3ef78f101991f95786c4a3bf0477932171f1d1b4a197f679f59d8b87fb8254527d016ecfe1e9f0ae524f53edabefdc6eee6fd602e2c546928b1fbd55b912bdfb45ed454aded043edc403cc87086f1f22a0ecd424e6a6e5c35e92cd5d11105dde99077865a67a361f25468837b89995db192a548bd03a585e35c5e7fcce51b1ff996f8a79ef529bbf5ed1fc65f05cb547150696acbedff64a742e44b45e6afd75f8aebd25b775b259b3fdefc6fee05ebf4636fd30a0b7f026d47e99f1b39bd3fcdeba14a6762964f03bb68bbf7d7cfd9f6a13dbb07e93f670e75e7b6cf575d5df2d6a1b8d7ff0a7fd9cbecd5002b8869f50349fa8ffd5a22d533b6b37fcf553c6e4ca7dea1d7acf36b7aebe84ff6bfb43f86bfbd1346d35005ecd7d240037e6ff87f02f000000ffff010000ffff4f4ad8f020610000") + bs, _ = hex.DecodeString("1f8b080000096e8800ffec5de973dc36b2ffeebf02e6eef3514fe4c847f66dc9a3a9722467e3daf8282b7e795ba97cc09098212292a00150f23c59fbb76f37c0fb98e18c478ab29b0fb186381ae84677e3d7608399de3f7d77f2e33fdebf22a18ea3d9bd29fe21114d96c70e4b1c922c5d9aa6c78e5a25be0e79b23445be48b41451c4e4b17356d49c681939c48fa852c70e368a043d779024a3c1ec1e21d398694afc904ac5f4b193e985fb57a7aa08b54e5df629e317c7ceffb91f5fba27224ea9e6f3880159189125d0ebf5ab63162c59ad5f426376ec5c7076990aa96b4d2f79a0c3e3805d709fb9e6e180f0846b4e2357f93462c74fbcc30ea180295ff2547391d468759ad14c8742765a443c392792452031a8d67ea609f7915228d9e2d859d00b7cf45210e4ec1e76d05c476c560a917c215757f04bbd15017b0b233d7a7c7d3d9dd856e50096d85c08adb4a4e9c4576a523e79314f3c2871f279e855c454c898b63334cf44af526042b3cf1a3b9b1a42e62258912bf393909406014cc89d0bad457c44fee730fdfc22af5b00d3ee82c63c5a1d11e77b165d30cd7d4adeb28c3907a42c38202f2548fb80289a285731c91796c4f53df3278bfe3bfca61c31a672c913578bf4883cf1be6171a3ad87937563910895529f95bd1a7379c392481c903722a13efc3d118912a09007c4391199e44cc2142f61862599d61014940db53b608962c14c1bd5d57286aad3ad45790dd72e6041866b4bcac15acabdb525e5a094c25cc880492bbb44242dbe22b1142d311f91c317cd95ae951832ee37d582a74271b48823d429b0c98bf6005c693711ee3c03a7a0cba14cb151381715ce4eadd511188bb23829fb045ca51185b5e409e83a73e791f0cf8b79806a5b4b067d2cf4a3541cc997a106d5a92ae6d43f5f4a9125018e22244c7f397ff4f4d95f0ec8d3e787f8cf93c72f9a129434e0993a22cf6acc17f279927e26cfabf242904fa1f869517cdde60bd42cf1020a8ea3a5e7115bc06c0f2b456fb0f7e4b02a369a4f23be44f923932f36cbaa1070e188bbf2c5b520f7798c5e9326bac712880e9b6676c9ac889f1f1ef6360f3adec332f9147c47cf50e08d26463b609398d85de2ded4a8be718df75d97fc28525845495cd79625f4a2dc62e805d6d83fa8f9c5cf802d6816c14e005b1433edf8921a7f6edddc34e0251174df144427f33a7490b060cd31dcb9a449e0cca63c5e163568520e51d2470febe293fbe4e95f8d632776e3719e3d05b76f24667f4f66a4f4f35315d3282a88853c00db763f83236e8e6f7d5ea6198cfe05840555b3de0dc2909be52d0a4eb2a8c647219dda4fa34b15e3112f9a0752a481b84cca3a534ff37de74f4ebb1d487fb9c46d1af53c7fa853791570fd2099abf4c5745e4a9e4adc92a69339fc471b0355f32e07885992356663e63b2be7646149c4fd73d89a83e0034bc5a3c740bd2ecc65b44a43dc7e49f9cb0d035c572bb6072c8619be0c0282ddc1e109b9c2a94d2730d2e8a1715d460d0dec5f322b82d6f0486270e05234fc8207a8b75b4c8fc13a9c31ad4101d5a839fa62d99a5fd17d4bc1f0f172f9247d68da1e361497e4f5a91db5aee47b918b0a338d6a366a7e62b1e84cce76df522692294da51ea92c0b681eb606fe6029f48d3b9d6451f5dcacadeaa6131097818513f009d6c50e7847db1e7df2775c2a0dcef5f28088245a1140ba9709e10b92309f2945e5ea05c967462ea94c10d6e6fe3b270f32e0208cfb407fc197af13748ba55301c2954f6a4c2672e300bc6ccd0fd4eb412c2c22e65f371fb6e9bfda6d5ddc724cab69f8ac5963f0b6332bb878cb58c002d8a39ecd4a890d93c51dacedabd2d98f212396df4c9add8884549139630011e8050bc81c62854468427dc057145cbe576d1724ce50e4f974b4281bc116cd40ee974dd2de7492369561e3a41153d676c1bc19cc49c34c6db4601fca759aeb84c07fae8acd9f7cd7252940c07c67b9195db7d3684db4ae2711a372c13f3b3d6bd52c683cd61ef29f1d8d67cb2c02c4010adad2e786e616f4b063b591182c4c1e214c414cf4b8a2d0abe57fe93501bb5488685387f000c59ad3e74c8d308bab2bec7082158ff097f7fa14d08359277864545b8a002709fefd01a68c2b36ce88eaad06eca989261a6001f88e68aa0a0c91023ac0a8fa4f0d0e0b0082853933c00270d0a0bccd9e4f722aa75c32dfacd3176222f7f75487d7d743646b4a3eb314ce34d5595daadd6daa0d73d09d6c34d262951bec36855b888e9432dcd23fd59bd86013ec2f85d819e2bcb647b048bfde98b4e2d3fc5969c953c4adadfe16df13d22c95ed222c0c37fb0a4ddb00a56672881780480fe5a001b01b0b69240cfd82ce2427dd59ee3ef1858830dc14294b5a0c7c676a769979a9c4b7c1802f6200e56df88a3b562845c2ffdf6c443b70d1634837cdca3212f336e0fc1b94d1a811096cc54a0c1836fa39e7e2176f69c87dc723a6c0c3d0e892aed4db2c9e33797d4d16587c40063a7dbbd2a6d39c271497f6db9b174828e2b63c7e10fe1ec51121b52da561fafc06c2f02391052ee2fb48d076b4f80e409b5818a0f675124900626e2910ecf21bc803cf985a5278431580c75db5a3dbce4c210f120cbb1f0064bc8358c399fd83a9be00b0d3ed7eabdf5b31d8edc625a64240332e8d3ace12cb03f213d7e19e0456a0b8a480701e86ddaaa7cbd555521c202d7862a3f3c4b406a78b5eb721cc3fc32460e003322cc4af112e947461011422906817b641d2102c0380d91fa8a492c7602bcec0f988393a42d18d095560f7f679d45a563cedea3fa8d83520698624796c816b558b2a0cdb7b0a2b9296d20cc513e5496b5df5a0efc962890af873714ef9e8f12f3b4411a3e288f1918465aa0821f0c9b54600b3cd151f2389ed36c7ba1de5b40c64a16db51d8bf587e6b501f283b8ef30ea1fc2fd034e752cf6ef1c11bc7c433e6a1ead059f6bb664b5826d2cf6e0cfa61db57f87f84a76a83a572d8e4ede7fdc07477e9abd67d2073b68a10b784c006e4b1a1d3db9befeafdb62752da43acd8bc907aad9d61cf3649ee2f2c50c34d1bfbe86a7dbe52a4b7b78fa98eece91c87487a5de7d750d4fc5469eeb03d07f9924224b7cf6eeefe4fe31c9c08a0106f418ee68eef1d56f28643b9a2dc621674c5e0c85b5e3914e6bc337ef554d0795f978f8ecace3d499bd33ef4987c0ca20f180264b264bdaf707882f161ba8df9a27691f8afc2f936a17ff7161fbf507e1033079772c770368cee2da7c63fecd00dd888359334773305bc188215c2574c8a401f63b9dcefe36b86a789dc7bc1c6df4eec55ce3f4c876cdcf98ea80ade79de2ad83b8ff380487c96cddf7dfc084dada53a1acb16f63516f69dfdffd247403433d7afabb0768403e613e8a44fddc34905fbc7f3ff0b68edb7d00bb3b8011902de8bb9396fe0116369cfedcab7edb539f49f3ed3316bd925248d59f62c1b0cebec7f522962c754866e4f02ee65abc159afbecab722cea70091847a854e31f17d464c95d5d41a9f7238f19d81e601976e47c7f14c747103d5c5f1f15b97480321692b3248856166a6127236aa3e1379f5f516934e94fb5a8abaf497ab08a302e89a9bdefbefbfbed66563474bacc332af33cb1f85b93793e2efdb3c83ec91f61922cc853d7492dbbf25e57d13bf99f4359937553b0295dcd2451036672cf8277198e26c0a2f2452615f3cafb135ec2f4c4999d652926c39209f94ec82cee66708d1a42c1184baec36cee010899f8348ac34939d4443258308527b93f80962b4d3ed8821d475bc3900ff49742ae2681f033044379beed69fdf16698e44a65c8e2b7595f52e21e4680c502967d464e7ad232d7a7d299637a8864843cb79e88c422a051a9ce65bc60db18fb2deddf365dd080f5e8ada974034e23b1ecf5e0b6417e3b65c08bdb36e899c1f268c4401fcdbfc57947c3c0c3e7cd6ebd21e326b7c33e43656cb4c1557c99f4c777272568b27b5bc3cf84cf07dc4c1f6fdd90296d0e5565d829067e1053ebe68c20f03d20b05c186833c215a124950240494c2e4151c80a3482bc06d94a583a52813caf41fc03e0ba15d07e10b228e2e98b061fe9686fd9709b36abcca4c299bcc05e7d926583bba04d3c59881bd0a5769a604bf485046e457940432a997be4bd71b3241451b0efb52f728d0756bec864be0beb5e1cc9ee7fe9eb29d8cd1529a483770723a6d9adac7e95c80bc31be7e1ed6bb95f9f0e2c340f3eedb05558626eb49fd5be81956d25ff373a9b17deaf01ca69bee0becda17e100754852fea4782d54be7e6a9e0d7ad7fbdc1259834c17f1090b7ae259a477cd3d612cfd555bc82c5fc42fc304bcef13470702a78cb280fdfb04fb9ca96aabde445a0910b88259e271442507b11e9939c748771265b30dd13a58cca012f231273340c2831e625d15119dfb1b868679c9d4402a16a2728d9d6848cda60783f08bf8ad8ffced91368015eae3876eee314c1d5bcfa0ca16c675b2f4cadba3b54d7f416a95194f010a387d40e4e7321649c5fc4c39f4e7e7d1aadf5955993b687a8d1c40e455a8a09754de9d543f0b7ae81d30ff1166341c84bccb99af7679e5cd08807e4c183beda804bbd6abf8fc04081ce19acb9907672607733eb704e01ef635da7074f52bcb291bf13ecc8b562146db8782d50b367c35e7e95bee5469cda056dc3bb49fd031790497ceb8213cb8f11f196f7a78c4b1680f5981975e6593f0e1a58fc351ecd9c627686ad7b989ea339731a93d30600945aa7b529d5af67b5ec4a7ef9d2b792a9345cc00cf16e4d62170b11bcf193c440771fa803a05fe01d603c0fc2eb328ed1ee19c9ef9481d3b2b62c6cb579bb66c879e40c2500e81f3ae33e833f81a8305f07000ff108421801a27fec0d333660c0b39f42000cf6962c4417788507873c20e78ca538d398c3a03aa49a4c593cc34dcd34984ee0c95e0702bea03f0b9a13571ce4a085f0b64ed5dbb014c6e2bc42dbd6595773416009f05a13cc761ed1e47c605ead13b5fe03df7edfb0d69429266b212e586fc569040b1d9accfb63e77b1117f90ab9e122953eb31d65a7d4e68bf51b67af999cd91b7589d2b02f607e71ee890a0df6a3cc24dc2af37ea87ddb6b5fb2a3f6551c1eaebc2c7e6e21c5600562e3be110b20023cd20ffa3c18393e2616e7a0a8ab4177957739d7332db794fb2be338f07d1e258aa554e235bcbe1bd99573e4e9111ee415e980e5f4f1f4606dc75c3c4547705b299366b7a499167846e21373dc065ab8421dc085cfc98f58f1e90469dd02f42bdfa9d4aed3d20b965ff76d2e7ecd6114bbf42e67d56740bfefb4face41d57246fddb2ffad062633863d1c2d93073732a672f58e21dc2bac8c10a20da1d7dc71a3697ac9d6b786a4874b9d8fe742a159bf136b6fa77c0dbf53b0f7b41dd4304f787bd31b97d2fd8bb22e4e1cf16f6eea91d81bd6d53bc7addb8c6b71681975ce126d2dc83f2f70faae5883acb515cb31c80e71bf69d0ff64a4e85c54996f04f19e6e3a462bb2da8dda87d15a625d1121ff7d455f8f80c6fb4028ff6e8047cc8c29e6d93f276edca236f724c89e50a448ab0d27ea3c4820d93e73584de364cd362472b1463f90621cafa1a9798d6b6faaa81ea2075480dfba670e35075ac29e1ede375c664eb479a13366e1814168c3529d3b96954ff9c9c566655188e6db7a3e99417574744b35f6b3556744376636b2bcbc167c4664d6329222e732511f1224c94498ffcc4c15e407b7cc90c72e40bc2f1409829f3650786eec623a8779a832ccdb7f0a88fc635c563cfd93fa713f3b7085b334ccba3f8f6a9fc9a1c5aae6d5c66f71b5a18869be21d0cc732bdd1746a4ad7319e14e574fb915efd4d7ec8fcf3b9f8dc77c8d0abea3575b71a5a5218d0d2ea3261fdbb0ef6ee634f94dd6f5fe3cf4aec6d503c6f482540731f156a21458c5a0340509118300c6a627560a10ecc5744da0d8a03047b7660e2f2cb5c5315de0929f55be922d0c89dfe4d8596f9053393583324a9beb56d2744afcd86deebe22b40c7b804662093ca57e4f1399d4b60ed6ce4fde8c3999981fde00b4e0297cddc2c25e670a8668cf88a7a8710b13a2a1c3ab36ad0eb1e605553e83bc6c28937501dbe35351e0ef58fd7dc0937cc2d99d1ebb9c9044f72f881ce73658cc2c737aca0bef861c20b668ee80c8280c8d90fc1d5825f8d56656f043296c2bd4189dc76889c7fa4ac894c6b3ef78f101991f95786c4a3bf0477932171f1d1b4a197f679f59d8b87fb8254527d016ecfe1e9f0ae524f53edabefdc6eee6fd602e2c546928b1fbd55b912bdfb45ed454aded043edc403cc87086f1f22a0ecd424e6a6e5c35e92cd5d11105dde99077865a67a361f25468837b89995db192a548bd03a585e35c5e7fcce51b1ff996f8a79989a060ddea5368dbd22fdcbe0f16a8f460cac5c7ddbed15ec5c8868bdf0faebf0957b4b7ceb44b406057c95140677fe3522ea0705bd85376104cb8c9fdd9c1df4d6a530351070f0fbb792bf7d7cfd1f6e21db48e026ade3cebd12d9eacbabbf5b44371a1be14ffba97d9bbd04500e3faf683e5fffab4562a676d66ef8eba78cc995fbd43bf49e6d6e5d7d25ffd7f647f2d7f6a369da6a00bc9abb4a007cccff2be15f000000ffff010000fffffff571603c610000") gr, _ = gzip.NewReader(bytes.NewBuffer(bs)) bs, _ = ioutil.ReadAll(gr) Assets["index.html"] = bs diff --git a/gui/app.js b/gui/app.js index 0f94f382..8c73e0b8 100644 --- a/gui/app.js +++ b/gui/app.js @@ -10,7 +10,6 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { var prevDate = 0; var getOK = true; var restarting = false; - var oldOptions = {}; $scope.connections = {}; $scope.config = {}; @@ -255,13 +254,20 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http) { }; $scope.editSettings = function () { - oldOptions = angular.copy($scope.config.Options); + // Make a working copy + $scope.config.workingOptions = angular.copy($scope.config.Options); + $scope.config.workingGUI = angular.copy($scope.config.GUI); $('#settings').modal({backdrop: 'static', keyboard: true}); } $scope.saveSettings = function () { // Make sure something changed - if(! angular.equals(oldOptions, $scope.config.Options)){ + var changed = ! angular.equals($scope.config.Options, $scope.config.workingOptions) || + ! angular.equals($scope.config.GUI, $scope.config.workingGUI); + if(changed){ + $scope.config.Options = angular.copy($scope.config.workingOptions); + $scope.config.GUI = angular.copy($scope.config.workingGUI); + $scope.configInSync = false; $scope.config.Options.ListenAddress = $scope.config.Options.ListenStr.split(',').map(function (x) { return x.trim(); }); $http.post(urlbase + '/config', JSON.stringify($scope.config), {headers: {'Content-Type': 'application/json'}}); diff --git a/gui/index.html b/gui/index.html index 1dc1ac0e..11fa62dc 100644 --- a/gui/index.html +++ b/gui/index.html @@ -515,11 +515,11 @@
- +
@@ -528,11 +528,11 @@
- +