imagine_cms 4.1.4 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +2 -1
  3. data/app/assets/images/interface/form_loading.gif +0 -0
  4. data/app/assets/images/management/btn-top-delete.png +0 -0
  5. data/app/assets/images/management/btn-top-edit.png +0 -0
  6. data/app/assets/images/management/btn-top-exterminate.png +0 -0
  7. data/app/assets/images/management/btn-top-new.png +0 -0
  8. data/app/assets/images/management/btn-top-preview.png +0 -0
  9. data/app/assets/images/management/btn-top-properties.png +0 -0
  10. data/app/assets/javascripts/codemirror/modes-custom/imagine_cms.js +87 -0
  11. data/app/assets/javascripts/imagine_cms/core.js +510 -0
  12. data/app/assets/javascripts/imagine_cms/legacy/misc.js +537 -0
  13. data/app/assets/javascripts/imagine_cms/legacy/rollovers.js +193 -0
  14. data/app/assets/javascripts/imagine_cms/legacy/slideshow.js +116 -0
  15. data/app/assets/javascripts/imagine_cms/legacy/textfieldhints.js +55 -0
  16. data/app/assets/javascripts/imagine_cms.js +14 -1
  17. data/app/assets/javascripts/imagine_cms_compat.js +26 -0
  18. data/app/assets/javascripts/jquery-ui.js +16608 -0
  19. data/app/assets/javascripts/tag-it.js +591 -0
  20. data/app/assets/stylesheets/imagine_cms.css.scss +26 -10
  21. data/app/assets/stylesheets/imagine_controls.css.scss +8 -0
  22. data/app/assets/stylesheets/jquery-ui.css +1225 -0
  23. data/app/assets/stylesheets/jquery-ui.structure.css +833 -0
  24. data/app/assets/stylesheets/jquery-ui.theme.css +410 -0
  25. data/app/assets/stylesheets/jquery.tagit.css +69 -0
  26. data/app/assets/stylesheets/management.css.scss +7 -0
  27. data/app/assets/stylesheets/tagit.ui-imagine.css +100 -0
  28. data/app/controllers/cms/content_controller.rb +28 -45
  29. data/app/controllers/management/cms_controller.rb +116 -94
  30. data/app/helpers/cms_application_helper.rb +76 -39
  31. data/app/models/cms_page.rb +32 -14
  32. data/app/models/cms_page_object.rb +1 -1
  33. data/app/models/cms_page_tag.rb +2 -2
  34. data/app/models/cms_template.rb +1 -1
  35. data/app/models/user.rb +6 -6
  36. data/app/models/user_group.rb +1 -1
  37. data/app/views/cms/content/_photo_gallery.html.erb +12 -12
  38. data/app/views/cms/content/_search.html.erb +2 -2
  39. data/app/views/cms/content/_search_result.html.erb +16 -10
  40. data/app/views/layouts/management.html.erb +18 -17
  41. data/app/views/management/cms/_edit_page.html.erb +47 -33
  42. data/app/views/management/cms/_gallery_index.html.erb +4 -4
  43. data/app/views/management/cms/_image.html.erb +3 -3
  44. data/app/views/management/cms/_image_details.html.erb +9 -8
  45. data/app/views/management/cms/_list_page.html.erb +2 -2
  46. data/app/views/management/cms/_list_page_select.html.erb +1 -1
  47. data/app/views/management/cms/_page_list.html.erb +69 -48
  48. data/app/views/management/cms/_page_list_source_folder.html.erb +2 -2
  49. data/app/views/management/cms/_template_options.html.erb +4 -4
  50. data/app/views/management/cms/_template_reference.html.erb +13 -15
  51. data/app/views/management/cms/edit_page_content.html.erb +3 -3
  52. data/app/views/management/cms/edit_snippet.html.erb +19 -41
  53. data/app/views/management/cms/edit_template.html.erb +15 -38
  54. data/app/views/management/cms/pages.html.erb +17 -29
  55. data/app/views/management/cms/snippets.html.erb +2 -2
  56. data/app/views/management/cms/templates.html.erb +2 -2
  57. data/app/views/management/cms/toolbar_edit.html.erb +2 -0
  58. data/app/views/management/cms/toolbar_preview.html.erb +2 -2
  59. data/config/initializers/config_file.rb +1 -1
  60. data/imagine_cms.gemspec +7 -4
  61. data/lib/extensions/action_controller_extensions.rb +50 -19
  62. data/lib/imagine_cms/engine.rb +12 -8
  63. data/lib/imagine_cms/version.rb +1 -1
  64. data/lib/prototype_legacy_helper/lib/prototype_legacy_helper.rb +2 -2
  65. data/lib/tasks/imagine_cms_tasks.rake +8 -0
  66. metadata +69 -91
  67. data/app/assets/images/management/btn_archive.gif +0 -0
  68. data/app/assets/images/management/btn_delete.gif +0 -0
  69. data/app/assets/images/management/btn_duplicate.gif +0 -0
  70. data/app/assets/images/management/btn_edit.gif +0 -0
  71. data/app/assets/images/management/btn_new_page.gif +0 -0
  72. data/app/assets/images/management/btn_preview.gif +0 -0
  73. data/app/assets/images/management/btn_properties.gif +0 -0
  74. data/app/assets/images/management/btn_restore.gif +0 -0
  75. data/app/assets/images/management/btn_top_delete.gif +0 -0
  76. data/app/assets/images/management/btn_top_duplicate.gif +0 -0
  77. data/app/assets/images/management/btn_top_edit.gif +0 -0
  78. data/app/assets/images/management/btn_top_new.gif +0 -0
  79. data/app/assets/images/management/btn_top_preview.gif +0 -0
  80. data/app/assets/images/management/btn_top_properties.gif +0 -0
  81. data/app/assets/javascripts/codepress/codepress.html +0 -36
  82. data/app/assets/javascripts/codepress/codepress.js +0 -130
  83. data/app/assets/javascripts/codepress/engines/gecko.js +0 -240
  84. data/app/assets/javascripts/codepress/engines/khtml.js +0 -0
  85. data/app/assets/javascripts/codepress/engines/msie.js +0 -263
  86. data/app/assets/javascripts/codepress/engines/older.js +0 -0
  87. data/app/assets/javascripts/codepress/engines/opera.js +0 -259
  88. data/app/assets/javascripts/codepress/languages/css.js +0 -23
  89. data/app/assets/javascripts/codepress/languages/generic.js +0 -25
  90. data/app/assets/javascripts/codepress/languages/html.js +0 -63
  91. data/app/assets/javascripts/codepress/languages/java.js +0 -24
  92. data/app/assets/javascripts/codepress/languages/javascript.js +0 -30
  93. data/app/assets/javascripts/codepress/languages/perl.js +0 -27
  94. data/app/assets/javascripts/codepress/languages/php.js +0 -60
  95. data/app/assets/javascripts/codepress/languages/ruby.js +0 -26
  96. data/app/assets/javascripts/codepress/languages/sql.js +0 -30
  97. data/app/assets/javascripts/codepress/languages/text.js +0 -9
  98. data/app/assets/javascripts/imagine.js +0 -1393
  99. data/app/assets/stylesheets/codepress/codepress.css +0 -7
  100. data/app/assets/stylesheets/codepress/languages/css.css +0 -10
  101. data/app/assets/stylesheets/codepress/languages/generic.css +0 -9
  102. data/app/assets/stylesheets/codepress/languages/html.css +0 -18
  103. data/app/assets/stylesheets/codepress/languages/java.css +0 -7
  104. data/app/assets/stylesheets/codepress/languages/javascript.css +0 -8
  105. data/app/assets/stylesheets/codepress/languages/perl.css +0 -11
  106. data/app/assets/stylesheets/codepress/languages/php.css +0 -12
  107. data/app/assets/stylesheets/codepress/languages/ruby.css +0 -10
  108. data/app/assets/stylesheets/codepress/languages/sql.css +0 -10
  109. data/app/assets/stylesheets/codepress/languages/text.css +0 -5
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imagine_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.4
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Namba
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-04 00:00:00.000000000 Z
11
+ date: 2015-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -73,151 +73,151 @@ dependencies:
73
73
  - !ruby/object:Gem::Version
