bandshell 0.0.21 → 0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/bandshell/application/app.rb +10 -10
- data/lib/bandshell/application/public/images/elements/logomark.png +0 -0
- data/lib/bandshell/application/public/images/layout/pagebg.gif +0 -0
- data/lib/bandshell/application/public/images/layout/pagebg@2x.gif +0 -0
- data/lib/bandshell/application/public/{authenticate.js → javascripts/authenticate.js} +0 -0
- data/lib/bandshell/application/public/{network.js → javascripts/network.js} +2 -2
- data/lib/bandshell/application/public/{problem.js → javascripts/problem.js} +0 -0
- data/lib/bandshell/application/public/stylesheets/README +3 -0
- data/lib/bandshell/application/public/stylesheets/concerto-styles.css +5387 -0
- data/lib/bandshell/application/public/stylesheets/sass/common/concertocons.scss +122 -0
- data/lib/bandshell/application/public/stylesheets/sass/common/font-awesome.scss +1273 -0
- data/lib/bandshell/application/public/stylesheets/sass/common/mixins.scss +284 -0
- data/lib/bandshell/application/public/stylesheets/sass/common/reset.scss +125 -0
- data/lib/bandshell/application/public/stylesheets/sass/common/variables.scss +139 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/alerts-badges.scss +145 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/bootstrap-modals.scss +115 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/button-groups.scss +129 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/buttons.scss +236 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/datepicker.scss +337 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/display-blocks.scss +194 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/forms.scss +486 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/jquery.qtip2.scss +259 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/jquery.timepicker.css +8 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/jquery.timepicker.scss +8 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/lists-grid-stacked.scss +265 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/navs.scss +465 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/pagination.scss +64 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/scaffolding.scss +75 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/screenmodel.scss +66 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/sliders.scss +98 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/tables.scss +243 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/tiles.scss +169 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/topmenu.scss +218 -0
- data/lib/bandshell/application/public/stylesheets/sass/components/type.scss +259 -0
- data/lib/bandshell/application/public/stylesheets/sass/index-manifest.scss +32 -0
- data/lib/bandshell/application/public/stylesheets/sass/responsive/responsive-1200px-min.scss +31 -0
- data/lib/bandshell/application/public/stylesheets/sass/responsive/responsive-767px-max.scss +178 -0
- data/lib/bandshell/application/public/stylesheets/sass/responsive/responsive-768px-979px.scss +21 -0
- data/lib/bandshell/application/public/stylesheets/sass/responsive/responsive-utilities.scss +41 -0
- data/lib/bandshell/application/public/stylesheets/sass/views/setup.scss +5 -0
- data/lib/bandshell/application/public/stylesheets/sass/views/submissions.scss +36 -0
- data/lib/bandshell/application/public/stylesheets/sass/views/users.scss +15 -0
- data/lib/bandshell/application/views/authenticate.erb +15 -0
- data/lib/bandshell/application/views/main.erb +55 -0
- data/lib/bandshell/application/views/main.haml +2 -1
- data/lib/bandshell/application/views/netsettings.erb +147 -0
- data/lib/bandshell/application/views/netsettings.haml +1 -1
- data/lib/bandshell/application/views/password.erb +23 -0
- data/lib/bandshell/application/views/player_status.erb +16 -0
- data/lib/bandshell/application/views/problem.erb +20 -0
- data/lib/bandshell/application/views/setup.erb +58 -0
- metadata +52 -8
- data/lib/bandshell/application/public/stylesheet.css +0 -3
@@ -0,0 +1,32 @@
|
|
1
|
+
@import "common/variables";
|
2
|
+
@import "common/mixins";
|
3
|
+
@import "common/reset";
|
4
|
+
@import "common/font-awesome";
|
5
|
+
|
6
|
+
@import "components/scaffolding";
|
7
|
+
@import "components/type";
|
8
|
+
@import "components/forms";
|
9
|
+
@import "components/tables";
|
10
|
+
@import "components/navs";
|
11
|
+
@import "components/buttons";
|
12
|
+
@import "components/button-groups";
|
13
|
+
@import "components/pagination";
|
14
|
+
@import "components/jquery.timepicker";
|
15
|
+
@import "components/sliders";
|
16
|
+
@import "components/jquery.qtip2";
|
17
|
+
@import "components/display-blocks";
|
18
|
+
@import "components/lists-grid-stacked";
|
19
|
+
@import "components/topmenu";
|
20
|
+
@import "components/alerts-badges";
|
21
|
+
@import "components/screenmodel";
|
22
|
+
@import "components/datepicker";
|
23
|
+
@import "components/tiles";
|
24
|
+
|
25
|
+
@import "views/submissions";
|
26
|
+
@import "views/users";
|
27
|
+
@import "views/setup";
|
28
|
+
|
29
|
+
@import "responsive/responsive-utilities";
|
30
|
+
@import "responsive/responsive-767px-max";
|
31
|
+
@import "responsive/responsive-768px-979px";
|
32
|
+
@import "responsive/responsive-1200px-min";
|
@@ -0,0 +1,31 @@
|
|
1
|
+
// LARGE DESKTOP & UP
|
2
|
+
// ------------------
|
3
|
+
|
4
|
+
@media (min-width: 1200px) {
|
5
|
+
|
6
|
+
// Fixed grid
|
7
|
+
@include gridCore($gridColumnWidthLarge, $gridGutterWidthLarge);
|
8
|
+
|
9
|
+
// Fluid grid
|
10
|
+
@include gridFluid($fluidGridColumnWidthLarge, $fluidGridGutterWidthLarge);
|
11
|
+
|
12
|
+
// Input grid
|
13
|
+
@include gridInput($gridColumnWidthLarge, $gridGutterWidthLarge);
|
14
|
+
|
15
|
+
// Thumbnails
|
16
|
+
.thumbnails {
|
17
|
+
margin-left: -30px;
|
18
|
+
}
|
19
|
+
.thumbnails > li {
|
20
|
+
margin-left: 30px;
|
21
|
+
}
|
22
|
+
.row-fluid .thumbnails {
|
23
|
+
margin-left: 0;
|
24
|
+
}
|
25
|
+
|
26
|
+
.content-frame {
|
27
|
+
margin: 0 auto;
|
28
|
+
max-width: 1000px;
|
29
|
+
}
|
30
|
+
|
31
|
+
}
|
@@ -0,0 +1,178 @@
|
|
1
|
+
// UP TO LANDSCAPE PHONE
|
2
|
+
// ---------------------
|
3
|
+
|
4
|
+
@media (max-width: 480px) {
|
5
|
+
|
6
|
+
// Smooth out the collapsing/expanding nav
|
7
|
+
.nav-collapse {
|
8
|
+
-webkit-transform: translate3d(0, 0, 0); // activate the GPU
|
9
|
+
}
|
10
|
+
|
11
|
+
// Block level the page header small tag for readability
|
12
|
+
.page-header h1 small {
|
13
|
+
display: block;
|
14
|
+
line-height: $baseLineHeight;
|
15
|
+
}
|
16
|
+
|
17
|
+
// Update checkboxes for iOS
|
18
|
+
input[type="checkbox"], input[type="radio"] {
|
19
|
+
border: 1px solid #ccc;
|
20
|
+
}
|
21
|
+
|
22
|
+
// Remove the horizontal form styles
|
23
|
+
.form-horizontal .control-group > label {
|
24
|
+
float: none;
|
25
|
+
width: auto;
|
26
|
+
padding-top: 0;
|
27
|
+
text-align: left;
|
28
|
+
}
|
29
|
+
// Move over all input controls and content
|
30
|
+
.form-horizontal .controls {
|
31
|
+
margin-left: 0;
|
32
|
+
}
|
33
|
+
// Move the options list down to align with labels
|
34
|
+
.form-horizontal .control-list {
|
35
|
+
padding-top: 0; // has to be padding because margin collaspes
|
36
|
+
}
|
37
|
+
// Move over buttons in .form-actions to align with .controls
|
38
|
+
.form-horizontal .form-actions {
|
39
|
+
padding-left: 10px;
|
40
|
+
padding-right: 10px;
|
41
|
+
}
|
42
|
+
|
43
|
+
// Modals
|
44
|
+
.modal {
|
45
|
+
position: absolute;
|
46
|
+
top: 10px;
|
47
|
+
left: 10px;
|
48
|
+
right: 10px;
|
49
|
+
width: auto;
|
50
|
+
margin: 0;
|
51
|
+
&.fade.in { top: auto; }
|
52
|
+
}
|
53
|
+
.modal-header .close {
|
54
|
+
padding: 10px;
|
55
|
+
margin: -10px;
|
56
|
+
}
|
57
|
+
|
58
|
+
// Carousel
|
59
|
+
.carousel-caption {
|
60
|
+
position: static;
|
61
|
+
}
|
62
|
+
|
63
|
+
// fluid grid resets:
|
64
|
+
.row-fluid {
|
65
|
+
[class*="span"].collapse-right {
|
66
|
+
margin-right: 0px;
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
// nav resets:
|
71
|
+
.nav-drawer-left {
|
72
|
+
@include border-radius(12px !important);
|
73
|
+
border-right: solid 4px $grayLight !important;
|
74
|
+
margin-top: 0px;
|
75
|
+
|
76
|
+
> li:first-child > a {
|
77
|
+
@include border-radius(8px 8px 0 0 !important);
|
78
|
+
}
|
79
|
+
> li:last-child > a {
|
80
|
+
@include border-radius(0 0 8px 8px !important);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
}
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
// LANDSCAPE PHONE TO SMALL DESKTOP & PORTRAIT TABLET
|
89
|
+
// --------------------------------------------------
|
90
|
+
|
91
|
+
@media (max-width: 767px) {
|
92
|
+
|
93
|
+
// Negative indent the now static "fixed" navbar
|
94
|
+
.navbar-fixed-top, .navbar-fixed-bottom {
|
95
|
+
margin-left: -20px;
|
96
|
+
margin-right: -20px;
|
97
|
+
}
|
98
|
+
// Remove padding on container given explicit padding set on body
|
99
|
+
.container-fluid {
|
100
|
+
padding: 0;
|
101
|
+
}
|
102
|
+
|
103
|
+
// TYPOGRAPHY
|
104
|
+
// ----------
|
105
|
+
// Reset horizontal dl
|
106
|
+
.dl-horizontal {
|
107
|
+
dt {
|
108
|
+
float: none;
|
109
|
+
clear: none;
|
110
|
+
width: auto;
|
111
|
+
text-align: left;
|
112
|
+
}
|
113
|
+
dd {
|
114
|
+
margin-left: 0;
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
118
|
+
// GRID & CONTAINERS
|
119
|
+
// -----------------
|
120
|
+
// Remove width from containers
|
121
|
+
.container {
|
122
|
+
width: auto;
|
123
|
+
}
|
124
|
+
// Fluid rows
|
125
|
+
.row-fluid {
|
126
|
+
width: 100%;
|
127
|
+
}
|
128
|
+
// Undo negative margin on rows and thumbnails
|
129
|
+
.row, .thumbnails {
|
130
|
+
margin-left: 0;
|
131
|
+
}
|
132
|
+
// Make all grid-sized elements block level again
|
133
|
+
[class*="span"], .row-fluid [class*="span"] {
|
134
|
+
float: none;
|
135
|
+
display: block;
|
136
|
+
width: auto;
|
137
|
+
margin-left: 0;
|
138
|
+
}
|
139
|
+
|
140
|
+
// FORM FIELDS
|
141
|
+
// -----------
|
142
|
+
// Make span* classes full width
|
143
|
+
.input-large, .input-xlarge, .input-xxlarge, input[class*="span"], select[class*="span"], textarea[class*="span"], .uneditable-input {
|
144
|
+
@include input-block-level();
|
145
|
+
}
|
146
|
+
// But don't let it screw up prepend/append inputs
|
147
|
+
.input-prepend input, .input-append input, .input-prepend input[class*="span"], .input-append input[class*="span"] {
|
148
|
+
display: inline-block; // redeclare so they don't wrap to new lines
|
149
|
+
width: auto;
|
150
|
+
}
|
151
|
+
|
152
|
+
// fluid grid resets:
|
153
|
+
.row-fluid {
|
154
|
+
[class*="span"].collapse-right {
|
155
|
+
margin-right: 0px;
|
156
|
+
}
|
157
|
+
}
|
158
|
+
|
159
|
+
// nav resets:
|
160
|
+
.nav-drawer-left {
|
161
|
+
@include border-radius(12px !important);
|
162
|
+
border-right: solid 4px $grayLight !important;
|
163
|
+
margin-top: 0px;
|
164
|
+
|
165
|
+
> li:first-child > a {
|
166
|
+
@include border-radius(8px 8px 0 0 !important);
|
167
|
+
}
|
168
|
+
> li:last-child > a {
|
169
|
+
@include border-radius(0 0 8px 8px !important);
|
170
|
+
}
|
171
|
+
}
|
172
|
+
|
173
|
+
.approval-info {
|
174
|
+
width: auto !important;
|
175
|
+
margin: 0 auto;
|
176
|
+
}
|
177
|
+
|
178
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
// PORTRAIT TABLET TO DEFAULT DESKTOP
|
2
|
+
// ----------------------------------
|
3
|
+
|
4
|
+
@media (min-width: 768px) and (max-width: 979px) {
|
5
|
+
|
6
|
+
// Fixed grid
|
7
|
+
@include gridCore($gridColumnWidthTablet, $gridGutterWidthTablet);
|
8
|
+
|
9
|
+
// Fluid grid
|
10
|
+
@include gridFluid($fluidGridColumnWidthTablet, $fluidGridGutterWidthTablet);
|
11
|
+
|
12
|
+
// Input grid
|
13
|
+
@include gridInput($gridColumnWidthTablet, $gridGutterWidthTablet);
|
14
|
+
|
15
|
+
// No need to reset .thumbnails here since it's the same $gridGutterWidth
|
16
|
+
|
17
|
+
.approval-info {
|
18
|
+
width: auto !important;
|
19
|
+
margin: 0 auto;
|
20
|
+
}
|
21
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
// RESPONSIVE CLASSES
|
2
|
+
// ------------------
|
3
|
+
|
4
|
+
// Hide from screenreaders and browsers
|
5
|
+
// Credit: HTML5 Boilerplate
|
6
|
+
.hidden {
|
7
|
+
display: none;
|
8
|
+
visibility: hidden;
|
9
|
+
}
|
10
|
+
|
11
|
+
// Visibility utilities
|
12
|
+
|
13
|
+
// For desktops
|
14
|
+
.visible-phone { display: none !important; }
|
15
|
+
.visible-tablet { display: none !important; }
|
16
|
+
.visible-desktop { } // Don't set initially
|
17
|
+
.hidden-phone { }
|
18
|
+
.hidden-tablet { }
|
19
|
+
.hidden-desktop { display: none !important; }
|
20
|
+
|
21
|
+
// Phones only
|
22
|
+
@media (max-width: 767px) {
|
23
|
+
// Show
|
24
|
+
.visible-phone { display: inherit !important; } // Use inherit to restore previous behavior
|
25
|
+
// Hide
|
26
|
+
.hidden-phone { display: none !important; }
|
27
|
+
// Hide everything else
|
28
|
+
.hidden-desktop { display: inherit !important; }
|
29
|
+
.visible-desktop { display: none !important; }
|
30
|
+
}
|
31
|
+
|
32
|
+
// Tablets & small desktops only
|
33
|
+
@media (min-width: 768px) and (max-width: 979px) {
|
34
|
+
// Show
|
35
|
+
.visible-tablet { display: inherit !important; }
|
36
|
+
// Hide
|
37
|
+
.hidden-tablet { display: none !important; }
|
38
|
+
// Hide everything else
|
39
|
+
.hidden-desktop { display: inherit !important; }
|
40
|
+
.visible-desktop { display: none !important ; }
|
41
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
.approval {
|
2
|
+
text-align: center;
|
3
|
+
padding: 12px 0px;
|
4
|
+
}
|
5
|
+
|
6
|
+
.approval-info {
|
7
|
+
width: 800px !important;
|
8
|
+
margin: 0 auto;
|
9
|
+
}
|
10
|
+
|
11
|
+
.content-ticker {
|
12
|
+
background: $grayLightest;
|
13
|
+
border: solid 1px $grayLight;
|
14
|
+
text-align: center;
|
15
|
+
padding: 50px 20px 40px 20px;
|
16
|
+
@include border-radius(6px);
|
17
|
+
position: relative;
|
18
|
+
|
19
|
+
p {
|
20
|
+
font-size: 3em;
|
21
|
+
line-height: normal;
|
22
|
+
}
|
23
|
+
|
24
|
+
.quotemarks-top, .quotemarks-bottom {
|
25
|
+
position: absolute;
|
26
|
+
@include serif-font(bold, 30px, normal);
|
27
|
+
}
|
28
|
+
.quotemarks-top {
|
29
|
+
top: 15px;
|
30
|
+
left: 15px;
|
31
|
+
}
|
32
|
+
.quotemarks-bottom {
|
33
|
+
bottom: 0px;
|
34
|
+
right: 15px;
|
35
|
+
}
|
36
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<script src="/javascripts/authenticate.js"></script>
|
2
|
+
<h1>Concerto Player Authentication</h1>
|
3
|
+
<div id="no-js">
|
4
|
+
It looks like Javascript is disabled. The Concerto Display will not work.
|
5
|
+
</div>
|
6
|
+
<% unless @display_temp_token.nil? %>
|
7
|
+
<div id="instructions">
|
8
|
+
Please enter the following token when setting up the screen in the
|
9
|
+
Concerto Panel:
|
10
|
+
<%= @display_temp_token %>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
<div id="status">
|
14
|
+
Waiting for first update...
|
15
|
+
</div>
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8">
|
5
|
+
<title> - Concerto Player Network Configuration</title>
|
6
|
+
<meta name="application-name" content="Concerto Player Network Configuration"/>
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
8
|
+
<link rel="stylesheet" type="text/css" href="/stylesheets/concerto-styles.css">
|
9
|
+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
|
10
|
+
</head>
|
11
|
+
<body>
|
12
|
+
<%#= render :partial => "elements/topmenu_contents" %>
|
13
|
+
<%#= render :partial => "elements/render_flash" %>
|
14
|
+
|
15
|
+
<div id="main" class="container-fluid">
|
16
|
+
|
17
|
+
<section class="viewblock">
|
18
|
+
<header class="viewblock-header light-version">
|
19
|
+
<div class="default-padding" style="padding: 40px 12px; text-align: center;">
|
20
|
+
<h1 style="font-size: 5em; letter-spacing: -0.025em;">Welcome to Concerto Player.</h1>
|
21
|
+
<h3>Your Concerto Player has not yet been configured. Follow these instructions to get up and running fast.</h3>
|
22
|
+
</div>
|
23
|
+
</header>
|
24
|
+
|
25
|
+
<div class="viewblock-cont">
|
26
|
+
<div class="default-padding">
|
27
|
+
|
28
|
+
<div class="row-fluid">
|
29
|
+
<div class="span3">
|
30
|
+
|
31
|
+
</div>
|
32
|
+
<div class="span6">
|
33
|
+
|
34
|
+
<br />
|
35
|
+
<%= yield %>
|
36
|
+
<br />
|
37
|
+
|
38
|
+
</div>
|
39
|
+
<div class="span3">
|
40
|
+
|
41
|
+
</div>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
</div>
|
46
|
+
</section>
|
47
|
+
<br />
|
48
|
+
<div class="center">
|
49
|
+
<img src="/images/elements/logomark.png" alt="Concerto Player" width="70" />
|
50
|
+
</div>
|
51
|
+
|
52
|
+
</div>
|
53
|
+
|
54
|
+
</body>
|
55
|
+
</html>
|
@@ -1,6 +1,7 @@
|
|
1
|
+
!!! 5
|
1
2
|
%html
|
2
3
|
%head
|
3
4
|
%title="Concerto Player Network Configuration"
|
4
5
|
%script{:src=>"https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"}
|
5
|
-
%link{:rel=>"stylesheet", :type=>"text/css", :href=>"/
|
6
|
+
%link{:rel=>"stylesheet", :type=>"text/css", :href=>"/stylesheets/concerto-styles.css"}
|
6
7
|
%body=yield
|