diff --git a/res/app/components/stf/common-ui/error-message/error-message-directive.js b/res/app/components/stf/common-ui/error-message/error-message-directive.js new file mode 100644 index 00000000..a0a9acbf --- /dev/null +++ b/res/app/components/stf/common-ui/error-message/error-message-directive.js @@ -0,0 +1,15 @@ +module.exports = function errorMessageDirective() { + return { + restrict: 'EA', + replace: true, + scope: { + message: '@' + }, + template: require('./error-message.jade'), + link: function (scope, element, attrs) { + scope.closeMessage = function () { + scope.message = '' + } + } + } +} diff --git a/res/app/components/stf/common-ui/error-message/error-message-spec.js b/res/app/components/stf/common-ui/error-message/error-message-spec.js new file mode 100644 index 00000000..5c11de7d --- /dev/null +++ b/res/app/components/stf/common-ui/error-message/error-message-spec.js @@ -0,0 +1,23 @@ +describe('errorMessage', function () { + + beforeEach(angular.mock.module(require('./index').name)) + + var scope, compile + + beforeEach(inject(function ($rootScope, $compile) { + scope = $rootScope.$new() + compile = $compile + })) + + it('should ...', function () { + + /* + To test your directive, you need to create some html that would use your directive, + send that through compile() then compare the results. + + var element = compile('
hi
')(scope) + expect(element.text()).toBe('hello, world') + */ + + }) +}) diff --git a/res/app/components/stf/common-ui/error-message/error-message.css b/res/app/components/stf/common-ui/error-message/error-message.css new file mode 100644 index 00000000..adc12ee2 --- /dev/null +++ b/res/app/components/stf/common-ui/error-message/error-message.css @@ -0,0 +1,3 @@ +.stf-error-message { + padding-bottom: 15px; +} diff --git a/res/app/components/stf/common-ui/error-message/error-message.jade b/res/app/components/stf/common-ui/error-message/error-message.jade new file mode 100644 index 00000000..771efeb7 --- /dev/null +++ b/res/app/components/stf/common-ui/error-message/error-message.jade @@ -0,0 +1,5 @@ +.stf-error-message + alert(type='danger', close='closeMessage()', ng-if='message') + strong(translate) Oops! + | + span(ng-bind='message') diff --git a/res/app/components/stf/common-ui/error-message/index.js b/res/app/components/stf/common-ui/error-message/index.js new file mode 100644 index 00000000..490bff47 --- /dev/null +++ b/res/app/components/stf/common-ui/error-message/index.js @@ -0,0 +1,6 @@ +require('./error-message.css') + +module.exports = angular.module('stf.error-message', [ + +]) + .directive('errorMessage', require('./error-message-directive')) diff --git a/res/app/components/stf/common-ui/index.js b/res/app/components/stf/common-ui/index.js index 87e05248..8d4b1cb9 100644 --- a/res/app/components/stf/common-ui/index.js +++ b/res/app/components/stf/common-ui/index.js @@ -3,6 +3,7 @@ module.exports = angular.module('stf/common-ui', [ require('./clear-button').name, require('./filter-button').name, require('./nothing-to-show').name, + require('./error-message').name, require('./table').name, require('./notifications').name, require('./ng-enter').name, diff --git a/res/app/control-panes/dashboard/install/install.jade b/res/app/control-panes/dashboard/install/install.jade index 1b7edc4d..e443cb01 100644 --- a/res/app/control-panes/dashboard/install/install.jade +++ b/res/app/control-panes/dashboard/install/install.jade @@ -58,6 +58,8 @@ span(ng-if='!showManifest') Show Manifest pre.manifest-text(ng-if='showManifest') {{ installation.manifest | json }} + //error-message(message='{{ installation.error | installError | translate }} ({{ installation.error }})') + // TODO alert(type='danger', close='clear()', ng-if='installation.error') strong(translate) Oops! | diff --git a/res/app/settings/adb-keys/adb-keys-controller.js b/res/app/settings/adb-keys/adb-keys-controller.js index c37f3d1e..0887b9c3 100644 --- a/res/app/settings/adb-keys/adb-keys-controller.js +++ b/res/app/settings/adb-keys/adb-keys-controller.js @@ -35,7 +35,6 @@ module.exports = function AdbKeysCtrl($scope, AdbKeysService) { } - $scope.closeAddKey = function () { $scope.title = '' $scope.key = '' @@ -45,16 +44,12 @@ module.exports = function AdbKeysCtrl($scope, AdbKeysService) { $scope.toggleAddKey = function () { $scope.showAdd = !$scope.showAdd - $scope.focusAddKey = true } $scope.$watch('key', function (newValue) { if (newValue && !$scope.title) { $scope.title = AdbKeysService.hostNameFromKey(newValue) - $scope.focusAddTitle = true } }) - - } diff --git a/res/app/settings/adb-keys/adb-keys.jade b/res/app/settings/adb-keys/adb-keys.jade index 9f52cbfa..4fdec8da 100644 --- a/res/app/settings/adb-keys/adb-keys.jade +++ b/res/app/settings/adb-keys/adb-keys.jade @@ -18,10 +18,12 @@ ng-if='!adbKeys.length && !showAdd') - .panel.panel-default(ng-show='showAdd') - .panel-heading - h3.panel-title(translate) Add ADB Key - .panel-body + //accordion(ng-if='showAdd').pointer + accordion-group(is-open='showAdd') + accordion-heading.pointer + i.fa.fa-fw.fa-key + span(translateX) Add ADB Key + form.form-horizontal(name='adbkeyform', ng-submit='addKey(key)') .alert.alert-info.selectable Tip: Run this command to copy the key to your clipboard @@ -50,12 +52,51 @@ input(type='text', ng-model='title', ng-required='true', text-focus-select, focus-element='focusAddTitle').form-control + button.btn.btn-primary-outline.btn-sm.pull-right(type='submit') + i.fa.fa-plus.fa-fw + span(translate) Add Key + + .panel.panel-default(ng-show='showAdd') + .panel-heading + h3.panel-title(translate) Add ADB Key + .panel-body + form.form-horizontal(name='adbkeyform', ng-submit='addKey(key)') + + .alert.alert-info.selectable Tip: Run this command to copy the key to your clipboard + a(ng-href='/#!/docs/adb-keys').pull-right + i.fa.fa-question-circle(tooltip='{{"More about ADB Keys" | translate}}', tooltip-placement='left') + textarea(readonly, rows='1', text-focus-select, ng-copy='focusAddKey = true' + ).form-control.remote-debug-textarea pbcopy < ~/.android/adbkey.pub + //pbcopy < ~/.android/adbkey.pub + + br + + .form-group + label.control-label.col-md-1 + i.fa.fa-key.fa-fw + span(translate) Key + .col-md-11 + textarea(rows='4', ng-model='key', ng-required='true', + autocorrect='off', autocapitalize='off', spellcheck='false', + focus-element='focusAddKey', ng-paste='focusAddTitle = true').form-control + + .form-group + label.control-label.col-md-1 + i.fa.fa-laptop.fa-fw + span(translate) Device + .col-md-11 + input(type='text', ng-model='title', ng-required='true', + text-focus-select, focus-element='focusAddTitle').form-control + button.btn.btn-primary-outline.btn-sm.pull-right(type='submit') i.fa.fa-plus.fa-fw span(translate) Add Key + error-message(message='{{error}}') + + ul.list-group.key-list li.list-group-item(ng-repeat='key in adbKeys').animate-repeat a diff --git a/res/app/settings/adb-keys/index.js b/res/app/settings/adb-keys/index.js index 458487fc..3310dd52 100644 --- a/res/app/settings/adb-keys/index.js +++ b/res/app/settings/adb-keys/index.js @@ -1,7 +1,7 @@ require('./adb-keys.css') module.exports = angular.module('stf.settings.adb-keys', [ - require('stf/common-ui/nothing-to-show').name, + require('stf/common-ui').name, require('stf/browser-info').name ]) .run(["$templateCache", function ($templateCache) {