diff options
| -rw-r--r-- | service/pixelated/maintenance.py | 3 | ||||
| -rw-r--r-- | service/pixelated/resources/login_resource.py | 2 | ||||
| -rw-r--r-- | service/requirements.txt | 10 | ||||
| -rw-r--r-- | service/test/functional/features/steps/login.py | 10 | ||||
| -rw-r--r-- | service/test/support/test_helper.py | 4 | ||||
| -rw-r--r-- | service/test/unit/config/test_sessions.py | 2 | ||||
| -rw-r--r-- | web-ui/app/scss/_others.scss | 2 | ||||
| -rw-r--r-- | web-ui/app/scss/base/_colors.scss | 1 | ||||
| -rw-r--r-- | web-ui/app/scss/views/_action-bar.scss | 5 | ||||
| -rw-r--r-- | web-ui/app/scss/views/_compose-view.scss | 19 | ||||
| -rw-r--r-- | web-ui/app/scss/views/_mail-list.scss | 32 | ||||
| -rw-r--r-- | web-ui/app/templates/compose/compose_box.hbs | 2 | ||||
| -rw-r--r-- | web-ui/app/templates/compose/inline_box.hbs | 2 | 
13 files changed, 70 insertions, 24 deletions
| diff --git a/service/pixelated/maintenance.py b/service/pixelated/maintenance.py index 74b5a369..a2286034 100644 --- a/service/pixelated/maintenance.py +++ b/service/pixelated/maintenance.py @@ -105,7 +105,8 @@ def add_command_callback(args, prepareDeferred, finalizeDeferred):          prepareDeferred.addCallback(load_mails, args.file)          prepareDeferred.addCallback(flush_to_soledad, finalizeDeferred)      elif args.command == 'markov-generate': -        prepareDeferred.addCallback(markov_generate, args.file, int(args.limit), args.seed) +        prepareDeferred.addCallback( +            markov_generate, args.file, int(args.limit), args.seed)          prepareDeferred.addCallback(flush_to_soledad, finalizeDeferred)      elif args.command == 'dump-soledad':          prepareDeferred.addCallback(dump_soledad) diff --git a/service/pixelated/resources/login_resource.py b/service/pixelated/resources/login_resource.py index 905b872c..fec4307e 100644 --- a/service/pixelated/resources/login_resource.py +++ b/service/pixelated/resources/login_resource.py @@ -178,7 +178,7 @@ class LoginResource(BaseResource):      def _complete_bootstrap(self, user_auth, request):          def log_error(error): -            log.error('Login error during %s services setup: %s' % (user_auth.username, error.getErrorMessage())) +            log.error('Login error during %s services setup: %s \n %s' % (user_auth.username, error.getErrorMessage(), error.getTraceback()))          def set_session_cookies(_):              session = IPixelatedSession(request.getSession()) diff --git a/service/requirements.txt b/service/requirements.txt index c6eea0d3..56ac19d8 100644 --- a/service/requirements.txt +++ b/service/requirements.txt @@ -6,9 +6,9 @@ requests==2.11.1  srp==1.0.6  whoosh==2.6.0  Twisted==16.1.1 --e 'git+https://github.com/pixelated/leap_pycommon.git@develop#egg=leap.common' --e 'git+https://github.com/leapcode/bitmask-dev.git@master#egg=leap.bitmask' --e 'git+https://github.com/pixelated/soledad.git@develop#egg=leap.soledad.common&subdirectory=common/' --e 'git+https://github.com/pixelated/soledad.git@develop#egg=leap.soledad.client&subdirectory=client/' --e 'git+https://github.com/pixelated/soledad.git@develop#egg=leap.soledad.server&subdirectory=server/' +-e 'git+https://0xacab.org/pixelated/leap_pycommon.git@develop#egg=leap.common' +-e 'git+https://0xacab.org/pixelated/bitmask-dev.git@master#egg=leap.bitmask' +-e 'git+https://0xacab.org/pixelated/soledad.git@develop#egg=leap.soledad.common&subdirectory=common/' +-e 'git+https://0xacab.org/pixelated/soledad.git@develop#egg=leap.soledad.client&subdirectory=client/' +-e 'git+https://0xacab.org/pixelated/soledad.git@develop#egg=leap.soledad.server&subdirectory=server/'  -e . diff --git a/service/test/functional/features/steps/login.py b/service/test/functional/features/steps/login.py index e2dc1381..2a653030 100644 --- a/service/test/functional/features/steps/login.py +++ b/service/test/functional/features/steps/login.py @@ -13,8 +13,16 @@  #  # You should have received a copy of the GNU Affero General Public License  # along with Pixelated. If not, see <http://www.gnu.org/licenses/>. +import time +  from behave import when, then -from common import * +from selenium.webdriver.common.by import By + +from common import ( +    fill_by_css_selector, +    find_element_by_css_selector, +    MULTI_USER_URL, +    wait_until_element_is_visible_by_locator)  @when(u'I open the login page') diff --git a/service/test/support/test_helper.py b/service/test/support/test_helper.py index 3323a14e..fbff5819 100644 --- a/service/test/support/test_helper.py +++ b/service/test/support/test_helper.py @@ -100,7 +100,7 @@ class TestRequest:  class PixRequestMock(DummyRequest):      def __init__(self, path):          DummyRequest.__init__(self, path) -        self.path = "/".join(path) +        self.path = '/' + "/".join(path)          self.content = None          self.code = None          self.cookies = {} @@ -121,7 +121,7 @@ class PixRequestMock(DummyRequest):  def request_mock(path='', method='GET', body='', headers={}, ajax=True, csrf='token'): -    dummy = PixRequestMock(path.split('/')) +    dummy = PixRequestMock(path[1:].split('/'))      for name, val in headers.iteritems():          dummy.requestHeaders.setRawHeaders(name.lower(), [val])      dummy.method = method diff --git a/service/test/unit/config/test_sessions.py b/service/test/unit/config/test_sessions.py index 98e5c69e..a7e62c7a 100644 --- a/service/test/unit/config/test_sessions.py +++ b/service/test/unit/config/test_sessions.py @@ -14,9 +14,11 @@  # You should have received a copy of the GNU Affero General Public License  # along with Pixelated. If not, see <http://www.gnu.org/licenses/>. +import os  from mock import patch  from mock import MagicMock  from twisted.internet import defer +from twisted.trial import unittest  from pixelated.config.sessions import LeapSession, SessionCache  from test.unit.bitmask_libraries.test_abstract_leap import AbstractLeapTest diff --git a/web-ui/app/scss/_others.scss b/web-ui/app/scss/_others.scss index a5796ebe..039d94bd 100644 --- a/web-ui/app/scss/_others.scss +++ b/web-ui/app/scss/_others.scss @@ -59,7 +59,7 @@ section {      }      &#middle-pane { -        background: $contrast; +        background: $white;      }      &#right-pane { diff --git a/web-ui/app/scss/base/_colors.scss b/web-ui/app/scss/base/_colors.scss index b95a02f6..17333ff9 100644 --- a/web-ui/app/scss/base/_colors.scss +++ b/web-ui/app/scss/base/_colors.scss @@ -4,6 +4,7 @@ $light_gray: #C2C2C2;  $lighter_blue: #91C2D1;  $light_blue: #3DABC4;  $dark_blue: #178CA6; +$bullet-blue: #5cacde;  $light_orange: #FF9C00;  $dark_orange: #FF7902; diff --git a/web-ui/app/scss/views/_action-bar.scss b/web-ui/app/scss/views/_action-bar.scss index 8de07876..40e677b0 100644 --- a/web-ui/app/scss/views/_action-bar.scss +++ b/web-ui/app/scss/views/_action-bar.scss @@ -10,9 +10,10 @@          margin: 0;          border-top: 1px solid $white;          border-bottom: 2px solid lighten($top_pane, 30%); -        background: $top_pane; +        background: $white;          clear: both;          overflow: hidden; +        padding-left: 10px;          li {              display: inline-block; @@ -33,7 +34,7 @@              input[type=button] {                  margin: 2px;                  padding: 4px 10px; -                background: lighten($contrast, 70%); +                background: $background_light_grey;                  color: $dark_grey;                  text-transform: uppercase;                  font-weight: 400; diff --git a/web-ui/app/scss/views/_compose-view.scss b/web-ui/app/scss/views/_compose-view.scss index 0308608c..9e120357 100644 --- a/web-ui/app/scss/views/_compose-view.scss +++ b/web-ui/app/scss/views/_compose-view.scss @@ -4,12 +4,20 @@      &__buttons {          &-attachment {              cursor: pointer; -            outline: 0;              margin-left: 18px;              padding-top: 0px; -            -ms-transform: rotate(224deg); -            -webkit-transform: rotate(224deg); -            transform: rotate(224deg); +            display: inline; +            border: 1px $contrast solid; +            background: $background_light_grey; +            padding: 7px 4px; +            font-size: 0.8em; + +            span { +              -ms-transform: rotate(224deg); +              -webkit-transform: rotate(224deg); +              transform: rotate(224deg); +              outline: 0; +            }              i.fa-paperclip {                  font-size: 1.7em; @@ -36,7 +44,7 @@                  padding: 5px;                  border: 1px solid $border_light_grey;                  border-radius: 2px; -                background-color: $background_light_grey; +                background-color: $contrast;                  &-label {                      color: $attachment_text; @@ -120,7 +128,6 @@      label, span {          color: $recipients_font_color;          padding: 0.5rem; -        cursor: text;          display: inline-block;      } diff --git a/web-ui/app/scss/views/_mail-list.scss b/web-ui/app/scss/views/_mail-list.scss index 66bcabbe..f5c4c60f 100644 --- a/web-ui/app/scss/views/_mail-list.scss +++ b/web-ui/app/scss/views/_mail-list.scss @@ -15,11 +15,24 @@      &.status-read {          font-weight: normal;          color: $attachment_text; + +        .mail-list-entry__checkbox::after { +          display: none; +        }      } +      &.selected { -        background: $white; +        background: $light_blue;          z-index: 10; // overlay the box-shadow of the right page (z-index: 2) + +        &:hover { +            background: $light_blue; +        } + +        a { +          color: $white; +        }      }      &:hover { @@ -35,6 +48,20 @@            left: 20px;          } +        &::after { +          content: ''; +          display: inline-block; +          width: 8px; +          height: 8px; +          -moz-border-radius: 15px; +          -webkit-border-radius: 15px; +          border-radius: 15px; +          background-color: $bullet-blue; +          position: absolute; +          left: 48px; +          top: 13px; +        } +          & > input[type=checkbox] {              @include check-box;          } @@ -43,7 +70,7 @@      &__item {          display: block;          color: $dark_grey; -        padding: 8px 10px 10px 34px; +        padding: 8px 10px 10px 67px;          height: 100%;          &-from { @@ -95,4 +122,3 @@          }      }  } - diff --git a/web-ui/app/templates/compose/compose_box.hbs b/web-ui/app/templates/compose/compose_box.hbs index 83d5ca27..fcfbeaaf 100644 --- a/web-ui/app/templates/compose/compose_box.hbs +++ b/web-ui/app/templates/compose/compose_box.hbs @@ -24,7 +24,7 @@          <div class="buttons-group columns compose-view__buttons">              <button id="send-button" tabindex="6"><i class="fa fa-send"></i></button> -            <span id="attachment-button" class="compose-view__buttons-attachment" tabindex="6"></span> +            <div class="compose-view__buttons-attachment"><span id="attachment-button" tabindex="6"></span></div>              <button id="trash-button" tabindex="7">{{t 'trash-button'}}<i class="fa fa-trash-o"></i></button>              <div id="draft-save-status"></div>          </div> diff --git a/web-ui/app/templates/compose/inline_box.hbs b/web-ui/app/templates/compose/inline_box.hbs index fbb62b0f..c9c114ec 100644 --- a/web-ui/app/templates/compose/inline_box.hbs +++ b/web-ui/app/templates/compose/inline_box.hbs @@ -14,7 +14,7 @@  <div class="buttons-group columns  compose-view__buttons">    <button id="send-button" tabindex=6><i class="fa fa-send"></i></button> -  <span id="attachment-button" class="compose-view__buttons-attachment" tabindex="6"></span> +  <div class="compose-view__buttons-attachment"><span id="attachment-button" tabindex="6"></span></div>    <button id="trash-button" tabindex=7>{{t 'trash-button'}}<i class="fa fa-trash-o"></i></button>    <div id="draft-save-status"></div>  </div> | 
