kuhsaft 0.1.1 → 0.2.legacy

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. data/.rspec +1 -2
  2. data/LICENSE +7 -0
  3. data/README.md +70 -0
  4. data/Rakefile +1 -1
  5. data/app/controllers/kuhsaft/{admin → cms}/admin_controller.rb +2 -2
  6. data/app/controllers/kuhsaft/{admin → cms}/assets_controller.rb +5 -5
  7. data/app/controllers/kuhsaft/cms/page_parts_controller.rb +34 -0
  8. data/app/controllers/kuhsaft/{admin → cms}/pages_controller.rb +12 -11
  9. data/app/helpers/cms_helper.rb +5 -0
  10. data/app/helpers/pages_helper.rb +31 -12
  11. data/app/models/kuhsaft/asset.rb +18 -0
  12. data/app/models/kuhsaft/localized_page.rb +42 -16
  13. data/app/models/kuhsaft/page.rb +66 -66
  14. data/app/models/kuhsaft/page_part/content.rb +23 -2
  15. data/app/models/kuhsaft/publish_state.rb +2 -6
  16. data/app/stylesheets/kuhsaft/{admin → cms}/partials/_assets.sass +0 -0
  17. data/app/stylesheets/kuhsaft/cms/partials/_buttons.sass +13 -0
  18. data/app/stylesheets/kuhsaft/{admin/ie.sass → cms/partials/_forms.sass} +0 -0
  19. data/app/stylesheets/kuhsaft/cms/partials/_generic.sass +315 -0
  20. data/app/stylesheets/kuhsaft/cms/partials/_simple_form.sass +75 -0
  21. data/app/stylesheets/kuhsaft/{admin → cms}/screen.sass +2 -1
  22. data/app/uploaders/kuhsaft/asset_uploader.rb +1 -1
  23. data/app/views/kuhsaft/cms/assets/_form.html.haml +15 -0
  24. data/app/views/kuhsaft/cms/assets/_list.html.haml +11 -0
  25. data/app/views/kuhsaft/cms/assets/edit.html.haml +2 -0
  26. data/app/views/kuhsaft/cms/assets/index.html.haml +3 -0
  27. data/app/views/kuhsaft/cms/assets/new.html.haml +2 -0
  28. data/app/views/kuhsaft/cms/page_parts/destroy.js.haml +1 -0
  29. data/app/{stylesheets/kuhsaft/admin/print.sass → views/kuhsaft/cms/page_parts/edit.html.haml} +0 -0
  30. data/app/views/kuhsaft/{admin/pages/show.html.haml → cms/page_parts/index.html.haml} +0 -0
  31. data/app/views/kuhsaft/cms/page_parts/new.html.haml +0 -0
  32. data/app/views/kuhsaft/cms/page_parts/show.html.haml +0 -0
  33. data/app/views/kuhsaft/cms/page_parts/update.js.haml +0 -0
  34. data/app/views/kuhsaft/cms/pages/_branch.html.haml +11 -0
  35. data/app/views/kuhsaft/cms/pages/_form.html.haml +59 -0
  36. data/app/views/kuhsaft/cms/pages/edit.html.haml +11 -0
  37. data/app/views/kuhsaft/cms/pages/index.html.haml +8 -0
  38. data/app/views/kuhsaft/cms/pages/new.html.haml +6 -0
  39. data/app/views/kuhsaft/cms/pages/show.html.haml +0 -0
  40. data/app/views/kuhsaft/page_part/markdowns/_edit_markdown.html.haml +1 -0
  41. data/app/views/kuhsaft/page_part/markdowns/_show_markdown.html.haml +1 -0
  42. data/app/views/kuhsaft/pages/show.html.haml +3 -1
  43. data/app/views/layouts/kuhsaft/admin.html.haml +24 -14
  44. data/config/locales/kuhsaft.en.yml +28 -6
  45. data/config/routes.rb +7 -8
  46. data/kuhsaft.gemspec +3 -2
  47. data/lib/generators/kuhsaft/install/migrations_generator.rb +2 -0
  48. data/lib/kuhsaft.rb +3 -0
  49. data/lib/kuhsaft/engine.rb +1 -0
  50. data/lib/kuhsaft/orderable.rb +68 -0
  51. data/lib/kuhsaft/version.rb +1 -1
  52. data/lib/templates/kuhsaft/install/acts_as_taggable_on_migration.rb +37 -0
  53. data/lib/templates/kuhsaft/install/add_tags_to_page_part_contents.rb +9 -0
  54. data/public/images/kuhsaft/add-child-page.png +0 -0
  55. data/public/images/kuhsaft/delete.png +0 -0
  56. data/public/images/kuhsaft/header-bg.jpg +0 -0
  57. data/public/images/kuhsaft/module-nav-tab-bg.png +0 -0
  58. data/public/images/kuhsaft/page-edit-icon.png +0 -0
  59. data/public/images/kuhsaft/page-new-icon.png +0 -0
  60. data/public/images/kuhsaft/page-part-draggable-area.png +0 -0
  61. data/public/images/kuhsaft/page-tree-breadcrumb-arrow.png +0 -0
  62. data/public/images/kuhsaft/pages-breadcrumb-icon.png +0 -0
  63. data/public/images/kuhsaft/tab-bg.png +0 -0
  64. data/public/images/kuhsaft/toggle-arrow-closed.png +0 -0
  65. data/public/images/kuhsaft/toggle-arrow-open.png +0 -0
  66. data/public/images/kuhsaft/wrapper-bg.png +0 -0
  67. data/public/javascripts/kuhsaft/cms/application.js +31 -0
  68. data/public/javascripts/kuhsaft/{admin → cms}/jquery-1.4.4.js +0 -0
  69. data/public/javascripts/kuhsaft/{admin → cms}/jquery-ui-1.8.12.custom.min.js +0 -0
  70. data/public/javascripts/kuhsaft/{admin → cms}/rails.js +0 -0
  71. data/spec/controllers/{admin_assets_controller_spec.rb → cms_assets_controller_spec.rb} +5 -5
  72. data/spec/controllers/{admin_pages_controller_spec.rb → cms_pages_controller_spec.rb} +2 -2
  73. data/spec/controllers/page_parts_controller_spec.rb +60 -0
  74. data/spec/dummy/app/controllers/application_controller.rb +1 -0
  75. data/spec/dummy/config/locales/en.yml +1 -3
  76. data/spec/dummy/public/javascripts/kuhsaft/cms/application.js +31 -0
  77. data/spec/dummy/public/javascripts/kuhsaft/cms/jquery-1.4.4.js +7179 -0
  78. data/spec/dummy/public/javascripts/kuhsaft/cms/jquery-ui-1.8.12.custom.min.js +192 -0
  79. data/spec/dummy/public/javascripts/kuhsaft/cms/rails.js +157 -0
  80. data/spec/factories.rb +4 -2
  81. data/spec/helpers/pages_helper_spec.rb +93 -33
  82. data/spec/models/asset_spec.rb +18 -2
  83. data/spec/models/localized_page_spec.rb +225 -124
  84. data/spec/models/page_part_content_spec.rb +35 -4
  85. data/spec/models/page_spec.rb +292 -143
  86. data/spec/models/publish_state_spec.rb +0 -12
  87. data/spec/requests/cms_pages_spec.rb +27 -0
  88. data/spec/routing/assets_routing_spec.rb +37 -30
  89. data/spec/routing/page_part_routing_spec.rb +70 -0
  90. data/spec/routing/pages_routing_spec.rb +23 -23
  91. data/spec/support/kuhsaft_spec_helper.rb +3 -0
  92. metadata +107 -63
  93. data/README +0 -67
  94. data/app/stylesheets/kuhsaft/admin/partials/_buttons.sass +0 -216
  95. data/app/stylesheets/kuhsaft/admin/partials/_generic.sass +0 -48
  96. data/app/stylesheets/kuhsaft/admin/partials/_pages.sass +0 -46
  97. data/app/views/kuhsaft/admin/assets/_form.html.haml +0 -3
  98. data/app/views/kuhsaft/admin/assets/_list.html.haml +0 -11
  99. data/app/views/kuhsaft/admin/assets/edit.html.haml +0 -1
  100. data/app/views/kuhsaft/admin/assets/index.html.haml +0 -3
  101. data/app/views/kuhsaft/admin/assets/new.html.haml +0 -1
  102. data/app/views/kuhsaft/admin/kuhsaft/page_part/markdowns/_markdown.html.haml +0 -1
  103. data/app/views/kuhsaft/admin/pages/_branch.html.haml +0 -10
  104. data/app/views/kuhsaft/admin/pages/_form.html.haml +0 -22
  105. data/app/views/kuhsaft/admin/pages/edit.html.haml +0 -7
  106. data/app/views/kuhsaft/admin/pages/index.html.haml +0 -4
  107. data/app/views/kuhsaft/admin/pages/new.html.haml +0 -3
  108. data/config/initializers/compass.rb +0 -3
  109. data/public/images/css3buttons_backgrounds.png +0 -0
  110. data/public/images/css3buttons_icons.png +0 -0
  111. data/public/images/drag-handle.png +0 -0
  112. data/public/javascripts/kuhsaft/admin/application.js +0 -17
  113. data/spec/dummy/public/images/css3buttons_backgrounds.png +0 -0
  114. data/spec/dummy/public/images/css3buttons_icons.png +0 -0
  115. data/spec/dummy/public/images/drag-handle.png +0 -0
