quadro 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (249) hide show
  1. checksums.yaml +15 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +194 -0
  4. data/Rakefile +39 -0
  5. data/app/assets/images/quadro/close.png +0 -0
  6. data/app/assets/images/quadro/favicon.ico +0 -0
  7. data/app/assets/images/quadro/loading.gif +0 -0
  8. data/app/assets/images/quadro/missing/cover/large.png +0 -0
  9. data/app/assets/images/quadro/missing/cover/medium.png +0 -0
  10. data/app/assets/images/quadro/missing/cover/small.png +0 -0
  11. data/app/assets/images/quadro/missing/cover/thumb.png +0 -0
  12. data/app/assets/images/quadro/missing/image/large.png +0 -0
  13. data/app/assets/images/quadro/missing/image/medium.png +0 -0
  14. data/app/assets/images/quadro/missing/image/small.png +0 -0
  15. data/app/assets/images/quadro/missing/image/thumb.png +0 -0
  16. data/app/assets/images/quadro/missing/slide/large.png +0 -0
  17. data/app/assets/images/quadro/missing/slide/medium.png +0 -0
  18. data/app/assets/images/quadro/missing/slide/small.png +0 -0
  19. data/app/assets/images/quadro/missing/slide/thumb.png +0 -0
  20. data/app/assets/images/quadro/next.png +0 -0
  21. data/app/assets/images/quadro/prev.png +0 -0
  22. data/app/assets/images/quadro/quadro-logo-mini.png +0 -0
  23. data/app/assets/images/quadro/quadro-logo.png +0 -0
  24. data/app/assets/javascripts/quadro/application.js.coffee +27 -0
  25. data/app/assets/javascripts/quadro/message.js.coffee +6 -0
  26. data/app/assets/javascripts/quadro/plugins/gmaps.min.js +1 -0
  27. data/app/assets/javascripts/quadro/plugins/humane.min.js +11 -0
  28. data/app/assets/javascripts/quadro/plugins/jasny-bootstrap.min.js +6 -0
  29. data/app/assets/javascripts/quadro/plugins/jquery.fs.dropper.min.js +9 -0
  30. data/app/assets/javascripts/quadro/plugins/jquery.show_char_limit.min.js +1 -0
  31. data/app/assets/javascripts/quadro/plugins/jquery.smartmenus.bootstrap.min.js +3 -0
  32. data/app/assets/javascripts/quadro/plugins/jquery.smartmenus.min.js +3 -0
  33. data/app/assets/javascripts/quadro/plugins/lightbox.min.js +13 -0
  34. data/app/assets/javascripts/quadro/plugins/pace.min.js +2 -0
  35. data/app/assets/javascripts/quadro/quadro.js.coffee +43 -0
  36. data/app/assets/javascripts/quadro/site.js.coffee +0 -0
  37. data/app/assets/javascripts/quadro/uploader.js.coffee +17 -0
  38. data/app/assets/javascripts/quadro/widget.js.coffee +80 -0
  39. data/app/assets/stylesheets/bootstrap/_mixins.scss +40 -0
  40. data/app/assets/stylesheets/quadro/application.css.sass +19 -0
  41. data/app/assets/stylesheets/quadro/plugins/humane-libnotify.min.css +1 -0
  42. data/app/assets/stylesheets/quadro/plugins/jasny-bootstrap.min.css +7 -0
  43. data/app/assets/stylesheets/quadro/plugins/jquery.fs.dropper.min.css +9 -0
  44. data/app/assets/stylesheets/quadro/plugins/jquery.smartmenus.bootstrap.min.css +1 -0
  45. data/app/assets/stylesheets/quadro/plugins/lightbox.min.css +1 -0
  46. data/app/assets/stylesheets/quadro/plugins/pace.min.css +1 -0
  47. data/app/assets/stylesheets/quadro/quadro.css.sass +99 -0
  48. data/app/assets/stylesheets/quadro/site.css.sass +0 -0
  49. data/app/controllers/quadro/application_controller.rb +122 -0
  50. data/app/controllers/quadro/assets_controller.rb +21 -0
  51. data/app/controllers/quadro/feeds_controller.rb +6 -0
  52. data/app/controllers/quadro/pages_controller.rb +42 -0
  53. data/app/controllers/quadro/robots_controller.rb +6 -0
  54. data/app/controllers/quadro/users_controller.rb +15 -0
  55. data/app/controllers/quadro/widgets_controller.rb +14 -0
  56. data/app/helpers/quadro/application_helper.rb +4 -0
  57. data/app/helpers/quadro/asset_helper.rb +7 -0
  58. data/app/helpers/quadro/navigation_helper.rb +43 -0
  59. data/app/helpers/quadro/widget_helper.rb +54 -0
  60. data/app/models/quadro/asset.rb +11 -0
  61. data/app/models/quadro/asset/cover.rb +18 -0
  62. data/app/models/quadro/asset/image.rb +18 -0
  63. data/app/models/quadro/asset/slide.rb +18 -0
  64. data/app/models/quadro/interaction.rb +13 -0
  65. data/app/models/quadro/page.rb +88 -0
  66. data/app/models/quadro/user.rb +19 -0
  67. data/app/models/quadro/widget.rb +21 -0
  68. data/app/models/quadro/widget/form.rb +13 -0
  69. data/app/models/quadro/widget/gallery.rb +17 -0
  70. data/app/models/quadro/widget/html.rb +14 -0
  71. data/app/models/quadro/widget/map.rb +13 -0
  72. data/app/models/quadro/widget/slider.rb +17 -0
  73. data/app/views/layouts/quadro/application.html.haml +33 -0
  74. data/app/views/layouts/quadro/devise.html.haml +11 -0
  75. data/app/views/quadro/assets/create.js.erb +11 -0
  76. data/app/views/quadro/assets/destroy.js.erb +11 -0
  77. data/app/views/quadro/assets/edit.js.erb +9 -0
  78. data/app/views/quadro/assets/image/_form.html.haml +25 -0
  79. data/app/views/quadro/assets/image/_image.html.haml +10 -0
  80. data/app/views/quadro/assets/slide/_form.html.haml +26 -0
  81. data/app/views/quadro/assets/slide/_slide.html.haml +9 -0
  82. data/app/views/quadro/assets/update.js.erb +18 -0
  83. data/app/views/quadro/feeds/atom.xml.builder +27 -0
  84. data/app/views/quadro/feeds/rss.xml.builder +25 -0
  85. data/app/views/quadro/interactions/_interaction.html.haml +22 -0
  86. data/app/views/quadro/pages/_edit.html.haml +35 -0
  87. data/app/views/quadro/pages/_new.html.haml +11 -0
  88. data/app/views/quadro/pages/_page.html.haml +1 -0
  89. data/app/views/quadro/pages/create.js.erb +7 -0
  90. data/app/views/quadro/pages/destroy.js.erb +5 -0
  91. data/app/views/quadro/pages/edit.js.erb +4 -0
  92. data/app/views/quadro/pages/form.js.erb +6 -0
  93. data/app/views/quadro/pages/index.html.haml +1 -0
  94. data/app/views/quadro/pages/new.js.erb +2 -0
  95. data/app/views/quadro/pages/show.html.haml +1 -0
  96. data/app/views/quadro/pages/update.js.erb +7 -0
  97. data/app/views/quadro/robots/index.text.erb +4 -0
  98. data/app/views/quadro/shared/_modal.html.haml +3 -0
  99. data/app/views/quadro/shared/_navigation.html.haml +17 -0
  100. data/app/views/quadro/shared/_toolbar.html.haml +55 -0
  101. data/app/views/quadro/shared/templates/_blank.html.haml +11 -0
  102. data/app/views/quadro/shared/templates/_demo.html.haml +22 -0
  103. data/app/views/quadro/shared/templates/_jumbotron.html.haml +10 -0
  104. data/app/views/quadro/shared/templates/_sidebar.html.haml +15 -0
  105. data/app/views/quadro/shared/templates/page/_list.html.haml +9 -0
  106. data/app/views/quadro/shared/templates/page/_thumbnail.html.haml +9 -0
  107. data/app/views/quadro/users/_edit.html.haml +15 -0
  108. data/app/views/quadro/users/edit.js.erb +2 -0
  109. data/app/views/quadro/users/update.js.erb +7 -0
  110. data/app/views/quadro/widgets/edit.js.erb +0 -0
  111. data/app/views/quadro/widgets/form/_empty.html.haml +4 -0
  112. data/app/views/quadro/widgets/form/_fields.html.haml +1 -0
  113. data/app/views/quadro/widgets/form/_form.html.haml +0 -0
  114. data/app/views/quadro/widgets/form/_signed_off.html.haml +6 -0
  115. data/app/views/quadro/widgets/form/_signed_on.html.haml +14 -0
  116. data/app/views/quadro/widgets/form/_toolbar.html.haml +7 -0
  117. data/app/views/quadro/widgets/form/_widget.html.haml +1 -0
  118. data/app/views/quadro/widgets/gallery/_empty.html.haml +20 -0
  119. data/app/views/quadro/widgets/gallery/_form.html.haml +0 -0
  120. data/app/views/quadro/widgets/gallery/_signed_off.html.haml +6 -0
  121. data/app/views/quadro/widgets/gallery/_signed_on.html.haml +10 -0
  122. data/app/views/quadro/widgets/gallery/_toolbar.html.haml +7 -0
  123. data/app/views/quadro/widgets/gallery/_uploader.html.haml +5 -0
  124. data/app/views/quadro/widgets/gallery/_widget.html.haml +6 -0
  125. data/app/views/quadro/widgets/html/_empty.html.haml +2 -0
  126. data/app/views/quadro/widgets/html/_form.html.haml +0 -0
  127. data/app/views/quadro/widgets/html/_signed_off.html.haml +6 -0
  128. data/app/views/quadro/widgets/html/_signed_on.html.haml +9 -0
  129. data/app/views/quadro/widgets/html/_toolbar.html.haml +7 -0
  130. data/app/views/quadro/widgets/html/_widget.html.haml +1 -0
  131. data/app/views/quadro/widgets/map/_empty.html.haml +18 -0
  132. data/app/views/quadro/widgets/map/_form.html.haml +0 -0
  133. data/app/views/quadro/widgets/map/_signed_off.html.haml +4 -0
  134. data/app/views/quadro/widgets/map/_signed_on.html.haml +6 -0
  135. data/app/views/quadro/widgets/map/_toolbar.html.haml +7 -0
  136. data/app/views/quadro/widgets/map/_widget.html.haml +45 -0
  137. data/app/views/quadro/widgets/slider/_empty.html.haml +7 -0
  138. data/app/views/quadro/widgets/slider/_form.html.haml +0 -0
  139. data/app/views/quadro/widgets/slider/_signed_off.html.haml +6 -0
  140. data/app/views/quadro/widgets/slider/_signed_on.html.haml +10 -0
  141. data/app/views/quadro/widgets/slider/_toolbar.html.haml +7 -0
  142. data/app/views/quadro/widgets/slider/_uploader.html.haml +5 -0
  143. data/app/views/quadro/widgets/slider/_widget.html.haml +4 -0
  144. data/app/views/quadro/widgets/update.js.erb +0 -0
  145. data/app/views/users/mailer/reset_password_instructions.html.haml +6 -0
  146. data/app/views/users/mailer/unlock_instructions.html.haml +5 -0
  147. data/app/views/users/passwords/edit.html.haml +15 -0
  148. data/app/views/users/passwords/new.html.haml +13 -0
  149. data/app/views/users/sessions/new.html.haml +15 -0
  150. data/app/views/users/shared/_links.html.haml +19 -0
  151. data/app/views/users/unlocks/new.html.haml +13 -0
  152. data/config/initializers/crummy.rb +5 -0
  153. data/config/initializers/devise.rb +261 -0
  154. data/config/initializers/gravatar_image_tag.rb +7 -0
  155. data/config/initializers/kaminari_config.rb +10 -0
  156. data/config/initializers/simple_form.rb +142 -0
  157. data/config/initializers/simple_form_bootstrap.rb +79 -0
  158. data/config/initializers/sitemap.rb +9 -0
  159. data/config/locales/devise.en.yml +60 -0
  160. data/config/locales/kaminari.en.yml +17 -0
  161. data/config/locales/quadro.en.yml +5 -0
  162. data/config/locales/simple_form.en.yml +26 -0
  163. data/config/routes.rb +25 -0
  164. data/db/migrate/20141122163450_create_quadro_widgets.rb +19 -0
  165. data/db/migrate/20141129022344_create_quadro_pages.rb +20 -0
  166. data/db/migrate/20141206085127_create_quadro_assets.rb +16 -0
  167. data/db/migrate/20141207202401_devise_create_quadro_users.rb +28 -0
  168. data/db/migrate/20160606213156_create_quadro_interactions.rb +11 -0
  169. data/lib/generators/quadro/install/USAGE +8 -0
  170. data/lib/generators/quadro/install/install_generator.rb +35 -0
  171. data/lib/generators/quadro/install/templates/app/assets/images/quadro/favicon.ico +0 -0
  172. data/lib/generators/quadro/install/templates/app/assets/images/quadro/quadro-logo-mini.png +0 -0
  173. data/lib/generators/quadro/install/templates/app/assets/images/quadro/quadro-logo.png +0 -0
  174. data/lib/generators/quadro/install/templates/app/assets/javascripts/quadro/site.js.coffee +0 -0
  175. data/lib/generators/quadro/install/templates/app/assets/stylesheets/quadro/site.css.sass +0 -0
  176. data/lib/generators/quadro/install/templates/app/views/quadro/shared/_navigation.html.haml +17 -0
  177. data/lib/generators/quadro/install/templates/app/views/quadro/shared/templates/_blank.html.haml +11 -0
  178. data/lib/generators/quadro/install/templates/app/views/quadro/shared/templates/_demo.html.haml +22 -0
  179. data/lib/generators/quadro/install/templates/app/views/quadro/shared/templates/_jumbotron.html.haml +10 -0
  180. data/lib/generators/quadro/install/templates/app/views/quadro/shared/templates/_sidebar.html.haml +15 -0
  181. data/lib/generators/quadro/install/templates/app/views/quadro/shared/templates/page/_list.html.haml +9 -0
  182. data/lib/generators/quadro/install/templates/app/views/quadro/shared/templates/page/_thumbnail.html.haml +9 -0
  183. data/lib/generators/quadro/install/templates/config/initializers/quadro.rb +12 -0
  184. data/lib/generators/quadro/install/templates/db/GeoLite2-Country.mmdb +0 -0
  185. data/lib/generators/quadro/install/templates/public/404.html +37 -0
  186. data/lib/generators/quadro/install/templates/public/422.html +37 -0
  187. data/lib/generators/quadro/install/templates/public/500.html +37 -0
  188. data/lib/generators/quadro/install/templates/public/maintenance.html +37 -0
  189. data/lib/quadro.rb +16 -0
  190. data/lib/quadro/engine.rb +44 -0
  191. data/lib/quadro/loader.rb +30 -0
  192. data/lib/quadro/signature.rb +3 -0
  193. data/lib/quadro/version.rb +3 -0
  194. data/lib/tasks/quadro_tasks.rake +15 -0
  195. data/test/dummy/README.rdoc +261 -0
  196. data/test/dummy/Rakefile +7 -0
  197. data/test/dummy/app/assets/images/quadro/favicon.ico +0 -0
  198. data/test/dummy/app/assets/images/quadro/quadro-logo-mini.png +0 -0
  199. data/test/dummy/app/assets/images/quadro/quadro-logo.png +0 -0
  200. data/test/dummy/app/assets/javascripts/application.js +15 -0
  201. data/test/dummy/app/assets/javascripts/quadro/site.js.coffee +0 -0
  202. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  203. data/test/dummy/app/assets/stylesheets/quadro/site.css.sass +0 -0
  204. data/test/dummy/app/controllers/application_controller.rb +3 -0
  205. data/test/dummy/app/helpers/application_helper.rb +2 -0
  206. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  207. data/test/dummy/app/views/quadro/shared/_navigation.html.haml +17 -0
  208. data/test/dummy/app/views/quadro/shared/templates/_blank.html.haml +11 -0
  209. data/test/dummy/app/views/quadro/shared/templates/_demo.html.haml +22 -0
  210. data/test/dummy/app/views/quadro/shared/templates/_jumbotron.html.haml +10 -0
  211. data/test/dummy/app/views/quadro/shared/templates/_sidebar.html.haml +15 -0
  212. data/test/dummy/app/views/quadro/shared/templates/page/_list.html.haml +9 -0
  213. data/test/dummy/app/views/quadro/shared/templates/page/_thumbnail.html.haml +9 -0
  214. data/test/dummy/config.ru +4 -0
  215. data/test/dummy/config/application.rb +59 -0
  216. data/test/dummy/config/boot.rb +10 -0
  217. data/test/dummy/config/database.yml +25 -0
  218. data/test/dummy/config/environment.rb +5 -0
  219. data/test/dummy/config/environments/development.rb +37 -0
  220. data/test/dummy/config/environments/production.rb +67 -0
  221. data/test/dummy/config/environments/test.rb +37 -0
  222. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  223. data/test/dummy/config/initializers/inflections.rb +15 -0
  224. data/test/dummy/config/initializers/mime_types.rb +5 -0
  225. data/test/dummy/config/initializers/quadro.rb +12 -0
  226. data/test/dummy/config/initializers/secret_token.rb +7 -0
  227. data/test/dummy/config/initializers/session_store.rb +8 -0
  228. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  229. data/test/dummy/config/locales/en.yml +5 -0
  230. data/test/dummy/config/routes.rb +3 -0
  231. data/test/dummy/db/GeoLite2-Country.mmdb +0 -0
  232. data/test/dummy/db/migrate/20160615055717_create_quadro_widgets.quadro.rb +20 -0
  233. data/test/dummy/db/migrate/20160615055718_create_quadro_pages.quadro.rb +21 -0
  234. data/test/dummy/db/migrate/20160615055719_create_quadro_assets.quadro.rb +17 -0
  235. data/test/dummy/db/migrate/20160615055720_devise_create_quadro_users.quadro.rb +29 -0
  236. data/test/dummy/db/migrate/20160615055721_create_quadro_interactions.quadro.rb +12 -0
  237. data/test/dummy/db/schema.rb +105 -0
  238. data/test/dummy/db/test.sqlite3 +0 -0
  239. data/test/dummy/log/development.log +0 -0
  240. data/test/dummy/log/test.log +3 -0
  241. data/test/dummy/public/404.html +37 -0
  242. data/test/dummy/public/422.html +37 -0
  243. data/test/dummy/public/500.html +37 -0
  244. data/test/dummy/public/maintenance.html +37 -0
  245. data/test/dummy/script/rails +6 -0
  246. data/test/integration/navigation_test.rb +10 -0
  247. data/test/quadro_test.rb +7 -0
  248. data/test/test_helper.rb +18 -0
  249. metadata +806 -0
