zuora_connect_ui 0.1.0

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.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +39 -0
  4. data/app/assets/javascripts/zuora_connect_ui/input.js +9 -0
  5. data/app/assets/javascripts/zuora_connect_ui.js +30 -0
  6. data/app/assets/stylesheets/_zuora_connect_ui.scss +125 -0
  7. data/app/assets/stylesheets/zuora_connect_ui/base.scss +130 -0
  8. data/app/assets/stylesheets/zuora_connect_ui/box.scss +115 -0
  9. data/app/assets/stylesheets/zuora_connect_ui/breadcrumb_bar.scss +110 -0
  10. data/app/assets/stylesheets/zuora_connect_ui/buttons.scss +185 -0
  11. data/app/assets/stylesheets/zuora_connect_ui/datatables.scss +290 -0
  12. data/app/assets/stylesheets/zuora_connect_ui/grid_view.scss +174 -0
  13. data/app/assets/stylesheets/zuora_connect_ui/input.scss +267 -0
  14. data/app/assets/stylesheets/zuora_connect_ui/modal.scss +40 -0
  15. data/app/assets/stylesheets/zuora_connect_ui/tabs.scss +42 -0
  16. data/app/helpers/input_helper.rb +6 -0
  17. data/app/views/partials/_admin_menu.html.erb +22 -0
  18. data/app/views/partials/_filters.html.erb +34 -0
  19. data/app/views/partials/_table.html.erb +395 -0
  20. data/app/views/peek/views/_connect.html.erb +5 -0
  21. data/lib/peek/views/connect.rb +13 -0
  22. data/lib/zuora_connect_ui/version.rb +3 -0
  23. data/lib/zuora_connect_ui.rb +13 -0
  24. data/vendor/assets/awesome-bootstrap-checkbox/css/awesome-bootstrap-checkbox.scss +256 -0
  25. data/vendor/assets/icons/css/icons.scss +7118 -0
  26. data/vendor/assets/icons/img/FontAwesome.otf +0 -0
  27. data/vendor/assets/icons/img/fontawesome-webfont.eot +0 -0
  28. data/vendor/assets/icons/img/fontawesome-webfont.svg +685 -0
  29. data/vendor/assets/icons/img/fontawesome-webfont.ttf +0 -0
  30. data/vendor/assets/icons/img/fontawesome-webfont.woff +0 -0
  31. data/vendor/assets/icons/img/fontawesome-webfont.woff2 +0 -0
  32. data/vendor/assets/icons/img/glyphicons-filetypes-regular.eot +0 -0
  33. data/vendor/assets/icons/img/glyphicons-filetypes-regular.svg +158 -0
  34. data/vendor/assets/icons/img/glyphicons-filetypes-regular.woff +0 -0
  35. data/vendor/assets/icons/img/glyphicons-halfling-life_preserver.png +0 -0
  36. data/vendor/assets/icons/img/glyphicons-halflings-red.png +0 -0
  37. data/vendor/assets/icons/img/glyphicons-halflings-regular.eot +0 -0
  38. data/vendor/assets/icons/img/glyphicons-halflings-regular.svg +229 -0
  39. data/vendor/assets/icons/img/glyphicons-halflings-regular.ttf +0 -0
  40. data/vendor/assets/icons/img/glyphicons-halflings-regular.woff +0 -0
  41. data/vendor/assets/icons/img/glyphicons-halflings-white.png +0 -0
  42. data/vendor/assets/icons/img/glyphicons-halflings.png +0 -0
  43. data/vendor/assets/icons/img/glyphicons-regular.eot +0 -0
  44. data/vendor/assets/icons/img/glyphicons-regular.otf +0 -0
  45. data/vendor/assets/icons/img/glyphicons-regular.svg +498 -0
  46. data/vendor/assets/icons/img/glyphicons-regular.ttf +0 -0
  47. data/vendor/assets/icons/img/glyphicons-regular.woff +0 -0
  48. data/vendor/assets/icons/img/glyphicons-social-regular.eot +0 -0
  49. data/vendor/assets/icons/img/glyphicons-social-regular.svg +79 -0
  50. data/vendor/assets/icons/img/glyphicons-social-regular.ttf +0 -0
  51. data/vendor/assets/icons/img/glyphicons-social-regular.woff +0 -0
  52. data/vendor/assets/icons/img/glyphicons_search.png +0 -0
  53. data/vendor/assets/icons/img/zuora.eot +0 -0
  54. data/vendor/assets/icons/img/zuora.svg +557 -0
  55. data/vendor/assets/icons/img/zuora.ttf +0 -0
  56. data/vendor/assets/icons/img/zuora.woff +0 -0
  57. metadata +211 -0