@@ -1,8 +1,12 @@
1
1
  module Kuhsaft
2
2
  module PagePart
3
3
  class Content < ActiveRecord::Base
4
- belongs_to :localized_page
4
+ include Kuhsaft::Orderable
5
+
6
+ belongs_to :localized_page
5
7
  serialize :content
8
+ acts_as_taggable
9
+ default_scope order('position ASC')
6
10
 
7
11
  class << self
8
12
  def serialize_attr name
@@ -39,10 +43,27 @@ module Kuhsaft
39
43
  end
40
44
 
41
45
  def to_name
42
- self.to_s.split('::').last
46
+ I18n.translate self.to_s.underscore.gsub('/', '.').downcase
43
47
  end
44
48
  end
45
49
 
50
+ def edit_partial_path
51
+ path = self.class.model_name.partial_path.split '/'
52
+ path << "edit_#{path.pop}"
53
+ path.join '/'
54
+ #self.class.model_name.partial_path
55
+ end
56
+
57
+ def siblings
58
+ self.localized_page.page_parts.where('id !=?', self.id) if self.localized_page.present?
59
+ end
60
+
61
+ def show_partial_path
62
+ path = self.class.model_name.partial_path.split '/'
63
+ path << "show_#{path.pop}"
64
+ path.join '/'
65
+ end
66
+
46
67
  private