74
74
  version: '1.0'
75
75
  - !ruby/object:Gem::Dependency
76
- name: non-stupid-digest-assets
76
+ name: aws-sdk
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '1.0'
81
+ version: 2.0.0
82
82
  type: :runtime
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '1.0'
88
+ version: 2.0.0
89
89
  - !ruby/object:Gem::Dependency
90
- name: prototype-rails
90
+ name: rubyzip
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: 4.0.0
95
+ version: '1.0'
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: 4.0.0
102
+ version: '1.0'
103
103
  - !ruby/object:Gem::Dependency
104
- name: aws-sdk
104
+ name: rinku
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: 2.0.0
109
+ version: '1.7'
110
110
  type: :runtime
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: 2.0.0
116
+ version: '1.7'
117
117
  - !ruby/object:Gem::Dependency
118
- name: rmagick
118
+ name: net-dns
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- version: 1.15.0
124
- - - "<"
121
+ - - "~>"
125
122
  - !ruby/object:Gem::Version
126
- version: '3.0'
123
+ version: '0.7'
127
124
  type: :runtime
128
125
  prerelease: false
129
126
  version_requirements: !ruby/object:Gem::Requirement
130
127
  requirements:
131
- - - ">="
132
- - !ruby/object:Gem::Version
133
- version: 1.15.0
134
- - - "<"
128
+ - - "~>"
135
129
  - !ruby/object:Gem::Version
