alchemy_cms 2.0.7 → 2.1.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (256) hide show
  1. data/.gitignore +1 -4
  2. data/.travis.yml +1 -1
  3. data/Gemfile +7 -2
  4. data/README.md +6 -6
  5. data/Rakefile +26 -18
  6. data/alchemy_cms.gemspec +14 -14
  7. data/{assets/stylesheets → app/assets/images/alchemy}/Jcrop.gif +0 -0
  8. data/{assets/images → app/assets/images/alchemy}/ajax_loader.gif +0 -0
  9. data/{assets/images → app/assets/images/alchemy}/alchemy-logo.png +0 -0
  10. data/{assets/images → app/assets/images/alchemy}/flags.png +0 -0
  11. data/{assets/images → app/assets/images/alchemy}/gui/navi-tab.png +0 -0
  12. data/{assets/images → app/assets/images/alchemy}/gui/shading_90.png +0 -0
  13. data/{assets/images → app/assets/images/alchemy}/gui/toggle.png +0 -0
  14. data/{assets/images → app/assets/images/alchemy}/icons.png +0 -0
  15. data/{assets/images → app/assets/images/alchemy}/image_loader.gif +0 -0
  16. data/{assets/images → app/assets/images/alchemy}/jquery-sb/select_arrow.gif +0 -0
  17. data/{assets/images → app/assets/images/alchemy}/jquery-sb/select_arrow_bg.gif +0 -0
  18. data/{assets/images → app/assets/images/alchemy}/jquery-sb/select_arrow_bg_hover.gif +0 -0
  19. data/{assets/images → app/assets/images/alchemy}/placeholder.png +0 -0
  20. data/{assets/images/gui → app/assets/images/alchemy}/shading.png +0 -0
  21. data/{assets/images → app/assets/images/alchemy}/swfupload/browse_button.png +0 -0
  22. data/{assets/stylesheets/default/img → app/assets/images/alchemy}/tabs.gif +0 -0
  23. data/{assets/images/jquery-ui → app/assets/images/alchemy}/ui-icons_666666_256x240.png +0 -0
  24. data/app/assets/javascripts/alchemy/alchemy.base.js +212 -0
  25. data/app/assets/javascripts/alchemy/alchemy.buttons.js +36 -0
  26. data/app/assets/javascripts/alchemy/alchemy.dirty.js +91 -0
  27. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js +114 -0
  28. data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.element_editor_selector.js +0 -0
  29. data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.growler.js +0 -0
  30. data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.image_cropper.js +0 -0
  31. data/app/assets/javascripts/alchemy/alchemy.js +26 -0
  32. data/app/assets/javascripts/alchemy/alchemy.js_extensions.js +17 -0
  33. data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.link_overlay.js +1 -1
  34. data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.page_sorter.js +0 -0
  35. data/{assets/javascripts → app/assets/javascripts/alchemy}/alchemy.preview.js +0 -0
  36. data/app/assets/javascripts/alchemy/alchemy.windows.js +438 -0
  37. data/app/assets/stylesheets/alchemy/_defaults.scss +160 -0
  38. data/app/assets/stylesheets/alchemy/alchemy.css +9 -0
  39. data/{assets/stylesheets/alchemy.css → app/assets/stylesheets/alchemy/base.css.scss} +216 -353
  40. data/{assets/stylesheets/elements.css → app/assets/stylesheets/alchemy/elements.css.scss} +41 -70
  41. data/{assets/stylesheets/flags.css → app/assets/stylesheets/alchemy/flags.css.scss} +1 -1
  42. data/{assets/stylesheets/jquery-ui-1.8.7.alchemy.css → app/assets/stylesheets/alchemy/jquery-ui.alchemy.css} +15 -15
  43. data/{assets/stylesheets/jquery.Jcrop.css → app/assets/stylesheets/alchemy/jquery.Jcrop.css.scss} +3 -3
  44. data/{assets/stylesheets/jquery.sb.css → app/assets/stylesheets/alchemy/jquery.sb.css.scss} +19 -29
  45. data/{assets/stylesheets → app/assets/stylesheets/alchemy}/print.css +6 -1
  46. data/{assets/stylesheets → app/assets/stylesheets/alchemy}/standard_set.css +0 -0
  47. data/{assets/stylesheets/alchemy_tinymce_content.css → app/assets/stylesheets/alchemy/tinymce_content.css} +0 -0
  48. data/{assets/stylesheets/alchemy_tinymce_dialog.css → app/assets/stylesheets/alchemy/tinymce_dialog.css} +2 -2
  49. data/app/controllers/admin/attachments_controller.rb +2 -8
  50. data/app/controllers/admin/clipboard_controller.rb +2 -2
  51. data/app/controllers/admin/contents_controller.rb +4 -16
  52. data/app/controllers/admin/elements_controller.rb +2 -2
  53. data/app/controllers/admin/essence_audios_controller.rb +0 -3
  54. data/app/controllers/admin/essence_files_controller.rb +0 -11
  55. data/app/controllers/admin/essence_flashes_controller.rb +0 -3
  56. data/app/controllers/admin/essence_pictures_controller.rb +2 -7
  57. data/app/controllers/admin/essence_videos_controller.rb +0 -3
  58. data/app/controllers/admin/languages_controller.rb +4 -10
  59. data/app/controllers/admin/pages_controller.rb +6 -4
  60. data/app/controllers/admin/pictures_controller.rb +13 -18
  61. data/app/controllers/admin/trash_controller.rb +0 -5
  62. data/app/controllers/admin/users_controller.rb +2 -3
  63. data/app/controllers/alchemy_controller.rb +18 -30
  64. data/app/controllers/pages_controller.rb +21 -24
  65. data/app/helpers/admin/elements_helper.rb +5 -0
  66. data/app/helpers/admin/pages_helper.rb +36 -1
  67. data/app/helpers/alchemy_helper.rb +39 -17
  68. data/app/models/attachment.rb +2 -2
  69. data/app/models/essence_file.rb +1 -1
  70. data/app/models/page.rb +1 -1
  71. data/app/sweepers/pages_sweeper.rb +10 -0
  72. data/app/views/admin/attachments/destroy.js.erb +4 -0
  73. data/app/views/admin/clipboard/insert.js.erb +12 -19
  74. data/app/views/admin/contents/create.js.erb +1 -1
  75. data/app/views/admin/contents/destroy.js.erb +7 -0
  76. data/app/views/admin/contents/order.js.erb +6 -0
  77. data/app/views/admin/elements/_element.html.erb +4 -2
  78. data/app/views/admin/elements/create.js.erb +19 -26
  79. data/app/views/admin/elements/fold.js.erb +1 -1
  80. data/app/views/admin/elements/index.html.erb +1 -1
  81. data/app/views/admin/essence_files/assign.js.erb +8 -0
  82. data/app/views/admin/essence_pictures/save_link.js.erb +3 -0
  83. data/app/views/admin/index.html.erb +37 -27
  84. data/app/views/admin/languages/destroy.js.erb +1 -0
  85. data/app/views/admin/pages/_page.html.erb +1 -1
  86. data/app/views/admin/pages/_sitemap.html.erb +1 -1
  87. data/app/views/admin/pages/edit.html.erb +2 -2
  88. data/app/views/admin/pages/update.js.erb +1 -1
  89. data/app/views/admin/partials/_upload_form.html.erb +11 -11
  90. data/app/views/admin/pictures/archive_overlay.js.erb +1 -0
  91. data/app/views/admin/pictures/flush.js.erb +2 -0
  92. data/app/views/admin/pictures/update.js.erb +1 -0
  93. data/app/views/admin/trash/clear.js.erb +3 -0
  94. data/app/views/alchemy/error_notice.js.erb +1 -0
  95. data/app/views/alchemy/permission_denied.js.erb +2 -0
  96. data/app/views/alchemy/redirect.js.erb +1 -0
  97. data/app/views/alchemy/remote_errors.js.erb +3 -0
  98. data/app/views/alchemy/update.js.erb +5 -0
  99. data/app/views/essences/_essence_file_editor.html.erb +0 -1
  100. data/app/views/essences/_essence_file_view.html.erb +1 -5
  101. data/app/views/essences/_essence_picture_tools.html.erb +1 -1
  102. data/app/views/layouts/alchemy.html.erb +22 -9
  103. data/app/views/pages/show.rss.builder +1 -1
  104. data/config/alchemy/elements.yml +0 -5
  105. data/config/alchemy/page_layouts.yml +1 -1
  106. data/config/asset_packages.yml +17 -19
  107. data/config/authorization_rules.rb +1 -0
  108. data/config/locales/de.yml +0 -1
  109. data/config/routes.rb +1 -1
  110. data/lib/alchemy/tinymce.rb +51 -0
  111. data/lib/alchemy/version.rb +3 -3
  112. data/lib/alchemy_cms.rb +4 -2
  113. data/script/rails +6 -0
  114. data/spec/controllers/admin/clipboard_controller_spec.rb +15 -13
  115. data/spec/controllers/admin/contents_controller_spec.rb +4 -4
  116. data/spec/controllers/admin/trash_controller_spec.rb +6 -9
  117. data/spec/controllers/pages_controller_spec.rb +9 -8
  118. data/spec/dummy/Rakefile +1 -1
  119. data/spec/dummy/app/assets/javascripts/application.js +9 -0
  120. data/spec/dummy/app/assets/stylesheets/application.css +7 -0
  121. data/spec/dummy/app/mailers/.gitkeep +0 -0
  122. data/spec/dummy/app/models/.gitkeep +0 -0
  123. data/spec/dummy/app/views/layouts/application.html.erb +3 -3
  124. data/spec/dummy/config/application.rb +12 -6
  125. data/spec/dummy/config/database.yml +3 -0
  126. data/spec/dummy/config/environments/development.rb +7 -3
  127. data/spec/dummy/config/environments/production.rb +23 -12
  128. data/spec/dummy/config/environments/test.rb +5 -1
  129. data/spec/dummy/config/initializers/secret_token.rb +1 -1
  130. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  131. data/spec/dummy/config/locales/en.yml +1 -1
  132. data/spec/dummy/config/routes.rb +1 -1
  133. data/spec/dummy/lib/assets/.gitkeep +0 -0
  134. data/spec/factories.rb +8 -8
  135. data/spec/helpers/admin/elements_helper_spec.rb +2 -2
  136. data/spec/helpers/contents_helper_spec.rb +1 -1
  137. data/spec/helpers/elements_helper_spec.rb +6 -6
  138. data/spec/helpers/essences_helper_spec.rb +1 -1
  139. data/spec/helpers/pages_helper_spec.rb +37 -37
  140. data/spec/integration/pages_controller_spec.rb +29 -26
  141. data/spec/integration/security_spec.rb +2 -1
  142. data/spec/models/content_spec.rb +1 -1
  143. data/spec/models/element_spec.rb +11 -11
  144. data/spec/models/language_spec.rb +5 -5
  145. data/spec/models/page_spec.rb +54 -54
  146. data/spec/models/user_spec.rb +2 -1
  147. data/spec/routing_spec.rb +1 -1
  148. data/{assets/javascripts/jquery.js → vendor/assets/javascripts/jquery-1.6.2.min.js} +0 -0
  149. data/{assets/javascripts/jquery-ui.js → vendor/assets/javascripts/jquery-ui-custom-1.8.16.min.js} +0 -0
  150. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.Jcrop.min.js +0 -0
  151. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.dialogextend.min.js +7 -7
  152. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.in-place-edit.js +0 -0
  153. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.sb.min.js +0 -0
  154. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.scrollTo-1.4.2-min.js +10 -10
  155. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.ui.nestedSortable.js +0 -0
  156. data/{assets/javascripts → vendor/assets/javascripts/jquery_plugins}/jquery.ui.tabspaging.js +0 -0
  157. data/{assets → vendor/assets}/javascripts/swfupload/fileprogress.js +202 -202
  158. data/{assets → vendor/assets}/javascripts/swfupload/handlers.js +171 -171
  159. data/{assets → vendor/assets}/javascripts/swfupload/queue.js +97 -97
  160. data/{assets → vendor/assets}/javascripts/swfupload/swfupload.js +980 -980
  161. data/{assets → vendor/assets}/javascripts/swfupload/swfupload.swf +0 -0
  162. data/{assets → vendor/assets}/javascripts/tiny_mce/jquery.tinymce.js +0 -0
  163. data/{assets → vendor/assets}/javascripts/tiny_mce/langs/de.js +0 -0
  164. data/{assets → vendor/assets}/javascripts/tiny_mce/langs/en.js +0 -0
  165. data/{assets → vendor/assets}/javascripts/tiny_mce/license.txt +504 -504
  166. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/alchemy_link/editor_plugin.js +0 -0
  167. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/alchemy_link/langs/de.js +0 -0
  168. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/alchemy_link/langs/en.js +0 -0
  169. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/autoresize/editor_plugin.js +0 -0
  170. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js +0 -0
  171. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +110 -110
  172. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +0 -0
  173. data/{assets/javascripts/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css → vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css.erb} +8 -8
  174. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/inlinepopups/template.htm +387 -387
  175. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/editor_plugin.js +0 -0
  176. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/js/pastetext.js +36 -36
  177. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/js/pasteword.js +51 -51
  178. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/langs/de_dlg.js +0 -0
  179. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js +0 -0
  180. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/pastetext.htm +26 -26
  181. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/paste/pasteword.htm +21 -21
  182. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/cell.htm +180 -180
  183. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/css/cell.css +16 -16
  184. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/css/row.css +25 -25
  185. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/css/table.css +13 -13
  186. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/editor_plugin.js +0 -0
  187. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/js/cell.js +319 -319
  188. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/js/merge_cells.js +27 -27
  189. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/js/row.js +237 -237
  190. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/js/table.js +450 -450
  191. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/langs/de_dlg.js +0 -0
  192. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/langs/en_dlg.js +0 -0
  193. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/merge_cells.htm +32 -32
  194. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/row.htm +158 -158
  195. data/{assets → vendor/assets}/javascripts/tiny_mce/plugins/table/table.htm +188 -188
  196. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/about.htm +52 -52
  197. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/anchor.htm +26 -26
  198. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/charmap.htm +51 -51
  199. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/color_picker.htm +74 -74
  200. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/editor_template.js +0 -0
  201. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/image.htm +80 -80
  202. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
  203. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/flash.gif +0 -0
  204. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
  205. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/iframe.gif +0 -0
  206. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/pagebreak.gif +0 -0
  207. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
  208. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/realmedia.gif +0 -0
  209. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
  210. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/trans.gif +0 -0
  211. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/video.gif +0 -0
  212. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/img/windowsmedia.gif +0 -0
  213. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/about.js +73 -73
  214. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/anchor.js +43 -43
  215. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/charmap.js +355 -355
  216. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/color_picker.js +329 -329
  217. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/image.js +251 -251
  218. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/link.js +153 -153
  219. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/js/source_editor.js +56 -56
  220. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/langs/de.js +0 -0
  221. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/langs/de_dlg.js +0 -0
  222. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/langs/en.js +0 -0
  223. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +0 -0
  224. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/link.htm +57 -57
  225. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/shortcuts.htm +47 -47
  226. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/content.css +50 -50
  227. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +117 -117
  228. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
  229. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
  230. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
  231. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
  232. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
  233. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
  234. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +214 -214
  235. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +48 -48
  236. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +117 -117
  237. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  238. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  239. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  240. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +217 -217
  241. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +7 -7
  242. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -5
  243. data/{assets → vendor/assets}/javascripts/tiny_mce/themes/advanced/source_editor.htm +25 -25
  244. data/{assets → vendor/assets}/javascripts/tiny_mce/tiny_mce.js +0 -0
  245. data/{assets → vendor/assets}/javascripts/tiny_mce/tiny_mce_popup.js +0 -0
  246. data/{assets → vendor/assets}/javascripts/tiny_mce/utils/editable_selects.js +70 -70
  247. data/{assets → vendor/assets}/javascripts/tiny_mce/utils/form_utils.js +210 -210
  248. data/{assets → vendor/assets}/javascripts/tiny_mce/utils/mctabs.js +161 -161
  249. data/{assets → vendor/assets}/javascripts/tiny_mce/utils/validate.js +252 -252
  250. metadata +338 -369
  251. data/app/views/elements/_download_editor.html.erb +0 -1
  252. data/app/views/elements/_download_view.html.erb +0 -3
  253. data/assets/javascripts/alchemy.js +0 -903
  254. data/assets/javascripts/jquery.rails.js +0 -315
  255. data/assets/stylesheets/ie6.css +0 -18
  256. data/config/initializers/tinymce_hammer.rb +0 -31
