iatelier 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +7 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +6 -0
  7. data/Gemfile.lock +119 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +43 -0
  10. data/Rakefile +6 -0
  11. data/bin/console +14 -0
  12. data/bin/setup +8 -0
  13. data/iatelier-0.1.1.gem +0 -0
  14. data/iatelier.gemspec +43 -0
  15. data/lib/iatelier/Users/captainhusaynpinguin/Documents/ruby/iatelier/public/assets/js/analog.js +15347 -0
  16. data/lib/iatelier/Users/captainhusaynpinguin/Documents/ruby/iatelier/public/assets/js/selectize.js +12672 -0
  17. data/lib/iatelier/application.rb +317 -0
  18. data/lib/iatelier/assets/favicon.ico +0 -0
  19. data/lib/iatelier/assets/images/.gitkeep +0 -0
  20. data/lib/iatelier/assets/javascripts/iatelier-analog.js +15347 -0
  21. data/lib/iatelier/assets/javascripts/selectize.js +12672 -0
  22. data/lib/iatelier/assets/js/iatelier-analog.js +26 -0
  23. data/lib/iatelier/assets/js/selectize.js +3 -0
  24. data/lib/iatelier/assets/sass/backend.scss +4 -0
  25. data/lib/iatelier/assets/sass/blaze/blaze.colors.scss +30 -0
  26. data/lib/iatelier/assets/sass/blaze/blaze.scss +42 -0
  27. data/lib/iatelier/assets/sass/blaze/components.addresses.scss +12 -0
  28. data/lib/iatelier/assets/sass/blaze/components.alerts.scss +59 -0
  29. data/lib/iatelier/assets/sass/blaze/components.avatars.scss +36 -0
  30. data/lib/iatelier/assets/sass/blaze/components.badges.scss +60 -0
  31. data/lib/iatelier/assets/sass/blaze/components.breadcrumbs.scss +20 -0
  32. data/lib/iatelier/assets/sass/blaze/components.bubbles.scss +49 -0
  33. data/lib/iatelier/assets/sass/blaze/components.buttons.scss +77 -0
  34. data/lib/iatelier/assets/sass/blaze/components.calendars.scss +69 -0
  35. data/lib/iatelier/assets/sass/blaze/components.cards.scss +213 -0
  36. data/lib/iatelier/assets/sass/blaze/components.headings.scss +14 -0
  37. data/lib/iatelier/assets/sass/blaze/components.hints.scss +27 -0
  38. data/lib/iatelier/assets/sass/blaze/components.input-groups.scss +163 -0
  39. data/lib/iatelier/assets/sass/blaze/components.inputs.scss +144 -0
  40. data/lib/iatelier/assets/sass/blaze/components.links.scss +31 -0
  41. data/lib/iatelier/assets/sass/blaze/components.lists.scss +60 -0
  42. data/lib/iatelier/assets/sass/blaze/components.navs.scss +126 -0
  43. data/lib/iatelier/assets/sass/blaze/components.overlays.scss +26 -0
  44. data/lib/iatelier/assets/sass/blaze/components.pagination.scss +42 -0
  45. data/lib/iatelier/assets/sass/blaze/components.progress.scss +51 -0
  46. data/lib/iatelier/assets/sass/blaze/components.ranges.scss +114 -0
  47. data/lib/iatelier/assets/sass/blaze/components.tables.scss +88 -0
  48. data/lib/iatelier/assets/sass/blaze/components.tabs.scss +72 -0
  49. data/lib/iatelier/assets/sass/blaze/components.tags.scss +42 -0
  50. data/lib/iatelier/assets/sass/blaze/components.toggles.scss +74 -0
  51. data/lib/iatelier/assets/sass/blaze/components.tooltips.scss +96 -0
  52. data/lib/iatelier/assets/sass/blaze/components.trees.scss +47 -0
  53. data/lib/iatelier/assets/sass/blaze/components.typography.scss +94 -0
  54. data/lib/iatelier/assets/sass/blaze/generics.global.scss +13 -0
  55. data/lib/iatelier/assets/sass/blaze/mixins/_components.alerts.scss +6 -0
  56. data/lib/iatelier/assets/sass/blaze/mixins/_components.badges.scss +8 -0
  57. data/lib/iatelier/assets/sass/blaze/mixins/_components.buttons.scss +83 -0
  58. data/lib/iatelier/assets/sass/blaze/mixins/_components.inputs.scss +45 -0
  59. data/lib/iatelier/assets/sass/blaze/mixins/_components.links.scss +22 -0
  60. data/lib/iatelier/assets/sass/blaze/mixins/_components.lists.scss +10 -0
  61. data/lib/iatelier/assets/sass/blaze/mixins/_components.navs.scss +29 -0
  62. data/lib/iatelier/assets/sass/blaze/mixins/_components.ranges.scss +89 -0
  63. data/lib/iatelier/assets/sass/blaze/mixins/_components.tabs.scss +5 -0
  64. data/lib/iatelier/assets/sass/blaze/mixins/_components.toggles.scss +6 -0
  65. data/lib/iatelier/assets/sass/blaze/mixins/_components.typography.scss +25 -0
  66. data/lib/iatelier/assets/sass/blaze/mixins/_objects.containers.scss +10 -0
  67. data/lib/iatelier/assets/sass/blaze/mixins/_objects.grid.scss +113 -0
  68. data/lib/iatelier/assets/sass/blaze/mixins/_settings.global.scss +864 -0
  69. data/lib/iatelier/assets/sass/blaze/mixins/_tools.mediaqueries.scss +73 -0
  70. data/lib/iatelier/assets/sass/blaze/mixins/_utilities.alignment.scss +24 -0
  71. data/lib/iatelier/assets/sass/blaze/mixins/_utilities.boxing.scss +125 -0
  72. data/lib/iatelier/assets/sass/blaze/mixins/_utilities.visibility.scss +47 -0
  73. data/lib/iatelier/assets/sass/blaze/objects.containers.scss +29 -0
  74. data/lib/iatelier/assets/sass/blaze/objects.drawers.scss +80 -0
  75. data/lib/iatelier/assets/sass/blaze/objects.forms.scss +25 -0
  76. data/lib/iatelier/assets/sass/blaze/objects.grid.responsive.scss +124 -0
  77. data/lib/iatelier/assets/sass/blaze/objects.grid.scss +70 -0
  78. data/lib/iatelier/assets/sass/blaze/objects.images.scss +5 -0
  79. data/lib/iatelier/assets/sass/blaze/objects.media.scss +36 -0
  80. data/lib/iatelier/assets/sass/blaze/objects.modals.scss +58 -0
  81. data/lib/iatelier/assets/sass/blaze/objects.panels.scss +27 -0
  82. data/lib/iatelier/assets/sass/blaze/themes/blaze.example.scss +7 -0
  83. data/lib/iatelier/assets/sass/blaze/utilities.alignment.scss +22 -0
  84. data/lib/iatelier/assets/sass/blaze/utilities.boxing.scss +101 -0
  85. data/lib/iatelier/assets/sass/blaze/utilities.elevation.scss +19 -0
  86. data/lib/iatelier/assets/sass/blaze/utilities.sizes.scss +25 -0
  87. data/lib/iatelier/assets/sass/blaze/utilities.visibility.scss +45 -0
  88. data/lib/iatelier/assets/sass/iatelier.scss +30 -0
  89. data/lib/iatelier/assets/sass/selectize.scss +394 -0
  90. data/lib/iatelier/assets/sass/views/master.scss +5 -0
  91. data/lib/iatelier/assets/stylesheets/iatelier.css +534 -0
  92. data/lib/iatelier/assets/stylesheets/selectize.css +420 -0
  93. data/lib/iatelier/config/routes.rb +14 -0
  94. data/lib/iatelier/controllers/.gitkeep +0 -0
  95. data/lib/iatelier/controllers/books/create.rb +15 -0
  96. data/lib/iatelier/controllers/books/edit.rb +13 -0
  97. data/lib/iatelier/controllers/books/manage.rb +13 -0
  98. data/lib/iatelier/controllers/books/new.rb +15 -0
  99. data/lib/iatelier/controllers/books/update.rb +16 -0
  100. data/lib/iatelier/controllers/ileaf.rb +23 -0
  101. data/lib/iatelier/mix-manifest.json +6 -0
  102. data/lib/iatelier/models/.gitkeep +0 -0
  103. data/lib/iatelier/models/application_record.rb +3 -0
  104. data/lib/iatelier/models/book.rb +176 -0
  105. data/lib/iatelier/models/dimension.rb +28 -0
  106. data/lib/iatelier/models/dimensions/description.rb +4 -0
  107. data/lib/iatelier/models/dimensions/slug.rb +13 -0
  108. data/lib/iatelier/models/dimensions/subtitle.rb +4 -0
  109. data/lib/iatelier/models/dimensions/thumbnail.rb +4 -0
  110. data/lib/iatelier/models/dimensions/timestamp.rb +4 -0
  111. data/lib/iatelier/models/dimensions/title.rb +5 -0
  112. data/lib/iatelier/models/grouping.rb +28 -0
  113. data/lib/iatelier/models/keyword.rb +8 -0
  114. data/lib/iatelier/models/people.rb +11 -0
  115. data/lib/iatelier/models/transi_.php +262 -0
  116. data/lib/iatelier/package.json +35 -0
  117. data/lib/iatelier/templates/application.html.erb +65 -0
  118. data/lib/iatelier/templates/books/_engine.html.haml +31 -0
  119. data/lib/iatelier/templates/books/edit.html.haml +8 -0
  120. data/lib/iatelier/templates/books/grouping/_bundles.html.haml +0 -0
  121. data/lib/iatelier/templates/books/grouping/_keywords.html.haml +5 -0
  122. data/lib/iatelier/templates/books/grouping/_peoples.html.haml +7 -0
  123. data/lib/iatelier/templates/books/manage.html.haml +12 -0
  124. data/lib/iatelier/templates/books/new.html.haml +7 -0
  125. data/lib/iatelier/templates/books/update.html.haml +0 -0
  126. data/lib/iatelier/version.rb +3 -0
  127. data/lib/iatelier/views/application_layout.rb +7 -0
  128. data/lib/iatelier/views/books/create.rb +9 -0
  129. data/lib/iatelier/views/books/edit.rb +9 -0
  130. data/lib/iatelier/views/books/manage.rb +9 -0
  131. data/lib/iatelier/views/books/new.rb +9 -0
  132. data/lib/iatelier/views/books/update.rb +9 -0
  133. data/lib/iatelier/webpack.mix.js +19 -0
  134. data/lib/iatelier.rb +325 -0
  135. metadata +250 -0