136
- version: '3.0'
130
+ version: '0.7'
137
131
  - !ruby/object:Gem::Dependency
138
- name: mini_magick
132
+ name: acts_as_tree
139
133
  requirement: !ruby/object:Gem::Requirement
140
134
  requirements:
141
135
  - - "~>"
142
136
  - !ruby/object:Gem::Version
143
- version: '3.3'
137
+ version: '1.1'
144
138
  type: :runtime
145
139
  prerelease: false
146
140
  version_requirements: !ruby/object:Gem::Requirement
147
141
  requirements:
148
142
  - - "~>"
149
143
  - !ruby/object:Gem::Version
150
- version: '3.3'
144
+ version: '1.1'
151
145
  - !ruby/object:Gem::Dependency
152
- name: rubyzip
146
+ name: safe_yaml
153
147
  requirement: !ruby/object:Gem::Requirement
154
148
  requirements:
155
- - - "~>"
149
+ - - ">="
156
150
  - !ruby/object:Gem::Version
157
- version: '1.0'
151
+ version: '0'
158
152
  type: :runtime
159
153
  prerelease: false
160
154
  version_requirements: !ruby/object:Gem::Requirement
161
155
  requirements:
162
- - - "~>"
156
+ - - ">="
163
157
  - !ruby/object:Gem::Version
164
- version: '1.0'
158
+ version: '0'
165
159
  - !ruby/object:Gem::Dependency
166
- name: rinku
160
+ name: codemirror-rails
167
161
  requirement: !ruby/object:Gem::Requirement
168
162
  requirements:
169
- - - "~>"
163
+ - - ">="
170
164
  - !ruby/object:Gem::Version
171
- version: '1.7'
165
+ version: '0'
172
166
  type: :runtime
173
167
  prerelease: false
174
168
  version_requirements: !ruby/object:Gem::Requirement
175
169
  requirements:
176
- - - "~>"
170
+ - - ">="
177
171
  - !ruby/object:Gem::Version
178
- version: '1.7'
172
+ version: '0'
179
173
  - !ruby/object:Gem::Dependency
