From: Nathan Wilcox Date: Wed, 21 Jan 2015 00:31:56 +0000 (-0800) Subject: Introduce icons with distinct shape for connection status display on the front wui... X-Git-Tag: allmydata-tahoe-1.10.1a1~82^2~1 X-Git-Url: https://git.rkrishnan.org/pf/content/en/seg/statistics?a=commitdiff_plain;h=refs%2Fpull%2F136%2Fhead;p=tahoe-lafs%2Ftahoe-lafs.git Introduce icons with distinct shape for connection status display on the front wui page... This replaces the status display which was only distinct by color which is a usability issue for color-blind users. This commit includes test coverage by way of pattern matching on rendered templates. The PNG icons are conversions of original SVG source which I've included and placed in the public domain. --- diff --git a/src/allmydata/test/test_system.py b/src/allmydata/test/test_system.py index 957c14c3..3b23b2f6 100644 --- a/src/allmydata/test/test_system.py +++ b/src/allmydata/test/test_system.py @@ -1114,7 +1114,7 @@ class SystemTest(SystemTestMixin, RunBinTahoeMixin, unittest.TestCase): d.addCallback(lambda res: getPage(self.helper_webish_url)) def _got_welcome_helper(page): html = page.replace('\n', ' ') - self.failUnless(re.search(r'
\s*
Helper
', html), page) + self.failUnless(re.search('Connected', html), page) self.failUnlessIn("Not running helper", page) d.addCallback(_got_welcome_helper) diff --git a/src/allmydata/test/test_web.py b/src/allmydata/test/test_web.py index 8c5ead4b..1f46cbf9 100644 --- a/src/allmydata/test/test_web.py +++ b/src/allmydata/test/test_web.py @@ -649,7 +649,7 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, testutil.ReallyEqualMixi html = res.replace('\n', ' ') self.failUnlessIn('
pb://someIntroducer/[censored]
', html) self.failIfIn('pb://someIntroducer/secret', html) - self.failUnless(re.search('
[ ]*
Introducer not connected
', html), res) + self.failUnless(re.search('Disconnected', html), res) d.addCallback(_check_introducer_not_connected_unguessable) # introducer connected, unguessable furl @@ -662,7 +662,7 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, testutil.ReallyEqualMixi html = res.replace('\n', ' ') self.failUnlessIn('
pb://someIntroducer/[censored]
', html) self.failIfIn('pb://someIntroducer/secret', html) - self.failUnless(re.search('
[ ]*
Introducer
', html), res) + self.failUnless(re.search('Connected', html), res) d.addCallback(_check_introducer_connected_unguessable) # introducer connected, guessable furl @@ -674,7 +674,7 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, testutil.ReallyEqualMixi def _check_introducer_connected_guessable(res): html = res.replace('\n', ' ') self.failUnlessIn('
pb://someIntroducer/introducer
', html) - self.failUnless(re.search('
[ ]*
Introducer
', html), res) + self.failUnless(re.search('Connected', html), res) d.addCallback(_check_introducer_connected_guessable) return d @@ -688,7 +688,7 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, testutil.ReallyEqualMixi d.addCallback(_set_no_helper) def _check_no_helper(res): html = res.replace('\n', ' ') - self.failUnless(re.search('
[ ]*
Helper
', html), res) + self.failUnless(re.search('Not Configured', html), res) d.addCallback(_check_no_helper) # enable helper, not connected @@ -701,7 +701,7 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, testutil.ReallyEqualMixi html = res.replace('\n', ' ') self.failUnlessIn('
pb://someHelper/[censored]
', html) self.failIfIn('pb://someHelper/secret', html) - self.failUnless(re.search('
[ ]*
Helper not connected
', html), res) + self.failUnless(re.search('Disconnected', html), res) d.addCallback(_check_helper_not_connected) # enable helper, connected @@ -714,7 +714,7 @@ class Web(WebMixin, WebErrorMixin, testutil.StallMixin, testutil.ReallyEqualMixi html = res.replace('\n', ' ') self.failUnlessIn('
pb://someHelper/[censored]
', html) self.failIfIn('pb://someHelper/secret', html) - self.failUnless(re.search('
[ ]*
Helper
', html), res) + self.failUnless(re.search('Connected', html), res) d.addCallback(_check_helper_connected) return d diff --git a/src/allmydata/web/root.py b/src/allmydata/web/root.py index 5f1d2367..8a9969c6 100644 --- a/src/allmydata/web/root.py +++ b/src/allmydata/web/root.py @@ -132,6 +132,12 @@ class Root(rend.Page): addSlash = True docFactory = getxmlfile("welcome.xhtml") + _connectedalts = { + "not-configured": "Not Configured", + "yes": "Connected", + "no": "Disconnected", + } + def __init__(self, client, clock=None): rend.Page.__init__(self, client) self.client = client @@ -222,6 +228,9 @@ class Root(rend.Page): return "yes" return "no" + def data_connected_to_introducer_alt(self, ctx, data): + return self._connectedalts[self.data_connected_to_introducer(ctx, data)] + def data_helper_furl_prefix(self, ctx, data): try: uploader = self.client.getServiceNamed("uploader") @@ -252,6 +261,9 @@ class Root(rend.Page): return "yes" return "no" + def data_connected_to_helper_alt(self, ctx, data): + return self._connectedalts[self.data_connected_to_helper(ctx, data)] + def data_known_storage_servers(self, ctx, data): sb = self.client.get_storage_broker() return len(sb.get_all_serverids()) @@ -295,6 +307,7 @@ class Root(rend.Page): available_space = abbreviate_size(available_space) ctx.fillSlots("address", addr) ctx.fillSlots("connected", connected) + ctx.fillSlots("connected_alt", self._connectedalts[connected]) ctx.fillSlots("connected-bool", bool(rhost)) ctx.fillSlots("since", time.strftime(TIME_FORMAT, time.localtime(since))) diff --git a/src/allmydata/web/static/img/connected-no.png b/src/allmydata/web/static/img/connected-no.png new file mode 100644 index 00000000..ca32a8e2 Binary files /dev/null and b/src/allmydata/web/static/img/connected-no.png differ diff --git a/src/allmydata/web/static/img/connected-no.svg b/src/allmydata/web/static/img/connected-no.svg new file mode 100644 index 00000000..f310eed5 --- /dev/null +++ b/src/allmydata/web/static/img/connected-no.svg @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/src/allmydata/web/static/img/connected-not-configured.png b/src/allmydata/web/static/img/connected-not-configured.png new file mode 100644 index 00000000..3c66e6f2 Binary files /dev/null and b/src/allmydata/web/static/img/connected-not-configured.png differ diff --git a/src/allmydata/web/static/img/connected-not-configured.svg b/src/allmydata/web/static/img/connected-not-configured.svg new file mode 100644 index 00000000..77ccb028 --- /dev/null +++ b/src/allmydata/web/static/img/connected-not-configured.svg @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/src/allmydata/web/static/img/connected-yes.png b/src/allmydata/web/static/img/connected-yes.png new file mode 100644 index 00000000..e3fe5978 Binary files /dev/null and b/src/allmydata/web/static/img/connected-yes.png differ diff --git a/src/allmydata/web/static/img/connected-yes.svg b/src/allmydata/web/static/img/connected-yes.svg new file mode 100644 index 00000000..fa1fd666 --- /dev/null +++ b/src/allmydata/web/static/img/connected-yes.svg @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/src/allmydata/web/welcome.xhtml b/src/allmydata/web/welcome.xhtml index 72a2be16..c4774c81 100644 --- a/src/allmydata/web/welcome.xhtml +++ b/src/allmydata/web/welcome.xhtml @@ -137,14 +137,14 @@

-
status-indicator connected-
+ img/connected-.png

-
status-indicator connected-
+ img/connected-.png

@@ -178,7 +178,7 @@ -
status-indicator connected-
+ img/connected-.png