robeaux 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/Gruntfile.js +43 -0
  3. data/Makefile +11 -2
  4. data/README.markdown +2 -0
  5. data/css/main.css +1 -0
  6. data/css/style.css +113 -24
  7. data/css/themes/blackboard.css +1 -0
  8. data/css/themes/dark.css +1 -0
  9. data/css/themes/gray.css +1 -0
  10. data/css/themes/whiteboard.css +1 -0
  11. data/images/bullet-connections-2.png +0 -0
  12. data/images/bullet-connections.png +0 -0
  13. data/images/bullet-devices-2.png +0 -0
  14. data/images/bullet-devices.png +0 -0
  15. data/images/devices-image-2.png +0 -0
  16. data/images/devices-image.png +0 -0
  17. data/images/logo-robeaux.png +0 -0
  18. data/images/robots-icon_03.png +0 -0
  19. data/index.html +15 -8
  20. data/js/controllers/widget_editor_ctrl.js +44 -0
  21. data/js/controllers/widgets_ctrl.js +40 -0
  22. data/js/directives/widget.js +50 -0
  23. data/js/router.js +5 -0
  24. data/js/services/themes.js +9 -5
  25. data/js/services/widgets.js +86 -0
  26. data/js/vendor/angular-route.min.js +1 -2
  27. data/js/vendor/angular.min.js +208 -206
  28. data/js/widgets/attitude.html +32 -0
  29. data/js/widgets/attitude.js +27 -0
  30. data/js/widgets/mindwave.html +51 -0
  31. data/js/widgets/mindwave.js +23 -0
  32. data/less/app.less +21 -0
  33. data/less/objects/buttons.less +32 -0
  34. data/less/objects/connections.less +28 -0
  35. data/less/objects/device.less +30 -0
  36. data/less/objects/forms.less +29 -0
  37. data/less/objects/list.less +27 -0
  38. data/less/objects/nav.less +33 -0
  39. data/less/objects/robot.less +43 -0
  40. data/less/objects/themes.less +18 -0
  41. data/less/objects/widgets.less +85 -0
  42. data/less/support/buttons.less +39 -0
  43. data/less/support/container.less +9 -0
  44. data/less/support/forms.less +18 -0
  45. data/less/support/mixins.less +3 -0
  46. data/less/themes/blackboard.less +158 -0
  47. data/less/themes/dark.less +148 -0
  48. data/less/themes/default.less +52 -0
  49. data/less/themes/gray.less +121 -0
  50. data/less/themes/whiteboard.less +152 -0
  51. data/less/vendor/elements.less +156 -0
  52. data/less/vendor/normalize.less +425 -0
  53. data/less/vendor/semantic-grid.less +67 -0
  54. data/less/views/devices.less +47 -0
  55. data/less/views/robots.less +132 -0
  56. data/less/views/themes.less +31 -0
  57. data/less/views/widgets.less +50 -0
  58. data/package.json +6 -3
  59. data/partials/device.html +66 -57
  60. data/partials/index.html +12 -6
  61. data/partials/robot.html +104 -51
  62. data/partials/themes.html +32 -29
  63. data/partials/widget_editor.html +68 -0
  64. data/robeaux.gemspec +1 -1
  65. data/test/controllers/device_commands_ctrl.js +129 -0
  66. data/test/controllers/device_events_ctrl.js +82 -0
  67. data/test/controllers/index_ctrl.js +48 -0
  68. data/test/controllers/nav_ctrl.js +40 -0
  69. data/test/controllers/robot_commands_ctrl.js +127 -0
  70. data/test/controllers/robot_ctrl.js +62 -0
  71. data/test/controllers/themes_ctrl.js +96 -0
  72. data/test/controllers/widget_editor_ctrl.js +111 -0
  73. data/test/controllers/widgets_ctrl.js +74 -0
  74. data/test/functions/functions.js +30 -0
  75. data/test/karma.conf.js +3 -7
  76. data/test/karma_test_all.conf.js +23 -0
  77. data/test/karma_test_controllers.conf.js +19 -0
  78. data/test/karma_test_functions.conf.js +14 -0
  79. data/test/karma_test_services.conf.js +17 -0
  80. data/test/services/themes.js +122 -0
  81. data/test/services/widgets.js +104 -0
  82. data/test/support/themes.json +9 -0
  83. data/test/support/widgets.json +18 -0
  84. data/test/vendor/angular-mocks.js +13 -13
  85. data/test/vendor/jquery.js +8 -8
  86. metadata +69 -3
  87. data/test/main.js +0 -248