180
- name: net-dns
174
+ name: rmagick
181
175
  requirement: !ruby/object:Gem::Requirement
182
176
  requirements:
183
- - - "~>"
177
+ - - ">="
184
178
  - !ruby/object:Gem::Version
185
- version: '0.7'
179
+ version: 1.15.0
180
+ - - "<"
181
+ - !ruby/object:Gem::Version
182
+ version: '3.0'
186
183
  type: :runtime
187
184
  prerelease: false
188
185
  version_requirements: !ruby/object:Gem::Requirement
189
186
  requirements:
190
- - - "~>"
187
+ - - ">="
191
188
  - !ruby/object:Gem::Version
192
- version: '0.7'
189
+ version: 1.15.0
190
+ - - "<"
191
+ - !ruby/object:Gem::Version
192
+ version: '3.0'
193
193
  - !ruby/object:Gem::Dependency
194
- name: acts_as_tree
194
+ name: mini_magick
195
195
  requirement: !ruby/object:Gem::Requirement
196
196
  requirements:
197
197
  - - "~>"
198
198
  - !ruby/object:Gem::Version
199
- version: '1.1'
199
+ version: '3.3'
200
200
  type: :runtime
201
201
  prerelease: false
202
202
  version_requirements: !ruby/object:Gem::Requirement
203
203
  requirements:
204
204
  - - "~>"
205
205
  - !ruby/object:Gem::Version
206
- version: '1.1'
206
+ version: '3.3'
207
207
  - !ruby/object:Gem::Dependency
208
- name: safe_yaml
208
+ name: non-stupid-digest-assets
209
209
  requirement: !ruby/object:Gem::Requirement
210
210
  requirements:
211
- - - ">="
211
+ - - "~>"
212
212
  - !ruby/object:Gem::Version
213
- version: '0'
213
+ version: '1.0'
214
214
  type: :runtime
215
215
  prerelease: false
216
216
  version_requirements: !ruby/object:Gem::Requirement
217
217
  requirements:
218
- - - ">="
218
+ - - "~>"
219
219
  - !ruby/object:Gem::Version
220
- version: '0'
220
+ version: '1.0'
221
221
  - !ruby/object:Gem::Dependency
222
222
  name: sqlite3
223
223
  requirement: !ruby/object:Gem::Requirement
@@ -249,26 +249,19 @@ files:
249
249
  - app/assets/images/cropper/marqueeVert.gif
250
250
  - app/assets/images/interface/arrow_next.gif
251
251
  - app/assets/images/interface/arrow_previous.gif
252
+ - app/assets/images/interface/form_loading.gif
252
253
  - app/assets/images/interface/photo_next.gif
253
254
  - app/assets/images/interface/photo_pause.gif
254
255
  - app/assets/images/interface/photo_play.gif
255
256
  - app/assets/images/interface/photo_prev.gif
257
+ - app/assets/images/management/btn-top-delete.png
258
+ - app/assets/images/management/btn-top-edit.png
259
+ - app/assets/images/management/btn-top-exterminate.png
260
+ - app/assets/images/management/btn-top-new.png
261
+ - app/assets/images/management/btn-top-preview.png
262
+ - app/assets/images/management/btn-top-properties.png
256
263
  - app/assets/images/management/btn_add.gif
257
- - app/assets/images/management/btn_archive.gif
258
- - app/assets/images/management/btn_delete.gif
259
- - app/assets/images/management/btn_duplicate.gif
260
- - app/assets/images/management/btn_edit.gif
261
264
  - app/assets/images/management/btn_help.gif
262
- - app/assets/images/management/btn_new_page.gif
263
- - app/assets/images/management/btn_preview.gif
264
- - app/assets/images/management/btn_properties.gif
265
- - app/assets/images/management/btn_restore.gif
266
- - app/assets/images/management/btn_top_delete.gif
267
- - app/assets/images/management/btn_top_duplicate.gif
268
- - app/assets/images/management/btn_top_edit.gif
269
- - app/assets/images/management/btn_top_new.gif
270
- - app/assets/images/management/btn_top_preview.gif
271
- - app/assets/images/management/btn_top_properties.gif
272
265
  - app/assets/images/management/bullet.gif
