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) {