imagine_cms 4.1.4 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
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);