@@ -0,0 +1,158 @@
1
+ /* Color Palette */
2
+ @color01: #343434;
3
+ @color02: #2C2C2C;
4
+ @color03: #fff;
5
+ @color04: #1cbcd8;
6
+ @color05: #fff;
7
+ @color06: #fff;
8
+
9
+ /* Body Variables */
10
+ @body-background-color: @color01;
11
+ @body-text-color : @color03;
12
+ @body-font-family : "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
13
+ @body-font-size : 15px;
14
+ @line-height-base : 1.428571429; // 20/14
15
+ @line-height-computed : floor((@body-font-size * @line-height-base)); // ~20px
16
+
17
+ /* Row */
18
+ @row-background-color : @color01;
19
+
20
+ /* Code Font */
21
+ @code-font-family : Inconsolata, monospace;
22
+
23
+ /* Nav Variables */
24
+ @nav-background-color : @color02;
25
+ @nav-link-color : #fff;
26
+ @nav-link-color-hover : @color04;
27
+ @nav-link-background : @color03;
28
+ @nav-link-background-hover : @color04;
29
+
30
+ /* Buttons */
31
+ @btn-robot-color : @color01;
32
+ @btn-robot-background : @color04;
33
+ @btn-run-color : @color01;
34
+ @btn-run-background : #CA5252;
35
+ @btn-device-color : @color01;
36
+ @btn-device-background : #56d884;
37
+ @btn-connect-color : @color01;
38
+ @btn-connect-background : #d8ca69;
39
+
40
+ /* Forms */
41
+ @input-border-color: #999;
42
+ @input-border-color-focus: #fff;
43
+
44
+ /* Connection Digits */
45
+ @connection-digits-color: #fff;
46
+
47
+ /* Widgets */
48
+ @modal-bg-color: #4D4D4D;
49
+
50
+ @import '../vendor/elements';
51
+ @import '../support/mixins';
52
+
53
+ body {
54
+ background-color: @body-background-color;
55
+ color: @body-text-color;
56
+ }
57
+
58
+ nav {
59
+ background: @nav-background-color;
60
+
61
+ .links a {
62
+ background: none;
63
+ padding: 8px 13px;
64
+ &.active {
65
+ background: none;
66
+ color: #fff;
67
+ border: 2px solid @color04;
68
+ }
69
+
70
+ &:hover {
71
+ color: @color04 !important;
72
+ }
73
+ }
74
+ }
75
+
76
+ .row {
77
+ border-top: 1px solid @color04;
78
+ padding-top: 25px;
79
+ padding-bottom: 25px;
80
+ width: 960px;
81
+ .container-block();
82
+
83
+ &:last-child {
84
+ border-bottom: 1px solid @color04;
85
+ }
86
+ }
87
+
88
+ .row-device {
89
+ border-top: none;
90
+ border-bottom: none !important;
91
+ }
92
+
93
+ .robot {
94
+ .details {
95
+ span {
96
+ color: @connection-digits-color;
97
+ }
98
+
99
+ strong {
100
+ color: @color04;
101
+ }
102
+ }
103
+ }
104
+
105
+ .row {
106
+ background-color: @row-background-color;
107
+ }
108
+
109
+ .bullet-connections {
110
+ padding-left: 32px;
111
+ background: transparent url(../../images/bullet-connections.png) no-repeat left center;
112
+ }
113
+
114
+ .bullet-devices {
115
+ padding-left: 32px;
116
+ background: transparent url(../../images/bullet-devices.png) no-repeat left center;
117
+ }
118
+
119
+ .robot-devices {
120
+ background: transparent url(../../images/devices-image.png) no-repeat 21px center;
121
+ padding-left: 84px;
122
+ }
123
+
124
+ .btn-robot {
125
+ .button-variant(@btn-robot-color; @btn-robot-background; @btn-robot-color);
126
+ }
127
+
128
+ .btn-device, .btn-save {
129
+ .button-variant(@btn-device-color; @btn-device-background; @btn-device-color);
130
+ }
131
+
132
+ .btn-connect {
133
+ .button-variant(@btn-connect-color; @btn-connect-background; @btn-connect-color);
134
+ }
135
+
136
+ .btn-run, .btn-reset {
137
+ .button-variant(@btn-run-color; @btn-run-background; @btn-run-color);
138
+ }
139
+
140
+ input[type="text"], select, textarea {
141
+ color: @body-text-color;
142
+ background: @color01;
143
+ .form-control-focus(@input-border-color-focus);
144
+ }
145
+
146
+ .widgets {
147
+ .panel {
148
+ background: @modal-bg-color;
149
+
150
+ .panel-header {
151
+ border-bottom: 1px solid #666;
152
+ }
153
+
154
+ .panel-footer {
155
+ border-top: 1px solid #666;
156
+ }
157
+ }
158
+ }
@@ -0,0 +1,148 @@
1
+ /* Color Palette */
2
+ @color01: #000;
3
+ @color02: #444;
4
+ @color03: #000;
5
+ @color04: #1CBBD8;
6
+ @color05: #fff;
7
+ @color06: #fff;
8
+
9
+ /* Body Variables */
10
+ @body-background-color: @color01;
11
+ @body-text-color : @color01;
12
+ @body-font-family : "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
13
+ @body-font-size : 15px;
14
+ @line-height-base : 1.428571429; // 20/14
15
+ @line-height-computed : floor((@body-font-size * @line-height-base)); // ~20px
16
+
17
+ /* Row */
18
+ @row-background-color : #4D4D4D;
19
+
20
+ /* Code Font */
21
+ @code-font-family : Inconsolata, monospace;
22
+
23
+ /* Nav Variables */
24
+ @nav-background-color : @color03;
25
+ @nav-link-color : #fff;
26
+ @nav-link-color-hover : @color04;
27
+ @nav-link-background : @color03;
28
+ @nav-link-background-hover : @color04;
29
+
30
+ /* Buttons */
31
+ @btn-robot-color : #fff;
32
+ @btn-robot-background : @color01;
33
+ @btn-run-color : #C36148;
34
+ @btn-run-background : #000;
35
+ @btn-device-color : #000;
36
+ @btn-device-background : #fff;
37
+ @btn-connect-color : #DEC763;
38
+ @btn-connect-background : #000;
39
+
40
+ /* Forms */
41
+ @input-border-color: #999;
42
+ @input-border-color-focus: #fff;
43
+
44
+ /* Connection Digits */
45
+ @connection-digits-color: #fff;
46
+
47
+ /* Widgets */
48
+ @modal-bg-color: #4D4D4D;
49
+
50
+ @import '../vendor/elements';
51
+ @import '../support/mixins';
52
+
53
+ body {
54
+ background-color: @body-background-color;
55
+ color: @body-text-color;
56
+ }
57
+
58
+ .row {
59
+ background-color: @row-background-color;
60
+ }
61
+
62
+ nav {
63
+ .links a {
64
+ background: none;
65
+ &.active {
66
+ background: none;
67
+ color: #1CBBD8;
68
+ }
69
+
70
+ &:hover {
71
+ color: #1CBBD8 !important;
72
+ }
73
+ }
74
+ }
75
+
76
+ .robot {
77
+ .details {
78
+ span {
79
+ color: @connection-digits-color;
80
+ }
81
+
82
+ strong {
83
+ color: @body-text-color;
84
+ }
85
+ }
86
+ }
87
+
88
+ .btn-robot {
89
+ .button-variant(@btn-robot-color; @btn-robot-background; @btn-robot-color);
90
+ }
91
+
92
+ .btn-device, .btn-save {
93
+ .button-variant(@btn-device-color; @btn-device-background; @btn-device-color);
94
+ }
95
+
96
+ .btn-connect {
97
+ .button-variant(@btn-connect-color; @btn-connect-background; @btn-connect-color);
98
+ text-transform: uppercase;
99
+ }
100
+
101
+ .btn-run, .btn-reset {
102
+ .button-variant(@btn-run-color; @btn-run-background; @btn-run-color);
103
+ text-transform: uppercase;
104
+ }
105
+
106
+ input[type="text"], select, textarea {
107
+ color: @body-text-color;
108
+ background: #666;
109
+ .form-control-focus(@input-border-color-focus);
110
+ }
111
+
112
+ .widgets {
113
+ .panel {
114
+ background: @modal-bg-color;
115
+
116
+ .panel-header {
117
+ border-bottom: 1px solid #666;
118
+ }
119
+
120
+ .panel-footer {
121
+ border-top: 1px solid #666;
122
+ }
123
+ }
124
+ }
125
+
126
+ .list {
127
+ .theme, .widget {
128
+ border-bottom: 1px dotted #666;
129
+ }
130
+ }
131
+
132
+ th {
133
+ border-bottom: 1px solid #666 !important;
134
+ }
135
+
136
+ .connections {
137
+ .robot-devices {
138
+ .details {
139
+ color: #000;
140
+ }
141
+ }
142
+
143
+ .robot-connections {
144
+ .name {
145
+ color: #000;
146
+ }
147
+ }
148
+ }
@@ -0,0 +1,52 @@
1
+ /* Grid Settings */
2
+ @column-width : 60;
3
+ @gutter-width : 20;
4
+ @columns : 12;
5
+ @gridsystem-width : (@column-width*@columns) + (@gutter-width*@columns) * 1px;
6
+ @total-width : 100%;
7
+
8
+ /* Color Palette */
9
+ @color01: #EFEEF4;
10
+ @color02: #444;
11
+ @color03: #000;
12
+ @color04: #1CBBD8;
13
+ @color05: #fff;
14
+ @color06: #fff;
15
+
16
+ /* Body Variables */
17
+ @body-background-color: @color01;
18
+ @body-text-color : @color02;
19
+ @body-font-family : "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
20
+ @body-font-size : 15px;
21
+ @line-height-base : 1.428571429; // 20/14
22
+ @line-height-computed : floor((@body-font-size * @line-height-base)); // ~20px
23
+
24
+ /* Code Font */
25
+ @code-font-family : Inconsolata, monospace;
26
+
27
+ /* Nav Variables */
28
+ @nav-background-color : @color03;
29
+ @nav-link-color : #fff;
30
+ @nav-link-color-hover : @color04;
31
+ @nav-link-background : @color03;
32
+ @nav-link-background-hover : @color04;
33
+
34
+ /* Buttons */
35
+ @btn-robot-color : #fff;
36
+ @btn-robot-background : @color04;
37
+ @btn-run-color : #fff;
38
+ @btn-run-background : #C36148;
39
+ @btn-device-color : #fff;
40
+ @btn-device-background : #48CAAC;
41
+ @btn-connect-color : #fff;
42
+ @btn-connect-background : #DEC763;
43
+
44
+ /* Forms */
45
+ @input-border-color: #ccc;
46
+ @input-border-color-focus: @color04;
47
+
48
+ /* Connection Digits */
49
+ @connection-digits-color: @color04;
50
+
51
+ /* Widgets */
52
+ @modal-bg-color: #fff;
@@ -0,0 +1,121 @@
1
+ /* Color Palette */
2
+ @color01: #eeeef4;
3
+ @color02: #2C2C2C;
4
+ @color03: #fff;
5
+ @color04: #1cbcd8;
6
+ @color05: #ff6900;
7
+ @color06: #3e6372;
8
+
9
+ /* Body Variables */
10
+ @body-background-color: @color01;
11
+ @body-text-color : @color06;
12
+ @body-font-family : "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
13
+ @body-font-size : 15px;
14
+ @line-height-base : 1.428571429; // 20/14
15
+ @line-height-computed : floor((@body-font-size * @line-height-base)); // ~20px
16
+
17
+ /* Row */
18
+ @row-background-color : @color03;
19
+
20
+ /* Code Font */
21
+ @code-font-family : Inconsolata, monospace;
22
+
23
+ /* Nav Variables */
24
+ @nav-background-color : #2d4753;
25
+ @nav-link-color : #fff;
26
+ @nav-link-color-hover : @color02;
27
+ @nav-link-background : #1cbcd8;
28
+ @nav-link-background-hover : #1cbcd8;
29
+
30
+ /* Buttons */
31
+ @btn-robot-color : @color03;
32
+ @btn-robot-background : @color05;
33
+ @btn-run-color : @color03;
34
+ @btn-run-background : #CA5252;
35
+ @btn-device-color : @color03;
36
+ @btn-device-background : #40cfaa;
37
+ @btn-connect-color : @color03;
38
+ @btn-connect-background : #dccb5b;
39
+
40
+ /* Forms */
41
+ @input-border-color: #999;
42
+ @input-border-color-focus: #fff;
43
+
44
+ /* Connection Digits */
45
+ @connection-digits-color: #ff6900;
46
+
47
+ /* Widgets */
48
+ @modal-bg-color: #fff;
49
+
50
+ @import '../vendor/elements';
51
+ @import '../support/mixins';
52
+
53
+ body {
54
+ background-color: @body-background-color;
55
+ color: @body-text-color;
56
+ }
57
+
58
+ nav {
59
+ background: @nav-background-color;
60
+
61
+ .links a {
62
+ background: none;
63
+ padding: 8px 13px;
64
+ }
65
+ }
66
+
67
+ .row {
68
+ background-color: @row-background-color;
69
+ border-bottom: 3px solid #e1e1e5;
70
+ padding-top: 25px;
71
+ padding-bottom: 25px;
72
+ margin-bottom: 26px;
73
+ width: 980px;
74
+ .container-block();
75
+ }
76
+
77
+ .row-device {
78
+ border-top: none;
79
+ }
80
+
81
+ .robot {
82
+ .details {
83
+ span {
84
+ color: @connection-digits-color;
85
+ }
86
+
87
+ strong {
88
+ color: @body-text-color;
89
+ }
90
+ }
91
+ }
92
+
93
+ .btn-robot {
94
+ .button-variant(@btn-robot-color; @btn-robot-background; @btn-robot-color);
95
+ }
96
+
97
+ .btn-device, .btn-save {
98
+ .button-variant(@btn-device-color; @btn-device-background; @btn-device-color);
99
+ }
100
+
101
+ .btn-connect {
102
+ .button-variant(@btn-connect-color; @btn-connect-background; @btn-connect-color);
103
+ }
104
+
105
+ .btn-run, .btn-reset {
106
+ .button-variant(@btn-run-color; @btn-run-background; @btn-run-color);
107
+ }
108
+
109
+ .widgets {
110
+ .panel {
111
+ background: @modal-bg-color;
112
+
113
+ .panel-header {
114
+ border-bottom: 1px solid #E1E1E1;
115
+ }
116
+
117
+ .panel-footer {
118
+ border-top: 1px solid #E1E1E1;
119
+ }
120
+ }
121
+ }
@@ -0,0 +1,152 @@
1
+ /* Color Palette */
2
+ @color01: #343434;
3
+ @color02: #2C2C2C;
4
+ @color03: #fff;
5
+ @color04: #1cbcd8;
6
+ @color05: #fff;
7
+ @color06: #fff;
8
+
9
+ /* Body Variables */
10
+ @body-background-color: @color03;
11
+ @body-text-color : #666;
12
+ @body-font-family : "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
13
+ @body-font-size : 15px;
14
+ @line-height-base : 1.428571429; // 20/14
15
+ @line-height-computed : floor((@body-font-size * @line-height-base)); // ~20px
16
+
17
+ /* Row */
18
+ @row-background-color : @color03;
19
+
20
+ /* Code Font */
21
+ @code-font-family : Inconsolata, monospace;
22
+
23
+ /* Nav Variables */
24
+ @nav-background-color : #1cbcd8;
25
+ @nav-link-color : #fff;
26
+ @nav-link-color-hover : @color02;
27
+ @nav-link-background : #353535;
28
+ @nav-link-background-hover : @color04;
29
+
30
+ /* Buttons */
31
+ @btn-robot-color : @color01;
32
+ @btn-robot-background : #28d8f7;
33
+ @btn-run-color : @color01;
34
+ @btn-run-background : #CA5252;
35
+ @btn-device-color : @color01;
36
+ @btn-device-background : #15e2ad;
37
+ @btn-connect-color : @color01;
38
+ @btn-connect-background : #fbed8f;
39
+
40
+ /* Forms */
41
+ @input-border-color: #999;
42
+ @input-border-color-focus: #fff;
43
+
44
+ /* Connection Digits */
45
+ @connection-digits-color: #333;
46
+
47
+ /* Widgets */
48
+ @modal-bg-color: #fff;
49
+
50
+ @import '../vendor/elements';
51
+ @import '../support/mixins';
52
+
53
+ body {
54
+ background-color: @body-background-color;
55
+ color: @body-text-color;
56
+ }
57
+
58
+ nav {
59
+ background: @nav-background-color;
60
+
61
+ .links a {
62
+ background: none;
63
+ padding: 8px 13px;
64
+ &.active {
65
+ background: @nav-link-background;
66
+ color: #fff;
67
+ border: 2px solid @color04;
68
+ &:hover {
69
+ color: #fff !important;
70
+ }
71
+ }
72
+
73
+ &:hover {
74
+ color: @nav-link-color-hover !important;
75
+ }
76
+ }
77
+ }
78
+
79
+ .row {
80
+ background-color: @row-background-color;
81
+ border-top: 1px solid #E1E1E1;
82
+ padding-top: 25px;
83
+ padding-bottom: 25px;
84
+ width: 960px;
85
+ .container-block();
86
+
87
+ &:last-child {
88
+ border-bottom: 1px solid #E1E1E1;
89
+ }
90
+ }
91
+
92
+ .row-device {
93
+ border-top: none;
94
+ border-bottom: none !important;
95
+ }
96
+
97
+ .robot {
98
+ .details {
99
+ span {
100
+ color: @connection-digits-color;
101
+ }
102
+
103
+ strong {
104
+ color: @body-text-color;
105
+ }
106
+ }
107
+ }
108
+
109
+ .bullet-connections {
110
+ padding-left: 32px;
111
+ background: transparent url(../../images/bullet-connections-2.png) no-repeat left center;
112
+ }
113
+
114
+ .bullet-devices {
115
+ padding-left: 32px;
116
+ background: transparent url(../../images/bullet-devices-2.png) no-repeat left center;
117
+ }
118
+
119
+ .robot-devices {
120
+ background: transparent url(../../images/devices-image-2.png) no-repeat 21px center;
121
+ padding-left: 84px;
122
+ }
123
+
124
+ .btn-robot {
125
+ .button-variant(@btn-robot-color; @btn-robot-background; @btn-robot-color);
126
+ }
127
+
128
+ .btn-device, .btn-save {
129
+ .button-variant(@btn-device-color; @btn-device-background; @btn-device-color);
130
+ }
131
+
132
+ .btn-connect {
133
+ .button-variant(@btn-connect-color; @btn-connect-background; @btn-connect-color);
134
+ }
135
+
136
+ .btn-run, .btn-reset {
137
+ .button-variant(@btn-run-color; @btn-run-background; @btn-run-color);
138
+ }
139
+
140
+ .widgets {
141
+ .panel {
142
+ background: @modal-bg-color;
143
+
144
+ .panel-header {
145
+ border-bottom: 1px solid #E1E1E1;
146
+ }
147
+
148
+ .panel-footer {
149
+ border-top: 1px solid #E1E1E1;
150
+ }
151
+ }
152
+ }