sbdevcore 0.2.15 → 0.2.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.idea/workspace.xml +131 -77
- data/app/assets/javascripts/rails.validations.custom.js +5 -0
- data/app/assets/javascripts/sbdev-ajax.js +2 -6
- data/app/assets/javascripts/sbdevcore-tools.js +24 -0
- data/app/assets/stylesheets/_gallery.scss +72 -75
- data/app/controllers/galleries_controller.rb +1 -1
- data/app/models/gallery.rb +0 -2
- data/app/models/index.rb +4 -4
- data/app/models/photo.rb +22 -1
- data/app/views/galleries/index.html.haml +1 -1
- data/app/views/indices/_form.html.haml +0 -2
- data/app/views/indices/_show.html.haml +8 -7
- data/app/views/indices/show.html.haml +1 -1
- data/app/views/layouts/application.html.haml +1 -1
- data/app/views/photos/_form.html.haml +11 -2
- data/config/initializers/custom_validators.rb +12 -0
- data/config/locales/en.yml +1 -0
- data/lib/sbdevcore/version.rb +1 -1
- metadata +30 -32
- data/app/views/galleries/show.html.haml +0 -9
- data/app/views/shared/_gallery.html.haml +0 -14
data/.idea/workspace.xml
CHANGED
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
<component name="FileColors" enabled="true" enabledForTabs="true" />
|
|
24
24
|
<component name="FileEditorManager">
|
|
25
25
|
<leaf>
|
|
26
|
-
<file leaf-file-name="
|
|
27
|
-
<entry file="file://$PROJECT_DIR$/
|
|
26
|
+
<file leaf-file-name="sbdevcore-tools.js" pinned="false" current="false" current-in-tab="false">
|
|
27
|
+
<entry file="file://$PROJECT_DIR$/app/assets/javascripts/sbdevcore-tools.js">
|
|
28
28
|
<provider selected="true" editor-type-id="text-editor">
|
|
29
|
-
<state line="
|
|
29
|
+
<state line="127" column="19" selection-start="3661" selection-end="3661" vertical-scroll-proportion="0.0">
|
|
30
30
|
<folding />
|
|
31
31
|
</state>
|
|
32
32
|
</provider>
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
<file leaf-file-name="version.rb" pinned="false" current="true" current-in-tab="true">
|
|
36
36
|
<entry file="file://$PROJECT_DIR$/lib/sbdevcore/version.rb">
|
|
37
37
|
<provider selected="true" editor-type-id="text-editor">
|
|
38
|
-
<state line="1" column="19" selection-start="36" selection-end="36" vertical-scroll-proportion="0.
|
|
38
|
+
<state line="1" column="19" selection-start="36" selection-end="36" vertical-scroll-proportion="0.016282225">
|
|
39
39
|
<folding />
|
|
40
40
|
</state>
|
|
41
41
|
</provider>
|
|
@@ -44,7 +44,34 @@
|
|
|
44
44
|
<file leaf-file-name="_show.html.haml" pinned="false" current="false" current-in-tab="false">
|
|
45
45
|
<entry file="file://$PROJECT_DIR$/app/views/indices/_show.html.haml">
|
|
46
46
|
<provider selected="true" editor-type-id="text-editor">
|
|
47
|
-
<state line="
|
|
47
|
+
<state line="29" column="0" selection-start="1593" selection-end="1650" vertical-scroll-proportion="0.0">
|
|
48
|
+
<folding />
|
|
49
|
+
</state>
|
|
50
|
+
</provider>
|
|
51
|
+
</entry>
|
|
52
|
+
</file>
|
|
53
|
+
<file leaf-file-name="show.html.haml" pinned="false" current="false" current-in-tab="false">
|
|
54
|
+
<entry file="file://$PROJECT_DIR$/app/views/indices/show.html.haml">
|
|
55
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
56
|
+
<state line="1" column="0" selection-start="0" selection-end="26" vertical-scroll-proportion="0.0">
|
|
57
|
+
<folding />
|
|
58
|
+
</state>
|
|
59
|
+
</provider>
|
|
60
|
+
</entry>
|
|
61
|
+
</file>
|
|
62
|
+
<file leaf-file-name="sbdev-ajax.js" pinned="false" current="false" current-in-tab="false">
|
|
63
|
+
<entry file="file://$PROJECT_DIR$/app/assets/javascripts/sbdev-ajax.js">
|
|
64
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
65
|
+
<state line="19" column="14" selection-start="631" selection-end="631" vertical-scroll-proportion="0.0">
|
|
66
|
+
<folding />
|
|
67
|
+
</state>
|
|
68
|
+
</provider>
|
|
69
|
+
</entry>
|
|
70
|
+
</file>
|
|
71
|
+
<file leaf-file-name="_show.html.haml" pinned="false" current="false" current-in-tab="false">
|
|
72
|
+
<entry file="file://$PROJECT_DIR$/app/views/galleries/_show.html.haml">
|
|
73
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
74
|
+
<state line="5" column="0" selection-start="241" selection-end="241" vertical-scroll-proportion="0.0">
|
|
48
75
|
<folding />
|
|
49
76
|
</state>
|
|
50
77
|
</provider>
|
|
@@ -63,21 +90,21 @@
|
|
|
63
90
|
<component name="IdeDocumentHistory">
|
|
64
91
|
<option name="changedFiles">
|
|
65
92
|
<list>
|
|
66
|
-
<option value="$PROJECT_DIR$/
|
|
67
|
-
<option value="$PROJECT_DIR
|
|
68
|
-
<option value="$PROJECT_DIR$/
|
|
69
|
-
<option value="$PROJECT_DIR
|
|
70
|
-
<option value="$PROJECT_DIR$/app/views/
|
|
71
|
-
<option value="$PROJECT_DIR$/lib/generators/sbdevcore/templates/sass.scss" />
|
|
72
|
-
<option value="$PROJECT_DIR$/app/assets/stylesheets/_buttons.scss" />
|
|
73
|
-
<option value="$PROJECT_DIR$/app/assets/stylesheets/_sbdev_core.scss" />
|
|
74
|
-
<option value="$PROJECT_DIR$/app/assets/stylesheets/_bar_nav.scss" />
|
|
93
|
+
<option value="$PROJECT_DIR$/app/views/galleries/index.html.haml" />
|
|
94
|
+
<option value="$PROJECT_DIR$/app/views/galleries/show.html.haml" />
|
|
95
|
+
<option value="$PROJECT_DIR$/app/views/photos/_form.html.haml" />
|
|
96
|
+
<option value="$PROJECT_DIR$/app/models/photo.rb" />
|
|
97
|
+
<option value="$PROJECT_DIR$/app/views/indices/_form.html.haml" />
|
|
75
98
|
<option value="$PROJECT_DIR$/app/models/gallery.rb" />
|
|
99
|
+
<option value="$PROJECT_DIR$/app/controllers/galleries_controller.rb" />
|
|
100
|
+
<option value="$PROJECT_DIR$/lib/sbdevcore.rb" />
|
|
76
101
|
<option value="$PROJECT_DIR$/app/models/index.rb" />
|
|
77
|
-
<option value="$PROJECT_DIR$/
|
|
78
|
-
<option value="$PROJECT_DIR$/app/views/indices/_form.html.haml" />
|
|
79
|
-
<option value="$PROJECT_DIR$/app/views/indices/edit.html.haml" />
|
|
102
|
+
<option value="$PROJECT_DIR$/app/views/indices/show.html.haml" />
|
|
80
103
|
<option value="$PROJECT_DIR$/app/views/indices/_show.html.haml" />
|
|
104
|
+
<option value="$PROJECT_DIR$/app/controllers/indices_controller.rb" />
|
|
105
|
+
<option value="$PROJECT_DIR$/app/assets/stylesheets/_gallery.scss" />
|
|
106
|
+
<option value="$PROJECT_DIR$/app/assets/javascripts/sbdev-ajax.js" />
|
|
107
|
+
<option value="$PROJECT_DIR$/app/assets/javascripts/sbdevcore-tools.js" />
|
|
81
108
|
<option value="$PROJECT_DIR$/lib/sbdevcore/version.rb" />
|
|
82
109
|
</list>
|
|
83
110
|
</option>
|
|
@@ -108,16 +135,25 @@
|
|
|
108
135
|
<sortByType />
|
|
109
136
|
</navigator>
|
|
110
137
|
<panes>
|
|
138
|
+
<pane id="Favorites" />
|
|
139
|
+
<pane id="Scope" />
|
|
140
|
+
<pane id="RailsProjectView" />
|
|
111
141
|
<pane id="ProjectPane">
|
|
112
142
|
<subPane>
|
|
143
|
+
<PATH>
|
|
144
|
+
<PATH_ELEMENT>
|
|
145
|
+
<option name="myItemId" value="sbdevcore" />
|
|
146
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
147
|
+
</PATH_ELEMENT>
|
|
148
|
+
</PATH>
|
|
113
149
|
<PATH>
|
|
114
150
|
<PATH_ELEMENT>
|
|
115
151
|
<option name="myItemId" value="sbdevcore" />
|
|
116
152
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
117
153
|
</PATH_ELEMENT>
|
|
118
154
|
<PATH_ELEMENT>
|
|
119
|
-
<option name="myItemId" value="
|
|
120
|
-
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.
|
|
155
|
+
<option name="myItemId" value="sbdevcore" />
|
|
156
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
121
157
|
</PATH_ELEMENT>
|
|
122
158
|
</PATH>
|
|
123
159
|
<PATH>
|
|
@@ -129,6 +165,14 @@
|
|
|
129
165
|
<option name="myItemId" value="sbdevcore" />
|
|
130
166
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
131
167
|
</PATH_ELEMENT>
|
|
168
|
+
<PATH_ELEMENT>
|
|
169
|
+
<option name="myItemId" value="app" />
|
|
170
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
171
|
+
</PATH_ELEMENT>
|
|
172
|
+
<PATH_ELEMENT>
|
|
173
|
+
<option name="myItemId" value="views" />
|
|
174
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
175
|
+
</PATH_ELEMENT>
|
|
132
176
|
</PATH>
|
|
133
177
|
<PATH>
|
|
134
178
|
<PATH_ELEMENT>
|
|
@@ -147,6 +191,10 @@
|
|
|
147
191
|
<option name="myItemId" value="views" />
|
|
148
192
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
149
193
|
</PATH_ELEMENT>
|
|
194
|
+
<PATH_ELEMENT>
|
|
195
|
+
<option name="myItemId" value="shared" />
|
|
196
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
197
|
+
</PATH_ELEMENT>
|
|
150
198
|
</PATH>
|
|
151
199
|
<PATH>
|
|
152
200
|
<PATH_ELEMENT>
|
|
@@ -166,7 +214,21 @@
|
|
|
166
214
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
167
215
|
</PATH_ELEMENT>
|
|
168
216
|
<PATH_ELEMENT>
|
|
169
|
-
<option name="myItemId" value="
|
|
217
|
+
<option name="myItemId" value="galleries" />
|
|
218
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
219
|
+
</PATH_ELEMENT>
|
|
220
|
+
</PATH>
|
|
221
|
+
<PATH>
|
|
222
|
+
<PATH_ELEMENT>
|
|
223
|
+
<option name="myItemId" value="sbdevcore" />
|
|
224
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
225
|
+
</PATH_ELEMENT>
|
|
226
|
+
<PATH_ELEMENT>
|
|
227
|
+
<option name="myItemId" value="sbdevcore" />
|
|
228
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
229
|
+
</PATH_ELEMENT>
|
|
230
|
+
<PATH_ELEMENT>
|
|
231
|
+
<option name="myItemId" value="app" />
|
|
170
232
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
171
233
|
</PATH_ELEMENT>
|
|
172
234
|
</PATH>
|
|
@@ -184,7 +246,7 @@
|
|
|
184
246
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
185
247
|
</PATH_ELEMENT>
|
|
186
248
|
<PATH_ELEMENT>
|
|
187
|
-
<option name="myItemId" value="
|
|
249
|
+
<option name="myItemId" value="assets" />
|
|
188
250
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
189
251
|
</PATH_ELEMENT>
|
|
190
252
|
</PATH>
|
|
@@ -201,22 +263,27 @@
|
|
|
201
263
|
<option name="myItemId" value="app" />
|
|
202
264
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
203
265
|
</PATH_ELEMENT>
|
|
266
|
+
<PATH_ELEMENT>
|
|
267
|
+
<option name="myItemId" value="assets" />
|
|
268
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
269
|
+
</PATH_ELEMENT>
|
|
270
|
+
<PATH_ELEMENT>
|
|
271
|
+
<option name="myItemId" value="javascripts" />
|
|
272
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
273
|
+
</PATH_ELEMENT>
|
|
204
274
|
</PATH>
|
|
205
275
|
</subPane>
|
|
206
276
|
</pane>
|
|
207
|
-
<pane id="RailsProjectView" />
|
|
208
|
-
<pane id="Favorites" />
|
|
209
|
-
<pane id="Scope" />
|
|
210
277
|
</panes>
|
|
211
278
|
</component>
|
|
212
279
|
<component name="PropertiesComponent">
|
|
213
280
|
<property name="options.splitter.main.proportions" value="0.3" />
|
|
214
|
-
<property name="options.lastSelected" value="org.jetbrains.plugins.ruby.settings.RubyIdeSdkConfigurable" />
|
|
215
281
|
<property name="recentsLimit" value="5" />
|
|
282
|
+
<property name="options.lastSelected" value="org.jetbrains.plugins.ruby.settings.RubyIdeSdkConfigurable" />
|
|
216
283
|
<property name="last_opened_file_path" value="$PROJECT_DIR$/../prioritizable/lib/prioritizable" />
|
|
217
|
-
<property name="GoToClass.includeJavaFiles" value="false" />
|
|
218
|
-
<property name="options.searchVisible" value="true" />
|
|
219
284
|
<property name="options.splitter.details.proportions" value="0.2" />
|
|
285
|
+
<property name="options.searchVisible" value="true" />
|
|
286
|
+
<property name="GoToClass.includeJavaFiles" value="false" />
|
|
220
287
|
</component>
|
|
221
288
|
<component name="RunManager" selected="Rails.Development: core">
|
|
222
289
|
<configuration default="true" type="RakeRunConfigurationType" factoryName="Rake">
|
|
@@ -421,21 +488,21 @@
|
|
|
421
488
|
</component>
|
|
422
489
|
<component name="ToolWindowManager">
|
|
423
490
|
<frame x="0" y="22" width="1436" height="878" extended-state="0" />
|
|
424
|
-
<editor active="
|
|
491
|
+
<editor active="true" />
|
|
425
492
|
<layout>
|
|
426
493
|
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32908162" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
|
427
|
-
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="
|
|
494
|
+
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32908162" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
|
428
495
|
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
|
429
496
|
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="true" content_ui="tabs" />
|
|
430
497
|
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
|
431
|
-
<window_info id="Project" active="
|
|
498
|
+
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2811615" sideWeight="0.6619898" order="0" side_tool="false" content_ui="tabs" />
|
|
432
499
|
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
|
433
500
|
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
|
434
501
|
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32908162" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
|
435
502
|
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
|
436
503
|
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
|
437
504
|
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
|
438
|
-
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="
|
|
505
|
+
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32908162" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
|
439
506
|
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
|
440
507
|
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
|
441
508
|
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
|
@@ -454,7 +521,7 @@
|
|
|
454
521
|
<option name="ENABLE_BACKGROUND_PROCESSES" value="true" />
|
|
455
522
|
<option name="CHANGED_ON_SERVER_INTERVAL" value="5" />
|
|
456
523
|
<option name="FORCE_NON_EMPTY_COMMENT" value="false" />
|
|
457
|
-
<option name="LAST_COMMIT_MESSAGE" value="
|
|
524
|
+
<option name="LAST_COMMIT_MESSAGE" value="photo from url" />
|
|
458
525
|
<option name="MAKE_NEW_CHANGELIST_ACTIVE" value="true" />
|
|
459
526
|
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
|
|
460
527
|
<option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
|
|
@@ -482,6 +549,7 @@
|
|
|
482
549
|
<MESSAGE value="gallery" />
|
|
483
550
|
<MESSAGE value=" tablize" />
|
|
484
551
|
<MESSAGE value="tweaks" />
|
|
552
|
+
<MESSAGE value="photo from url" />
|
|
485
553
|
</component>
|
|
486
554
|
<component name="XDebuggerManager">
|
|
487
555
|
<breakpoint-manager>
|
|
@@ -494,114 +562,100 @@
|
|
|
494
562
|
</breakpoint-manager>
|
|
495
563
|
</component>
|
|
496
564
|
<component name="editorHistoryManager">
|
|
497
|
-
<entry file="file://$PROJECT_DIR
|
|
565
|
+
<entry file="file://$PROJECT_DIR$/app/models/gallery.rb">
|
|
498
566
|
<provider selected="true" editor-type-id="text-editor">
|
|
499
|
-
<state line="
|
|
500
|
-
<folding />
|
|
501
|
-
</state>
|
|
567
|
+
<state line="7" column="0" selection-start="206" selection-end="206" vertical-scroll-proportion="0.17107943" />
|
|
502
568
|
</provider>
|
|
503
569
|
</entry>
|
|
504
|
-
<entry file="file://$PROJECT_DIR
|
|
570
|
+
<entry file="file://$PROJECT_DIR$/lib/sbdevcore.rb">
|
|
505
571
|
<provider selected="true" editor-type-id="text-editor">
|
|
506
|
-
<state line="
|
|
507
|
-
<folding />
|
|
508
|
-
</state>
|
|
572
|
+
<state line="16" column="28" selection-start="335" selection-end="335" vertical-scroll-proportion="0.3910387" />
|
|
509
573
|
</provider>
|
|
510
574
|
</entry>
|
|
511
|
-
<entry file="file://$PROJECT_DIR$/app/
|
|
575
|
+
<entry file="file://$PROJECT_DIR$/app/views/galleries/_form.html.haml">
|
|
512
576
|
<provider selected="true" editor-type-id="text-editor">
|
|
513
|
-
<state line="
|
|
514
|
-
<folding />
|
|
515
|
-
</state>
|
|
577
|
+
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
|
|
516
578
|
</provider>
|
|
517
579
|
</entry>
|
|
518
|
-
<entry file="file://$PROJECT_DIR$/app/
|
|
580
|
+
<entry file="file://$PROJECT_DIR$/app/views/indices/_form.html.haml">
|
|
519
581
|
<provider selected="true" editor-type-id="text-editor">
|
|
520
|
-
<state line="
|
|
521
|
-
<folding />
|
|
522
|
-
</state>
|
|
582
|
+
<state line="3" column="0" selection-start="86" selection-end="86" vertical-scroll-proportion="0.073319755" />
|
|
523
583
|
</provider>
|
|
524
584
|
</entry>
|
|
525
|
-
<entry file="file://$PROJECT_DIR$/
|
|
585
|
+
<entry file="file://$PROJECT_DIR$/app/models/index.rb">
|
|
526
586
|
<provider selected="true" editor-type-id="text-editor">
|
|
527
|
-
<state line="
|
|
528
|
-
<folding />
|
|
529
|
-
</state>
|
|
587
|
+
<state line="14" column="36" selection-start="508" selection-end="508" vertical-scroll-proportion="0.3529412" />
|
|
530
588
|
</provider>
|
|
531
589
|
</entry>
|
|
532
|
-
<entry file="file://$PROJECT_DIR$/
|
|
590
|
+
<entry file="file://$PROJECT_DIR$/lib/generators/sbdevcore/templates/sass.scss">
|
|
533
591
|
<provider selected="true" editor-type-id="text-editor">
|
|
534
|
-
<state line="
|
|
535
|
-
<folding />
|
|
536
|
-
</state>
|
|
592
|
+
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
|
|
537
593
|
</provider>
|
|
538
594
|
</entry>
|
|
539
|
-
<entry file="file://$PROJECT_DIR$/app/
|
|
595
|
+
<entry file="file://$PROJECT_DIR$/app/assets/stylesheets/_gallery.scss">
|
|
540
596
|
<provider selected="true" editor-type-id="text-editor">
|
|
541
|
-
<state line="
|
|
597
|
+
<state line="76" column="0" selection-start="1157" selection-end="1221" vertical-scroll-proportion="0.016282225">
|
|
542
598
|
<folding />
|
|
543
599
|
</state>
|
|
544
600
|
</provider>
|
|
545
601
|
</entry>
|
|
546
|
-
<entry file="file://$PROJECT_DIR$/app/
|
|
602
|
+
<entry file="file://$PROJECT_DIR$/app/controllers/indices_controller.rb">
|
|
547
603
|
<provider selected="true" editor-type-id="text-editor">
|
|
548
|
-
<state line="
|
|
549
|
-
<folding />
|
|
550
|
-
</state>
|
|
604
|
+
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
|
|
551
605
|
</provider>
|
|
552
606
|
</entry>
|
|
553
|
-
<entry file="file://$PROJECT_DIR$/app/
|
|
607
|
+
<entry file="file://$PROJECT_DIR$/app/controllers/sbdev_core_controller.rb">
|
|
554
608
|
<provider selected="true" editor-type-id="text-editor">
|
|
555
|
-
<state line="
|
|
609
|
+
<state line="11" column="11" selection-start="256" selection-end="280" vertical-scroll-proportion="0.17460318">
|
|
556
610
|
<folding />
|
|
557
611
|
</state>
|
|
558
612
|
</provider>
|
|
559
613
|
</entry>
|
|
560
|
-
<entry file="file://$PROJECT_DIR$/app/
|
|
614
|
+
<entry file="file://$PROJECT_DIR$/app/assets/javascripts/jquery.tools.min.js">
|
|
561
615
|
<provider selected="true" editor-type-id="text-editor">
|
|
562
|
-
<state line="
|
|
616
|
+
<state line="23" column="0" selection-start="14155" selection-end="14155" vertical-scroll-proportion="0.12955466">
|
|
563
617
|
<folding />
|
|
564
618
|
</state>
|
|
565
619
|
</provider>
|
|
566
620
|
</entry>
|
|
567
|
-
<entry file="file://$PROJECT_DIR$/
|
|
621
|
+
<entry file="file://$PROJECT_DIR$/app/views/galleries/_show.html.haml">
|
|
568
622
|
<provider selected="true" editor-type-id="text-editor">
|
|
569
|
-
<state line="
|
|
623
|
+
<state line="5" column="0" selection-start="241" selection-end="241" vertical-scroll-proportion="0.0">
|
|
570
624
|
<folding />
|
|
571
625
|
</state>
|
|
572
626
|
</provider>
|
|
573
627
|
</entry>
|
|
574
|
-
<entry file="file://$PROJECT_DIR$/app/
|
|
628
|
+
<entry file="file://$PROJECT_DIR$/app/assets/javascripts/sbdev-ajax.js">
|
|
575
629
|
<provider selected="true" editor-type-id="text-editor">
|
|
576
|
-
<state line="
|
|
630
|
+
<state line="19" column="14" selection-start="631" selection-end="631" vertical-scroll-proportion="0.0">
|
|
577
631
|
<folding />
|
|
578
632
|
</state>
|
|
579
633
|
</provider>
|
|
580
634
|
</entry>
|
|
581
|
-
<entry file="file://$PROJECT_DIR$/app/views/indices/
|
|
635
|
+
<entry file="file://$PROJECT_DIR$/app/views/indices/show.html.haml">
|
|
582
636
|
<provider selected="true" editor-type-id="text-editor">
|
|
583
|
-
<state line="
|
|
637
|
+
<state line="1" column="0" selection-start="0" selection-end="26" vertical-scroll-proportion="0.0">
|
|
584
638
|
<folding />
|
|
585
639
|
</state>
|
|
586
640
|
</provider>
|
|
587
641
|
</entry>
|
|
588
|
-
<entry file="file://$PROJECT_DIR$/app/views/indices/
|
|
642
|
+
<entry file="file://$PROJECT_DIR$/app/views/indices/_show.html.haml">
|
|
589
643
|
<provider selected="true" editor-type-id="text-editor">
|
|
590
|
-
<state line="
|
|
644
|
+
<state line="29" column="0" selection-start="1593" selection-end="1650" vertical-scroll-proportion="0.0">
|
|
591
645
|
<folding />
|
|
592
646
|
</state>
|
|
593
647
|
</provider>
|
|
594
648
|
</entry>
|
|
595
|
-
<entry file="file://$PROJECT_DIR$/app/
|
|
649
|
+
<entry file="file://$PROJECT_DIR$/app/assets/javascripts/sbdevcore-tools.js">
|
|
596
650
|
<provider selected="true" editor-type-id="text-editor">
|
|
597
|
-
<state line="
|
|
651
|
+
<state line="127" column="19" selection-start="3661" selection-end="3661" vertical-scroll-proportion="0.0">
|
|
598
652
|
<folding />
|
|
599
653
|
</state>
|
|
600
654
|
</provider>
|
|
601
655
|
</entry>
|
|
602
656
|
<entry file="file://$PROJECT_DIR$/lib/sbdevcore/version.rb">
|
|
603
657
|
<provider selected="true" editor-type-id="text-editor">
|
|
604
|
-
<state line="1" column="19" selection-start="36" selection-end="36" vertical-scroll-proportion="0.
|
|
658
|
+
<state line="1" column="19" selection-start="36" selection-end="36" vertical-scroll-proportion="0.016282225">
|
|
605
659
|
<folding />
|
|
606
660
|
</state>
|
|
607
661
|
</provider>
|
|
@@ -3,3 +3,8 @@ clientSideValidations.validators.local["email"] = function (element, options) {
|
|
|
3
3
|
return options.message;
|
|
4
4
|
}
|
|
5
5
|
};
|
|
6
|
+
clientSideValidations.validators.local["url"] = function (element, options) {
|
|
7
|
+
if(!/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/.test(element.val())) {
|
|
8
|
+
return options.message;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
@@ -9,15 +9,11 @@ function ajax_complete_defaults(data){
|
|
|
9
9
|
$("#main").removeClass('ajax-loader');
|
|
10
10
|
$("#main").html(data);
|
|
11
11
|
$('title').html($("#content_for_title").html());
|
|
12
|
-
$("#content_for_title").remove();
|
|
13
12
|
$("meta[name='description']").attr("content",$("#content_for_page_description").html());
|
|
14
|
-
$("#content_for_page_description").remove();
|
|
15
13
|
$("meta[name='keywords']").attr("content",$("#content_for_keywords").html());
|
|
16
|
-
$("#content_for_keywords").remove();
|
|
17
14
|
$('#sidebar').html($("#content_for_sidebar").html());
|
|
18
|
-
$("#
|
|
19
|
-
$('#
|
|
20
|
-
$("#content_for_post_content").remove();
|
|
15
|
+
$('#gallery').html($("#content_for_gallery").html());
|
|
16
|
+
$('#slideshow').html($("#content_for_slideshow").html());
|
|
21
17
|
bind_functions("#main");
|
|
22
18
|
}
|
|
23
19
|
|
|
@@ -94,6 +94,27 @@ function spellcheck(context){
|
|
|
94
94
|
$('.mceEditor iframe', context).contents().find('body').attr("spellcheck", true);
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
+
function fade_flash(){
|
|
98
|
+
setTimeout(function(){$(".flash").slideUp("slow");}, 5000);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function bind_slideshow(){
|
|
102
|
+
$("#scrollable_tabs").tabs("#scrollable_tabs_content div", {
|
|
103
|
+
effect:'fade',
|
|
104
|
+
fadeOutSpeed: "slow",
|
|
105
|
+
rotate: true
|
|
106
|
+
}).slideshow({
|
|
107
|
+
autoplay: true,
|
|
108
|
+
autopause: true,
|
|
109
|
+
clickable: true
|
|
110
|
+
});
|
|
111
|
+
var api = $("#scrollable_tabs").data("tabs");
|
|
112
|
+
$("#forward").click(function(){api.next();});
|
|
113
|
+
$("#backward").click(function(){api.prev();});
|
|
114
|
+
var slide_api = $("#scrollable_tabs").data("slideshow");
|
|
115
|
+
$("#pause").click(function(){slide_api.stop();})
|
|
116
|
+
}
|
|
117
|
+
|
|
97
118
|
function bind_functions(context){
|
|
98
119
|
$('.asset-admin a', context).each(function(){
|
|
99
120
|
$(this).highlightDiv();
|
|
@@ -104,9 +125,12 @@ function bind_functions(context){
|
|
|
104
125
|
set_currents();
|
|
105
126
|
$(".scrollable", context).scrollable();
|
|
106
127
|
$(".items", context).tabs("#gallery_wrap_inner", {effect: 'myAjax', rotate: true}).slideshow({clickable: false});
|
|
128
|
+
bind_slideshow();
|
|
107
129
|
paginateAjax(context);
|
|
130
|
+
fade_flash();
|
|
108
131
|
}
|
|
109
132
|
|
|
133
|
+
|
|
110
134
|
$(document).ready(function (){
|
|
111
135
|
bind_functions(document);
|
|
112
136
|
init_tinymce();
|
|
@@ -1,91 +1,88 @@
|
|
|
1
1
|
#gallery {
|
|
2
|
-
a.browse {
|
|
3
|
-
|
|
4
|
-
display:block;
|
|
5
|
-
width:30px;
|
|
6
|
-
height:30px;
|
|
7
|
-
cursor:pointer;
|
|
8
|
-
font-size:1px;
|
|
2
|
+
#gallery_wrap a.browse {
|
|
3
|
+
margin: 25% 10px 0;
|
|
9
4
|
}
|
|
10
|
-
a.right { background-position: 0 -30px; clear:right; margin-right: 0px; float: right;}
|
|
11
|
-
a.right:hover { background-position:-30px -30px; }
|
|
12
|
-
a.right:active { background-position:-60px -30px; }
|
|
13
5
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
6
|
+
#gallery_wrap_inner {
|
|
7
|
+
width: 90%;
|
|
8
|
+
margin: 0 auto;
|
|
9
|
+
.title {
|
|
10
|
+
width: 100%;
|
|
11
|
+
margin: 0 auto;
|
|
12
|
+
left: 0;
|
|
13
|
+
padding: 10px 0;
|
|
14
|
+
@include corners-all($corner-radius);
|
|
15
|
+
text-align: center;
|
|
16
|
+
}
|
|
17
|
+
img {
|
|
18
|
+
max-width: 566px;
|
|
19
|
+
max-height: 660px;
|
|
20
|
+
}
|
|
22
21
|
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
#gallery_wrap a.browse {
|
|
26
|
-
margin: 15px 10px 0;
|
|
27
|
-
}
|
|
28
22
|
|
|
29
|
-
|
|
30
|
-
width: 90%;
|
|
31
|
-
margin: 0 auto;
|
|
32
|
-
.title {
|
|
33
|
-
width: 100%;
|
|
23
|
+
.scroll_nav {
|
|
34
24
|
margin: 0 auto;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
img {
|
|
41
|
-
max-width: 566px;
|
|
42
|
-
max-height: 660px;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
25
|
+
width: 700px;
|
|
26
|
+
a.browse {
|
|
27
|
+
margin: 62.5px 10px 0;
|
|
28
|
+
}
|
|
45
29
|
|
|
46
|
-
.scroll_nav {
|
|
47
|
-
margin: 0 auto;
|
|
48
|
-
width: 700px;
|
|
49
|
-
a.browse {
|
|
50
|
-
margin: 62.5px 10px 0;
|
|
51
30
|
}
|
|
52
31
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
.scrollable {
|
|
32
|
+
.scrollable {
|
|
56
33
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
float:left;
|
|
64
|
-
background-color: transparent;
|
|
65
|
-
.button {
|
|
34
|
+
position:relative;
|
|
35
|
+
overflow:hidden;
|
|
36
|
+
width: 620px;
|
|
37
|
+
height:155px;
|
|
38
|
+
padding: 0;
|
|
39
|
+
margin: 0;
|
|
66
40
|
float:left;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
41
|
+
background-color: transparent;
|
|
42
|
+
.button {
|
|
43
|
+
float:left;
|
|
44
|
+
padding: 5px !important;
|
|
45
|
+
height:125px;
|
|
46
|
+
width:125px;
|
|
47
|
+
border: none;
|
|
48
|
+
overflow: hidden;
|
|
49
|
+
}
|
|
73
50
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
51
|
+
img {
|
|
52
|
+
max-height:125px;
|
|
53
|
+
max-width:125px;
|
|
54
|
+
margin: 0;
|
|
55
|
+
padding: 0;
|
|
56
|
+
}
|
|
80
57
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
58
|
+
.items {
|
|
59
|
+
/* this cannot be too large */
|
|
60
|
+
width:20000em;
|
|
61
|
+
position:absolute;
|
|
62
|
+
clear:both;
|
|
63
|
+
div {
|
|
64
|
+
float:left;
|
|
65
|
+
width:620px;
|
|
66
|
+
}
|
|
89
67
|
}
|
|
90
68
|
}
|
|
91
69
|
}
|
|
70
|
+
|
|
71
|
+
a.browse {
|
|
72
|
+
background:url(/assets/hori_large.png) no-repeat;
|
|
73
|
+
display:block;
|
|
74
|
+
width:30px;
|
|
75
|
+
height:30px;
|
|
76
|
+
cursor:pointer;
|
|
77
|
+
font-size:1px;
|
|
78
|
+
&.right { background-position: 0 -30px; clear:right; margin-right: 0px; float: right;}
|
|
79
|
+
&.right:hover { background-position:-30px -30px; }
|
|
80
|
+
&.right:active { background-position:-60px -30px; }
|
|
81
|
+
&.left { margin-left: 0px; }
|
|
82
|
+
&.left:hover { background-position:-30px 0; }
|
|
83
|
+
&.left:active { background-position:-60px 0; }
|
|
84
|
+
|
|
85
|
+
}
|
|
86
|
+
a.disabled {
|
|
87
|
+
visibility:hidden !important;
|
|
88
|
+
}
|
data/app/models/gallery.rb
CHANGED
data/app/models/index.rb
CHANGED
|
@@ -4,6 +4,7 @@ class Index < ActiveRecord::Base
|
|
|
4
4
|
delegate :asset, :to => :"photos.first", :allow_nil => true
|
|
5
5
|
alias_method :photo, :asset
|
|
6
6
|
|
|
7
|
+
validates_presence_of :title
|
|
7
8
|
before_validation :default_name
|
|
8
9
|
|
|
9
10
|
extend FriendlyId
|
|
@@ -31,7 +32,6 @@ class Index < ActiveRecord::Base
|
|
|
31
32
|
accepts_nested_attributes_for :photos, :reject_if => lambda { |a| a[:asset].blank? }, :allow_destroy => true
|
|
32
33
|
accepts_nested_attributes_for :downloadables, :reject_if => lambda { |a| a[:asset].blank? }, :allow_destroy => true
|
|
33
34
|
accepts_nested_attributes_for :texts, :reject_if => lambda { |a| a[:content].blank?}, :allow_destroy => true
|
|
34
|
-
|
|
35
35
|
accepts_nested_attributes_for :gallery, :allow_destroy => true
|
|
36
36
|
|
|
37
37
|
def assets
|
|
@@ -43,7 +43,7 @@ class Index < ActiveRecord::Base
|
|
|
43
43
|
self.title ||= self.name.titleize rescue nil
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
def title
|
|
47
|
-
owner.try('title') ? owner.title : read_attribute(:title)
|
|
48
|
-
end
|
|
46
|
+
# def title
|
|
47
|
+
# owner.try('title') ? owner.title : read_attribute(:title)
|
|
48
|
+
# end
|
|
49
49
|
end
|
data/app/models/photo.rb
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
require 'open-uri'
|
|
1
2
|
class Photo < ActiveRecord::Base
|
|
2
3
|
belongs_to :index
|
|
3
|
-
|
|
4
|
+
attr_accessor :url
|
|
5
|
+
attr_accessible :name, :description, :asset, :asset_file_name, :asset_content_type, :asset_file_size, :klass, :url
|
|
4
6
|
|
|
5
7
|
validates_presence_of :name, :asset
|
|
8
|
+
validates_url :url, :unless => Proc.new{self.url.blank?}
|
|
9
|
+
|
|
10
|
+
before_validation :download_remote_image, :if => :image_url_provided?
|
|
6
11
|
|
|
7
12
|
include ActsAsPrioritizable
|
|
8
13
|
acts_as_prioritizable("index", "assets")
|
|
@@ -59,4 +64,20 @@ class Photo < ActiveRecord::Base
|
|
|
59
64
|
filename = asset_file_name.gsub(/\.#{extension}$/, '')
|
|
60
65
|
self.asset.instance_write(:file_name, "#{transliterate(filename)}.#{transliterate(extension)}")
|
|
61
66
|
end
|
|
67
|
+
|
|
68
|
+
private
|
|
69
|
+
def image_url_provided?
|
|
70
|
+
!self.url.blank?
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def download_remote_image
|
|
74
|
+
self.asset = do_download_remote_image
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def do_download_remote_image
|
|
78
|
+
io = open(URI.parse(url))
|
|
79
|
+
def io.original_filename; base_uri.path.split('/').last; end
|
|
80
|
+
io.is_a?(Tempfile) ? nil : io
|
|
81
|
+
rescue nil
|
|
82
|
+
end
|
|
62
83
|
end
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
= render :partial => 'indices/index'
|
|
3
3
|
- if admin_signed_in?
|
|
4
4
|
%p= link_to "New Gallery", new_gallery_path
|
|
5
|
-
- content_for :
|
|
5
|
+
- content_for :gallery do
|
|
6
6
|
- for gallery in @galleries
|
|
7
7
|
.clearfix.content.corner-all.box-shadow
|
|
8
8
|
= link_to image_tag(gallery.assets.first.thumb, :class => 'left'), gallery
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
- f ||= local_assigns[:locals][:f]
|
|
2
2
|
- index ||= f.object
|
|
3
|
-
- index ||= f.object
|
|
4
3
|
%div{:id => f.object.id.to_s}
|
|
5
4
|
= f.input :title
|
|
6
|
-
|
|
7
5
|
= f.input(:page_title) unless index.owner.is_a?(Gallery)
|
|
8
6
|
= f.input(:keywords, :input_html => { :rows => 5 }) unless index.owner.is_a?(Gallery)
|
|
9
7
|
= f.input(:page_description, :input_html => { :rows => 5 }) unless index.owner.is_a?(Gallery)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
- index ||= local_assigns[:index]
|
|
2
2
|
- render_seo index
|
|
3
|
-
.asset
|
|
3
|
+
.asset.clearfix
|
|
4
4
|
%h1.title=index.title.titleize
|
|
5
5
|
- if admin_signed_in?
|
|
6
6
|
%p.asset-admin
|
|
@@ -14,18 +14,19 @@
|
|
|
14
14
|
= link_to "Add Photo", new_index_photo_path(index.id), :rel=>"#overlay", :class => "overlayed"
|
|
15
15
|
= link_to "Add Video", new_index_video_path(index.id), :rel=>"#overlay", :class => "overlayed"
|
|
16
16
|
= link_to "Add Downloadable File", new_index_downloadable_path(index.id), :rel=>"#overlay", :class => "overlayed"
|
|
17
|
-
= link_to "Add Gallery",
|
|
17
|
+
= link_to "Add Gallery", index_gallery_path(index.id), :method => :post if (index.gallery.nil? && !index.owner.is_a?(Gallery))
|
|
18
18
|
- unless index.gallery.nil?
|
|
19
|
-
=content_for(:
|
|
19
|
+
=content_for(:gallery) do
|
|
20
20
|
- if admin_signed_in?
|
|
21
21
|
.asset
|
|
22
22
|
%p.asset-admin
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
= link_to "Add Gallery Page", new_gallery_index_path(index.gallery.id), :rel=>"#overlay", :class => "overlayed"
|
|
24
|
+
= link_to "Remove Gallery", index_gallery_path(index), :method => :delete, :confirm => "Are you sure?"
|
|
25
|
+
= render(:partial => "galleries/show", :object => index.gallery.indices, :as => :indices) unless index.gallery.indices.empty?
|
|
25
26
|
- if(request.xhr?)
|
|
26
27
|
.content_for.hidden
|
|
27
|
-
#
|
|
28
|
-
=@view_flow.get(:
|
|
28
|
+
#content_for_gallery
|
|
29
|
+
=@view_flow.get(:gallery)
|
|
29
30
|
#content_for_title
|
|
30
31
|
=@view_flow.get(:title)
|
|
31
32
|
#content_for_keywords
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
- alignment ||= local_assigns[:locals][:alignment]
|
|
2
2
|
- f ||= local_assigns[:locals][:f]
|
|
3
3
|
%div{:id => f.object.id.to_s}
|
|
4
|
-
-
|
|
4
|
+
- unless f.object.new_record?
|
|
5
5
|
= image_tag f.object.asset.url(:thumb), :width => "100", :class => "left"
|
|
6
6
|
= f.input :name
|
|
7
|
-
|
|
7
|
+
- if f.object.new_record?
|
|
8
|
+
.input
|
|
9
|
+
= label_tag "Upload"
|
|
10
|
+
= radio_button_tag :asset_type, "file", true
|
|
11
|
+
File
|
|
12
|
+
= radio_button_tag :asset_type, "url"
|
|
13
|
+
URL
|
|
14
|
+
#asset_type
|
|
15
|
+
= f.input :asset, :as => :file, :label => "Photo", :required => false, :input_html => { :validate => false }
|
|
16
|
+
= f.input :url, :label => "Photo URL", :required => false, :input_html => { :validate => false }
|
|
8
17
|
= f.input :description, :input_html => { :cols => 70, :rows => 3 }
|
|
9
18
|
= f.input :klass, :as => :radio, :collection => ["left", "right", "center"], :label => "Alignment"
|
|
10
19
|
= render "shared/prioritizable_fields", :locals => {:f => f}
|
|
@@ -7,9 +7,21 @@ class EmailValidator < ActiveModel::EachValidator
|
|
|
7
7
|
end
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
+
class UrlValidator < ActiveModel::EachValidator
|
|
11
|
+
def validate_each(record, attr_name, value)
|
|
12
|
+
unless value =~ URI::regexp(%w(http https))
|
|
13
|
+
record.errors.add(attr_name, :url, options.merge(:value => value))
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
10
18
|
# This allows us to assign the validator in the model
|
|
11
19
|
module ActiveModel::Validations::HelperMethods
|
|
12
20
|
def validates_email(*attr_names)
|
|
13
21
|
validates_with EmailValidator, _merge_attributes(attr_names)
|
|
14
22
|
end
|
|
23
|
+
|
|
24
|
+
def validates_url(*attr_names)
|
|
25
|
+
validates_with UrlValidator, _merge_attributes(attr_names)
|
|
26
|
+
end
|
|
15
27
|
end
|
data/config/locales/en.yml
CHANGED
data/lib/sbdevcore/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sbdevcore
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.16
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2011-
|
|
12
|
+
date: 2011-10-15 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: tinymce-rails
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &2156772900 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *2156772900
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: prioritizable
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &2156772160 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: 0.0.5
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *2156772160
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: devise
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &2156771680 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ! '>='
|
|
@@ -43,10 +43,10 @@ dependencies:
|
|
|
43
43
|
version: '0'
|
|
44
44
|
type: :runtime
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *2156771680
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: paperclip
|
|
49
|
-
requirement: &
|
|
49
|
+
requirement: &2156771100 !ruby/object:Gem::Requirement
|
|
50
50
|
none: false
|
|
51
51
|
requirements:
|
|
52
52
|
- - ! '>='
|
|
@@ -54,10 +54,10 @@ dependencies:
|
|
|
54
54
|
version: '0'
|
|
55
55
|
type: :runtime
|
|
56
56
|
prerelease: false
|
|
57
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *2156771100
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: haml-edge
|
|
60
|
-
requirement: &
|
|
60
|
+
requirement: &2156770580 !ruby/object:Gem::Requirement
|
|
61
61
|
none: false
|
|
62
62
|
requirements:
|
|
63
63
|
- - ! '>='
|
|
@@ -65,10 +65,10 @@ dependencies:
|
|
|
65
65
|
version: '0'
|
|
66
66
|
type: :runtime
|
|
67
67
|
prerelease: false
|
|
68
|
-
version_requirements: *
|
|
68
|
+
version_requirements: *2156770580
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: sitemap_generator
|
|
71
|
-
requirement: &
|
|
71
|
+
requirement: &2156769960 !ruby/object:Gem::Requirement
|
|
72
72
|
none: false
|
|
73
73
|
requirements:
|
|
74
74
|
- - ! '>='
|
|
@@ -76,10 +76,10 @@ dependencies:
|
|
|
76
76
|
version: '0'
|
|
77
77
|
type: :runtime
|
|
78
78
|
prerelease: false
|
|
79
|
-
version_requirements: *
|
|
79
|
+
version_requirements: *2156769960
|
|
80
80
|
- !ruby/object:Gem::Dependency
|
|
81
81
|
name: hpricot
|
|
82
|
-
requirement: &
|
|
82
|
+
requirement: &2156769380 !ruby/object:Gem::Requirement
|
|
83
83
|
none: false
|
|
84
84
|
requirements:
|
|
85
85
|
- - ! '>='
|
|
@@ -87,10 +87,10 @@ dependencies:
|
|
|
87
87
|
version: '0'
|
|
88
88
|
type: :runtime
|
|
89
89
|
prerelease: false
|
|
90
|
-
version_requirements: *
|
|
90
|
+
version_requirements: *2156769380
|
|
91
91
|
- !ruby/object:Gem::Dependency
|
|
92
92
|
name: simple_form
|
|
93
|
-
requirement: &
|
|
93
|
+
requirement: &2156768680 !ruby/object:Gem::Requirement
|
|
94
94
|
none: false
|
|
95
95
|
requirements:
|
|
96
96
|
- - ! '>='
|
|
@@ -98,10 +98,10 @@ dependencies:
|
|
|
98
98
|
version: '0'
|
|
99
99
|
type: :runtime
|
|
100
100
|
prerelease: false
|
|
101
|
-
version_requirements: *
|
|
101
|
+
version_requirements: *2156768680
|
|
102
102
|
- !ruby/object:Gem::Dependency
|
|
103
103
|
name: client_side_validations
|
|
104
|
-
requirement: &
|
|
104
|
+
requirement: &2156764500 !ruby/object:Gem::Requirement
|
|
105
105
|
none: false
|
|
106
106
|
requirements:
|
|
107
107
|
- - ! '>='
|
|
@@ -109,10 +109,10 @@ dependencies:
|
|
|
109
109
|
version: '0'
|
|
110
110
|
type: :runtime
|
|
111
111
|
prerelease: false
|
|
112
|
-
version_requirements: *
|
|
112
|
+
version_requirements: *2156764500
|
|
113
113
|
- !ruby/object:Gem::Dependency
|
|
114
114
|
name: formalize-rails
|
|
115
|
-
requirement: &
|
|
115
|
+
requirement: &2156763960 !ruby/object:Gem::Requirement
|
|
116
116
|
none: false
|
|
117
117
|
requirements:
|
|
118
118
|
- - ! '>='
|
|
@@ -120,10 +120,10 @@ dependencies:
|
|
|
120
120
|
version: '0'
|
|
121
121
|
type: :runtime
|
|
122
122
|
prerelease: false
|
|
123
|
-
version_requirements: *
|
|
123
|
+
version_requirements: *2156763960
|
|
124
124
|
- !ruby/object:Gem::Dependency
|
|
125
125
|
name: will_paginate
|
|
126
|
-
requirement: &
|
|
126
|
+
requirement: &2156763380 !ruby/object:Gem::Requirement
|
|
127
127
|
none: false
|
|
128
128
|
requirements:
|
|
129
129
|
- - ~>
|
|
@@ -131,10 +131,10 @@ dependencies:
|
|
|
131
131
|
version: 3.0.pre4
|
|
132
132
|
type: :runtime
|
|
133
133
|
prerelease: false
|
|
134
|
-
version_requirements: *
|
|
134
|
+
version_requirements: *2156763380
|
|
135
135
|
- !ruby/object:Gem::Dependency
|
|
136
136
|
name: aws-s3
|
|
137
|
-
requirement: &
|
|
137
|
+
requirement: &2156762940 !ruby/object:Gem::Requirement
|
|
138
138
|
none: false
|
|
139
139
|
requirements:
|
|
140
140
|
- - ! '>='
|
|
@@ -142,10 +142,10 @@ dependencies:
|
|
|
142
142
|
version: '0'
|
|
143
143
|
type: :runtime
|
|
144
144
|
prerelease: false
|
|
145
|
-
version_requirements: *
|
|
145
|
+
version_requirements: *2156762940
|
|
146
146
|
- !ruby/object:Gem::Dependency
|
|
147
147
|
name: inherited_resources
|
|
148
|
-
requirement: &
|
|
148
|
+
requirement: &2156762420 !ruby/object:Gem::Requirement
|
|
149
149
|
none: false
|
|
150
150
|
requirements:
|
|
151
151
|
- - ! '>='
|
|
@@ -153,10 +153,10 @@ dependencies:
|
|
|
153
153
|
version: '0'
|
|
154
154
|
type: :runtime
|
|
155
155
|
prerelease: false
|
|
156
|
-
version_requirements: *
|
|
156
|
+
version_requirements: *2156762420
|
|
157
157
|
- !ruby/object:Gem::Dependency
|
|
158
158
|
name: friendly_id
|
|
159
|
-
requirement: &
|
|
159
|
+
requirement: &2156761820 !ruby/object:Gem::Requirement
|
|
160
160
|
none: false
|
|
161
161
|
requirements:
|
|
162
162
|
- - ~>
|
|
@@ -164,7 +164,7 @@ dependencies:
|
|
|
164
164
|
version: 4.0.0.beta8
|
|
165
165
|
type: :runtime
|
|
166
166
|
prerelease: false
|
|
167
|
-
version_requirements: *
|
|
167
|
+
version_requirements: *2156761820
|
|
168
168
|
description: Core
|
|
169
169
|
email:
|
|
170
170
|
- aosalias@gmail.com
|
|
@@ -265,7 +265,6 @@ files:
|
|
|
265
265
|
- app/views/galleries/edit.html.haml
|
|
266
266
|
- app/views/galleries/index.html.haml
|
|
267
267
|
- app/views/galleries/new.html.haml
|
|
268
|
-
- app/views/galleries/show.html.haml
|
|
269
268
|
- app/views/indices/_form.html.haml
|
|
270
269
|
- app/views/indices/_show.html.haml
|
|
271
270
|
- app/views/indices/edit.html.haml
|
|
@@ -288,7 +287,6 @@ files:
|
|
|
288
287
|
- app/views/shared/_asset_show.html.haml
|
|
289
288
|
- app/views/shared/_devise_links.erb
|
|
290
289
|
- app/views/shared/_devise_links.haml
|
|
291
|
-
- app/views/shared/_gallery.html.haml
|
|
292
290
|
- app/views/shared/_prioritizable_fields.html.haml
|
|
293
291
|
- app/views/texts/_form.html.haml
|
|
294
292
|
- app/views/texts/_show.html.haml
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
- render_seo @index
|
|
2
|
-
%h2= h @gallery.title
|
|
3
|
-
= render :partial => 'indices/index'
|
|
4
|
-
- if admin_signed_in?
|
|
5
|
-
%p
|
|
6
|
-
= link_to "Edit Gallery", edit_gallery_path(@gallery)
|
|
7
|
-
- content_for :post_content do
|
|
8
|
-
.content.corner-all.box-shadow
|
|
9
|
-
= render :partial => "shared/gallery", :locals => {:objs => @gallery.assets}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#gallery.clearfix.corner-all.box_shadow
|
|
2
|
-
#gallery_wrap.clearfix
|
|
3
|
-
%a{:class => "#{'no_back ' unless (objs.size > 1)}backward browse left"}
|
|
4
|
-
#gallery_wrap_inner.left
|
|
5
|
-
%a{:class => "#{'no_back ' unless (objs.size > 1)}forward browse right"}
|
|
6
|
-
.scroll_nav
|
|
7
|
-
%a{:class => "#{'no_back ' unless (objs.size > 4)}prev browse left"}
|
|
8
|
-
.scrollable.corner-all.nav
|
|
9
|
-
.items.ajax-nav
|
|
10
|
-
- objs.each_with_index do |obj, index|
|
|
11
|
-
= '<div>' if index%4 == 0
|
|
12
|
-
= link_to image_tag(obj.thumb, :alt => obj.name), obj, :id => obj.id, :class => "button#{' current' if obj.id == objs.first.id}"
|
|
13
|
-
= '</div>' if (index%4 == 3 || index == objs.size-1)
|
|
14
|
-
%a{:class => "#{'no_back ' unless (objs.size > 4)}next browse right"}
|