robeaux 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.markdown +41 -61
- data/css/application.css +2 -0
- data/css/application.css.map +7 -0
- data/index.html +5 -39
- data/js/script.js +7 -0
- data/robeaux.gemspec +16 -8
- metadata +11 -104
- data/.gitignore +0 -1
- data/Gruntfile.js +0 -43
- data/Makefile +0 -22
- data/css/fonts.css +0 -59
- data/css/main.css +0 -1
- data/css/normalize.css +0 -425
- data/css/style.css +0 -558
- data/css/themes/artoo.css +0 -3
- data/css/themes/blackboard.css +0 -1
- data/css/themes/cylon.css +0 -3
- data/css/themes/dark.css +0 -1
- data/css/themes/gobot.css +0 -3
- data/css/themes/gray.css +0 -1
- data/css/themes/whiteboard.css +0 -1
- data/js/app.js +0 -1
- data/js/controllers/device_commands_ctrl.js +0 -81
- data/js/controllers/device_events_ctrl.js +0 -31
- data/js/controllers/index_ctrl.js +0 -9
- data/js/controllers/nav_ctrl.js +0 -5
- data/js/controllers/robot_commands_ctrl.js +0 -33
- data/js/controllers/robot_ctrl.js +0 -25
- data/js/controllers/themes_ctrl.js +0 -36
- data/js/controllers/widget_editor_ctrl.js +0 -44
- data/js/controllers/widgets_ctrl.js +0 -40
- data/js/directives/widget.js +0 -50
- data/js/router.js +0 -27
- data/js/services/themes.js +0 -90
- data/js/services/widgets.js +0 -86
- data/js/vendor/angular-route.min.js +0 -13
- data/js/vendor/angular.min.js +0 -212
- data/js/widgets/attitude.html +0 -32
- data/js/widgets/attitude.js +0 -27
- data/js/widgets/mindwave.html +0 -51
- data/js/widgets/mindwave.js +0 -23
- data/less/app.less +0 -21
- data/less/objects/buttons.less +0 -32
- data/less/objects/connections.less +0 -28
- data/less/objects/device.less +0 -30
- data/less/objects/forms.less +0 -29
- data/less/objects/list.less +0 -27
- data/less/objects/nav.less +0 -33
- data/less/objects/robot.less +0 -43
- data/less/objects/themes.less +0 -18
- data/less/objects/widgets.less +0 -85
- data/less/support/buttons.less +0 -39
- data/less/support/container.less +0 -9
- data/less/support/forms.less +0 -18
- data/less/support/mixins.less +0 -3
- data/less/themes/blackboard.less +0 -158
- data/less/themes/dark.less +0 -148
- data/less/themes/default.less +0 -52
- data/less/themes/gray.less +0 -121
- data/less/themes/whiteboard.less +0 -152
- data/less/vendor/elements.less +0 -156
- data/less/vendor/normalize.less +0 -425
- data/less/vendor/semantic-grid.less +0 -67
- data/less/views/devices.less +0 -47
- data/less/views/robots.less +0 -132
- data/less/views/themes.less +0 -31
- data/less/views/widgets.less +0 -50
- data/package.json +0 -21
- data/partials/device.html +0 -76
- data/partials/index.html +0 -17
- data/partials/robot.html +0 -127
- data/partials/themes.html +0 -42
- data/partials/widget_editor.html +0 -68
- data/test/controllers/device_commands_ctrl.js +0 -129
- data/test/controllers/device_events_ctrl.js +0 -82
- data/test/controllers/index_ctrl.js +0 -48
- data/test/controllers/nav_ctrl.js +0 -40
- data/test/controllers/robot_commands_ctrl.js +0 -127
- data/test/controllers/robot_ctrl.js +0 -62
- data/test/controllers/themes_ctrl.js +0 -96
- data/test/controllers/widget_editor_ctrl.js +0 -111
- data/test/controllers/widgets_ctrl.js +0 -74
- data/test/functions/functions.js +0 -30
- data/test/karma.conf.js +0 -76
- data/test/karma_test_all.conf.js +0 -23
- data/test/karma_test_controllers.conf.js +0 -19
- data/test/karma_test_functions.conf.js +0 -14
- data/test/karma_test_services.conf.js +0 -17
- data/test/services/themes.js +0 -122
- data/test/services/widgets.js +0 -104
- data/test/support/myDevice.json +0 -15
- data/test/support/myRobot.json +0 -31
- data/test/support/robots.json +0 -33
- data/test/support/themes.json +0 -9
- data/test/support/widgets.json +0 -18
- data/test/vendor/angular-mocks.js +0 -2163
- data/test/vendor/jasmine-jquery.js +0 -704
- data/test/vendor/jquery.js +0 -8755
@@ -1,67 +0,0 @@
|
|
1
|
-
/////////////////
|
2
|
-
// Semantic.gs // for LESS: http://lesscss.org/
|
3
|
-
/////////////////
|
4
|
-
|
5
|
-
// Defaults which you can freely override
|
6
|
-
// @column-width: 60;
|
7
|
-
// @gutter-width: 20;
|
8
|
-
// @columns: 12;
|
9
|
-
|
10
|
-
// Utility variable — you should never need to modify this
|
11
|
-
// @gridsystem-width: (@column-width*@columns) + (@gutter-width*@columns) * 1px;
|
12
|
-
|
13
|
-
// Set @total-width to 100% for a fluid layout
|
14
|
-
// @total-width: @gridsystem-width;
|
15
|
-
|
16
|
-
// Uncomment these two lines and the star-hack width/margin lines below to enable sub-pixel fix for IE6 & 7. See http://tylertate.com/blog/2012/01/05/subpixel-rounding.html
|
17
|
-
// @min-width: 960;
|
18
|
-
// @correction: 0.5 / @min-width * 100 * 1%;
|
19
|
-
|
20
|
-
// The micro clearfix http://nicolasgallagher.com/micro-clearfix-hack/
|
21
|
-
.clearfix() {
|
22
|
-
*zoom:1;
|
23
|
-
|
24
|
-
&:before,
|
25
|
-
&:after {
|
26
|
-
content:"";
|
27
|
-
display:table;
|
28
|
-
}
|
29
|
-
&:after {
|
30
|
-
clear:both;
|
31
|
-
}
|
32
|
-
}
|
33
|
-
|
34
|
-
|
35
|
-
//////////
|
36
|
-
// GRID //
|
37
|
-
//////////
|
38
|
-
|
39
|
-
/*
|
40
|
-
body {
|
41
|
-
width: 100%;
|
42
|
-
.clearfix;
|
43
|
-
}
|
44
|
-
*/
|
45
|
-
|
46
|
-
.row(@columns:@columns) {
|
47
|
-
display: block;
|
48
|
-
width: @total-width*((@gutter-width + @gridsystem-width)/@gridsystem-width);
|
49
|
-
margin: 0 @total-width*(((@gutter-width*.5)/@gridsystem-width)*-1);
|
50
|
-
// *width: @total-width*((@gutter-width + @gridsystem-width)/@gridsystem-width)-@correction;
|
51
|
-
// *margin: 0 @total-width*(((@gutter-width*.5)/@gridsystem-width)*-1)-@correction;
|
52
|
-
.clearfix();
|
53
|
-
}
|
54
|
-
.column(@x,@columns:@columns) {
|
55
|
-
display: inline;
|
56
|
-
float: left;
|
57
|
-
width: @total-width*((((@gutter-width+@column-width)*@x)-@gutter-width) / @gridsystem-width);
|
58
|
-
margin: 0 @total-width*((@gutter-width*.5)/@gridsystem-width);
|
59
|
-
// *width: @total-width*((((@gutter-width+@column-width)*@x)-@gutter-width) / @gridsystem-width)-@correction;
|
60
|
-
// *margin: 0 @total-width*((@gutter-width*.5)/@gridsystem-width)-@correction;
|
61
|
-
}
|
62
|
-
.push(@offset:1) {
|
63
|
-
margin-left: @total-width*(((@gutter-width+@column-width)*@offset) / @gridsystem-width) + @total-width*((@gutter-width*.5)/@gridsystem-width);
|
64
|
-
}
|
65
|
-
.pull(@offset:1) {
|
66
|
-
margin-right: @total-width*(((@gutter-width+@column-width)*@offset) / @gridsystem-width) + @total-width*((@gutter-width*.5)/@gridsystem-width);
|
67
|
-
}
|
data/less/views/devices.less
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
.device-detail {
|
2
|
-
.device-header {
|
3
|
-
.container();
|
4
|
-
h2{
|
5
|
-
.column(6);
|
6
|
-
}
|
7
|
-
}
|
8
|
-
|
9
|
-
.device-commands {
|
10
|
-
.column(6);
|
11
|
-
}
|
12
|
-
|
13
|
-
.device-events {
|
14
|
-
.column(6);
|
15
|
-
|
16
|
-
.input {
|
17
|
-
.column(6);
|
18
|
-
|
19
|
-
input {
|
20
|
-
.column(7);
|
21
|
-
padding: 8px 12px;
|
22
|
-
margin: 0 2.08166667% 0 0;
|
23
|
-
}
|
24
|
-
|
25
|
-
button {
|
26
|
-
.column(5);
|
27
|
-
}
|
28
|
-
}
|
29
|
-
|
30
|
-
.listeners-div {
|
31
|
-
.column(6);
|
32
|
-
margin-bottom: 30px;
|
33
|
-
table {
|
34
|
-
width: 100%;
|
35
|
-
}
|
36
|
-
|
37
|
-
}
|
38
|
-
|
39
|
-
.events {
|
40
|
-
width: 100%;
|
41
|
-
}
|
42
|
-
}
|
43
|
-
|
44
|
-
.remove {
|
45
|
-
width: 10%;
|
46
|
-
}
|
47
|
-
}
|
data/less/views/robots.less
DELETED
@@ -1,132 +0,0 @@
|
|
1
|
-
body {
|
2
|
-
background: @body-background-color;
|
3
|
-
font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
4
|
-
color: @body-text-color;
|
5
|
-
}
|
6
|
-
|
7
|
-
.container-wrap {
|
8
|
-
margin-bottom: 30px;
|
9
|
-
}
|
10
|
-
|
11
|
-
.container, .robot, .widgets, .connections, .themes {
|
12
|
-
width: @gridsystem-width;
|
13
|
-
padding:0;
|
14
|
-
.container();
|
15
|
-
}
|
16
|
-
|
17
|
-
.row {
|
18
|
-
background: #fff;
|
19
|
-
padding: 15px 0;
|
20
|
-
margin-top: 10px;
|
21
|
-
.clearfix();
|
22
|
-
}
|
23
|
-
|
24
|
-
.robot-details {
|
25
|
-
.column(12);
|
26
|
-
}
|
27
|
-
|
28
|
-
.robot {
|
29
|
-
|
30
|
-
h2 {
|
31
|
-
.column(12);
|
32
|
-
text-align: center;
|
33
|
-
margin-bottom: 15px;
|
34
|
-
}
|
35
|
-
|
36
|
-
.input, .results {
|
37
|
-
.column(6);
|
38
|
-
}
|
39
|
-
}
|
40
|
-
|
41
|
-
.robot-detail {
|
42
|
-
.widgets {
|
43
|
-
.new-widget-instance {
|
44
|
-
height: 100vh;
|
45
|
-
width: 100%;
|
46
|
-
}
|
47
|
-
|
48
|
-
.active-widgets {
|
49
|
-
|
50
|
-
.add-widget {
|
51
|
-
.column(3);
|
52
|
-
}
|
53
|
-
|
54
|
-
button {
|
55
|
-
font-size: 2em;
|
56
|
-
}
|
57
|
-
|
58
|
-
widget {
|
59
|
-
.column(9);
|
60
|
-
}
|
61
|
-
}
|
62
|
-
|
63
|
-
.panel {
|
64
|
-
margin: 10% auto;
|
65
|
-
width: 600px;
|
66
|
-
|
67
|
-
.type {
|
68
|
-
.column(5);
|
69
|
-
}
|
70
|
-
|
71
|
-
.attrs {
|
72
|
-
.column(7);
|
73
|
-
|
74
|
-
label {
|
75
|
-
.column(4);
|
76
|
-
}
|
77
|
-
|
78
|
-
input {
|
79
|
-
.column(8);
|
80
|
-
}
|
81
|
-
}
|
82
|
-
}
|
83
|
-
}
|
84
|
-
|
85
|
-
.robot-devices {
|
86
|
-
.column(6);
|
87
|
-
}
|
88
|
-
|
89
|
-
.robot-connection {
|
90
|
-
.column(6);
|
91
|
-
}
|
92
|
-
}
|
93
|
-
|
94
|
-
.commands, .device-commands {
|
95
|
-
.param {
|
96
|
-
.row(6);
|
97
|
-
height: 40px;
|
98
|
-
|
99
|
-
input[type='text'] {
|
100
|
-
.column(2,6);
|
101
|
-
}
|
102
|
-
|
103
|
-
select {
|
104
|
-
.column(1.5,6);
|
105
|
-
}
|
106
|
-
|
107
|
-
.close {
|
108
|
-
.column(0.5,6);
|
109
|
-
line-height: 34px;
|
110
|
-
&:hover {
|
111
|
-
color: #f00;
|
112
|
-
cursor: pointer;
|
113
|
-
}
|
114
|
-
}
|
115
|
-
}
|
116
|
-
|
117
|
-
.input>select, &>select {
|
118
|
-
width: 100%;
|
119
|
-
.container-block();
|
120
|
-
margin-bottom: 15px;
|
121
|
-
}
|
122
|
-
|
123
|
-
button {
|
124
|
-
width: 70%;
|
125
|
-
margin-top: 15px;
|
126
|
-
.container-block();
|
127
|
-
}
|
128
|
-
|
129
|
-
table {
|
130
|
-
width: 100%;
|
131
|
-
}
|
132
|
-
}
|
data/less/views/themes.less
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
.themes {
|
2
|
-
.sidebar {
|
3
|
-
.column(4);
|
4
|
-
}
|
5
|
-
|
6
|
-
.new-theme {
|
7
|
-
.row(4);
|
8
|
-
|
9
|
-
input {
|
10
|
-
.column(3,4);
|
11
|
-
}
|
12
|
-
|
13
|
-
button {
|
14
|
-
.column(1,4);
|
15
|
-
}
|
16
|
-
}
|
17
|
-
|
18
|
-
.editor {
|
19
|
-
.column(8);
|
20
|
-
|
21
|
-
textarea {
|
22
|
-
width: 100%;
|
23
|
-
height: 250px;
|
24
|
-
}
|
25
|
-
}
|
26
|
-
|
27
|
-
.footer {
|
28
|
-
.clearfix();
|
29
|
-
.column(12);
|
30
|
-
}
|
31
|
-
}
|
data/less/views/widgets.less
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
.widgets {
|
2
|
-
.sidebar {
|
3
|
-
.column(3);
|
4
|
-
}
|
5
|
-
|
6
|
-
.new-widget {
|
7
|
-
.row(3);
|
8
|
-
|
9
|
-
input {
|
10
|
-
.column(2, 3);
|
11
|
-
}
|
12
|
-
|
13
|
-
button {
|
14
|
-
.column(1, 3);
|
15
|
-
}
|
16
|
-
}
|
17
|
-
|
18
|
-
.new-attr {
|
19
|
-
.row(9);
|
20
|
-
|
21
|
-
input {
|
22
|
-
.column(5, 9);
|
23
|
-
}
|
24
|
-
|
25
|
-
button {
|
26
|
-
.column(3, 9);
|
27
|
-
}
|
28
|
-
}
|
29
|
-
|
30
|
-
.editor {
|
31
|
-
.column(9);
|
32
|
-
}
|
33
|
-
|
34
|
-
.attrs {
|
35
|
-
.column(9, 9);
|
36
|
-
}
|
37
|
-
|
38
|
-
.field {
|
39
|
-
.column(4.5, 9);
|
40
|
-
|
41
|
-
textarea {
|
42
|
-
width: 100%;
|
43
|
-
min-height: 250px;
|
44
|
-
}
|
45
|
-
}
|
46
|
-
|
47
|
-
.footer {
|
48
|
-
.column(12);
|
49
|
-
}
|
50
|
-
}
|
data/package.json
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "robeaux",
|
3
|
-
"version": "0.3.0",
|
4
|
-
"description": "An AngularJS interface for the CPPP-IO API spec",
|
5
|
-
"homepage": "http://cylonjs.com",
|
6
|
-
"bugs": "https://github.com/hybridgroup/robeaux/issues",
|
7
|
-
"author": "The Hybrid Group <cylonjs@hybridgroup.com>",
|
8
|
-
"repository": {
|
9
|
-
"type": "git",
|
10
|
-
"url": "https://github.com/hybridgroup/robeaux"
|
11
|
-
},
|
12
|
-
"license": "Apache 2.0",
|
13
|
-
"devDependencies": {
|
14
|
-
"grunt": "^0.4.5",
|
15
|
-
"grunt-contrib-less": "^0.12.0",
|
16
|
-
"grunt-contrib-watch": "^0.6.1",
|
17
|
-
"karma": "~0.12.16",
|
18
|
-
"karma-jasmine": "~0.1.5",
|
19
|
-
"karma-phantomjs-launcher": "~0.1"
|
20
|
-
}
|
21
|
-
}
|
data/partials/device.html
DELETED
@@ -1,76 +0,0 @@
|
|
1
|
-
<section class="device-detail">
|
2
|
-
<div class="row">
|
3
|
-
<div class="device-header">
|
4
|
-
<h2>Commands</h2>
|
5
|
-
<h2>Events</h2>
|
6
|
-
</div>
|
7
|
-
</div>
|
8
|
-
|
9
|
-
<div class="row row-device">
|
10
|
-
<div class="container">
|
11
|
-
<div class="device-commands" ng-controller="DeviceCommandsCtrl">
|
12
|
-
<select ng-model="command" ng-options="cmd for cmd in device.commands">
|
13
|
-
</select>
|
14
|
-
|
15
|
-
<div class="params">
|
16
|
-
<div class="param" ng-repeat="param in device.params">
|
17
|
-
<input placeholder='name' type="text" ng-model="param.name" ng-focus="addParam($last)">
|
18
|
-
<input placeholder='value' type="text" ng-model="param.value" ng-focus="addParam($last)">
|
19
|
-
<select ng-options="type for type in types" ng-model="param.type"></select>
|
20
|
-
<span class="close" ng-click="removeParam($index)">✖</span>
|
21
|
-
</div>
|
22
|
-
</div>
|
23
|
-
|
24
|
-
<button class="btn btn-run" ng-click="submit()" ng-disabled="isDisabled()">run</button>
|
25
|
-
|
26
|
-
<table class="results">
|
27
|
-
<thead>
|
28
|
-
<tr>
|
29
|
-
<th>Results</th>
|
30
|
-
</tr>
|
31
|
-
</thead>
|
32
|
-
<tbody>
|
33
|
-
<tr class="result" ng-repeat="entry in device.results">
|
34
|
-
<td>{{entry.result}}</td>
|
35
|
-
</tr>
|
36
|
-
</tbody>
|
37
|
-
</table>
|
38
|
-
</div>
|
39
|
-
|
40
|
-
<div class="device-events" ng-controller="DeviceEventsCtrl">
|
41
|
-
<div class="input">
|
42
|
-
<input type="text" ng-model="eventName" placeholder="event name">
|
43
|
-
<button class="btn btn-robot" ng-click="listen()">listen</button>
|
44
|
-
</div>
|
45
|
-
|
46
|
-
<div class="listeners-div">
|
47
|
-
<table class="listeners">
|
48
|
-
<thead>
|
49
|
-
<th colspan="2">Listeners</th>
|
50
|
-
</thead>
|
51
|
-
|
52
|
-
<tbody>
|
53
|
-
<tr class="listener" ng-repeat="(name, listeners) in device.listeners">
|
54
|
-
<td>{{name}}</td>
|
55
|
-
<td class="remove" ng-click="remove(name)">remove</td>
|
56
|
-
</tr>
|
57
|
-
</tbody>
|
58
|
-
</table>
|
59
|
-
</div>
|
60
|
-
|
61
|
-
<table class="events">
|
62
|
-
<thead>
|
63
|
-
<th colspan="2">Events</th>
|
64
|
-
</thead>
|
65
|
-
|
66
|
-
<tbody>
|
67
|
-
<tr class="event" ng-repeat="event in device.events">
|
68
|
-
<td>{{event.name}}</td>
|
69
|
-
<td>{{event.data}}</td>
|
70
|
-
</tr>
|
71
|
-
</tbody>
|
72
|
-
</table>
|
73
|
-
</div>
|
74
|
-
</div>
|
75
|
-
</div>
|
76
|
-
</section>
|
data/partials/index.html
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
<div class="robots">
|
2
|
-
<div class="row" ng-repeat="robot in robots" ng-click="details(robot.name)">
|
3
|
-
<div class="robot">
|
4
|
-
<div class="robot-details">
|
5
|
-
|
6
|
-
<span class="btn btn-robot btn-big">robot</span>
|
7
|
-
<span class="name">{{robot.name}}</span>
|
8
|
-
|
9
|
-
<div class="details">
|
10
|
-
<span class="bullet-connections"><strong>Connections</strong> {{robot.connections.length}}</span>
|
11
|
-
<span class="bullet-devices"><strong>Devices</strong> {{robot.devices.length}}</span>
|
12
|
-
</div>
|
13
|
-
|
14
|
-
</div>
|
15
|
-
</div>
|
16
|
-
</div>
|
17
|
-
</div>
|