273
266
  - app/assets/images/management/cvv2_graphic.gif
274
267
  - app/assets/images/management/error.gif
@@ -287,23 +280,7 @@ files:
287
280
  - app/assets/images/management/start.gif
288
281
  - app/assets/images/management/vcard.gif
289
282
  - app/assets/javascripts/builder.js
290
- - app/assets/javascripts/codepress/codepress.html
291
- - app/assets/javascripts/codepress/codepress.js
292
- - app/assets/javascripts/codepress/engines/gecko.js
293
- - app/assets/javascripts/codepress/engines/khtml.js
294
- - app/assets/javascripts/codepress/engines/msie.js
295
- - app/assets/javascripts/codepress/engines/older.js
296
- - app/assets/javascripts/codepress/engines/opera.js
297
- - app/assets/javascripts/codepress/languages/css.js
298
- - app/assets/javascripts/codepress/languages/generic.js
299
- - app/assets/javascripts/codepress/languages/html.js
300
- - app/assets/javascripts/codepress/languages/java.js
301
- - app/assets/javascripts/codepress/languages/javascript.js
302
- - app/assets/javascripts/codepress/languages/perl.js
303
- - app/assets/javascripts/codepress/languages/php.js
304
- - app/assets/javascripts/codepress/languages/ruby.js
305
- - app/assets/javascripts/codepress/languages/sql.js
306
- - app/assets/javascripts/codepress/languages/text.js
283
+ - app/assets/javascripts/codemirror/modes-custom/imagine_cms.js
307
284
  - app/assets/javascripts/cropper.js
308
285
  - app/assets/javascripts/dojo/dojo.js
309
286
  - app/assets/javascripts/dojo/src/html/images/shadowB.png
@@ -384,24 +361,25 @@ files:
384
361
  - app/assets/javascripts/dojo/src/widget/templates/incrementMonth.gif
385
362
  - app/assets/javascripts/dojo/src/widget/templates/incrementWeek.gif
386
363
  - app/assets/javascripts/dojo/src/widget/templates/richtextframe.html
387
- - app/assets/javascripts/imagine.js
388
364
  - app/assets/javascripts/imagine_cms.js
365
+ - app/assets/javascripts/imagine_cms/core.js
366
+ - app/assets/javascripts/imagine_cms/legacy/misc.js
367
+ - app/assets/javascripts/imagine_cms/legacy/rollovers.js
368
+ - app/assets/javascripts/imagine_cms/legacy/slideshow.js
369
+ - app/assets/javascripts/imagine_cms/legacy/textfieldhints.js
370
+ - app/assets/javascripts/imagine_cms_compat.js
371
+ - app/assets/javascripts/jquery-ui.js
389
372
  - app/assets/javascripts/jquery_no_conflict.js
390
- - app/assets/stylesheets/codepress/codepress.css
391
- - app/assets/stylesheets/codepress/languages/css.css
392
- - app/assets/stylesheets/codepress/languages/generic.css
393
- - app/assets/stylesheets/codepress/languages/html.css
394
- - app/assets/stylesheets/codepress/languages/java.css
395
- - app/assets/stylesheets/codepress/languages/javascript.css
396
- - app/assets/stylesheets/codepress/languages/perl.css
397
- - app/assets/stylesheets/codepress/languages/php.css
398
- - app/assets/stylesheets/codepress/languages/ruby.css
399
- - app/assets/stylesheets/codepress/languages/sql.css
400
- - app/assets/stylesheets/codepress/languages/text.css
373
+ - app/assets/javascripts/tag-it.js
401
374
  - app/assets/stylesheets/cropper.css.scss
402
375
  - app/assets/stylesheets/imagine_cms.css.scss