@@ -0,0 +1,420 @@
1
+ @charset "UTF-8";
2
+
3
+ /**
4
+ * selectize.default.css (v0.12.4) - Default Theme
5
+ * Copyright (c) 2013–2015 Brian Reavis & contributors
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
8
+ * file except in compliance with the License. You may obtain a copy of the License at:
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software distributed under
12
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
13
+ * ANY KIND, either express or implied. See the License for the specific language
14
+ * governing permissions and limitations under the License.
15
+ *
16
+ * @author Brian Reavis <brian@thirdroute.com>
17
+ */
18
+
19
+ .selectize-control.plugin-drag_drop.multi > .selectize-input > div.ui-sortable-placeholder {
20
+ visibility: visible !important;
21
+ background: #f2f2f2 !important;
22
+ background: rgba(0, 0, 0, 0.06) !important;
23
+ border: 0 none !important;
24
+ box-shadow: inset 0 0 12px 4px #ffffff;
25
+ }
26
+
27
+ .selectize-control.plugin-drag_drop .ui-sortable-placeholder::after {
28
+ content: "!";
29
+ visibility: hidden;
30
+ }
31
+
32
+ .selectize-control.plugin-drag_drop .ui-sortable-helper {
33
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
34
+ }
35
+
36
+ .selectize-dropdown-header {
37
+ position: relative;
38
+ padding: 5px 8px;
39
+ border-bottom: 1px solid #d0d0d0;
40
+ background: #f8f8f8;
41
+ border-radius: 3px 3px 0 0;
42
+ }
43
+
44
+ .selectize-dropdown-header-close {
45
+ position: absolute;
46
+ right: 8px;
47
+ top: 50%;
48
+ color: #303030;
49
+ opacity: 0.4;
50
+ margin-top: -12px;
51
+ line-height: 20px;
52
+ font-size: 20px !important;
53
+ }
54
+
55
+ .selectize-dropdown-header-close:hover {
56
+ color: #000000;
57
+ }
58
+
59
+ .selectize-dropdown.plugin-optgroup_columns .optgroup {
60
+ border-right: 1px solid #f2f2f2;
61
+ border-top: 0 none;
62
+ float: left;
63
+ box-sizing: border-box;
64
+ }
65
+
66
+ .selectize-dropdown.plugin-optgroup_columns .optgroup:last-child {
67
+ border-right: 0 none;
68
+ }
69
+
70
+ .selectize-dropdown.plugin-optgroup_columns .optgroup:before {
71
+ display: none;
72
+ }
73
+
74
+ .selectize-dropdown.plugin-optgroup_columns .optgroup-header {
75
+ border-top: 0 none;
76
+ }
77
+
78
+ .selectize-control.plugin-remove_button [data-value] {
79
+ position: relative;
80
+ padding-right: 24px !important;
81
+ }
82
+
83
+ .selectize-control.plugin-remove_button [data-value] .remove {
84
+ z-index: 1;
85
+ /* fixes ie bug (see #392) */
86
+ position: absolute;
87
+ top: 0;
88
+ right: 0;
89
+ bottom: 0;
90
+ width: 17px;
91
+ text-align: center;
92
+ font-weight: bold;
93
+ font-size: 12px;
94
+ color: inherit;
95
+ text-decoration: none;
96
+ vertical-align: middle;
97
+ display: inline-block;
98
+ padding: 2px 0 0 0;
99
+ border-left: 1px solid #0073bb;
100
+ border-radius: 0 2px 2px 0;
101
+ box-sizing: border-box;
102
+ }
103
+
104
+ .selectize-control.plugin-remove_button [data-value] .remove:hover {
105
+ background: rgba(0, 0, 0, 0.05);
106
+ }
107
+
108
+ .selectize-control.plugin-remove_button [data-value].active .remove {
109
+ border-left-color: #00578d;
110
+ }
111
+
112
+ .selectize-control.plugin-remove_button .disabled [data-value] .remove:hover {
113
+ background: none;
114
+ }
115
+
116
+ .selectize-control.plugin-remove_button .disabled [data-value] .remove {
117
+ border-left-color: #aaaaaa;
118
+ }
119
+
120
+ .selectize-control.plugin-remove_button .remove-single {
121
+ position: absolute;
122
+ right: 28px;
123
+ top: 6px;
124
+ font-size: 23px;
125
+ }
126
+
127
+ .selectize-control {
128
+ position: relative;
129
+ }
130
+
131
+ .selectize-dropdown,
132
+ .selectize-input,
133
+ .selectize-input input {
134
+ color: #303030;
135
+ font-family: inherit;
136
+ font-size: 13px;
137
+ line-height: 18px;
138
+ -webkit-font-smoothing: inherit;
139
+ }
140
+
141
+ .selectize-input,
142
+ .selectize-control.single .selectize-input.input-active {
143
+ background: #ffffff;
144
+ cursor: text;
145
+ display: inline-block;
146
+ }
147
+
148
+ .selectize-input {
149
+ border: 1px solid #d0d0d0;
150
+ padding: 8px 8px;
151
+ display: inline-block;
152
+ width: 100%;
153
+ overflow: hidden;
154
+ position: relative;
155
+ z-index: 1;
156
+ box-sizing: border-box;
157
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1);
158
+ border-radius: 3px;
159
+ }
160
+
161
+ .selectize-control.multi .selectize-input.has-items {
162
+ padding: 5px 8px 2px;
163
+ }
164
+
165
+ .selectize-input.full {
166
+ background-color: #ffffff;
167
+ }
168
+
169
+ .selectize-input.disabled,
170
+ .selectize-input.disabled * {
171
+ cursor: default !important;
172
+ }
173
+
174
+ .selectize-input.focus {
175
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
176
+ }
177
+
178
+ .selectize-input.dropdown-active {
179
+ border-radius: 3px 3px 0 0;
180
+ }
181
+
182
+ .selectize-input > * {
183
+ vertical-align: baseline;
184
+ display: -moz-inline-stack;
185
+ display: inline-block;
186
+ zoom: 1;
187
+ *display: inline;
188
+ }
189
+
190
+ .selectize-control.multi .selectize-input > div {
191
+ cursor: pointer;
192
+ margin: 0 3px 3px 0;
193
+ padding: 2px 6px;
194
+ background: #1da7ee;
195
+ color: #ffffff;
196
+ border: 1px solid #0073bb;
197
+ }
198
+
199
+ .selectize-control.multi .selectize-input > div.active {
200
+ background: #92c836;
201
+ color: #ffffff;
202
+ border: 1px solid #00578d;
203
+ }
204
+
205
+ .selectize-control.multi .selectize-input.disabled > div,
206
+ .selectize-control.multi .selectize-input.disabled > div.active {
207
+ color: #ffffff;
208
+ background: #d2d2d2;
209
+ border: 1px solid #aaaaaa;
210
+ }
211
+
212
+ .selectize-input > input {
213
+ display: inline-block !important;
214
+ padding: 0 !important;
215
+ min-height: 0 !important;
216
+ max-height: none !important;
217
+ max-width: 100% !important;
218
+ margin: 0 1px !important;
219
+ text-indent: 0 !important;
220
+ border: 0 none !important;
221
+ background: none !important;
222
+ line-height: inherit !important;
223
+ -webkit-user-select: auto !important;
224
+ box-shadow: none !important;
225
+ }
226
+
227
+ .selectize-input > input::-ms-clear {
228
+ display: none;
229
+ }
230
+
231
+ .selectize-input > input:focus {
232
+ outline: none !important;
233
+ }
234
+
235
+ .selectize-input::after {
236
+ content: " ";
237
+ display: block;
238
+ clear: left;
239
+ }
240
+
241
+ .selectize-input.dropdown-active::before {
242
+ content: " ";
243
+ display: block;
244
+ position: absolute;
245
+ background: #f0f0f0;
246
+ height: 1px;
247
+ bottom: 0;
248
+ left: 0;
249
+ right: 0;
250
+ }
251
+
252
+ .selectize-dropdown {
253
+ position: absolute;
254
+ z-index: 10;
255
+ border: 1px solid #d0d0d0;
256
+ background: #ffffff;
257
+ margin: -1px 0 0 0;
258
+ border-top: 0 none;
259
+ box-sizing: border-box;
260
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
261
+ border-radius: 0 0 3px 3px;
262
+ }
263
+
264
+ .selectize-dropdown [data-selectable] {
265
+ cursor: pointer;
266
+ overflow: hidden;
267
+ }
268
+
269
+ .selectize-dropdown [data-selectable] .highlight {
270
+ background: rgba(125, 168, 208, 0.2);
271
+ border-radius: 1px;
272
+ }
273
+
274
+ .selectize-dropdown [data-selectable],
275
+ .selectize-dropdown .optgroup-header {
276
+ padding: 5px 8px;
277
+ }
278
+
279
+ .selectize-dropdown .optgroup:first-child .optgroup-header {
280
+ border-top: 0 none;
281
+ }
282
+
283
+ .selectize-dropdown .optgroup-header {
284
+ color: #303030;
285
+ background: #ffffff;
286
+ cursor: default;
287
+ }
288
+
289
+ .selectize-dropdown .active {
290
+ background-color: #f5fafd;
291
+ color: #495c68;
292
+ }
293
+
294
+ .selectize-dropdown .active.create {
295
+ color: #495c68;
296
+ }
297
+
298
+ .selectize-dropdown .create {
299
+ color: rgba(48, 48, 48, 0.5);
300
+ }
301
+
302
+ .selectize-dropdown-content {
303
+ overflow-y: auto;
304
+ overflow-x: hidden;
305
+ max-height: 200px;
306
+ -webkit-overflow-scrolling: touch;
307
+ }
308
+
309
+ .selectize-control.single .selectize-input,
310
+ .selectize-control.single .selectize-input input {
311
+ cursor: pointer;
312
+ }
313
+
314
+ .selectize-control.single .selectize-input.input-active,
315
+ .selectize-control.single .selectize-input.input-active input {
316
+ cursor: text;
317
+ }
318
+
319
+ .selectize-control.single .selectize-input:after {
320
+ content: " ";
321
+ display: block;
322
+ position: absolute;
323
+ top: 50%;
324
+ right: 15px;
325
+ margin-top: -3px;
326
+ width: 0;
327
+ height: 0;
328
+ border-style: solid;
329
+ border-width: 5px 5px 0 5px;
330
+ border-color: #808080 transparent transparent transparent;
331
+ }
332
+
333
+ .selectize-control.single .selectize-input.dropdown-active:after {
334
+ margin-top: -4px;
335
+ border-width: 0 5px 5px 5px;
336
+ border-color: transparent transparent #808080 transparent;
337
+ }
338
+
339
+ .selectize-control.rtl.single .selectize-input:after {
340
+ left: 15px;
341
+ right: auto;
342
+ }
343
+
344
+ .selectize-control.rtl .selectize-input > input {
345
+ margin: 0 4px 0 -2px !important;
346
+ }
347
+
348
+ .selectize-control .selectize-input.disabled {
349
+ opacity: 0.5;
350
+ background-color: #fafafa;
351
+ }
352
+
353
+ .selectize-control.multi .selectize-input.has-items {
354
+ padding-left: 5px;
355
+ padding-right: 5px;
356
+ }
357
+
358
+ .selectize-control.multi .selectize-input.disabled [data-value] {
359
+ color: #999;
360
+ text-shadow: none;
361
+ background: none;
362
+ box-shadow: none;
363
+ }
364
+
365
+ .selectize-control.multi .selectize-input.disabled [data-value],
366
+ .selectize-control.multi .selectize-input.disabled [data-value] .remove {
367
+ border-color: #e6e6e6;
368
+ }
369
+
370
+ .selectize-control.multi .selectize-input.disabled [data-value] .remove {
371
+ background: none;
372
+ }
373
+
374
+ .selectize-control.multi .selectize-input [data-value] {
375
+ text-shadow: 0 1px 0 rgba(0, 51, 83, 0.3);
376
+ border-radius: 3px;
377
+ background-color: #1b9dec;
378
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#1da7ee), to(#178ee9));
379
+ background-image: linear-gradient(to bottom, #1da7ee, #178ee9);
380
+ background-repeat: repeat-x;
381
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff1da7ee", endColorstr="#ff178ee9", GradientType=0);
382
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), inset 0 1px rgba(255, 255, 255, 0.03);
383
+ }
384
+
385
+ .selectize-control.multi .selectize-input [data-value].active {
386
+ background-color: #0085d4;
387
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#008fd8), to(#0075cf));
388
+ background-image: linear-gradient(to bottom, #008fd8, #0075cf);
389
+ background-repeat: repeat-x;
390
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff008fd8", endColorstr="#ff0075cf", GradientType=0);
391
+ }
392
+
393
+ .selectize-control.single .selectize-input {
394
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.8);
395
+ background-color: #f9f9f9;
396
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fefefe), to(#f2f2f2));
397
+ background-image: linear-gradient(to bottom, #fefefe, #f2f2f2);
398
+ background-repeat: repeat-x;
399
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#fffefefe", endColorstr="#fff2f2f2", GradientType=0);
400
+ }
401
+
402
+ .selectize-control.single .selectize-input,
403
+ .selectize-dropdown.single {
404
+ border-color: #b8b8b8;
405
+ }
406
+
407
+ .selectize-dropdown .optgroup-header {
408
+ padding-top: 7px;
409
+ font-weight: bold;
410
+ font-size: 0.85em;
411
+ }
412
+
413
+ .selectize-dropdown .optgroup {
414
+ border-top: 1px solid #f0f0f0;
415
+ }
416
+
417
+ .selectize-dropdown .optgroup:first-child {
418
+ border-top: 0 none;
419
+ }
420
+
@@ -0,0 +1,14 @@
1
+ # Configure your routes here
2
+ # See: https://guides.hanamirb.org/routing/overview
3
+ #
4
+ # Example:
5
+
6
+ namespace 'iatelier/analog' do
7
+ get '/:book_type', to: 'books#manage'
8
+ get '/:book_type/new', to: 'books#new'
9
+ post '/:book_type', to: 'books#create'
10
+ get '/:book_type/:id/edit', to: 'books#edit'
11
+ patch '/:book_type/:id', to: 'books#update'
12
+ end
13
+
14
+ get '/*', to: Iatelier::Controllers::Ileaf
File without changes
@@ -0,0 +1,15 @@
1
+ module Iatelier
2
+ module Controllers
3
+ module Books
4
+ class Create
5
+ include Iatelier::Action
6
+
7
+ def call(params)
8
+ @book = Object.const_get(params[:book_type].capitalize).new
9
+ @book.save
10
+ @book.create(params)
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ module Iatelier
2
+ module Controllers
3
+ module Books
4
+ class Edit
5
+ include Iatelier::Action
6
+ expose :book
7
+ def call(params)
8
+ @book = Object.const_get(params[:book_type].capitalize).find(params[:id])
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module Iatelier
2
+ module Controllers
3
+ module Books
4
+ class Manage
5
+ include Iatelier::Action
6
+ expose :books
7
+ def call(params)
8
+ @books = Object.const_get(params[:book_type].capitalize).all
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ module Iatelier
2
+ module Controllers
3
+ module Books
4
+ class New
5
+ include Iatelier::Action
6
+ expose :book
7
+ expose :book_type
8
+ def call(params)
9
+ @book_type = params[:book_type].capitalize;
10
+ @book = Object.const_get(@book_type).new
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ module Iatelier
2
+ module Controllers
3
+ module Books
4
+ class Update
5
+ include Iatelier::Action
6
+
7
+ def call(params)
8
+ @book = Object.const_get(params[:book_type].capitalize).find(params[:id])
9
+ @book.revise(params)
10
+ @book.save
11
+ self.body = @book.save.to_json
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,23 @@
1
+ require 'kramdown'
2
+
3
+ module Iatelier
4
+ module Controllers
5
+ class Ileaf
6
+ include Iatelier::Action
7
+
8
+ before :checkfile!
9
+
10
+ def call(params)
11
+ @storage_location = './storage/leaves' + request.path_info.to_s + '.md'
12
+ puts @storage_location
13
+ self.body = ::Kramdown::Document.new(::File.open(@storage_location, external_encoding: "UTF-8").read).to_html
14
+ end
15
+
16
+ private
17
+ def checkfile!
18
+ @storage_location = Hanami.root.to_s + '/storage/leaves' + request.path_info.to_s + '.md'
19
+ halt 404 if !::File.exists? @storage_location
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,6 @@
1
+ {
2
+ "/assets/javascripts/iatelier-analog.js": "/assets/javascripts/iatelier-analog.js",
3
+ "/assets/stylesheets/selectize.css": "/assets/stylesheets/selectize.css",
4
+ "/assets/stylesheets/iatelier.css": "/assets/stylesheets/iatelier.css",
5
+ "/assets/javascripts/selectize.js": "/assets/javascripts/selectize.js"
6
+ }
File without changes
@@ -0,0 +1,3 @@
1
+ class ApplicationRecord < ActiveRecord::Base
2
+ self.abstract_class = true
3
+ end