@@ -0,0 +1,267 @@
1
+ .checkbox input[type="checkbox"] {
2
+ transform: scale(1.5);
3
+ margin-left: -18px;
4
+ margin-top: 3px;
5
+
6
+ + label::before {
7
+ top: .125rem;
8
+ transition: all .2s ease;
9
+ border-radius: .1rem;
10
+ border-color: #d3d7d8; // default is #ccc
11
+ }
12
+
13
+ + label:after {
14
+ font-family: webicons;
15
+ content: "\E936";
16
+ max-width: 0;
17
+ overflow: hidden;
18
+ line-height: 1.25rem;
19
+ color: $neutral-4;
20
+
21
+ -webkit-transition: all 0.4s ease;
22
+ -moz-transition: all 0.4s ease;
23
+ transition: all 0.4s ease;
24
+ }
25
+
26
+ &:checked {
27
+ + label:before {
28
+ background-color: $support-1;
29
+ border-color: $support-1;
30
+ }
31
+ + label:after {
32
+ max-width: 1rem;
33
+ }
34
+ }
35
+ }
36
+
37
+ .radio input[type="radio"] {
38
+ transform: scale(1.6);
39
+ margin-left: -17px;
40
+ margin-top: 5px;
41
+
42
+ + label {
43
+ cursor: normal;
44
+ &:before {
45
+ transition: all .4s ease;
46
+ height: 1rem;
47
+ width: 1rem;
48
+ }
49
+ &:after {
50
+ transform: none;
51
+ height: .4rem;
52
+ width: .4rem;
53
+ top: .3rem;
54
+ left: .3rem;
55
+ background-color: $neutral-4;
56
+ }
57
+ }
58
+
59
+ &:checked {
60
+ + label:before {
61
+ background-color: $support-1;
62
+ border-color: $support-1;
63
+ }
64
+ + label:after {
65
+ background-color: $neutral-4;
66
+ }
67
+ }
68
+ }
69
+
70
+ textarea {
71
+ box-sizing: content-box;
72
+ max-width: 100%;
73
+ min-height: 2.5rem;
74
+ }
75
+
76
+ input[type="file"] {
77
+ margin-left: .875rem;
78
+ line-height: 2.5;
79
+
80
+ + label {
81
+ position: absolute;
82
+ top: 0;
83
+ }
84
+ }
85
+
86
+ .form-group {
87
+ position: relative;
88
+ }
89
+
90
+ .zuo-textbox {
91
+ width: 100%;
92
+ border: 0;
93
+ margin-top: 1rem;
94
+ border-bottom: 1px solid #e9ebee;
95
+ color: $neutral-1;
96
+ background: transparent;
97
+ transition: border-color 0.2s;
98
+ padding: 0rem 0rem .375rem 0rem;
99
+
100
+ &:focus {
101
+ border-color: $support-1;
102
+ }
103
+
104
+ &[disabled="disabled"] {
105
+ cursor: not-allowed;
106
+ color: #6e7c89;
107
+ }
108
+ }
109
+
110
+ label.zuo-floating-label {
111
+ position: absolute;
112
+ top: 1.25rem;
113
+ display: block;
114
+ transition: 0.2s;
115
+ font-size: .875rem;
116
+ line-height: 1;
117
+ font-weight: normal;
118
+ color: #6e7c89;
119
+ margin-bottom: 0;
120
+ pointer-events: none;
121
+ }
122
+
123
+ .zuo-floating-label.floating,
124
+ .zuo-textbox:focus + .zuo-floating-label,
125
+ select + .select2-container--open + .zuo-floating-label {
126
+ font-size: .75rem;
127
+ top: 0;
128
+ }
129
+
130
+ .zuo-textbox:focus + .zuo-floating-label,
131
+ select + .select2-container--open + .zuo-floating-label {
132
+ color: $support-1;
133
+ }
134
+
135
+
136
+ .select2-container {
137
+ .select2-selection {
138
+ border: none;
139
+ }
140
+
141
+ .select2-dropdown {
142
+ border: 1px solid $neutral-shadow;
143
+ box-shadow: 0 1px 8px -1px $neutral-shadow;
144
+ border-radius: .25rem;
145
+ padding: .5rem 0;
146
+
147
+ .select2-results__option {
148
+ padding: .25rem .75rem;
149
+ }
150
+
151
+ .select2-results__option[aria-selected="true"] {
152
+ background-color: $support-1;
153
+ color: $neutral-4;
154
+ }
155
+
156
+ .select2-results__option--highlighted[aria-selected="false"] {
157
+ background-color: $neutral-3;
158
+ color: $neutral-1;
159
+ }
160
+ }
161
+
162
+ .select2-dropdown--below {
163
+ top: .5rem;
164
+ }
165
+ }
166
+
167
+ .select2-container--bootstrap {
168
+ .select2-selection {
169
+ box-shadow: none;
170
+ height: auto;
171
+ padding: 0 2rem .375rem 0;
172
+ margin-top: 1rem;
173
+ border-radius: 0;
174
+
175
+ &--multiple,
176
+ .select2-selection__rendered {
177
+ min-height: 1.25rem;
178
+ }
179
+
180
+ .select2-selection__choice {
181
+ margin: 0;
182
+ padding: 0;
183
+ padding-right: 1.25rem;
184
+ border: none;
185
+ position: relative;
186
+
187
+ .select2-selection__choice__remove {
188
+ width: 1rem;
189
+ height: 1rem;
190
+ font-size: .75rem;
191
+ line-height: 1;
192
+ position: absolute;
193
+ right: .25rem;
194
+ top: 3.5px;
195
+ text-align: center;
196
+ margin-right: 0;
197
+ border: 1px solid transparent;
198
+ font-weight: normal;
199
+
200
+ &:hover {
201
+ color: $support-1;
202
+ border-color: $support-1;
203
+ border-radius: 50%;
204
+ }
205
+ }
206
+ }
207
+
208
+ .select2-search--inline .select2-search__field {
209
+ height: unset;
210
+ padding-left: 0;
211
+ }
212
+
213
+ .select2-selection__arrow {
214
+ right: 0;
215
+ top: 4px;
216
+ width: 1.25rem;
217
+ line-height: 1;
218
+
219
+ &:before {
220
+ content: "\E90D";
221
+ font-family: webicons;
222
+ font-size: .75rem;
223
+ color: #a5a3b6;
224
+ transition: color .2s ease;
225
+ }
226
+
227
+ b {
228
+ display: none;
229
+ }
230
+ }
231
+ }
232
+
233
+ .select2-selection,
234
+ &.select2-container--focus .select2-selection,
235
+ &.select2-container--disabled .select2-selection {
236
+ border-bottom: 1px solid #e9ebee;
237
+ }
238
+
239
+ &.select2-container--open.select2-container--below .select2-selection {
240
+ border-bottom: 1px solid $support-1;
241
+
242
+ .select2-selection__arrow:before {
243
+ color: $support-1;
244
+ }
245
+ }
246
+
247
+ &.select2-container--disabled .select2-selection--single,
248
+ &.select2-container--disabled .select2-selection--multiple .select2-selection__choice {
249
+ background-color: transparent;
250
+
251
+ .select2-selection__rendered {
252
+ color: #6e7c89;
253
+ }
254
+ }
255
+
256
+ }
257
+
258
+ .select2-container.select2-container--focus .select2-selection, .select2-container--bootstrap.select2-container--open .select2-selection {
259
+ box-shadow: none;
260
+ }
261
+
262
+ .select2-container .select2-selection--single .select2-selection__arrow b {
263
+ border-color: $neutral-1 transparent transparent transparent;
264
+ }
265
+ .select2-container.select2-container--open .select2-selection .select2-selection__arrow b {
266
+ border-color: transparent transparent $neutral-1 transparent;
267
+ }
@@ -0,0 +1,40 @@
1
+ .modal-dialog {
2
+ min-width: 800px;
3
+
4
+ .select_container {
5
+ display: inline-block;
6
+ }
7
+ }
8
+
9
+ .modal-body {
10
+ padding: 0;
11
+ margin: 1rem 1rem 0 1rem;
12
+
13
+ // Fixes first div's top-margin getting ignored.
14
+ // (same trick that .form-group uses)
15
+ div:first-child::before {
16
+ content: " ";
17
+ display: table;
18
+ }
19
+
20
+ > div {
21
+ position: relative;
22
+ margin-bottom: 1rem;
23
+ }
24
+ }
25
+
26
+ .modal-footer {
27
+ padding: 1rem;
28
+ }
29
+
30
+ .form-horizontal .checkbox {
31
+ padding-top: 0;
32
+ }
33
+
34
+ #z_hub_modal {
35
+ div.popover {
36
+ &.left, &.top {
37
+ max-width:500px;
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,42 @@
1
+ /* Content Tabs */
2
+
3
+ .green-header {
4
+ padding: 1rem;
5
+
6
+ h1 {
7
+ line-height: 26px;
8
+ margin: 0;
9
+ }
10
+ }
11
+
12
+ ul.tab-header{
13
+ padding: 0 1rem;
14
+ border-bottom: 2px solid $neutral-2;
15
+
16
+ li {
17
+ display: inline-block;
18
+
19
+ a {
20
+ // non-hover tab styling
21
+ background-color: transparent; // Override bootstrap default
22
+ font-weight: 600;
23
+ padding: .5rem;
24
+ margin-right: 2rem;
25
+ margin-bottom: -3px; // pulls bottom border under the navbar bottom border
26
+
27
+ &:hover, &:focus {
28
+ background-color: transparent;
29
+ }
30
+ }
31
+
32
+ &.active a {
33
+ border-bottom: 4px solid $zuora-accent;
34
+ color: $neutral-1;
35
+ }
36
+
37
+ &:not(.active) a:hover {
38
+ border-bottom: 2px solid $primary;
39
+ padding-bottom: 9px; // pushes bottom border onto tabbar border
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,6 @@
1
+ # Helper methods for input tags
2
+ module InputHelper
3
+ def zuo_floating_label_class(value)
4
+ "zuo-floating-label #{value.nil? || value.empty? ? '' : 'floating'}"
5
+ end
6
+ end
@@ -0,0 +1,22 @@
1
+ <% if is_app_admin? %>
2
+ <div id='admin-menu' class="dropdown">
3
+ <% if defined?(peek_bar) && peek_bar %>
4
+ <%= render 'peek/bar' %>
5
+ <% else %>
6
+ <div id="peek" class="disabled">
7
+ <div class="wrapper">Peek is not enabled.</div>
8
+ </div>
9
+ <% end %>
10
+ <div id="admin-peek-btn" class="z-icon-dotted zuo-btn"></div>
11
+ <div class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
12
+ Admin
13
+ <span class="z-icon-desc"></span>
14
+ </div>
15
+ <ul class="dropdown-menu">
16
+ <%= yield %>
17
+ </ul>
18
+ <% end %>
19
+
20
+ <% content_for :scripts do %>
21
+ $('#admin-peek-btn').on('click', () => $('#peek').toggleClass('active'));
22
+ <% end %>
@@ -0,0 +1,34 @@
1
+ <% placeholder = defined?(table_filter["placeholder"]) ? table_filter["placeholder"] : "" %>
2
+ <% prompt = defined?(table_filter["prompt"]) ? table_filter["prompt"] : "" %>
3
+ <% index = defined?(index) ? index : nil %>
4
+ <% filter_count = defined?(filter_count) ? filter_count : nil %>
5
+ <% width = defined?(table_filter["width"]) ? table_filter["width"] : "100%" %>
6
+ <% allow_clear = defined?(table_filter["allow-clear"]) ? table_filter["allow-clear"] : true %>
7
+
8
+ <% if table_filter["type"] == "checkbox" %>
9
+ <div class="btn-group">
10
+ <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
11
+ <%= prompt %> <span class="caret"></span>
12
+ </button>
13
+ <ul class="dropdown-menu" >
14
+ <li>
15
+ <% table_filter["values"].each do |type| %>
16
+ <div class="checkbox checkbox-success" style='margin-left: 15px;'>
17
+ <input type="checkbox" name='<%= table_filter["name"].parameterize('_') %>[]' <%= table_filter["selection"].include?(type) ? 'checked' : ''%> value="<%= type %>"><label for="<%= table_filter["name"].parameterize('_') %>"><%= type %></label>
18
+ </div>
19
+ <% end %>
20
+ </li>
21
+ </ul>
22
+ </div>
23
+ <% elsif table_filter["type"] == "select" %>
24
+ <div class="btn-group <%= index > 0 ? 'select2-bootstrap-prepend' : '' %> <%= (index + 1 != filter_count && filter_count > 1) ? 'select2-bootstrap-append' : '' %>">
25
+ <%= select_tag(table_filter["name"].parameterize('_'), options_for_select( table_filter["values"], table_filter["selection"]), options = { :class => 'form-control input-sm', :prompt => prompt, :data =>{:placeholder => placeholder, "allow-clear" => allow_clear }, :style =>''}) %>
26
+ </div>
27
+ <% content_for :scripts do %>
28
+ $('#<%= "#{table_name}_content" %>').find('select[name="<%= table_filter["name"].parameterize('_') %>"]').select2({theme: "bootstrap", minimumResultsForSearch: Infinity, width: '<%= width %>', allowClear: <%= allow_clear %>})
29
+ <% end %>
30
+ <% elsif table_filter["type"] == "boolean" %>
31
+ <div class="btn-group" style="margin-left:10px">
32
+ <input type="checkbox" value="true" name='<%= table_filter["name"].parameterize('_') %>' <%= table_filter["selection"] == "true" ? 'checked' : ''%>><label for="<%= table_filter["name"].parameterize('_') %>"><%= table_filter["name"] %></label>
33
+ </div>
34
+ <% end %>