403
376
  - app/assets/stylesheets/imagine_controls.css.scss
377
+ - app/assets/stylesheets/jquery-ui.css
378
+ - app/assets/stylesheets/jquery-ui.structure.css
379
+ - app/assets/stylesheets/jquery-ui.theme.css
380
+ - app/assets/stylesheets/jquery.tagit.css
404
381
  - app/assets/stylesheets/management.css.scss
382
+ - app/assets/stylesheets/tagit.ui-imagine.css
405
383
  - app/controllers/cms/content_controller.rb
406
384
  - app/controllers/management/application_controller.rb
407
385
  - app/controllers/management/cms_controller.rb
@@ -1,36 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
- <html>
3
- <head>
4
- <title>CodePress - Real Time Syntax Highlighting Editor written in JavaScript</title>
5
- <meta name="description" content="CodePress - source code editor window" />
6
-
7
- <script type="text/javascript">
8
- var language = 'generic';
9
- var engine = 'older';
10
- var ua = navigator.userAgent;
11
- var ts = (new Date).getTime(); // timestamp to avoid cache
12
- var lh = location.href;
13
-
14
- if(ua.match('MSIE')) engine = 'msie';
15
- else if(ua.match('KHTML')) engine = 'khtml';
16
- else if(ua.match('Opera')) engine = 'opera';
17
- else if(ua.match('Gecko')) engine = 'gecko';
18
-
19
- if(lh.match('language=')) language = lh.replace(/.*language=(.*?)(&.*)?$/,'$1');
20
-
21
- document.write('<link type="text/css" href="codepress.css?ts='+ts+'" rel="stylesheet" />');
22
- document.write('<link type="text/css" href="languages/'+language+'.css?ts='+ts+'" rel="stylesheet" id="cp-lang-style" />');
23
- document.write('<scr'+'ipt type="text/javascript" src="engines/'+engine+'.js?ts='+ts+'"></scr'+'ipt>');
24
- document.write('<scr'+'ipt type="text/javascript" src="languages/'+language+'.js?ts='+ts+'"></scr'+'ipt>');
25
- </script>
26
-
27
- </head>
28
-
29
- <script type="text/javascript">
30
- if (engine == "gecko") document.write('<body> </body>');
31
- else if(engine == "msie") document.write('<body><pre></pre></body>');
32
- else if(engine == "opera") document.write('<body></body>');
33
- // else if(engine == "khtml") document.write('<body> </body>');
34
- </script>
35
-
36
- </html>
@@ -1,130 +0,0 @@
1
- /*
2
- * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/
3
- *
4
- * Copyright (C) 2006 Fernando M.A.d.S. <fermads@gmail.com>
5
- *
6
- * This program is free software; you can redistribute it and/or modify it under the terms of the
7
- * GNU Lesser General Public License as published by the Free Software Foundation.
8
- *
9
- * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php
10
- */
11
-
12
- CodePress = function(obj) {
13
- var self = document.createElement('iframe');
14
- self.textarea = obj;
15
- self.textarea.disabled = true;
16
- self.textarea.style.overflow = 'hidden';
17
- self.style.height = self.textarea.clientHeight +'px';
18
- self.style.width = self.textarea.clientWidth +'px';
19
- self.textarea.style.overflow = 'auto';
20
- self.style.border = '1px solid gray';
21
- self.frameBorder = 0; // remove IE internal iframe border
22
- self.style.visibility = 'hidden';
23
- self.style.position = 'absolute';
24
- self.options = self.textarea.className;
25
-
26
- self.initialize = function() {
27
- self.editor = self.contentWindow.CodePress;
28
- self.editor.body = self.contentWindow.document.getElementsByTagName('body')[0];
29
- self.editor.setCode(self.textarea.value);
30
- self.setOptions();
31
- self.editor.syntaxHighlight('init');
32
- self.textarea.style.display = 'none';
33
- self.style.position = 'static';
34
- self.style.visibility = 'visible';
35
- self.style.display = 'inline';
36
- }
37
-
38
- self.edit = function(id,language) {
39
- if(id) self.textarea.value = document.getElementById(id).value;
40
- if(!self.textarea.disabled) return;
41
- self.language = language ? language : self.options.replace(/ ?codepress ?| ?readonly-on ?| ?autocomplete-off ?| ?linenumbers-off ?/g,'');
42
- if(!CodePress.languages[self.language]) self.language = 'generic';
43
- self.src = CodePress.path+'codepress.html?language='+self.language+'&ts='+(new Date).getTime();
44
- if(self.attachEvent) self.attachEvent('onload',self.initialize);
45
- else self.addEventListener('load',self.initialize,false);
46
- }
47
-
48
- self.setOptions = function() {
49
- if(self.options.match('autocomplete-off')) self.toggleAutoComplete();
50
- if(self.options.match('readonly-on')) self.toggleReadOnly();
51
- if(self.options.match('linenumbers-off')) self.toggleLineNumbers();
52
- }
53
-
54
- self.getCode = function() {
55
- return self.textarea.disabled ? self.editor.getCode() : self.textarea.value;
56
- }
57
-
58
- self.setCode = function(code) {
59
- self.textarea.disabled ? self.editor.setCode(code) : self.textarea.value = code;
60
- }
61
-
62
- self.toggleAutoComplete = function() {
63
- self.editor.autocomplete = (self.editor.autocomplete) ? false : true;
64
- }
65
-
66
- self.toggleReadOnly = function() {
67
- self.textarea.readOnly = (self.textarea.readOnly) ? false : true;
68
- if(self.style.display != 'none') // prevent exception on FF + iframe with display:none
69
- self.editor.readOnly(self.textarea.readOnly ? true : false);
70
- }
71
-
72
- self.toggleLineNumbers = function() {
73
- var cn = self.editor.body.className;
74
- self.editor.body.className = (cn==''||cn=='show-line-numbers') ? 'hide-line-numbers' : 'show-line-numbers';
75
- }
76
-
77
- self.toggleEditor = function() {
78
- if(self.textarea.disabled) {
79
- self.textarea.value = self.getCode();
80
- self.textarea.disabled = false;
81
- self.style.display = 'none';
82
- self.textarea.style.display = 'inline';
83
- }
84
- else {
85
- self.textarea.disabled = true;
86
- self.setCode(self.textarea.value);
87
- self.editor.syntaxHighlight('init');
88
- self.style.display = 'inline';
89
- self.textarea.style.display = 'none';
90
- }
91
- }
92
-
93
- self.edit();
94
- return self;
95
- }
96
-
97
- CodePress.languages = {
98
- css : 'CSS',
99
- generic : 'Generic',
100
- html : 'HTML',
101
- java : 'Java',
102
- javascript : 'JavaScript',
103
- perl : 'Perl',
104
- ruby : 'Ruby',
105
- php : 'PHP',
106
- text : 'Text',
107
- sql : 'SQL'
108
- }
109
-
110
-
111
- CodePress.run = function() {
112
- s = document.getElementsByTagName('script');
113
- for(var i=0,n=s.length;i<n;i++) {
114
- if(s[i].src.match('codepress.js')) {
115
- CodePress.path = s[i].src.replace(/codepress\.js.*/,'');
116
- }
117
- }
118
- t = document.getElementsByTagName('textarea');
119
- for(var i=0,n=t.length;i<n;i++) {
120
- if(t[i].className.match('codepress')) {
121
- id = t[i].id;
122
- t[i].id = id+'_cp';
123
- eval(id+' = new CodePress(t[i])');
124
- t[i].parentNode.insertBefore(eval(id), t[i]);
125
- }
126
- }
127
- }
128
-
129
- if(window.attachEvent) window.attachEvent('onload',CodePress.run);
130
- else window.addEventListener('DOMContentLoaded',CodePress.run,false);