47
68
  #
48
69
  # OMFG, OMFG!!! http://stackoverflow.com/questions/5178204/what-is-a-better-way-to-create-sti-model-instance
@@ -13,15 +13,11 @@ module Kuhsaft
13
13
  def initialize options
14
14
  options.each_pair { |k,v| instance_variable_set("@#{k}", v) if respond_to?(k) }
15
15
  end
16
-
17
- def human_name
18
- I18n.translate(name)
19
- end
20
-
16
+
21
17
  def self.all
22
18
  @all ||= [
23
- PublishState.new(:name => 'unpublished', :value => UNPUBLISHED),
24
19
  PublishState.new(:name => 'published', :value => PUBLISHED),
20
+ PublishState.new(:name => 'unpublished', :value => UNPUBLISHED),
25
21
  PublishState.new(:name => 'published_at', :value => PUBLISHED_AT)
26
22
  ]
27
23
  end
@@ -0,0 +1,13 @@
1
+ .toolbar
2
+ padding: 10px 0px
3
+ background: #F8F8F8
4
+
5
+ a.button
6
+ +float_right
7
+
8
+ a.button
9
+ background: $color1
10
+ padding: 10px 15px
11
+ margin-right: 10px
12
+ +link-colors(#fff, #fff, #fff, #fff, #fff)
13
+ +border-radius(4px)
@@ -0,0 +1,315 @@
1
+ $color1: #0c1550
2
+ $color2: #1a2363
3
+ $color3: #f7f8e6
4
+ $border-color: #cdcdcd
5
+
6
+ body
7
+ line-height: 140%
8
+ color: #333
9
+ font-family: 'Helvetica Neue', 'Helvetica', Arial, sans-serif
10
+ background: #cccccb
11
+
12
+ #kuhsaft-wrapper
13
+ //background: #e9e9e9 url(/images/kuhsaft/wrapper-bg.png) repeat-x left 100px
14
+
15
+ .hidden
16
+ display: none
17
+
18
+ .cms-header
19
+ background: url(/images/kuhsaft/header-bg.jpg)
20
+ border-bottom: 1px solid #7c7a7f
21
+ +min-height(200px)
22
+
23
+ .page-tree-breadcrumb
24
+ margin-bottom: 20px
25
+ background: url(/images/kuhsaft/pages-breadcrumb-icon.png) no-repeat left 5px
26
+ padding-left: 18px
27
+
28
+ a
29
+ background: url(/images/kuhsaft/page-tree-breadcrumb-arrow.png) no-repeat right center
30
+ padding-right: 15px
31
+
32
+ a:last-child
33
+ background: transparent
34
+
35
+ .cms-module-nav
36
+ +horizontal-list(0px)
37
+ +float_right
38
+ border:
39
+ top: 1px solid #7c7a7f
40
+ right: 1px solid #7c7a7f
41
+ margin-top: -61px
42
+
43
+ a
44
+ background: $color1
45
+ padding: 10px 15px
46
+ line-height: 40px
47
+ border-left: 1px solid #ccc
48
+ +link-colors(#fff, #fff, #fff, #fff, #fff)
49
+
50
+ li
51
+ height: 40px
52
+
53
+ li.current
54
+ border-left: 1px solid #7c7a7f
55
+ height: 41px
56
+ a
57
+ background: #cccccb url(/images/kuhsaft/module-nav-tab-bg.png) repeat-x
58
+ border-left: 1px solid #e6e6e6
59
+ +text-shadow(#efefef, 0px, 1px, 0px)
60
+ +link-colors($color1, $color2, $color1, $color1, $color1)
61
+
62
+ .cms-content-container
63
+ +single-box-shadow(#666, 0px, 2px, 8px)
64
+ margin: 20px
65
+ width: 960px
66
+
67
+ .language-tabs
68
+ border:
69
+ top: 1px solid #cfcfcf
70
+ bottom: 1px solid #cfcfcf
71
+ background: #e3e3e3 url(/images/kuhsaft/tab-bg.png) repeat-x
72
+ height: 40px
73
+
74
+ li
75
+ width: 100px
76
+ height: 40px
77
+ text-align: center
78
+ text-transform: uppercase
79
+ font-weight: bold
80
+ border:
81
+ right: 1px solid #cfcfcf
82
+ +float_left
83
+
84
+ a
85
+ display: block
86
+ width: 99px
87
+ height: 100%
88
+ line-height: 40px
89
+ border-right: 1px solid #f0f0f0
90
+ +text-shadow(#fff, 0px, 1px, 0px)
91
+
92
+ .current
93
+ background: #f8f8f8
94
+ height: 41px
95
+
96
+ .cms-content
97
+ background: #f8f8f8
98
+ padding: 35px
99
+
100
+ .box-container
101
+ border:
102
+ left: 1px solid $border-color
103
+ right: 1px solid $border-color
104
+ bottom: 1px solid $border-color
105
+
106
+ .box
107
+ border-top: 1px solid $border-color
108
+ padding: 15px 25px
109
+ color: #7a7a7a
110
+
111
+ .lightened-box
112
+ background: #f0f0f0
113
+ +text-shadow(#fff, 0px, 1px, 0px)
114
+ @extend .box
115
+
116
+ .darkened-box
117
+ background: #d5d5d5
118
+ +text-shadow(#efefef, 0px, 1px, 0px)
119
+ @extend .box
120
+ padding: 10px 25px
121
+
122
+ .colored-box
123
+ background: $color3
124
+ @extend .box
125
+
126
+ .draggable-box
127
+ position: relative
128
+
129
+ .draggable-box.colored-box
130
+ background: $color3 url(/images/kuhsaft/page-part-draggable-area.png) no-repeat top right
131
+
132
+ h1
133
+ font-size: 36px
134
+ font-weight: bold
135
+ line-height: 46px
136
+ margin: 10px 0px 20px 0px
137
+ color: $color1
138
+ padding-left: 36px
139
+
140
+ span
141
+ color: #858592
142
+
143
+ .new-page
144
+ background: url(/images/kuhsaft/page-new-icon.png) no-repeat left 3px
145
+
146
+ .edit-page
147
+ background: url(/images/kuhsaft/page-edit-icon.png) no-repeat left 7px
148
+
149
+ a
150
+ text-decoration: none
151
+ +link-colors($color1, $color2, $color1, $color1, $color2)
152
+
153
+ .clear
154
+ clear: both
155
+
156
+ .clearfix
157
+ +clearfix
158
+
159
+ .list
160
+ border-top: 1px solid #444
161
+ li
162
+ border-bottom: 1px solid #444
163
+
164
+ .publish-information
165
+ input[type="radio"], label
166
+ +float_left
167
+
168
+ .grid-3, .grid-5, .grid-2
169
+ +float_left
170
+
171
+ .grid-3
172
+ width: 180px
173
+
174
+ .grid-5
175
+ width: 300px
176
+
177
+ .grid-2
178
+ width: 120px
179
+
180
+ .page-part-helpers
181
+ background: #e3e5c5
182
+ padding: 3px 6px
183
+ border:
184
+ top: 1px solid #d2d3b9
185
+ left: 1px solid #d2d3b9
186
+ right: 1px solid #fefff4
187
+ bottom: 1px solid #fefff4
188
+ +border-radius(3px)
189
+
190
+ .page-part-destroy
191
+ font-size: 12px
192
+ width: 180px
193
+ padding-left: 15px
194
+ +float_left
195
+
196
+ input, label
197
+ +float_left
198
+
199
+ .page-part-tags
200
+ +float_left
201
+ width: 626px
202
+
203
+ input
204
+ width: 612px
205
+
206
+ .dimmed
207
+ background: #d5d5d5
208
+
209
+ =nested-branch($depth)
210
+ $start-color: #f3f3f3
211
+ $stop-color: #e3e3e3
212
+ $calc-depth: $depth - 1
213
+ $padded-depth: (20px * $depth)
214
+
215
+ background: darken($stop-color, $calc-depth*12.5%)
216
+ padding: 4px 4px 4px $padded-depth
217
+ border-top: 1px solid darken(#fff, 3%+($calc-depth*10%))
218
+ border-bottom: 1px solid darken($stop-color, 10% + ($calc-depth*10%))
219
+ +linear-gradient(color-stops(darken($start-color, $calc-depth*12.5%), darken($stop-color, $calc-depth*12.5%)))
220
+ +text-shadow(darken(#fff, $calc-depth*10%), 0px, 1px, 0px)
221
+
222
+ li
223
+ .branch
224
+ +nested-branch(1)
225
+
226
+ li
227
+ .branch
228
+ +nested-branch(2)
229
+
230
+ li
231
+ .branch
232
+ +nested-branch(3)
233
+
234
+ li
235
+ .branch
236
+ +nested-branch(4)
237
+
238
+ .icon
239
+ +float_right
240
+
241
+ .to-translate
242
+ color: #666
243
+
244
+ ul.pages-root
245
+ width: 560px
246
+ border: 1px solid #b2b2b2
247
+ border-bottom: 0px
248
+
249
+ .asset-pic
250
+ width: 102px
251
+ height: 160px
252
+ overflow: hidden
253
+ text-align: center
254
+ font-size: 11px
255
+ margin-right: 10px
256
+ +float_left
257
+
258
+ a
259
+ display: block
260
+
261
+ input.string
262
+ width: 96px
263
+ margin-top: 3px
264
+
265
+ .thumb
266
+ border: 1px solid #ccc
267
+ display: block
268
+ height: 100px
269
+ width: 100px
270
+
271
+ .fixed-width-image
272
+ img
273
+ max-width: 100%
274
+
275
+ .icon
276
+ +hide-text
277
+ +float_right
278
+ display: block
279
+ height: 22px
280
+ padding: 0px 4px
281
+ border:
282
+ left: 1px solid #b2b2b2
283
+
284
+ .icon.add-child-page
285
+ background: url(/images/kuhsaft/add-child-page.png) no-repeat center center
286
+ width: 28px
287
+ border-right: 0px
288
+
289
+ .icon.delete
290
+ background: url(/images/kuhsaft/delete.png) no-repeat center center
291
+ width: 22px
292
+ border-left: 0px
293
+
294
+ .drag-handler
295
+ width: 140px
296
+ height: 60px
297
+ position: absolute
298
+ right: 0px
299
+ top: 0px
300
+ cursor: pointer
301
+
302
+ .destroy-handler
303
+ text-align: right
304
+ width: 100px
305
+ position: absolute
306
+ right: 140px
307
+ top: 0px
308
+ padding-top: 10px
309
+
310
+ .will-drag
311
+ border: 1px solid #666
312
+ +single-box-shadow(rgba(0,0,0,0.2), 0px, 5px, 20px)
313
+
314
+ .container
315
+ width: 960px
@@ -0,0 +1,75 @@
1
+ label.string, label.file, label.integer, label.select
2
+ width: 200px
3
+ +float_left
4
+
5
+ input.string, textarea.text
6
+ padding: 3px 2px
7
+ width: 626px
8
+ border:
9
+ top: 1px solid #b8b8b8
10
+ left: 1px solid #b8b8b8
11
+ right: 1px solid #cfcfcf
12
+ bottom: 1px solid #cfcfcf
13
+ +float_left
14
+
15
+ div.input
16
+ .error
17
+ color: red
18
+ display: block
19
+ font-size: 12px
20
+ margin-left: 200px
21
+
22
+ textarea.text.large
23
+ height: 400px
24
+
25
+ .input
26
+ margin: 5px 0px
27
+ +clearfix
28
+
29
+ textarea.small
30
+ height: 80px
31
+
32
+ input.small
33
+ width: 120px
34
+ margin-left: 10px
35
+
36
+ select
37
+ width: 170px
38
+
39
+ .collection_radio
40
+ input
41
+ +float_left
42
+
43
+ .toggle
44
+ color: $color1
45
+ padding-left: 20px
46
+ background: url(/images/kuhsaft/toggle-arrow-open.png) no-repeat left center
47
+
48
+ .toggle.closed
49
+ background: url(/images/kuhsaft/toggle-arrow-closed.png) no-repeat left center
50
+
51
+ #kuhsaft_page_page_part_type
52
+ +float_left
53
+
54
+ #kuhsaft_page_submit
55
+ +float_left
56
+
57
+ .add-page-part
58
+ padding:
59
+ top: 15px
60
+ bottom: 10px
61
+
62
+ .input
63
+ width: 420px
64
+ +float_left
65
+
66
+ label
67
+ display: block
68
+
69
+ select
70
+ margin-right: 4px
71
+
72
+ .darkened-box, .lightened-box
73
+ input[type='text']:focus, textarea:focus
74
+ background: $color3
75
+ +transition(background, 1s)