@@ -1,153 +1,153 @@
1
- tinyMCEPopup.requireLangPack();
2
-
3
- var LinkDialog = {
4
- preInit : function() {
5
- var url;
6
-
7
- if (url = tinyMCEPopup.getParam("external_link_list_url"))
8
- document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
9
- },
10
-
11
- init : function() {
12
- var f = document.forms[0], ed = tinyMCEPopup.editor;
13
-
14
- // Setup browse button
15
- document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_advanced_link');
16
- if (isVisible('hrefbrowser'))
17
- document.getElementById('href').style.width = '180px';
18
-
19
- this.fillClassList('class_list');
20
- this.fillFileList('link_list', 'tinyMCELinkList');
21
- this.fillTargetList('target_list');
22
-
23
- if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) {
24
- f.href.value = ed.dom.getAttrib(e, 'href');
25
- f.linktitle.value = ed.dom.getAttrib(e, 'title');
26
- f.insert.value = ed.getLang('update');
27
- selectByValue(f, 'link_list', f.href.value);
28
- selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target'));
29
- selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class'));
30
- }
31
- },
32
-
33
- update : function() {
34
- var f = document.forms[0], ed = tinyMCEPopup.editor, e, b, href = f.href.value.replace(/ /g, '%20');
35
-
36
- tinyMCEPopup.restoreSelection();
37
- e = ed.dom.getParent(ed.selection.getNode(), 'A');
38
-
39
- // Remove element if there is no href
40
- if (!f.href.value) {
41
- if (e) {
42
- b = ed.selection.getBookmark();
43
- ed.dom.remove(e, 1);
44
- ed.selection.moveToBookmark(b);
45
- tinyMCEPopup.execCommand("mceEndUndoLevel");
46
- tinyMCEPopup.close();
47
- return;
48
- }
49
- }
50
-
51
- // Create new anchor elements
52
- if (e == null) {
53
- ed.getDoc().execCommand("unlink", false, null);
54
- tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1});
55
-
56
- tinymce.each(ed.dom.select("a"), function(n) {
57
- if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') {
58
- e = n;
59
-
60
- ed.dom.setAttribs(e, {
61
- href : href,
62
- title : f.linktitle.value,
63
- target : f.target_list ? getSelectValue(f, "target_list") : null,
64
- 'class' : f.class_list ? getSelectValue(f, "class_list") : null
65
- });
66
- }
67
- });
68
- } else {
69
- ed.dom.setAttribs(e, {
70
- href : href,
71
- title : f.linktitle.value,
72
- target : f.target_list ? getSelectValue(f, "target_list") : null,
73
- 'class' : f.class_list ? getSelectValue(f, "class_list") : null
74
- });
75
- }
76
-
77
- // Don't move caret if selection was image
78
- if (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') {
79
- ed.focus();
80
- ed.selection.select(e);
81
- ed.selection.collapse(0);
82
- tinyMCEPopup.storeSelection();
83
- }
84
-
85
- tinyMCEPopup.execCommand("mceEndUndoLevel");
86
- tinyMCEPopup.close();
87
- },
88
-
89
- checkPrefix : function(n) {
90
- if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email')))
91
- n.value = 'mailto:' + n.value;
92
-
93
- if (/^\s*www\./i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external')))
94
- n.value = 'http://' + n.value;
95
- },
96
-
97
- fillFileList : function(id, l) {
98
- var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
99
-
100
- l = window[l];
101
-
102
- if (l && l.length > 0) {
103
- lst.options[lst.options.length] = new Option('', '');
104
-
105
- tinymce.each(l, function(o) {
106
- lst.options[lst.options.length] = new Option(o[0], o[1]);
107
- });
108
- } else
109
- dom.remove(dom.getParent(id, 'tr'));
110
- },
111
-
112
- fillClassList : function(id) {
113
- var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
114
-
115
- if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {
116
- cl = [];
117
-
118
- tinymce.each(v.split(';'), function(v) {
119
- var p = v.split('=');
120
-
121
- cl.push({'title' : p[0], 'class' : p[1]});
122
- });
123
- } else
124
- cl = tinyMCEPopup.editor.dom.getClasses();
125
-
126
- if (cl.length > 0) {
127
- lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');
128
-
129
- tinymce.each(cl, function(o) {
130
- lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);
131
- });
132
- } else
133
- dom.remove(dom.getParent(id, 'tr'));
134
- },
135
-
136
- fillTargetList : function(id) {
137
- var dom = tinyMCEPopup.dom, lst = dom.get(id), v;
138
-
139
- lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');
140
- lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_same'), '_self');
141
- lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_blank'), '_blank');
142
-
143
- if (v = tinyMCEPopup.getParam('theme_advanced_link_targets')) {
144
- tinymce.each(v.split(','), function(v) {
145
- v = v.split('=');
146
- lst.options[lst.options.length] = new Option(v[0], v[1]);
147
- });
148
- }
149
- }
150
- };
151
-
152
- LinkDialog.preInit();
153
- tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog);
1
+ tinyMCEPopup.requireLangPack();
2
+
3
+ var LinkDialog = {
4
+ preInit : function() {
5
+ var url;
6
+
7
+ if (url = tinyMCEPopup.getParam("external_link_list_url"))
8
+ document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
9
+ },
10
+
11
+ init : function() {
12
+ var f = document.forms[0], ed = tinyMCEPopup.editor;
13
+
14
+ // Setup browse button
15
+ document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_advanced_link');
16
+ if (isVisible('hrefbrowser'))
17
+ document.getElementById('href').style.width = '180px';
18
+
19
+ this.fillClassList('class_list');
20
+ this.fillFileList('link_list', 'tinyMCELinkList');
21
+ this.fillTargetList('target_list');
22
+
23
+ if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) {
24
+ f.href.value = ed.dom.getAttrib(e, 'href');
25
+ f.linktitle.value = ed.dom.getAttrib(e, 'title');
26
+ f.insert.value = ed.getLang('update');
27
+ selectByValue(f, 'link_list', f.href.value);
28
+ selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target'));
29
+ selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class'));
30
+ }
31
+ },
32
+
33
+ update : function() {
34
+ var f = document.forms[0], ed = tinyMCEPopup.editor, e, b, href = f.href.value.replace(/ /g, '%20');
35
+
36
+ tinyMCEPopup.restoreSelection();
37
+ e = ed.dom.getParent(ed.selection.getNode(), 'A');
38
+
39
+ // Remove element if there is no href
40
+ if (!f.href.value) {
41
+ if (e) {
42
+ b = ed.selection.getBookmark();
43
+ ed.dom.remove(e, 1);
44
+ ed.selection.moveToBookmark(b);
45
+ tinyMCEPopup.execCommand("mceEndUndoLevel");
46
+ tinyMCEPopup.close();
47
+ return;
48
+ }
49
+ }
50
+
51
+ // Create new anchor elements
52
+ if (e == null) {
53
+ ed.getDoc().execCommand("unlink", false, null);
54
+ tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1});
55
+
56
+ tinymce.each(ed.dom.select("a"), function(n) {
57
+ if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') {
58
+ e = n;
59
+
60
+ ed.dom.setAttribs(e, {
61
+ href : href,
62
+ title : f.linktitle.value,
63
+ target : f.target_list ? getSelectValue(f, "target_list") : null,
64
+ 'class' : f.class_list ? getSelectValue(f, "class_list") : null
65
+ });
66
+ }
67
+ });
68
+ } else {
69
+ ed.dom.setAttribs(e, {
70
+ href : href,
71
+ title : f.linktitle.value,
72
+ target : f.target_list ? getSelectValue(f, "target_list") : null,
73
+ 'class' : f.class_list ? getSelectValue(f, "class_list") : null
74
+ });
75
+ }
76
+
77
+ // Don't move caret if selection was image
78
+ if (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') {
79
+ ed.focus();
80
+ ed.selection.select(e);
81
+ ed.selection.collapse(0);
82
+ tinyMCEPopup.storeSelection();
83
+ }
84
+
85
+ tinyMCEPopup.execCommand("mceEndUndoLevel");
86
+ tinyMCEPopup.close();
87
+ },
88
+
89
+ checkPrefix : function(n) {
90
+ if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email')))
91
+ n.value = 'mailto:' + n.value;
92
+
93
+ if (/^\s*www\./i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external')))
94
+ n.value = 'http://' + n.value;
95
+ },
96
+
97
+ fillFileList : function(id, l) {
98
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
99
+
100
+ l = window[l];
101
+
102
+ if (l && l.length > 0) {
103
+ lst.options[lst.options.length] = new Option('', '');
104
+
105
+ tinymce.each(l, function(o) {
106
+ lst.options[lst.options.length] = new Option(o[0], o[1]);
107
+ });
108
+ } else
109
+ dom.remove(dom.getParent(id, 'tr'));
110
+ },
111
+
112
+ fillClassList : function(id) {
113
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;
114
+
115
+ if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {
116
+ cl = [];
117
+
118
+ tinymce.each(v.split(';'), function(v) {
119
+ var p = v.split('=');
120
+
121
+ cl.push({'title' : p[0], 'class' : p[1]});
122
+ });
123
+ } else
124
+ cl = tinyMCEPopup.editor.dom.getClasses();
125
+
126
+ if (cl.length > 0) {
127
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');
128
+
129
+ tinymce.each(cl, function(o) {
130
+ lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);
131
+ });
132
+ } else
133
+ dom.remove(dom.getParent(id, 'tr'));
134
+ },
135
+
136
+ fillTargetList : function(id) {
137
+ var dom = tinyMCEPopup.dom, lst = dom.get(id), v;
138
+
139
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');
140
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_same'), '_self');
141
+ lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_blank'), '_blank');
142
+
143
+ if (v = tinyMCEPopup.getParam('theme_advanced_link_targets')) {
144
+ tinymce.each(v.split(','), function(v) {
145
+ v = v.split('=');
146
+ lst.options[lst.options.length] = new Option(v[0], v[1]);
147
+ });
148
+ }
149
+ }
150
+ };
151
+
152
+ LinkDialog.preInit();
153
+ tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog);
@@ -1,56 +1,56 @@
1
- tinyMCEPopup.requireLangPack();
2
- tinyMCEPopup.onInit.add(onLoadInit);
3
-
4
- function saveContent() {
5
- tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value, {source_view : true});
6
- tinyMCEPopup.close();
7
- }
8
-
9
- function onLoadInit() {
10
- tinyMCEPopup.resizeToInnerSize();
11
-
12
- // Remove Gecko spellchecking
13
- if (tinymce.isGecko)
14
- document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck");
15
-
16
- document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent({source_view : true});
17
-
18
- if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) {
19
- setWrap('soft');
20
- document.getElementById('wraped').checked = true;
21
- }
22
-
23
- resizeInputs();
24
- }
25
-
26
- function setWrap(val) {
27
- var v, n, s = document.getElementById('htmlSource');
28
-
29
- s.wrap = val;
30
-
31
- if (!tinymce.isIE) {
32
- v = s.value;
33
- n = s.cloneNode(false);
34
- n.setAttribute("wrap", val);
35
- s.parentNode.replaceChild(n, s);
36
- n.value = v;
37
- }
38
- }
39
-
40
- function toggleWordWrap(elm) {
41
- if (elm.checked)
42
- setWrap('soft');
43
- else
44
- setWrap('off');
45
- }
46
-
47
- function resizeInputs() {
48
- var vp = tinyMCEPopup.dom.getViewPort(window), el;
49
-
50
- el = document.getElementById('htmlSource');
51
-
52
- if (el) {
53
- el.style.width = (vp.w - 20) + 'px';
54
- el.style.height = (vp.h - 65) + 'px';
55
- }
56
- }
1
+ tinyMCEPopup.requireLangPack();
2
+ tinyMCEPopup.onInit.add(onLoadInit);
3
+
4
+ function saveContent() {
5
+ tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value, {source_view : true});
6
+ tinyMCEPopup.close();
7
+ }
8
+
9
+ function onLoadInit() {
10
+ tinyMCEPopup.resizeToInnerSize();
11
+
12
+ // Remove Gecko spellchecking
13
+ if (tinymce.isGecko)
14
+ document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck");
15
+
16
+ document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent({source_view : true});
17
+
18
+ if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) {
19
+ setWrap('soft');
20
+ document.getElementById('wraped').checked = true;
21
+ }
22
+
23
+ resizeInputs();
24
+ }
25
+
26
+ function setWrap(val) {
27
+ var v, n, s = document.getElementById('htmlSource');
28
+
29
+ s.wrap = val;
30
+
31
+ if (!tinymce.isIE) {
32
+ v = s.value;
33
+ n = s.cloneNode(false);
34
+ n.setAttribute("wrap", val);
35
+ s.parentNode.replaceChild(n, s);
36
+ n.value = v;
37
+ }
38
+ }
39
+
40
+ function toggleWordWrap(elm) {
41
+ if (elm.checked)
42
+ setWrap('soft');
43
+ else
44
+ setWrap('off');
45
+ }
46
+
47
+ function resizeInputs() {
48
+ var vp = tinyMCEPopup.dom.getViewPort(window), el;
49
+
50
+ el = document.getElementById('htmlSource');
51
+
52
+ if (el) {
53
+ el.style.width = (vp.w - 20) + 'px';
54
+ el.style.height = (vp.h - 65) + 'px';
55
+ }
56
+ }
@@ -1,57 +1,57 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <title>{#advanced_dlg.link_title}</title>
5
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
6
- <script type="text/javascript" src="../../utils/mctabs.js"></script>
7
- <script type="text/javascript" src="../../utils/form_utils.js"></script>
8
- <script type="text/javascript" src="../../utils/validate.js"></script>
9
- <script type="text/javascript" src="js/link.js"></script>
10
- </head>
11
- <body id="link" style="display: none">
12
- <form onsubmit="LinkDialog.update();return false;" action="#">
13
- <div class="tabs">
14
- <ul>
15
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.link_title}</a></span></li>
16
- </ul>
17
- </div>
18
-
19
- <div class="panel_wrapper">
20
- <div id="general_panel" class="panel current">
21
- <table border="0" cellpadding="4" cellspacing="0">
22
- <tr>
23
- <td class="nowrap"><label for="href">{#advanced_dlg.link_url}</label></td>
24
- <td><table border="0" cellspacing="0" cellpadding="0">
25
- <tr>
26
- <td><input id="href" name="href" type="text" class="mceFocus" value="" style="width: 200px" onchange="LinkDialog.checkPrefix(this);" /></td>
27
- <td id="hrefbrowsercontainer">&nbsp;</td>
28
- </tr>
29
- </table></td>
30
- </tr>
31
- <tr>
32
- <td><label for="link_list">{#advanced_dlg.link_list}</label></td>
33
- <td><select id="link_list" name="link_list" onchange="document.getElementById('href').value=this.options[this.selectedIndex].value;"></select></td>
34
- </tr>
35
- <tr>
36
- <td><label id="targetlistlabel" for="targetlist">{#advanced_dlg.link_target}</label></td>
37
- <td><select id="target_list" name="target_list"></select></td>
38
- </tr>
39
- <tr>
40
- <td class="nowrap"><label for="linktitle">{#advanced_dlg.link_titlefield}</label></td>
41
- <td><input id="linktitle" name="linktitle" type="text" value="" style="width: 200px" /></td>
42
- </tr>
43
- <tr>
44
- <td><label for="class_list">{#class_name}</label></td>
45
- <td><select id="class_list" name="class_list"></select></td>
46
- </tr>
47
- </table>
48
- </div>
49
- </div>
50
-
51
- <div class="mceActionPanel">
52
- <input type="submit" id="insert" name="insert" value="{#insert}" />
53
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
54
- </div>
55
- </form>
56
- </body>
57
- </html>
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <title>{#advanced_dlg.link_title}</title>
5
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
6
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>
7
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>
8
+ <script type="text/javascript" src="../../utils/validate.js"></script>
9
+ <script type="text/javascript" src="js/link.js"></script>
10
+ </head>
11
+ <body id="link" style="display: none">
12
+ <form onsubmit="LinkDialog.update();return false;" action="#">
13
+ <div class="tabs">
14
+ <ul>
15
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.link_title}</a></span></li>
16
+ </ul>
17
+ </div>
18
+
19
+ <div class="panel_wrapper">
20
+ <div id="general_panel" class="panel current">
21
+ <table border="0" cellpadding="4" cellspacing="0">
22
+ <tr>
23
+ <td class="nowrap"><label for="href">{#advanced_dlg.link_url}</label></td>
24
+ <td><table border="0" cellspacing="0" cellpadding="0">
25
+ <tr>
26
+ <td><input id="href" name="href" type="text" class="mceFocus" value="" style="width: 200px" onchange="LinkDialog.checkPrefix(this);" /></td>
27
+ <td id="hrefbrowsercontainer">&nbsp;</td>
28
+ </tr>
29
+ </table></td>
30
+ </tr>
31
+ <tr>
32
+ <td><label for="link_list">{#advanced_dlg.link_list}</label></td>
33
+ <td><select id="link_list" name="link_list" onchange="document.getElementById('href').value=this.options[this.selectedIndex].value;"></select></td>
34
+ </tr>
35
+ <tr>
36
+ <td><label id="targetlistlabel" for="targetlist">{#advanced_dlg.link_target}</label></td>
37
+ <td><select id="target_list" name="target_list"></select></td>
38
+ </tr>
39
+ <tr>
40
+ <td class="nowrap"><label for="linktitle">{#advanced_dlg.link_titlefield}</label></td>
41
+ <td><input id="linktitle" name="linktitle" type="text" value="" style="width: 200px" /></td>
42
+ </tr>
43
+ <tr>
44
+ <td><label for="class_list">{#class_name}</label></td>
45
+ <td><select id="class_list" name="class_list"></select></td>
46
+ </tr>
47
+ </table>
48
+ </div>
49
+ </div>
50
+
51
+ <div class="mceActionPanel">
52
+ <input type="submit" id="insert" name="insert" value="{#insert}" />
53
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
54
+ </div>
55
+ </form>
56
+ </body>
57
+ </html>