File without changes
@@ -0,0 +1,17 @@
1
+ class Uploader
2
+ constructor: (@element) ->
3
+ @path = @element.data 'path'
4
+ @type = @element.data 'type'
5
+ @dropper()
6
+ return
7
+
8
+ dropper: ->
9
+ @element.dropper
10
+ action: "#{@path}"
11
+ label: '<p><i class="fa fa-picture-o fa-2x"></i></p><p>Drag and drop files or click to select</p>'
12
+ postData:
13
+ type: @type
14
+ postKey: 'asset[attachment]'
15
+ return
16
+
17
+ window.Uploader = Uploader
@@ -0,0 +1,80 @@
1
+ class Widget
2
+ constructor: (@element) ->
3
+ @id = @element.data 'id'
4
+ @name = @element.data 'name'
5
+ @type = @element.data 'type'
6
+ @path = @element.data 'path'
7
+ @airmode = true
8
+ @focus = false
9
+ @changed = false
10
+ @summernote()
11
+ return
12
+
13
+ summernote: ->
14
+ @element.summernote
15
+ airMode: @airmode
16
+ codemirror:
17
+ lineNumbers: true
18
+ lineWrapping: true
19
+ tabSize: 2
20
+ mode: 'htmlmixed'
21
+ theme: 'monokai'
22
+ onChange: =>
23
+ @setChanged()
24
+ onfocus: =>
25
+ @setFocus()
26
+ return
27
+ return
28
+
29
+ switchAirmodeOn: ->
30
+ @element.destroy()
31
+ @airmode = true
32
+ @summernote()
33
+ return
34
+
35
+ switchAirmodeOff: ->
36
+ @element.destroy()
37
+ @airmode = false
38
+ @summernote()
39
+ return
40
+
41
+ save: ->
42
+ @getContent()
43
+ @update()
44
+ @unsetChanged()
45
+ return
46
+
47
+ update: ->
48
+ $.ajax
49
+ url: "#{@path}"
50
+ type: "PUT"
51
+ data:
52
+ widget:
53
+ content: @content
54
+ success: (data) ->
55
+ new Message "Content updated"
56
+ return
57
+ error: ->
58
+ new Message "Content not updated"
59
+ return
60
+ return
61
+
62
+ getContent: ->
63
+ @content = $(".widget-html[data-name=#{@name}]").code()
64
+ return
65
+
66
+ setFocus: ->
67
+ @focus = true
68
+ return
69
+
70
+ setChanged: ->
71
+ @changed = true
72
+ $('#quadro-save').removeClass('hide')
73
+ return
74
+
75
+ unsetChanged: ->
76
+ @changed = false
77
+ $('#quadro-save').addClass('hide')
78
+ return
79
+
80
+ window.Widget = Widget
@@ -0,0 +1,40 @@
1
+ // Mixins
2
+ // --------------------------------------------------
3
+
4
+ // Utilities
5
+ @import "bootstrap/mixins/hide-text";
6
+ @import "bootstrap/mixins/opacity";
7
+ @import "bootstrap/mixins/image";
8
+ @import "bootstrap/mixins/labels";
9
+ @import "bootstrap/mixins/reset-filter";
10
+ @import "bootstrap/mixins/resize";
11
+ @import "bootstrap/mixins/responsive-visibility";
12
+ @import "bootstrap/mixins/size";
13
+ @import "bootstrap/mixins/tab-focus";
14
+ //@import "bootstrap/mixins/reset-text";
15
+ @import "bootstrap/mixins/text-emphasis";
16
+ @import "bootstrap/mixins/text-overflow";
17
+ @import "bootstrap/mixins/vendor-prefixes";
18
+
19
+ // Components
20
+ @import "bootstrap/mixins/alerts";
21
+ @import "bootstrap/mixins/buttons";
22
+ @import "bootstrap/mixins/panels";
23
+ @import "bootstrap/mixins/pagination";
24
+ @import "bootstrap/mixins/list-group";
25
+ @import "bootstrap/mixins/nav-divider";
26
+ @import "bootstrap/mixins/forms";
27
+ @import "bootstrap/mixins/progress-bar";
28
+ @import "bootstrap/mixins/table-row";
29
+
30
+ // Skins
31
+ @import "bootstrap/mixins/background-variant";
32
+ @import "bootstrap/mixins/border-radius";
33
+ @import "bootstrap/mixins/gradients";
34
+
35
+ // Layout
36
+ @import "bootstrap/mixins/clearfix";
37
+ @import "bootstrap/mixins/center-block";
38
+ @import "bootstrap/mixins/nav-vertical-align";
39
+ @import "bootstrap/mixins/grid-framework";
40
+ @import "bootstrap/mixins/grid";
@@ -0,0 +1,19 @@
1
+ @import bootstrap-sprockets
2
+ @import bootstrap
3
+ @import font-awesome-sprockets
4
+ @import font-awesome
5
+ @import compass
6
+ @import animate
7
+ @import codemirror
8
+ @import codemirror/themes/monokai
9
+ @import summernote
10
+ @import slick
11
+ @import slick-theme
12
+ @import quadro/plugins/jquery.fs.dropper.min
13
+ @import quadro/plugins/jasny-bootstrap.min
14
+ @import quadro/plugins/jquery.smartmenus.bootstrap.min
15
+ @import quadro/plugins/pace.min
16
+ @import quadro/plugins/humane-libnotify.min
17
+ @import quadro/plugins/lightbox.min
18
+ @import quadro/quadro
19
+ @import quadro/site
@@ -0,0 +1 @@
1
+ html,body{min-height:100%}.humane,.humane-libnotify{position:fixed;-moz-transition:all .3s ease-out;-webkit-transition:all .3s ease-out;-ms-transition:all .3s ease-out;-o-transition:all .3s ease-out;transition:all .3s ease-out;z-index:100000;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);font-family:Ubuntu,Arial,sans-serif;text-align:center;font-size:15px;top:10px;right:10px;opacity:0;width:150px;color:#fff;padding:10px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABQCAYAAADYxx/bAAAABmJLR0QA/wD/AP+gvaeTAAAANElEQVQYlWNgYGB4ysTAwMDAxMjICCUQXDQWAwMDAxMTExMedcRyB6d5CAMQ5hGrjSrmAQBQdgIXlosSTwAAAABJRU5ErkJggg==);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,0.9)),color-stop(1,rgba(50,50,50,0.9))) no-repeat;background:-moz-linear-gradient(top,rgba(0,0,0,0.9) 0%,rgba(50,50,50,0.9) 100%) no-repeat;background:-webkit-linear-gradient(top,rgba(0,0,0,0.9) 0%,rgba(50,50,50,0.9) 100%) no-repeat;background:-ms-linear-gradient(top,rgba(0,0,0,0.9) 0%,rgba(50,50,50,0.9) 100%) no-repeat;background:-o-linear-gradient(top,rgba(0,0,0,0.9) 0%,rgba(50,50,50,0.9) 100%) no-repeat;background:linear-gradient(top,rgba(0,0,0,0.9) 0%,rgba(50,50,50,0.9) 100%) no-repeat;*background-color:#000;-webkit-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 4px 4px -4px #000;box-shadow:0 4px 4px -4px #000;-moz-transform:translateY(-40px);-webkit-transform:translateY(-40px);-ms-transform:translateY(-40px);-o-transform:translateY(-40px);transform:translateY(-40px)}.humane p,.humane-libnotify p,.humane ul,.humane-libnotify ul{margin:0;padding:0}.humane ul,.humane-libnotify ul{list-style:none}.humane.humane-libnotify-info,.humane-libnotify.humane-libnotify-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABQCAYAAADYxx/bAAAABmJLR0QA/wD/AP+gvaeTAAAAMUlEQVQYlWNgYDB6ysTAwMDAxMDACCcYUFkMDEwMDEwMBNVhkxg65jGhmke6M6hgHgBSdgHnpZwADwAAAABJRU5ErkJggg==);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,50,0.9)),color-stop(1,rgba(0,0,100,0.9))) no-repeat;background:-moz-linear-gradient(top,rgba(0,0,50,0.9) 0%,rgba(0,0,100,0.9) 100%) no-repeat;background:-webkit-linear-gradient(top,rgba(0,0,50,0.9) 0%,rgba(0,0,100,0.9) 100%) no-repeat;background:-ms-linear-gradient(top,rgba(0,0,50,0.9) 0%,rgba(0,0,100,0.9) 100%) no-repeat;background:-o-linear-gradient(top,rgba(0,0,50,0.9) 0%,rgba(0,0,100,0.9) 100%) no-repeat;background:linear-gradient(top,rgba(0,0,50,0.9) 0%,rgba(0,0,100,0.9) 100%) no-repeat;*background-color:#030}.humane.humane-libnotify-success,.humane-libnotify.humane-libnotify-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABQCAYAAADYxx/bAAAABmJLR0QA/wD/AP+gvaeTAAAAMUlEQVQYlWNgMGJ4ysTAwMDAxMAIJxhQWQwMDEwMTKgS2NRhkxg65jGhmke6M6hhHgBS2QHn2LzhygAAAABJRU5ErkJggg==);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,50,0,0.9)),color-stop(1,rgba(0,100,0,0.9))) no-repeat;background:-moz-linear-gradient(top,rgba(0,50,0,0.9) 0%,rgba(0,100,0,0.9) 100%) no-repeat;background:-webkit-linear-gradient(top,rgba(0,50,0,0.9) 0%,rgba(0,100,0,0.9) 100%) no-repeat;background:-ms-linear-gradient(top,rgba(0,50,0,0.9) 0%,rgba(0,100,0,0.9) 100%) no-repeat;background:-o-linear-gradient(top,rgba(0,50,0,0.9) 0%,rgba(0,100,0,0.9) 100%) no-repeat;background:linear-gradient(top,rgba(0,50,0,0.9) 0%,rgba(0,100,0,0.9) 100%) no-repeat;*background-color:#030}.humane.humane-libnotify-error,.humane-libnotify.humane-libnotify-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAPklEQVQokWMwYmB4ysTAwMCATjASFsOmBBvBRJ7x+O0g0wCS7CDTH/RwH7X9MVDuwyaG032D2M2UeIYO7gMAqt8C19Bn7+YAAAAASUVORK5CYII=);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(50,0,0,0.9)),color-stop(1,rgba(100,0,0,0.9))) no-repeat;background:-moz-linear-gradient(top,rgba(50,0,0,0.9) 0%,rgba(100,0,0,0.9) 100%) no-repeat;background:-webkit-linear-gradient(top,rgba(50,0,0,0.9) 0%,rgba(100,0,0,0.9) 100%) no-repeat;background:-ms-linear-gradient(top,rgba(50,0,0,0.9) 0%,rgba(100,0,0,0.9) 100%) no-repeat;background:-o-linear-gradient(top,rgba(50,0,0,0.9) 0%,rgba(100,0,0,0.9) 100%) no-repeat;background:linear-gradient(top,rgba(50,0,0,0.9) 0%,rgba(100,0,0,0.9) 100%) no-repeat;*background-color:#300}.humane.humane-animate,.humane-libnotify.humane-libnotify-animate{opacity:1;-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}.humane.humane-animate:hover,.humane-libnotify.humane-libnotify-animate:hover{opacity:.2}.humane.humane-animate,.humane-libnotify.humane-libnotify-js-animate{opacity:1;-moz-transform:translateY(0);-webkit-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}.humane.humane-animate:hover,.humane-libnotify.humane-libnotify-js-animate:hover{opacity:.2;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=20)}
@@ -0,0 +1,7 @@
1
+ /*!
2
+ * Jasny Bootstrap v3.1.3 (http://jasny.github.io/bootstrap)
3
+ * Copyright 2012-2014 Arnold Daniels
4
+ * Licensed under Apache-2.0 (https://github.com/jasny/bootstrap/blob/master/LICENSE)
5
+ */
6
+
7
+ .container-smooth{max-width:1170px}@media (min-width:1px){.container-smooth{width:auto}}.btn-labeled{padding-top:0;padding-bottom:0}.btn-label{position:relative;background:0 0;background:rgba(0,0,0,.15);display:inline-block;padding:6px 12px;left:-12px;border-radius:3px 0 0 3px}.btn-label.btn-label-right{left:auto;right:-12px;border-radius:0 3px 3px 0}.btn-lg .btn-label{padding:10px 16px;left:-16px;border-radius:5px 0 0 5px}.btn-lg .btn-label.btn-label-right{left:auto;right:-16px;border-radius:0 5px 5px 0}.btn-sm .btn-label{padding:5px 10px;left:-10px;border-radius:2px 0 0 2px}.btn-sm .btn-label.btn-label-right{left:auto;right:-10px;border-radius:0 2px 2px 0}.btn-xs .btn-label{padding:1px 5px;left:-5px;border-radius:2px 0 0 2px}.btn-xs .btn-label.btn-label-right{left:auto;right:-5px;border-radius:0 2px 2px 0}.nav-tabs-bottom{border-bottom:0;border-top:1px solid #ddd}.nav-tabs-bottom>li{margin-bottom:0;margin-top:-1px}.nav-tabs-bottom>li>a{border-radius:0 0 4px 4px}.nav-tabs-bottom>li>a:hover,.nav-tabs-bottom>li>a:focus,.nav-tabs-bottom>li.active>a,.nav-tabs-bottom>li.active>a:hover,.nav-tabs-bottom>li.active>a:focus{border:1px solid #ddd;border-top-color:transparent}.nav-tabs-left{border-bottom:0;border-right:1px solid #ddd}.nav-tabs-left>li{margin-bottom:0;margin-right:-1px;float:none}.nav-tabs-left>li>a{border-radius:4px 0 0 4px;margin-right:0;margin-bottom:2px}.nav-tabs-left>li>a:hover,.nav-tabs-left>li>a:focus,.nav-tabs-left>li.active>a,.nav-tabs-left>li.active>a:hover,.nav-tabs-left>li.active>a:focus{border:1px solid #ddd;border-right-color:transparent}.row>.nav-tabs-left{padding-right:0;padding-left:15px;margin-right:-1px;position:relative;z-index:1}.row>.nav-tabs-left+.tab-content{border-left:1px solid #ddd}.nav-tabs-right{border-bottom:0;border-left:1px solid #ddd}.nav-tabs-right>li{margin-bottom:0;margin-left:-1px;float:none}.nav-tabs-right>li>a{border-radius:0 4px 4px 0;margin-left:0;margin-bottom:2px}.nav-tabs-right>li>a:hover,.nav-tabs-right>li>a:focus,.nav-tabs-right>li.active>a,.nav-tabs-right>li.active>a:hover,.nav-tabs-right>li.active>a:focus{border:1px solid #ddd;border-left-color:transparent}.row>.nav-tabs-right{padding-left:0;padding-right:15px}.navmenu,.navbar-offcanvas{width:300px;height:auto;border-width:1px;border-style:solid;border-radius:4px}.navmenu-fixed-left,.navmenu-fixed-right,.navbar-offcanvas{position:fixed;z-index:1030;top:0;bottom:0;overflow-y:auto;border-radius:0}.navmenu-fixed-left,.navbar-offcanvas.navmenu-fixed-left{left:0;right:auto;border-width:0 1px 0 0}.navmenu-fixed-right,.navbar-offcanvas{left:auto;right:0;border-width:0 0 0 1px}.navmenu-nav{margin-bottom:10px}.navmenu-nav.dropdown-menu{position:static;margin:0;padding-top:0;float:none;border:none;-webkit-box-shadow:none;box-shadow:none;border-radius:0}.navbar-offcanvas .navbar-nav{margin:0}@media (min-width:768px){.navbar-offcanvas{width:auto;border-top:0;box-shadow:none}.navbar-offcanvas.offcanvas{position:static;display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-offcanvas .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-offcanvas .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-offcanvas .navmenu-brand{display:none}}.navmenu-brand{display:block;font-size:18px;line-height:20px;padding:10px 15px;margin:10px 0}.navmenu-brand:hover,.navmenu-brand:focus{text-decoration:none}.navmenu-default,.navbar-default .navbar-offcanvas{background-color:#f8f8f8;border-color:#e7e7e7}.navmenu-default .navmenu-brand,.navbar-default .navbar-offcanvas .navmenu-brand{color:#777}.navmenu-default .navmenu-brand:hover,.navbar-default .navbar-offcanvas .navmenu-brand:hover,.navmenu-default .navmenu-brand:focus,.navbar-default .navbar-offcanvas .navmenu-brand:focus{color:#5e5e5e;background-color:transparent}.navmenu-default .navmenu-text,.navbar-default .navbar-offcanvas .navmenu-text{color:#777}.navmenu-default .navmenu-nav>.dropdown>a:hover .caret,.navbar-default .navbar-offcanvas .navmenu-nav>.dropdown>a:hover .caret,.navmenu-default .navmenu-nav>.dropdown>a:focus .caret,.navbar-default .navbar-offcanvas .navmenu-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navmenu-default .navmenu-nav>.open>a,.navbar-default .navbar-offcanvas .navmenu-nav>.open>a,.navmenu-default .navmenu-nav>.open>a:hover,.navbar-default .navbar-offcanvas .navmenu-nav>.open>a:hover,.navmenu-default .navmenu-nav>.open>a:focus,.navbar-default .navbar-offcanvas .navmenu-nav>.open>a:focus{background-color:#e7e7e7;color:#555}.navmenu-default .navmenu-nav>.open>a .caret,.navbar-default .navbar-offcanvas .navmenu-nav>.open>a .caret,.navmenu-default .navmenu-nav>.open>a:hover .caret,.navbar-default .navbar-offcanvas .navmenu-nav>.open>a:hover .caret,.navmenu-default .navmenu-nav>.open>a:focus .caret,.navbar-default .navbar-offcanvas .navmenu-nav>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navmenu-default .navmenu-nav>.dropdown>a .caret,.navbar-default .navbar-offcanvas .navmenu-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}.navmenu-default .navmenu-nav.dropdown-menu,.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu{background-color:#e7e7e7}.navmenu-default .navmenu-nav.dropdown-menu>.divider,.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu>.divider{background-color:#f8f8f8}.navmenu-default .navmenu-nav.dropdown-menu>.active>a,.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu>.active>a,.navmenu-default .navmenu-nav.dropdown-menu>.active>a:hover,.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu>.active>a:hover,.navmenu-default .navmenu-nav.dropdown-menu>.active>a:focus,.navbar-default .navbar-offcanvas .navmenu-nav.dropdown-menu>.active>a:focus{background-color:#d7d7d7}.navmenu-default .navmenu-nav>li>a,.navbar-default .navbar-offcanvas .navmenu-nav>li>a{color:#777}.navmenu-default .navmenu-nav>li>a:hover,.navbar-default .navbar-offcanvas .navmenu-nav>li>a:hover,.navmenu-default .navmenu-nav>li>a:focus,.navbar-default .navbar-offcanvas .navmenu-nav>li>a:focus{color:#333;background-color:transparent}.navmenu-default .navmenu-nav>.active>a,.navbar-default .navbar-offcanvas .navmenu-nav>.active>a,.navmenu-default .navmenu-nav>.active>a:hover,.navbar-default .navbar-offcanvas .navmenu-nav>.active>a:hover,.navmenu-default .navmenu-nav>.active>a:focus,.navbar-default .navbar-offcanvas .navmenu-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navmenu-default .navmenu-nav>.disabled>a,.navbar-default .navbar-offcanvas .navmenu-nav>.disabled>a,.navmenu-default .navmenu-nav>.disabled>a:hover,.navbar-default .navbar-offcanvas .navmenu-nav>.disabled>a:hover,.navmenu-default .navmenu-nav>.disabled>a:focus,.navbar-default .navbar-offcanvas .navmenu-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navmenu-inverse,.navbar-inverse .navbar-offcanvas{background-color:#222;border-color:#080808}.navmenu-inverse .navmenu-brand,.navbar-inverse .navbar-offcanvas .navmenu-brand{color:#999}.navmenu-inverse .navmenu-brand:hover,.navbar-inverse .navbar-offcanvas .navmenu-brand:hover,.navmenu-inverse .navmenu-brand:focus,.navbar-inverse .navbar-offcanvas .navmenu-brand:focus{color:#fff;background-color:transparent}.navmenu-inverse .navmenu-text,.navbar-inverse .navbar-offcanvas .navmenu-text{color:#999}.navmenu-inverse .navmenu-nav>.dropdown>a:hover .caret,.navbar-inverse .navbar-offcanvas .navmenu-nav>.dropdown>a:hover .caret,.navmenu-inverse .navmenu-nav>.dropdown>a:focus .caret,.navbar-inverse .navbar-offcanvas .navmenu-nav>.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navmenu-inverse .navmenu-nav>.open>a,.navbar-inverse .navbar-offcanvas .navmenu-nav>.open>a,.navmenu-inverse .navmenu-nav>.open>a:hover,.navbar-inverse .navbar-offcanvas .navmenu-nav>.open>a:hover,.navmenu-inverse .navmenu-nav>.open>a:focus,.navbar-inverse .navbar-offcanvas .navmenu-nav>.open>a:focus{background-color:#080808;color:#fff}.navmenu-inverse .navmenu-nav>.open>a .caret,.navbar-inverse .navbar-offcanvas .navmenu-nav>.open>a .caret,.navmenu-inverse .navmenu-nav>.open>a:hover .caret,.navbar-inverse .navbar-offcanvas .navmenu-nav>.open>a:hover .caret,.navmenu-inverse .navmenu-nav>.open>a:focus .caret,.navbar-inverse .navbar-offcanvas .navmenu-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navmenu-inverse .navmenu-nav>.dropdown>a .caret,.navbar-inverse .navbar-offcanvas .navmenu-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navmenu-inverse .navmenu-nav.dropdown-menu,.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu{background-color:#080808}.navmenu-inverse .navmenu-nav.dropdown-menu>.divider,.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu>.divider{background-color:#222}.navmenu-inverse .navmenu-nav.dropdown-menu>.active>a,.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu>.active>a,.navmenu-inverse .navmenu-nav.dropdown-menu>.active>a:hover,.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu>.active>a:hover,.navmenu-inverse .navmenu-nav.dropdown-menu>.active>a:focus,.navbar-inverse .navbar-offcanvas .navmenu-nav.dropdown-menu>.active>a:focus{background-color:#000}.navmenu-inverse .navmenu-nav>li>a,.navbar-inverse .navbar-offcanvas .navmenu-nav>li>a{color:#999}.navmenu-inverse .navmenu-nav>li>a:hover,.navbar-inverse .navbar-offcanvas .navmenu-nav>li>a:hover,.navmenu-inverse .navmenu-nav>li>a:focus,.navbar-inverse .navbar-offcanvas .navmenu-nav>li>a:focus{color:#fff;background-color:transparent}.navmenu-inverse .navmenu-nav>.active>a,.navbar-inverse .navbar-offcanvas .navmenu-nav>.active>a,.navmenu-inverse .navmenu-nav>.active>a:hover,.navbar-inverse .navbar-offcanvas .navmenu-nav>.active>a:hover,.navmenu-inverse .navmenu-nav>.active>a:focus,.navbar-inverse .navbar-offcanvas .navmenu-nav>.active>a:focus{color:#fff;background-color:#080808}.navmenu-inverse .navmenu-nav>.disabled>a,.navbar-inverse .navbar-offcanvas .navmenu-nav>.disabled>a,.navmenu-inverse .navmenu-nav>.disabled>a:hover,.navbar-inverse .navbar-offcanvas .navmenu-nav>.disabled>a:hover,.navmenu-inverse .navmenu-nav>.disabled>a:focus,.navbar-inverse .navbar-offcanvas .navmenu-nav>.disabled>a:focus{color:#444;background-color:transparent}.alert-fixed-top,.alert-fixed-bottom{position:fixed;width:100%;z-index:1035;border-radius:0;margin:0;left:0}@media (min-width:992px){.alert-fixed-top,.alert-fixed-bottom{width:992px;left:50%;margin-left:-496px}}.alert-fixed-top{top:0;border-width:0 0 1px}@media (min-width:992px){.alert-fixed-top{border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-width:0 1px 1px}}.alert-fixed-bottom{bottom:0;border-width:1px 0 0}@media (min-width:992px){.alert-fixed-bottom{border-top-right-radius:4px;border-top-left-radius:4px;border-width:1px 1px 0}}.offcanvas{display:none}.offcanvas.in{display:block}@media (max-width:767px){.offcanvas-xs{display:none}.offcanvas-xs.in{display:block}}@media (max-width:991px){.offcanvas-sm{display:none}.offcanvas-sm.in{display:block}}@media (max-width:1199px){.offcanvas-md{display:none}.offcanvas-md.in{display:block}}.offcanvas-lg{display:none}.offcanvas-lg.in{display:block}.canvas-sliding{-webkit-transition:top .35s,left .35s,bottom .35s,right .35s;transition:top .35s,left .35s,bottom .35s,right .35s}.offcanvas-clone{height:0!important;width:0!important;overflow:hidden!important;border:none!important;margin:0!important;padding:0!important;position:absolute!important;top:auto!important;left:auto!important;bottom:0!important;right:0!important;opacity:0!important}.table.rowlink td:not(.rowlink-skip),.table .rowlink td:not(.rowlink-skip){cursor:pointer}.table.rowlink td:not(.rowlink-skip) a,.table .rowlink td:not(.rowlink-skip) a{color:inherit;font:inherit;text-decoration:inherit}.table-hover.rowlink tr:hover td,.table-hover .rowlink tr:hover td{background-color:#cfcfcf}.btn-file{overflow:hidden;position:relative;vertical-align:middle}.btn-file>input{position:absolute;top:0;right:0;margin:0;opacity:0;filter:alpha(opacity=0);font-size:23px;height:100%;width:100%;direction:ltr;cursor:pointer}.fileinput{margin-bottom:9px;display:inline-block}.fileinput .form-control{padding-top:7px;padding-bottom:5px;display:inline-block;margin-bottom:0;vertical-align:middle;cursor:text}.fileinput .thumbnail{overflow:hidden;display:inline-block;margin-bottom:5px;vertical-align:middle;text-align:center}.fileinput .thumbnail>img{max-height:100%}.fileinput .btn{vertical-align:middle}.fileinput-exists .fileinput-new,.fileinput-new .fileinput-exists{display:none}.fileinput-inline .fileinput-controls{display:inline}.fileinput-filename{vertical-align:middle;display:inline-block;overflow:hidden}.form-control .fileinput-filename{vertical-align:bottom}.fileinput.input-group{display:table}.fileinput.input-group>*{position:relative;z-index:2}.fileinput.input-group>.btn-file{z-index:1}.fileinput-new.input-group .btn-file,.fileinput-new .input-group .btn-file{border-radius:0 4px 4px 0}.fileinput-new.input-group .btn-file.btn-xs,.fileinput-new .input-group .btn-file.btn-xs,.fileinput-new.input-group .btn-file.btn-sm,.fileinput-new .input-group .btn-file.btn-sm{border-radius:0 3px 3px 0}.fileinput-new.input-group .btn-file.btn-lg,.fileinput-new .input-group .btn-file.btn-lg{border-radius:0 6px 6px 0}.form-group.has-warning .fileinput .fileinput-preview{color:#8a6d3b}.form-group.has-warning .fileinput .thumbnail{border-color:#faebcc}.form-group.has-error .fileinput .fileinput-preview{color:#a94442}.form-group.has-error .fileinput .thumbnail{border-color:#ebccd1}.form-group.has-success .fileinput .fileinput-preview{color:#3c763d}.form-group.has-success .fileinput .thumbnail{border-color:#d6e9c6}.input-group-addon:not(:first-child){border-left:0}
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Dropper v1.0.1 - 2014-11-25
3
+ * A jQuery plugin for simple drag and drop uploads. Part of the Formstone Library.
4
+ * http://formstone.it/dropper/
5
+ *
6
+ * Copyright 2014 Ben Plum; MIT Licensed
7
+ */
8
+
9
+ .dropper{overflow:hidden}.dropper,.dropper *,.dropper :before,.dropper :after{box-sizing:border-box}.dropper-dropzone{background:#fff;border:3px dashed #ccc;border-radius:0;color:#666;cursor:pointer;font-size:14px;margin:0;padding:25px;text-align:center}.dropper.dropping .dropper-dropzone,.no-touch .dropper:hover .dropper-dropzone{background:#eee;border-color:#999;color:#333}.dropper-input{position:absolute;left:100%;opacity:0}.no-opacity .dropper-input{left:-999px}
@@ -0,0 +1 @@
1
+ .navbar-nav:not(.sm-collapsible) ul .caret{position:absolute;right:0;margin-top:6px;margin-right:15px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px dashed}.navbar-nav:not(.sm-collapsible) ul a.has-submenu{padding-right:30px}.navbar-nav.sm-collapsible .caret,.navbar-nav.sm-collapsible ul .caret{position:absolute;right:0;margin:-3px 15px 0 0;padding:0;width:32px;height:26px;line-height:24px;text-align:center;border-width:1px;border-style:solid}.navbar-nav.sm-collapsible .caret:before{content:'+';font-family:monospace;font-weight:700}.navbar-nav.sm-collapsible .open>a>.caret:before{content:'-'}.navbar-nav.sm-collapsible a.has-submenu{padding-right:50px}.navbar-nav.sm-collapsible[data-sm-skip-collapsible-behavior] .caret,.navbar-nav.sm-collapsible[data-sm-skip-collapsible-behavior] ul .caret{position:static;margin:0 0 0 2px;padding:0;width:0;height:0;border-top:4px dashed;border-right:4px solid transparent;border-bottom:0;border-left:4px solid transparent}.navbar-nav.sm-collapsible[data-sm-skip-collapsible-behavior] .caret:before{content:''!important}.navbar-nav.sm-collapsible[data-sm-skip-collapsible-behavior] a.has-submenu{padding-right:15px}.navbar-nav span.scroll-down,.navbar-nav span.scroll-up{position:absolute;display:none;visibility:hidden;height:20px;overflow:hidden;text-align:center}.navbar-nav span.scroll-down-arrow,.navbar-nav span.scroll-up-arrow{position:absolute;top:-2px;left:50%;margin-left:-8px;width:0;height:0;overflow:hidden;border-top:7px dashed transparent;border-right:7px dashed transparent;border-bottom:7px solid;border-left:7px dashed transparent}.navbar-nav span.scroll-down-arrow{top:6px;border-top:7px solid;border-right:7px dashed transparent;border-bottom:7px dashed transparent;border-left:7px dashed transparent}.navbar-nav.sm-collapsible ul .dropdown-menu .dropdown-header,.navbar-nav.sm-collapsible ul .dropdown-menu>li>a{padding-left:35px}.navbar-nav.sm-collapsible ul ul .dropdown-menu .dropdown-header,.navbar-nav.sm-collapsible ul ul .dropdown-menu>li>a{padding-left:45px}.navbar-nav.sm-collapsible ul ul ul .dropdown-menu .dropdown-header,.navbar-nav.sm-collapsible ul ul ul .dropdown-menu>li>a{padding-left:55px}.navbar-nav.sm-collapsible ul ul ul ul .dropdown-menu .dropdown-header,.navbar-nav.sm-collapsible ul ul ul ul .dropdown-menu>li>a{padding-left:65px}.navbar-nav .dropdown-menu>li>a{white-space:normal}.navbar-nav ul.sm-nowrap>li>a{white-space:nowrap}.navbar-nav.sm-collapsible ul.sm-nowrap>li>a{white-space:normal}.navbar-right ul.dropdown-menu{left:0;right:auto}
@@ -0,0 +1 @@
1
+ .lb-loader,.lightbox{text-align:center;line-height:0}body:after{content:url(close.png) url(loading.gif) url(prev.png) url(next.png);display:none}.lb-dataContainer:after,.lb-outerContainer:after{content:"";clear:both}body.lb-disable-scrolling{overflow:hidden}.lightboxOverlay{position:absolute;top:0;left:0;z-index:9999;background-color:#000;filter:alpha(Opacity=80);opacity:.8;display:none}.lightbox{position:absolute;left:0;width:100%;z-index:10000;font-weight:400}.lightbox .lb-image{display:block;height:auto;max-width:inherit;border-radius:3px}.lightbox a img{border:none}.lb-outerContainer{position:relative;background-color:#fff;width:250px;height:250px;margin:0 auto;border-radius:4px}.lb-loader,.lb-nav{position:absolute;left:0}.lb-outerContainer:after{display:table}.lb-container{padding:4px}.lb-loader{top:43%;height:25%;width:100%}.lb-cancel{display:block;width:32px;height:32px;margin:0 auto;background:url(loading.gif) no-repeat}.lb-nav{top:0;height:100%;width:100%;z-index:10}.lb-container>.nav{left:0}.lb-nav a{outline:0;background-image:url(data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)}.lb-next,.lb-prev{height:100%;cursor:pointer;display:block}.lb-nav a.lb-prev{width:34%;left:0;float:left;background:url(prev.png) left 48% no-repeat;filter:alpha(Opacity=0);opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}.lb-nav a.lb-prev:hover{filter:alpha(Opacity=100);opacity:1}.lb-nav a.lb-next{width:64%;right:0;float:right;background:url(next.png) right 48% no-repeat;filter:alpha(Opacity=0);opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}.lb-nav a.lb-next:hover{filter:alpha(Opacity=100);opacity:1}.lb-dataContainer{margin:0 auto;padding-top:5px;width:100%;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.lb-dataContainer:after{display:table}.lb-data{padding:0 4px;color:#ccc}.lb-data .lb-details{width:85%;float:left;text-align:left;line-height:1.1em}.lb-data .lb-caption{font-size:13px;font-weight:700;line-height:1em}.lb-data .lb-number{display:block;clear:left;padding-bottom:1em;font-size:12px;color:#999}.lb-data .lb-close{display:block;float:right;width:30px;height:30px;background:url(close.png) top right no-repeat;text-align:right;outline:0;filter:alpha(Opacity=70);opacity:.7;-webkit-transition:opacity .2s;-moz-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.lb-data .lb-close:hover{cursor:pointer;filter:alpha(Opacity=100);opacity:1}
@@ -0,0 +1 @@
1
+ .pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#999;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px}.pace .pace-progress-inner{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #999999,0 0 5px #999;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-moz-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);-o-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translate(0px,-4px)}.pace .pace-activity{display:block;position:fixed;z-index:2000;top:15px;right:15px;width:14px;height:14px;border:solid 2px transparent;border-top-color:#999;border-left-color:#999;border-radius:10px;-webkit-animation:pace-spinner 400ms linear infinite;-moz-animation:pace-spinner 400ms linear infinite;-ms-animation:pace-spinner 400ms linear infinite;-o-animation:pace-spinner 400ms linear infinite;animation:pace-spinner 400ms linear infinite}@-webkit-keyframes pace-spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes pace-spinner{0%{-moz-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes pace-spinner{0%{-o-transform:rotate(0deg);transform:rotate(0deg)}100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes pace-spinner{0%{-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes pace-spinner{0%{transform:rotate(0deg);transform:rotate(0deg)}100%{transform:rotate(360deg);transform:rotate(360deg)}}
@@ -0,0 +1,99 @@
1
+ body
2
+ margin-top: 60px
3
+
4
+ body.quadro-signed-in
5
+ margin-bottom: 60px
6
+
7
+ form
8
+ span.status
9
+ @extend .help-block
10
+
11
+ #quadro-toolbar
12
+ padding: 8px
13
+
14
+ #quadro-controls
15
+ margin: 0px
16
+
17
+ #quadro-images
18
+ overflow: auto
19
+
20
+ #quadro-gallery.collapsed
21
+ padding: 0px
22
+ height: 0em
23
+ min-height: 0px
24
+ margin-bottom: 0px
25
+ border: none
26
+ box-shadow: none
27
+ +transition-property(height)
28
+ +transition-duration(0.5s)
29
+ +transition-timing-function(ease-in)
30
+
31
+ #quadro-uploader
32
+ height: 0em
33
+
34
+ #quadro-images
35
+ height: 0em
36
+
37
+ #quadro-gallery.expanded
38
+ padding: 0px
39
+ height: 25em
40
+ +transition-property(height)
41
+ +transition-duration(0.5s)
42
+ +transition-timing-function(ease-out)
43
+
44
+ #quadro-uploader
45
+ height: auto
46
+
47
+ #quadro-images
48
+ height: 13em
49
+
50
+ .quadro-brand
51
+ text-decoration: none !important
52
+
53
+ .widget-map
54
+ height: 240px
55
+ background-color: #808080
56
+ background: no-repeat center center
57
+ background-attachment: scroll
58
+ -webkit-background-size: cover
59
+ -moz-background-size: cover
60
+ background-size: cover
61
+ -o-background-size: cover
62
+
63
+ .note-editor
64
+ margin-bottom: 20px
65
+
66
+ .fileinput > .thumbnail > img
67
+ width: 100%
68
+
69
+ .dropper-input
70
+ left: 0px
71
+
72
+ .asset-dropper
73
+ margin: 1em
74
+ position: relative
75
+
76
+ .slick-arrow
77
+ z-index: 1000
78
+
79
+ .slick-prev
80
+ left: 20px
81
+
82
+ .slick-next
83
+ right: 20px
84
+
85
+ .slide
86
+ img
87
+ width: 100%
88
+
89
+ a.thumbnail
90
+ img
91
+ width: 100%
92
+
93
+ .jumbotron
94
+ background: no-repeat center center
95
+ background-attachment: scroll
96
+ -webkit-background-size: cover
97
+ -moz-background-size: cover
98
+ background-size: cover
99
+ -o-background-size: cover
File without changes
@@ -0,0 +1,122 @@
1
+ module Quadro
2
+ class ApplicationController < ActionController::Base
3
+ helper_method :widget, :asset, :interaction, :root, :parent, :page, :subpages, :geoip, :user, :users
4
+
5
+ def after_sign_in_path_for(_resource)
6
+ quadro.root_path
7
+ end
8
+
9
+ def after_sign_out_path_for(_resource)
10
+ quadro.root_path
11
+ end
12
+
13
+ private
14
+
15
+ def widget
16
+ @widget ||=
17
+ case
18
+ when %w(widgets).include?(controller_name) && %w(create).include?(action_name)
19
+ widget_type = params[:type]
20
+ if Quadro.available_widgets.include?(widget_type)
21
+ klass = widget_type.constantize
22
+ new_widget = klass.new(params[:widget])
23
+ page.widgets << new_widget
24
+ new_widget
25
+ end
26
+ when %w(pages).include?(controller_name) && %w(form).include?(action_name)
27
+ new_widget = page.widgets.find(params[:widget_id]) rescue nil
28
+ new_widget.becomes(new_widget.type.constantize) unless new_widget.nil?
29
+ new_widget
30
+ when %w(assets).include?(controller_name)
31
+ new_widget = page.widgets.find(params[:widget_id]) rescue nil
32
+ new_widget.becomes(new_widget.type.constantize) unless new_widget.nil?
33
+ new_widget
34
+ else
35
+ new_widget = page.widgets.find(params[:id]) rescue nil
36
+ new_widget.becomes(new_widget.type.constantize) unless new_widget.nil?
37
+ new_widget
38
+ end
39
+ end
40
+
41
+ def asset
42
+ @asset ||=
43
+ case
44
+ when %w(assets).include?(controller_name) && %w(create).include?(action_name)
45
+ asset_type = params[:type]
46
+ if Quadro.available_assets.include?(asset_type)
47
+ klass = asset_type.constantize
48
+ new_asset = klass.new(params[:asset])
49
+ if widget.present?
50
+ widget.assets << new_asset
51
+ elsif page.present?
52
+ page.assets << new_asset
53
+ end
54
+ new_asset
55
+ end
56
+ when %w(assets).include?(controller_name) && %w(edit update destroy).include?(action_name)
57
+ if widget.present?
58
+ widget.find_asset(params[:id])
59
+ elsif page.present?
60
+ page.find_asset(params[:id])
61
+ end
62
+ else
63
+ page.find_asset(params[:id])
64
+ end
65
+ end
66
+
67
+ def interaction
68
+ @interaction ||= widget.interactions.new
69
+ end
70
+
71
+ def root
72
+ @root ||= Quadro::Page.roots.first rescue nil
73
+ end
74
+
75
+ def parent
76
+ @parent ||= Quadro::Page.find(params[:parent_id]) rescue nil
77
+ end
78
+
79
+ def page
80
+ @page ||=
81
+ case
82
+ when %w(pages).include?(controller_name)
83
+ case
84
+ when %w(index).include?(action_name)
85
+ root
86
+ when %w(new).include?(action_name)
87
+ parent.children.new
88
+ when %w(create).include?(action_name)
89
+ parent.children.new(params[:page])
90
+ when %w(edit update form).include?(action_name)
91
+ root.subtree.find_by_slug(params[:id]) rescue nil
92
+ else
93
+ root.subtree.find_by_slug(params[:id]) rescue nil
94
+ end
95
+ when %w(widgets assets).include?(controller_name)
96
+ root.subtree.find(params[:page_id]) rescue nil
97
+ else
98
+ root.subtree.find(params[:page_id]) rescue nil
99
+ end
100
+ end
101
+
102
+ def subpages
103
+ @subpages ||= page.children.ordered.page(params[:page])
104
+ end
105
+
106
+ def geoip
107
+ @geoip ||= MaxMindDB.new(File.join(Rails.root, 'db', 'GeoLite2-Country.mmdb'))
108
+ end
109
+
110
+ def user
111
+ @user ||= current_user
112
+ end
113
+
114
+ def users
115
+ @users ||= Quadro::User.ordered
116
+ end
117
+
118
+ def not_found_page
119
+ render file: 'public/404', status: :not_found, layout: false
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,21 @@
1
+ require_dependency 'quadro/application_controller'
2
+
3
+ module Quadro
4
+ class AssetsController < ApplicationController
5
+ before_filter :authenticate_user!
6
+
7
+ respond_to :js, :json, :xml
8
+
9
+ def create
10
+ asset.save
11
+ end
12
+
13
+ def update
14
+ asset.update_attributes(params[:asset])
15
+ end
16
+
17
+ def destroy
18
+ asset.destroy
19
+ end
20
+ end
21
+ end