narf 0.6.2 → 0.6.3
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +22 -0
- data/lib/web/htmltools/xmltree.rb +2 -2
- data/lib/web/htmltools/xpath.rb +1 -1
- data/narf.gemspec +1 -1
- metadata +2 -460
- data/InstalledFiles +0 -2227
- data/config.save +0 -12
- data/doc/apache_cgi.txt~ +0 -17
- data/doc/fastcgi.txt~ +0 -19
- data/doc/rdoc/classes/Web.html +0 -369
- data/doc/rdoc/classes/Web.src/M000002.html +0 -15
- data/doc/rdoc/classes/Web.src/M000003.html +0 -15
- data/doc/rdoc/classes/Web.src/M000004.html +0 -15
- data/doc/rdoc/classes/Web.src/M000005.html +0 -15
- data/doc/rdoc/classes/Web.src/M000006.html +0 -20
- data/doc/rdoc/classes/Web.src/M000007.html +0 -18
- data/doc/rdoc/classes/Web.src/M000008.html +0 -18
- data/doc/rdoc/classes/Web.src/M000009.html +0 -18
- data/doc/rdoc/classes/Web.src/M000010.html +0 -15
- data/doc/rdoc/classes/Web.src/M000011.html +0 -15
- data/doc/rdoc/classes/Web.src/M000012.html +0 -15
- data/doc/rdoc/classes/Web/CGD.html +0 -173
- data/doc/rdoc/classes/Web/CGD.src/M000037.html +0 -24
- data/doc/rdoc/classes/Web/CGD.src/M000038.html +0 -24
- data/doc/rdoc/classes/Web/CGD.src/M000039.html +0 -15
- data/doc/rdoc/classes/Web/CGD.src/M000040.html +0 -15
- data/doc/rdoc/classes/Web/CGD.src/M000041.html +0 -23
- data/doc/rdoc/classes/Web/CGI.html +0 -946
- data/doc/rdoc/classes/Web/CGI.src/M000051.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000052.html +0 -24
- data/doc/rdoc/classes/Web/CGI.src/M000053.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000054.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000055.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000056.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000057.html +0 -17
- data/doc/rdoc/classes/Web/CGI.src/M000058.html +0 -34
- data/doc/rdoc/classes/Web/CGI.src/M000059.html +0 -22
- data/doc/rdoc/classes/Web/CGI.src/M000060.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000061.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000062.html +0 -19
- data/doc/rdoc/classes/Web/CGI.src/M000063.html +0 -18
- data/doc/rdoc/classes/Web/CGI.src/M000064.html +0 -19
- data/doc/rdoc/classes/Web/CGI.src/M000065.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000066.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000067.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000068.html +0 -13
- data/doc/rdoc/classes/Web/CGI.src/M000069.html +0 -13
- data/doc/rdoc/classes/Web/CGI.src/M000070.html +0 -13
- data/doc/rdoc/classes/Web/CGI.src/M000071.html +0 -13
- data/doc/rdoc/classes/Web/CGI.src/M000072.html +0 -19
- data/doc/rdoc/classes/Web/CGI.src/M000073.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000074.html +0 -19
- data/doc/rdoc/classes/Web/CGI.src/M000075.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000076.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000077.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000078.html +0 -20
- data/doc/rdoc/classes/Web/CGI.src/M000079.html +0 -36
- data/doc/rdoc/classes/Web/CGI.src/M000080.html +0 -19
- data/doc/rdoc/classes/Web/CGI.src/M000081.html +0 -18
- data/doc/rdoc/classes/Web/CGI.src/M000082.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000083.html +0 -17
- data/doc/rdoc/classes/Web/CGI.src/M000084.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000085.html +0 -16
- data/doc/rdoc/classes/Web/CGI.src/M000086.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000087.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000088.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000089.html +0 -16
- data/doc/rdoc/classes/Web/CGI.src/M000090.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000091.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000092.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000093.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000094.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000095.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000096.html +0 -19
- data/doc/rdoc/classes/Web/CGI.src/M000097.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000098.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000099.html +0 -43
- data/doc/rdoc/classes/Web/CGI.src/M000100.html +0 -18
- data/doc/rdoc/classes/Web/CGI.src/M000101.html +0 -20
- data/doc/rdoc/classes/Web/CGI.src/M000102.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000103.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000104.html +0 -15
- data/doc/rdoc/classes/Web/CGI.src/M000105.html +0 -24
- data/doc/rdoc/classes/Web/CGI.src/M000106.html +0 -24
- data/doc/rdoc/classes/Web/CGI.src/M000107.html +0 -22
- data/doc/rdoc/classes/Web/CaseInsensitiveHash.html +0 -104
- data/doc/rdoc/classes/Web/CaseInsensitiveHash.src/M000118.html +0 -15
- data/doc/rdoc/classes/Web/CaseInsensitiveHash.src/M000119.html +0 -15
- data/doc/rdoc/classes/Web/CaseInsensitiveHash.src/M000120.html +0 -15
- data/doc/rdoc/classes/Web/Mime.html +0 -122
- data/doc/rdoc/classes/Web/Mime.src/M000118.html +0 -15
- data/doc/rdoc/classes/Web/Mime.src/M000119.html +0 -15
- data/doc/rdoc/classes/Web/Mime.src/M000120.html +0 -23
- data/doc/rdoc/classes/Web/Mime.src/M000121.html +0 -15
- data/doc/rdoc/classes/Web/Mime.src/M000122.html +0 -15
- data/doc/rdoc/classes/Web/Mime.src/M000123.html +0 -23
- data/doc/rdoc/classes/Web/Mime.src/M000124.html +0 -15
- data/doc/rdoc/classes/Web/Narflates.html +0 -134
- data/doc/rdoc/classes/Web/Parser.html +0 -219
- data/doc/rdoc/classes/Web/Parser.src/M000013.html +0 -21
- data/doc/rdoc/classes/Web/Parser.src/M000014.html +0 -19
- data/doc/rdoc/classes/Web/Parser.src/M000015.html +0 -21
- data/doc/rdoc/classes/Web/Parser.src/M000016.html +0 -15
- data/doc/rdoc/classes/Web/Parser.src/M000017.html +0 -30
- data/doc/rdoc/classes/Web/Parser.src/M000018.html +0 -15
- data/doc/rdoc/classes/Web/Parser.src/M000019.html +0 -19
- data/doc/rdoc/classes/Web/Parser.src/M000020.html +0 -27
- data/doc/rdoc/classes/Web/Parser.src/M000021.html +0 -15
- data/doc/rdoc/classes/Web/Parser.src/M000022.html +0 -16
- data/doc/rdoc/classes/Web/Parser.src/M000023.html +0 -18
- data/doc/rdoc/classes/Web/Session.html +0 -178
- data/doc/rdoc/classes/Web/Session.src/M000042.html +0 -20
- data/doc/rdoc/classes/Web/Session.src/M000043.html +0 -19
- data/doc/rdoc/classes/Web/Session.src/M000044.html +0 -21
- data/doc/rdoc/classes/Web/Session.src/M000045.html +0 -21
- data/doc/rdoc/classes/Web/Session.src/M000046.html +0 -15
- data/doc/rdoc/classes/Web/Session.src/M000047.html +0 -17
- data/doc/rdoc/classes/Web/Session.src/M000048.html +0 -15
- data/doc/rdoc/classes/Web/Session.src/M000049.html +0 -15
- data/doc/rdoc/classes/Web/Session.src/M000050.html +0 -16
- data/doc/rdoc/classes/Web/Testing.html +0 -474
- data/doc/rdoc/classes/Web/Testing.src/M000024.html +0 -15
- data/doc/rdoc/classes/Web/Testing.src/M000025.html +0 -25
- data/doc/rdoc/classes/Web/Testing.src/M000026.html +0 -15
- data/doc/rdoc/classes/Web/Testing.src/M000027.html +0 -25
- data/doc/rdoc/classes/Web/Testing.src/M000028.html +0 -57
- data/doc/rdoc/classes/Web/Testing.src/M000029.html +0 -15
- data/doc/rdoc/classes/Web/Testing.src/M000030.html +0 -15
- data/doc/rdoc/classes/Web/Testing.src/M000031.html +0 -15
- data/doc/rdoc/classes/Web/Testing.src/M000032.html +0 -15
- data/doc/rdoc/classes/Web/Testing.src/M000033.html +0 -15
- data/doc/rdoc/classes/Web/Testing.src/M000034.html +0 -15
- data/doc/rdoc/classes/Web/Testing.src/M000035.html +0 -15
- data/doc/rdoc/classes/Web/Testing.src/M000036.html +0 -18
- data/doc/rdoc/classes/Web/Upload.html +0 -160
- data/doc/rdoc/classes/Web/Upload.src/M000108.html +0 -25
- data/doc/rdoc/classes/Web/Upload.src/M000109.html +0 -18
- data/doc/rdoc/classes/Web/Upload.src/M000110.html +0 -16
- data/doc/rdoc/classes/Web/Upload.src/M000111.html +0 -16
- data/doc/rdoc/classes/Web/Wiki.html +0 -249
- data/doc/rdoc/classes/Web/Wiki.src/M000112.html +0 -25
- data/doc/rdoc/classes/Web/Wiki.src/M000113.html +0 -15
- data/doc/rdoc/classes/Web/Wiki.src/M000114.html +0 -26
- data/doc/rdoc/classes/Web/Wiki.src/M000115.html +0 -21
- data/doc/rdoc/classes/Web/Wiki.src/M000116.html +0 -18
- data/doc/rdoc/classes/Web/Wiki.src/M000117.html +0 -19
- data/doc/rdoc/created.rid +0 -1
- data/doc/rdoc/files/README.html +0 -230
- data/doc/rdoc/files/doc/apache_cgi_txt.html +0 -76
- data/doc/rdoc/files/doc/fastcgi_txt.html +0 -82
- data/doc/rdoc/files/doc/mod_ruby_txt.html +0 -62
- data/doc/rdoc/files/doc/webrick_txt.html +0 -79
- data/doc/rdoc/files/examples/examples_rdoc.html +0 -73
- data/doc/rdoc/files/lib/web/cgi_rb.html +0 -75
- data/doc/rdoc/files/lib/web/mime_rb.html +0 -67
- data/doc/rdoc/files/lib/web/parser_rb.html +0 -73
- data/doc/rdoc/files/lib/web/session_rb.html +0 -73
- data/doc/rdoc/files/lib/web/template_rb.html +0 -73
- data/doc/rdoc/files/lib/web/testing_rb.html +0 -67
- data/doc/rdoc/files/lib/web/upload_rb.html +0 -73
- data/doc/rdoc/files/lib/web/wiki_rb.html +0 -79
- data/doc/rdoc/files/lib/web_rb.html +0 -116
- data/doc/rdoc/files/lib/web_rb.src/M000001.html +0 -15
- data/doc/rdoc/fr_class_index.html +0 -47
- data/doc/rdoc/fr_file_index.html +0 -52
- data/doc/rdoc/fr_method_index.html +0 -158
- data/doc/rdoc/index.html +0 -22
- data/doc/rdoc/rdoc-style.css +0 -99
- data/examples/admin.rb~ +0 -5
- data/examples/cookbook.rdoc~ +0 -238
- data/examples/examples.rdoc~ +0 -17
- data/examples/hello.world.rb~ +0 -3
- data/examples/session.rb~ +0 -31
- data/examples/test/test.hello.world.rb~ +0 -9
- data/examples/test/test.session.rb~ +0 -37
- data/examples/wiki.rb~ +0 -5
- data/lib/web.rb~ +0 -290
- data/lib/web/#assertinclude.rb# +0 -110
- data/lib/web/assertinclude.rb~ +0 -110
- data/lib/web/cgi.rb~ +0 -640
- data/lib/web/htmlparser/html-parser.rb~ +0 -429
- data/lib/web/htmlparser/sgml-parser.rb~ +0 -332
- data/lib/web/htmltools/element.rb~ +0 -296
- data/lib/web/htmltools/stparser.rb~ +0 -276
- data/lib/web/htmltools/tags.rb~ +0 -286
- data/lib/web/htmltools/tree.rb~ +0 -139
- data/lib/web/htmltools/xmltree.rb~ +0 -160
- data/lib/web/htmltools/xpath.rb~ +0 -71
- data/lib/web/parser.rb~ +0 -288
- data/lib/web/request.rb~ +0 -238
- data/lib/web/runner.rb~ +0 -26
- data/lib/web/sapi/fastcgi.rb~ +0 -25
- data/lib/web/sapi/mod_ruby.rb~ +0 -46
- data/lib/web/sapi/webrick.rb~ +0 -89
- data/lib/web/session.rb~ +0 -75
- data/lib/web/tagparser.rb~ +0 -96
- data/lib/web/template.rb~ +0 -613
- data/lib/web/testing.rb~ +0 -546
- data/lib/web/unit/response.rb~ +0 -461
- data/lib/web/unit/ui/cui/testrunner.rb~ +0 -50
- data/lib/web/upload.rb~ +0 -262
- data/lib/web/wiki.rb~ +0 -517
- data/lib/web/wiki/linker.rb~ +0 -72
- data/lib/web/wiki/mime.rb~ +0 -68
- data/lib/web/wiki/page.rb~ +0 -192
- data/lib/web/wiki/resources/#edit.html# +0 -65
- data/lib/web/wiki/resources/admin.html~ +0 -13
- data/lib/web/wiki/resources/default-content_editor.html~ +0 -1
- data/lib/web/wiki/resources/edit.html~ +0 -2
- data/lib/web/wiki/resources/home.html~ +0 -10
- data/lib/web/wiki/resources/htmlarea/ChangeLog +0 -1185
- data/lib/web/wiki/resources/htmlarea/dialog.js +0 -72
- data/lib/web/wiki/resources/htmlarea/examples/2-areas.cgi +0 -16
- data/lib/web/wiki/resources/htmlarea/examples/2-areas.html +0 -158
- data/lib/web/wiki/resources/htmlarea/examples/context-menu.html +0 -95
- data/lib/web/wiki/resources/htmlarea/examples/core.html +0 -184
- data/lib/web/wiki/resources/htmlarea/examples/css.html +0 -88
- data/lib/web/wiki/resources/htmlarea/examples/custom.css +0 -29
- data/lib/web/wiki/resources/htmlarea/examples/full-page.html +0 -75
- data/lib/web/wiki/resources/htmlarea/examples/fully-loaded.html +0 -248
- data/lib/web/wiki/resources/htmlarea/examples/index.html +0 -40
- data/lib/web/wiki/resources/htmlarea/examples/spell-checker.html +0 -132
- data/lib/web/wiki/resources/htmlarea/examples/table-operations.html +0 -116
- data/lib/web/wiki/resources/htmlarea/examples/test.cgi +0 -21
- data/lib/web/wiki/resources/htmlarea/htmlarea.css +0 -180
- data/lib/web/wiki/resources/htmlarea/htmlarea.js +0 -2175
- data/lib/web/wiki/resources/htmlarea/images/ed_about.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_align_center.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_align_justify.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_align_left.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_align_right.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_blank.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_charmap.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_color_bg.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_color_fg.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_copy.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_custom.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_cut.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_delete.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_format_bold.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_format_italic.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_format_strike.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_format_sub.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_format_sup.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_format_underline.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_help.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_hr.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_html.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_image.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_indent_less.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_indent_more.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_left_to_right.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_link.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_list_bullet.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_list_num.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_paste.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_redo.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_right_to_left.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_save.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_show_border.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_splitcel.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/ed_undo.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/fullscreen_maximize.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/fullscreen_minimize.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/images/insert_table.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/index.html +0 -199
- data/lib/web/wiki/resources/htmlarea/lang/b5.js +0 -36
- data/lib/web/wiki/resources/htmlarea/lang/cz.js +0 -63
- data/lib/web/wiki/resources/htmlarea/lang/da.js +0 -38
- data/lib/web/wiki/resources/htmlarea/lang/de.js +0 -54
- data/lib/web/wiki/resources/htmlarea/lang/ee.js +0 -63
- data/lib/web/wiki/resources/htmlarea/lang/el.js +0 -75
- data/lib/web/wiki/resources/htmlarea/lang/en.js +0 -88
- data/lib/web/wiki/resources/htmlarea/lang/es.js +0 -51
- data/lib/web/wiki/resources/htmlarea/lang/fi.js +0 -46
- data/lib/web/wiki/resources/htmlarea/lang/fr.js +0 -61
- data/lib/web/wiki/resources/htmlarea/lang/gb.js +0 -36
- data/lib/web/wiki/resources/htmlarea/lang/he.js +0 -63
- data/lib/web/wiki/resources/htmlarea/lang/hu.js +0 -63
- data/lib/web/wiki/resources/htmlarea/lang/it.js +0 -54
- data/lib/web/wiki/resources/htmlarea/lang/ja-euc.js +0 -37
- data/lib/web/wiki/resources/htmlarea/lang/ja-jis.js +0 -37
- data/lib/web/wiki/resources/htmlarea/lang/ja-sjis.js +0 -37
- data/lib/web/wiki/resources/htmlarea/lang/ja-utf8.js +0 -37
- data/lib/web/wiki/resources/htmlarea/lang/lt.js +0 -55
- data/lib/web/wiki/resources/htmlarea/lang/lv.js +0 -55
- data/lib/web/wiki/resources/htmlarea/lang/nb.js +0 -36
- data/lib/web/wiki/resources/htmlarea/lang/nl.js +0 -90
- data/lib/web/wiki/resources/htmlarea/lang/no.js +0 -79
- data/lib/web/wiki/resources/htmlarea/lang/pl.js +0 -36
- data/lib/web/wiki/resources/htmlarea/lang/pt_br.js +0 -37
- data/lib/web/wiki/resources/htmlarea/lang/ro.js +0 -80
- data/lib/web/wiki/resources/htmlarea/lang/ru.js +0 -63
- data/lib/web/wiki/resources/htmlarea/lang/se.js +0 -38
- data/lib/web/wiki/resources/htmlarea/lang/si.js +0 -63
- data/lib/web/wiki/resources/htmlarea/lang/vn.js +0 -51
- data/lib/web/wiki/resources/htmlarea/license.txt +0 -30
- data/lib/web/wiki/resources/htmlarea/plugins/CSS/css.js +0 -116
- data/lib/web/wiki/resources/htmlarea/plugins/CSS/lang/en.js +0 -2
- data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/context-menu.js +0 -416
- data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/de.js +0 -59
- data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/el.js +0 -57
- data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/en.js +0 -66
- data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/lang/nl.js +0 -66
- data/lib/web/wiki/resources/htmlarea/plugins/ContextMenu/menu.css +0 -64
- data/lib/web/wiki/resources/htmlarea/plugins/FullPage/full-page.js +0 -143
- data/lib/web/wiki/resources/htmlarea/plugins/FullPage/img/docprop.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/FullPage/lang/en.js +0 -25
- data/lib/web/wiki/resources/htmlarea/plugins/FullPage/lang/ro.js +0 -25
- data/lib/web/wiki/resources/htmlarea/plugins/FullPage/popups/docprop.html +0 -131
- data/lib/web/wiki/resources/htmlarea/plugins/FullPage/test.html +0 -89
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/img/spell-check.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/cz.js +0 -37
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/da.js +0 -37
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/de.js +0 -28
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/en.js +0 -38
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/hu.js +0 -37
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/it.js +0 -28
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/lang/ro.js +0 -37
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/readme-tech.html +0 -114
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-logic.cgi +0 -210
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-style.css +0 -10
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-ui.html +0 -122
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-check-ui.js +0 -397
- data/lib/web/wiki/resources/htmlarea/plugins/SpellChecker/spell-checker.js +0 -79
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-delete.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-insert-after.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-insert-before.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-merge.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-prop.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/cell-split.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-delete.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-insert-after.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-insert-before.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/col-split.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-delete.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-insert-above.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-insert-under.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-prop.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/row-split.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/img/table-prop.gif +0 -0
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/cz.js +0 -90
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/da.js +0 -90
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/de.js +0 -81
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/el.js +0 -81
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/en.js +0 -90
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/fi.js +0 -66
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/hu.js +0 -63
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/it.js +0 -81
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/nl.js +0 -90
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/no.js +0 -91
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/lang/ro.js +0 -90
- data/lib/web/wiki/resources/htmlarea/plugins/TableOperations/table-operations.js +0 -1160
- data/lib/web/wiki/resources/htmlarea/popupdiv.js +0 -369
- data/lib/web/wiki/resources/htmlarea/popups/about.html +0 -378
- data/lib/web/wiki/resources/htmlarea/popups/blank.html +0 -2
- data/lib/web/wiki/resources/htmlarea/popups/custom2.html +0 -35
- data/lib/web/wiki/resources/htmlarea/popups/editor_help.html +0 -16
- data/lib/web/wiki/resources/htmlarea/popups/fullscreen.html +0 -133
- data/lib/web/wiki/resources/htmlarea/popups/insert_image.html +0 -191
- data/lib/web/wiki/resources/htmlarea/popups/insert_table.html +0 -174
- data/lib/web/wiki/resources/htmlarea/popups/link.html +0 -142
- data/lib/web/wiki/resources/htmlarea/popups/old-fullscreen.html +0 -131
- data/lib/web/wiki/resources/htmlarea/popups/old_insert_image.html +0 -206
- data/lib/web/wiki/resources/htmlarea/popups/popup.js +0 -109
- data/lib/web/wiki/resources/htmlarea/popups/select_color.html +0 -347
- data/lib/web/wiki/resources/htmlarea/popupwin.js +0 -139
- data/lib/web/wiki/resources/htmlarea/reference.html +0 -523
- data/lib/web/wiki/resources/htmlarea/release-notes.html +0 -165
- data/lib/web/wiki/resources/illustration.html~ +0 -1
- data/lib/web/wiki/resources/index.html~ +0 -4
- data/lib/web/wiki/resources/more_news.html~ +0 -5
- data/lib/web/wiki/resources/more_news_rss_0.91.html +0 -23
- data/lib/web/wiki/resources/page_history.html~ +0 -19
- data/lib/web/wiki/resources/template.html~ +0 -13
- data/narf.gemspec~ +0 -40
- data/sapi/apache_cgi/INSTALL.txt~ +0 -9
- data/sapi/apache_cgi/README~ +0 -0
- data/sapi/fastcgi/INSTALL.txt~ +0 -17
- data/sapi/mod_ruby/INSTALL.txt~ +0 -5
- data/sapi/webrick/INSTALL.txt~ +0 -21
- data/sapi/webrick/run_webrick.rb~ +0 -16
- data/scripts/makedist.rb~ +0 -49
- data/test/mod_ruby_stub.rb~ +0 -38
- data/test/test.action.rb~ +0 -142
- data/test/test.assertinclude.rb~ +0 -109
- data/test/test.narf.cgi.rb~ +0 -105
- data/test/test.request.rb~ +0 -328
- data/test/test.response.rb~ +0 -556
- data/test/test.template.rb~ +0 -832
- data/test/test.web.test.rb~ +0 -461
- data/test/webunit/test_cookie.rb~ +0 -128
- data/test/webunit/test_form.rb~ +0 -43
- data/test/webunit/test_multipart.rb~ +0 -53
- data/test/webunit/test_params.rb~ +0 -211
- data/test/webunit/test_response.rb~ +0 -145
- data/test/webunit/test_site/assert.html~ +0 -1
- data/test/webunit/test_site/auth/index.html~ +0 -1
- data/test/webunit/test_site/badtags.html~ +0 -1
- data/test/webunit/test_site/cookie.cgi~ +0 -35
- data/test/webunit/test_site/document.xml~ +0 -1
- data/test/webunit/test_site/form.html~ +0 -1
- data/test/webunit/test_site/frame-0.html~ +0 -1
- data/test/webunit/test_site/frame-1.html~ +0 -1
- data/test/webunit/test_site/frame.html~ +0 -1
- data/test/webunit/test_site/image.html~ +0 -1
- data/test/webunit/test_site/include.cgi~ +0 -10
- data/test/webunit/test_site/jscript-0.html~ +0 -1
- data/test/webunit/test_site/jscript-1.html~ +0 -1
- data/test/webunit/test_site/jscript.html~ +0 -1
- data/test/webunit/test_site/link.html~ +0 -1
- data/test/webunit/test_site/multipart.cgi~ +0 -25
- data/test/webunit/test_site/multipart.html~ +0 -1
- data/test/webunit/test_site/params.html~ +0 -1
- data/test/webunit/test_site/redirect.cgi~ +0 -14
- data/test/webunit/test_site/response.html~ +0 -1
- data/test/webunit/test_site/simple.cgi~ +0 -17
- data/test/webunit/test_site/stock.cgi~ +0 -34
- data/test/webunit/test_site/table.html~ +0 -1
- data/test/webunit/test_site/test.cgi~ +0 -25
- data/test/wiki/test.history.rb~ +0 -254
- data/test/wiki/test.illustration_page.rb~ +0 -287
- data/test/wiki/test.tarpit.rb~ +0 -40
- data/test/wiki/test.wiki.rb~ +0 -295
@@ -1,1160 +0,0 @@
|
|
1
|
-
// Table Operations Plugin for HTMLArea-3.0
|
2
|
-
// Implementation by Mihai Bazon. Sponsored by http://www.bloki.com
|
3
|
-
//
|
4
|
-
// htmlArea v3.0 - Copyright (c) 2002 interactivetools.com, inc.
|
5
|
-
// This notice MUST stay intact for use (see license.txt).
|
6
|
-
//
|
7
|
-
// A free WYSIWYG editor replacement for <textarea> fields.
|
8
|
-
// For full source code and docs, visit http://www.interactivetools.com/
|
9
|
-
//
|
10
|
-
// Version 3.0 developed by Mihai Bazon for InteractiveTools.
|
11
|
-
// http://dynarch.com/mishoo
|
12
|
-
//
|
13
|
-
// $Id: table-operations.js,v 1.5 2003/10/06 11:47:42 mishoo Exp $
|
14
|
-
|
15
|
-
// Object that will encapsulate all the table operations provided by
|
16
|
-
// HTMLArea-3.0 (except "insert table" which is included in the main file)
|
17
|
-
function TableOperations(editor) {
|
18
|
-
this.editor = editor;
|
19
|
-
|
20
|
-
var cfg = editor.config;
|
21
|
-
var tt = TableOperations.I18N;
|
22
|
-
var bl = TableOperations.btnList;
|
23
|
-
var self = this;
|
24
|
-
|
25
|
-
// register the toolbar buttons provided by this plugin
|
26
|
-
var toolbar = ["linebreak"];
|
27
|
-
for (var i in bl) {
|
28
|
-
var btn = bl[i];
|
29
|
-
if (!btn) {
|
30
|
-
toolbar.push("separator");
|
31
|
-
} else {
|
32
|
-
var id = "TO-" + btn[0];
|
33
|
-
cfg.registerButton(id, tt[id], editor.imgURL(btn[0] + ".gif", "TableOperations"), false,
|
34
|
-
function(editor, id) {
|
35
|
-
// dispatch button press event
|
36
|
-
self.buttonPress(editor, id);
|
37
|
-
}, btn[1]);
|
38
|
-
toolbar.push(id);
|
39
|
-
}
|
40
|
-
}
|
41
|
-
|
42
|
-
// add a new line in the toolbar
|
43
|
-
cfg.toolbar.push(toolbar);
|
44
|
-
};
|
45
|
-
|
46
|
-
TableOperations._pluginInfo = {
|
47
|
-
name : "TableOperations",
|
48
|
-
version : "1.0",
|
49
|
-
developer : "Mihai Bazon",
|
50
|
-
developer_url : "http://dynarch.com/mishoo/",
|
51
|
-
c_owner : "Mihai Bazon",
|
52
|
-
sponsor : "Zapatec Inc.",
|
53
|
-
sponsor_url : "http://www.bloki.com",
|
54
|
-
license : "htmlArea"
|
55
|
-
};
|
56
|
-
|
57
|
-
/************************
|
58
|
-
* UTILITIES
|
59
|
-
************************/
|
60
|
-
|
61
|
-
// retrieves the closest element having the specified tagName in the list of
|
62
|
-
// ancestors of the current selection/caret.
|
63
|
-
TableOperations.prototype.getClosest = function(tagName) {
|
64
|
-
var editor = this.editor;
|
65
|
-
var ancestors = editor.getAllAncestors();
|
66
|
-
var ret = null;
|
67
|
-
tagName = ("" + tagName).toLowerCase();
|
68
|
-
for (var i in ancestors) {
|
69
|
-
var el = ancestors[i];
|
70
|
-
if (el.tagName.toLowerCase() == tagName) {
|
71
|
-
ret = el;
|
72
|
-
break;
|
73
|
-
}
|
74
|
-
}
|
75
|
-
return ret;
|
76
|
-
};
|
77
|
-
|
78
|
-
// this function requires the file PopupDiv/PopupWin to be loaded from browser
|
79
|
-
TableOperations.prototype.dialogTableProperties = function() {
|
80
|
-
var i18n = TableOperations.I18N;
|
81
|
-
// retrieve existing values
|
82
|
-
var table = this.getClosest("table");
|
83
|
-
// this.editor.selectNodeContents(table);
|
84
|
-
// this.editor.updateToolbar();
|
85
|
-
|
86
|
-
var dialog = new PopupWin(this.editor, i18n["Table Properties"], function(dialog, params) {
|
87
|
-
TableOperations.processStyle(params, table);
|
88
|
-
for (var i in params) {
|
89
|
-
var val = params[i];
|
90
|
-
switch (i) {
|
91
|
-
case "f_caption":
|
92
|
-
if (/\S/.test(val)) {
|
93
|
-
// contains non white-space characters
|
94
|
-
var caption = table.getElementsByTagName("caption")[0];
|
95
|
-
if (!caption) {
|
96
|
-
caption = dialog.editor._doc.createElement("caption");
|
97
|
-
table.insertBefore(caption, table.firstChild);
|
98
|
-
}
|
99
|
-
caption.innerHTML = val;
|
100
|
-
} else {
|
101
|
-
// search for caption and delete it if found
|
102
|
-
var caption = table.getElementsByTagName("caption")[0];
|
103
|
-
if (caption) {
|
104
|
-
caption.parentNode.removeChild(caption);
|
105
|
-
}
|
106
|
-
}
|
107
|
-
break;
|
108
|
-
case "f_summary":
|
109
|
-
table.summary = val;
|
110
|
-
break;
|
111
|
-
case "f_width":
|
112
|
-
table.style.width = ("" + val) + params.f_unit;
|
113
|
-
break;
|
114
|
-
case "f_align":
|
115
|
-
table.align = val;
|
116
|
-
break;
|
117
|
-
case "f_spacing":
|
118
|
-
table.cellSpacing = val;
|
119
|
-
break;
|
120
|
-
case "f_padding":
|
121
|
-
table.cellPadding = val;
|
122
|
-
break;
|
123
|
-
case "f_borders":
|
124
|
-
table.border = val;
|
125
|
-
break;
|
126
|
-
case "f_frames":
|
127
|
-
table.frame = val;
|
128
|
-
break;
|
129
|
-
case "f_rules":
|
130
|
-
table.rules = val;
|
131
|
-
break;
|
132
|
-
}
|
133
|
-
}
|
134
|
-
// various workarounds to refresh the table display (Gecko,
|
135
|
-
// what's going on?! do not disappoint me!)
|
136
|
-
dialog.editor.forceRedraw();
|
137
|
-
dialog.editor.focusEditor();
|
138
|
-
dialog.editor.updateToolbar();
|
139
|
-
var save_collapse = table.style.borderCollapse;
|
140
|
-
table.style.borderCollapse = "collapse";
|
141
|
-
table.style.borderCollapse = "separate";
|
142
|
-
table.style.borderCollapse = save_collapse;
|
143
|
-
},
|
144
|
-
|
145
|
-
// this function gets called when the dialog needs to be initialized
|
146
|
-
function (dialog) {
|
147
|
-
|
148
|
-
var f_caption = "";
|
149
|
-
var capel = table.getElementsByTagName("caption")[0];
|
150
|
-
if (capel) {
|
151
|
-
f_caption = capel.innerHTML;
|
152
|
-
}
|
153
|
-
var f_summary = table.summary;
|
154
|
-
var f_width = parseInt(table.style.width);
|
155
|
-
isNaN(f_width) && (f_width = "");
|
156
|
-
var f_unit = /%/.test(table.style.width) ? 'percent' : 'pixels';
|
157
|
-
var f_align = table.align;
|
158
|
-
var f_spacing = table.cellSpacing;
|
159
|
-
var f_padding = table.cellPadding;
|
160
|
-
var f_borders = table.border;
|
161
|
-
var f_frames = table.frame;
|
162
|
-
var f_rules = table.rules;
|
163
|
-
|
164
|
-
function selected(val) {
|
165
|
-
return val ? " selected" : "";
|
166
|
-
};
|
167
|
-
|
168
|
-
// dialog contents
|
169
|
-
dialog.content.style.width = "400px";
|
170
|
-
dialog.content.innerHTML = " \
|
171
|
-
<div class='title'\
|
172
|
-
style='background: url(" + dialog.baseURL + dialog.editor.imgURL("table-prop.gif", "TableOperations") + ") #fff 98% 50% no-repeat'>" + i18n["Table Properties"] + "\
|
173
|
-
</div> \
|
174
|
-
<table style='width:100%'> \
|
175
|
-
<tr> \
|
176
|
-
<td> \
|
177
|
-
<fieldset><legend>" + i18n["Description"] + "</legend> \
|
178
|
-
<table style='width:100%'> \
|
179
|
-
<tr> \
|
180
|
-
<td class='label'>" + i18n["Caption"] + ":</td> \
|
181
|
-
<td class='value'><input type='text' name='f_caption' value='" + f_caption + "'/></td> \
|
182
|
-
</tr><tr> \
|
183
|
-
<td class='label'>" + i18n["Summary"] + ":</td> \
|
184
|
-
<td class='value'><input type='text' name='f_summary' value='" + f_summary + "'/></td> \
|
185
|
-
</tr> \
|
186
|
-
</table> \
|
187
|
-
</fieldset> \
|
188
|
-
</td> \
|
189
|
-
</tr> \
|
190
|
-
<tr><td id='--HA-layout'></td></tr> \
|
191
|
-
<tr> \
|
192
|
-
<td> \
|
193
|
-
<fieldset><legend>" + i18n["Spacing and padding"] + "</legend> \
|
194
|
-
<table style='width:100%'> \
|
195
|
-
"+// <tr> \
|
196
|
-
// <td class='label'>" + i18n["Width"] + ":</td> \
|
197
|
-
// <td><input type='text' name='f_width' value='" + f_width + "' size='5' /> \
|
198
|
-
// <select name='f_unit'> \
|
199
|
-
// <option value='%'" + selected(f_unit == "percent") + ">" + i18n["percent"] + "</option> \
|
200
|
-
// <option value='px'" + selected(f_unit == "pixels") + ">" + i18n["pixels"] + "</option> \
|
201
|
-
// </select> " + i18n["Align"] + ": \
|
202
|
-
// <select name='f_align'> \
|
203
|
-
// <option value='left'" + selected(f_align == "left") + ">" + i18n["Left"] + "</option> \
|
204
|
-
// <option value='center'" + selected(f_align == "center") + ">" + i18n["Center"] + "</option> \
|
205
|
-
// <option value='right'" + selected(f_align == "right") + ">" + i18n["Right"] + "</option> \
|
206
|
-
// </select> \
|
207
|
-
// </td> \
|
208
|
-
// </tr> \
|
209
|
-
" <tr> \
|
210
|
-
<td class='label'>" + i18n["Spacing"] + ":</td> \
|
211
|
-
<td><input type='text' name='f_spacing' size='5' value='" + f_spacing + "' /> " + i18n["Padding"] + ":\
|
212
|
-
<input type='text' name='f_padding' size='5' value='" + f_padding + "' /> " + i18n["pixels"] + "\
|
213
|
-
</td> \
|
214
|
-
</tr> \
|
215
|
-
</table> \
|
216
|
-
</fieldset> \
|
217
|
-
</td> \
|
218
|
-
</tr> \
|
219
|
-
<tr> \
|
220
|
-
<td> \
|
221
|
-
<fieldset><legend>Frame and borders</legend> \
|
222
|
-
<table width='100%'> \
|
223
|
-
<tr> \
|
224
|
-
<td class='label'>" + i18n["Borders"] + ":</td> \
|
225
|
-
<td><input name='f_borders' type='text' size='5' value='" + f_borders + "' /> " + i18n["pixels"] + "</td> \
|
226
|
-
</tr> \
|
227
|
-
<tr> \
|
228
|
-
<td class='label'>" + i18n["Frames"] + ":</td> \
|
229
|
-
<td> \
|
230
|
-
<select name='f_frames'> \
|
231
|
-
<option value='void'" + selected(f_frames == "void") + ">" + i18n["No sides"] + "</option> \
|
232
|
-
<option value='above'" + selected(f_frames == "above") + ">" + i18n["The top side only"] + "</option> \
|
233
|
-
<option value='below'" + selected(f_frames == "below") + ">" + i18n["The bottom side only"] + "</option> \
|
234
|
-
<option value='hsides'" + selected(f_frames == "hsides") + ">" + i18n["The top and bottom sides only"] + "</option> \
|
235
|
-
<option value='vsides'" + selected(f_frames == "vsides") + ">" + i18n["The right and left sides only"] + "</option> \
|
236
|
-
<option value='lhs'" + selected(f_frames == "lhs") + ">" + i18n["The left-hand side only"] + "</option> \
|
237
|
-
<option value='rhs'" + selected(f_frames == "rhs") + ">" + i18n["The right-hand side only"] + "</option> \
|
238
|
-
<option value='box'" + selected(f_frames == "box") + ">" + i18n["All four sides"] + "</option> \
|
239
|
-
</select> \
|
240
|
-
</td> \
|
241
|
-
</tr> \
|
242
|
-
<tr> \
|
243
|
-
<td class='label'>" + i18n["Rules"] + ":</td> \
|
244
|
-
<td> \
|
245
|
-
<select name='f_rules'> \
|
246
|
-
<option value='none'" + selected(f_rules == "none") + ">" + i18n["No rules"] + "</option> \
|
247
|
-
<option value='rows'" + selected(f_rules == "rows") + ">" + i18n["Rules will appear between rows only"] + "</option> \
|
248
|
-
<option value='cols'" + selected(f_rules == "cols") + ">" + i18n["Rules will appear between columns only"] + "</option> \
|
249
|
-
<option value='all'" + selected(f_rules == "all") + ">" + i18n["Rules will appear between all rows and columns"] + "</option> \
|
250
|
-
</select> \
|
251
|
-
</td> \
|
252
|
-
</tr> \
|
253
|
-
</table> \
|
254
|
-
</fieldset> \
|
255
|
-
</td> \
|
256
|
-
</tr> \
|
257
|
-
<tr> \
|
258
|
-
<td id='--HA-style'></td> \
|
259
|
-
</tr> \
|
260
|
-
</table> \
|
261
|
-
";
|
262
|
-
var st_prop = TableOperations.createStyleFieldset(dialog.doc, dialog.editor, table);
|
263
|
-
var p = dialog.doc.getElementById("--HA-style");
|
264
|
-
p.appendChild(st_prop);
|
265
|
-
var st_layout = TableOperations.createStyleLayoutFieldset(dialog.doc, dialog.editor, table);
|
266
|
-
p = dialog.doc.getElementById("--HA-layout");
|
267
|
-
p.appendChild(st_layout);
|
268
|
-
dialog.modal = true;
|
269
|
-
dialog.addButtons("ok", "cancel");
|
270
|
-
dialog.showAtElement(dialog.editor._iframe, "c");
|
271
|
-
});
|
272
|
-
};
|
273
|
-
|
274
|
-
// this function requires the file PopupDiv/PopupWin to be loaded from browser
|
275
|
-
TableOperations.prototype.dialogRowCellProperties = function(cell) {
|
276
|
-
var i18n = TableOperations.I18N;
|
277
|
-
// retrieve existing values
|
278
|
-
var element = this.getClosest(cell ? "td" : "tr");
|
279
|
-
var table = this.getClosest("table");
|
280
|
-
// this.editor.selectNodeContents(element);
|
281
|
-
// this.editor.updateToolbar();
|
282
|
-
|
283
|
-
var dialog = new PopupWin(this.editor, i18n[cell ? "Cell Properties" : "Row Properties"], function(dialog, params) {
|
284
|
-
TableOperations.processStyle(params, element);
|
285
|
-
for (var i in params) {
|
286
|
-
var val = params[i];
|
287
|
-
switch (i) {
|
288
|
-
case "f_align":
|
289
|
-
element.align = val;
|
290
|
-
break;
|
291
|
-
case "f_char":
|
292
|
-
element.ch = val;
|
293
|
-
break;
|
294
|
-
case "f_valign":
|
295
|
-
element.vAlign = val;
|
296
|
-
break;
|
297
|
-
}
|
298
|
-
}
|
299
|
-
// various workarounds to refresh the table display (Gecko,
|
300
|
-
// what's going on?! do not disappoint me!)
|
301
|
-
dialog.editor.forceRedraw();
|
302
|
-
dialog.editor.focusEditor();
|
303
|
-
dialog.editor.updateToolbar();
|
304
|
-
var save_collapse = table.style.borderCollapse;
|
305
|
-
table.style.borderCollapse = "collapse";
|
306
|
-
table.style.borderCollapse = "separate";
|
307
|
-
table.style.borderCollapse = save_collapse;
|
308
|
-
},
|
309
|
-
|
310
|
-
// this function gets called when the dialog needs to be initialized
|
311
|
-
function (dialog) {
|
312
|
-
|
313
|
-
var f_align = element.align;
|
314
|
-
var f_valign = element.vAlign;
|
315
|
-
var f_char = element.ch;
|
316
|
-
|
317
|
-
function selected(val) {
|
318
|
-
return val ? " selected" : "";
|
319
|
-
};
|
320
|
-
|
321
|
-
// dialog contents
|
322
|
-
dialog.content.style.width = "400px";
|
323
|
-
dialog.content.innerHTML = " \
|
324
|
-
<div class='title'\
|
325
|
-
style='background: url(" + dialog.baseURL + dialog.editor.imgURL(cell ? "cell-prop.gif" : "row-prop.gif", "TableOperations") + ") #fff 98% 50% no-repeat'>" + i18n[cell ? "Cell Properties" : "Row Properties"] + "</div> \
|
326
|
-
<table style='width:100%'> \
|
327
|
-
<tr> \
|
328
|
-
<td id='--HA-layout'> \
|
329
|
-
"+// <fieldset><legend>" + i18n["Layout"] + "</legend> \
|
330
|
-
// <table style='width:100%'> \
|
331
|
-
// <tr> \
|
332
|
-
// <td class='label'>" + i18n["Align"] + ":</td> \
|
333
|
-
// <td> \
|
334
|
-
// <select name='f_align'> \
|
335
|
-
// <option value='left'" + selected(f_align == "left") + ">" + i18n["Left"] + "</option> \
|
336
|
-
// <option value='center'" + selected(f_align == "center") + ">" + i18n["Center"] + "</option> \
|
337
|
-
// <option value='right'" + selected(f_align == "right") + ">" + i18n["Right"] + "</option> \
|
338
|
-
// <option value='char'" + selected(f_align == "char") + ">" + i18n["Char"] + "</option> \
|
339
|
-
// </select> \
|
340
|
-
// " + i18n["Char"] + ": \
|
341
|
-
// <input type='text' style='font-family: monospace; text-align: center' name='f_char' size='1' value='" + f_char + "' /> \
|
342
|
-
// </td> \
|
343
|
-
// </tr><tr> \
|
344
|
-
// <td class='label'>" + i18n["Vertical align"] + ":</td> \
|
345
|
-
// <td> \
|
346
|
-
// <select name='f_valign'> \
|
347
|
-
// <option value='top'" + selected(f_valign == "top") + ">" + i18n["Top"] + "</option> \
|
348
|
-
// <option value='middle'" + selected(f_valign == "middle") + ">" + i18n["Middle"] + "</option> \
|
349
|
-
// <option value='bottom'" + selected(f_valign == "bottom") + ">" + i18n["Bottom"] + "</option> \
|
350
|
-
// <option value='baseline'" + selected(f_valign == "baseline") + ">" + i18n["Baseline"] + "</option> \
|
351
|
-
// </select> \
|
352
|
-
// </td> \
|
353
|
-
// </tr> \
|
354
|
-
// </table> \
|
355
|
-
// </fieldset> \
|
356
|
-
" </td> \
|
357
|
-
</tr> \
|
358
|
-
<tr> \
|
359
|
-
<td id='--HA-style'></td> \
|
360
|
-
</tr> \
|
361
|
-
</table> \
|
362
|
-
";
|
363
|
-
var st_prop = TableOperations.createStyleFieldset(dialog.doc, dialog.editor, element);
|
364
|
-
var p = dialog.doc.getElementById("--HA-style");
|
365
|
-
p.appendChild(st_prop);
|
366
|
-
var st_layout = TableOperations.createStyleLayoutFieldset(dialog.doc, dialog.editor, element);
|
367
|
-
p = dialog.doc.getElementById("--HA-layout");
|
368
|
-
p.appendChild(st_layout);
|
369
|
-
dialog.modal = true;
|
370
|
-
dialog.addButtons("ok", "cancel");
|
371
|
-
dialog.showAtElement(dialog.editor._iframe, "c");
|
372
|
-
});
|
373
|
-
};
|
374
|
-
|
375
|
-
// this function gets called when some button from the TableOperations toolbar
|
376
|
-
// was pressed.
|
377
|
-
TableOperations.prototype.buttonPress = function(editor, button_id) {
|
378
|
-
this.editor = editor;
|
379
|
-
var mozbr = HTMLArea.is_gecko ? "<br />" : "";
|
380
|
-
var i18n = TableOperations.I18N;
|
381
|
-
|
382
|
-
// helper function that clears the content in a table row
|
383
|
-
function clearRow(tr) {
|
384
|
-
var tds = tr.getElementsByTagName("td");
|
385
|
-
for (var i = tds.length; --i >= 0;) {
|
386
|
-
var td = tds[i];
|
387
|
-
td.rowSpan = 1;
|
388
|
-
td.innerHTML = mozbr;
|
389
|
-
}
|
390
|
-
};
|
391
|
-
|
392
|
-
function splitRow(td) {
|
393
|
-
var n = parseInt("" + td.rowSpan);
|
394
|
-
var nc = parseInt("" + td.colSpan);
|
395
|
-
td.rowSpan = 1;
|
396
|
-
tr = td.parentNode;
|
397
|
-
var itr = tr.rowIndex;
|
398
|
-
var trs = tr.parentNode.rows;
|
399
|
-
var index = td.cellIndex;
|
400
|
-
while (--n > 0) {
|
401
|
-
tr = trs[++itr];
|
402
|
-
var otd = editor._doc.createElement("td");
|
403
|
-
otd.colSpan = td.colSpan;
|
404
|
-
otd.innerHTML = mozbr;
|
405
|
-
tr.insertBefore(otd, tr.cells[index]);
|
406
|
-
}
|
407
|
-
editor.forceRedraw();
|
408
|
-
editor.updateToolbar();
|
409
|
-
};
|
410
|
-
|
411
|
-
function splitCol(td) {
|
412
|
-
var nc = parseInt("" + td.colSpan);
|
413
|
-
td.colSpan = 1;
|
414
|
-
tr = td.parentNode;
|
415
|
-
var ref = td.nextSibling;
|
416
|
-
while (--nc > 0) {
|
417
|
-
var otd = editor._doc.createElement("td");
|
418
|
-
otd.rowSpan = td.rowSpan;
|
419
|
-
otd.innerHTML = mozbr;
|
420
|
-
tr.insertBefore(otd, ref);
|
421
|
-
}
|
422
|
-
editor.forceRedraw();
|
423
|
-
editor.updateToolbar();
|
424
|
-
};
|
425
|
-
|
426
|
-
function splitCell(td) {
|
427
|
-
var nc = parseInt("" + td.colSpan);
|
428
|
-
splitCol(td);
|
429
|
-
var items = td.parentNode.cells;
|
430
|
-
var index = td.cellIndex;
|
431
|
-
while (nc-- > 0) {
|
432
|
-
splitRow(items[index++]);
|
433
|
-
}
|
434
|
-
};
|
435
|
-
|
436
|
-
function selectNextNode(el) {
|
437
|
-
var node = el.nextSibling;
|
438
|
-
while (node && node.nodeType != 1) {
|
439
|
-
node = node.nextSibling;
|
440
|
-
}
|
441
|
-
if (!node) {
|
442
|
-
node = el.previousSibling;
|
443
|
-
while (node && node.nodeType != 1) {
|
444
|
-
node = node.previousSibling;
|
445
|
-
}
|
446
|
-
}
|
447
|
-
if (!node) {
|
448
|
-
node = el.parentNode;
|
449
|
-
}
|
450
|
-
editor.selectNodeContents(node);
|
451
|
-
};
|
452
|
-
|
453
|
-
switch (button_id) {
|
454
|
-
// ROWS
|
455
|
-
|
456
|
-
case "TO-row-insert-above":
|
457
|
-
case "TO-row-insert-under":
|
458
|
-
var tr = this.getClosest("tr");
|
459
|
-
if (!tr) {
|
460
|
-
break;
|
461
|
-
}
|
462
|
-
var otr = tr.cloneNode(true);
|
463
|
-
clearRow(otr);
|
464
|
-
tr.parentNode.insertBefore(otr, /under/.test(button_id) ? tr.nextSibling : tr);
|
465
|
-
editor.forceRedraw();
|
466
|
-
editor.focusEditor();
|
467
|
-
break;
|
468
|
-
case "TO-row-delete":
|
469
|
-
var tr = this.getClosest("tr");
|
470
|
-
if (!tr) {
|
471
|
-
break;
|
472
|
-
}
|
473
|
-
var par = tr.parentNode;
|
474
|
-
if (par.rows.length == 1) {
|
475
|
-
alert(i18n["not-del-last-row"]);
|
476
|
-
break;
|
477
|
-
}
|
478
|
-
// set the caret first to a position that doesn't
|
479
|
-
// disappear.
|
480
|
-
selectNextNode(tr);
|
481
|
-
par.removeChild(tr);
|
482
|
-
editor.forceRedraw();
|
483
|
-
editor.focusEditor();
|
484
|
-
editor.updateToolbar();
|
485
|
-
break;
|
486
|
-
case "TO-row-split":
|
487
|
-
var td = this.getClosest("td");
|
488
|
-
if (!td) {
|
489
|
-
break;
|
490
|
-
}
|
491
|
-
splitRow(td);
|
492
|
-
break;
|
493
|
-
|
494
|
-
// COLUMNS
|
495
|
-
|
496
|
-
case "TO-col-insert-before":
|
497
|
-
case "TO-col-insert-after":
|
498
|
-
var td = this.getClosest("td");
|
499
|
-
if (!td) {
|
500
|
-
break;
|
501
|
-
}
|
502
|
-
var rows = td.parentNode.parentNode.rows;
|
503
|
-
var index = td.cellIndex;
|
504
|
-
for (var i = rows.length; --i >= 0;) {
|
505
|
-
var tr = rows[i];
|
506
|
-
var ref = tr.cells[index + (/after/.test(button_id) ? 1 : 0)];
|
507
|
-
var otd = editor._doc.createElement("td");
|
508
|
-
otd.innerHTML = mozbr;
|
509
|
-
tr.insertBefore(otd, ref);
|
510
|
-
}
|
511
|
-
editor.focusEditor();
|
512
|
-
break;
|
513
|
-
case "TO-col-split":
|
514
|
-
var td = this.getClosest("td");
|
515
|
-
if (!td) {
|
516
|
-
break;
|
517
|
-
}
|
518
|
-
splitCol(td);
|
519
|
-
break;
|
520
|
-
case "TO-col-delete":
|
521
|
-
var td = this.getClosest("td");
|
522
|
-
if (!td) {
|
523
|
-
break;
|
524
|
-
}
|
525
|
-
var index = td.cellIndex;
|
526
|
-
if (td.parentNode.cells.length == 1) {
|
527
|
-
alert(i18n["not-del-last-col"]);
|
528
|
-
break;
|
529
|
-
}
|
530
|
-
// set the caret first to a position that doesn't disappear
|
531
|
-
selectNextNode(td);
|
532
|
-
var rows = td.parentNode.parentNode.rows;
|
533
|
-
for (var i = rows.length; --i >= 0;) {
|
534
|
-
var tr = rows[i];
|
535
|
-
tr.removeChild(tr.cells[index]);
|
536
|
-
}
|
537
|
-
editor.forceRedraw();
|
538
|
-
editor.focusEditor();
|
539
|
-
editor.updateToolbar();
|
540
|
-
break;
|
541
|
-
|
542
|
-
// CELLS
|
543
|
-
|
544
|
-
case "TO-cell-split":
|
545
|
-
var td = this.getClosest("td");
|
546
|
-
if (!td) {
|
547
|
-
break;
|
548
|
-
}
|
549
|
-
splitCell(td);
|
550
|
-
break;
|
551
|
-
case "TO-cell-insert-before":
|
552
|
-
case "TO-cell-insert-after":
|
553
|
-
var td = this.getClosest("td");
|
554
|
-
if (!td) {
|
555
|
-
break;
|
556
|
-
}
|
557
|
-
var tr = td.parentNode;
|
558
|
-
var otd = editor._doc.createElement("td");
|
559
|
-
otd.innerHTML = mozbr;
|
560
|
-
tr.insertBefore(otd, /after/.test(button_id) ? td.nextSibling : td);
|
561
|
-
editor.forceRedraw();
|
562
|
-
editor.focusEditor();
|
563
|
-
break;
|
564
|
-
case "TO-cell-delete":
|
565
|
-
var td = this.getClosest("td");
|
566
|
-
if (!td) {
|
567
|
-
break;
|
568
|
-
}
|
569
|
-
if (td.parentNode.cells.length == 1) {
|
570
|
-
alert(i18n["not-del-last-cell"]);
|
571
|
-
break;
|
572
|
-
}
|
573
|
-
// set the caret first to a position that doesn't disappear
|
574
|
-
selectNextNode(td);
|
575
|
-
td.parentNode.removeChild(td);
|
576
|
-
editor.forceRedraw();
|
577
|
-
editor.updateToolbar();
|
578
|
-
break;
|
579
|
-
case "TO-cell-merge":
|
580
|
-
// !! FIXME: Mozilla specific !!
|
581
|
-
var sel = editor._getSelection();
|
582
|
-
var range, i = 0;
|
583
|
-
var rows = [];
|
584
|
-
var row = null;
|
585
|
-
var cells = null;
|
586
|
-
if (!HTMLArea.is_ie) {
|
587
|
-
try {
|
588
|
-
while (range = sel.getRangeAt(i++)) {
|
589
|
-
var td = range.startContainer.childNodes[range.startOffset];
|
590
|
-
if (td.parentNode != row) {
|
591
|
-
row = td.parentNode;
|
592
|
-
(cells) && rows.push(cells);
|
593
|
-
cells = [];
|
594
|
-
}
|
595
|
-
cells.push(td);
|
596
|
-
}
|
597
|
-
} catch(e) {/* finished walking through selection */}
|
598
|
-
rows.push(cells);
|
599
|
-
} else {
|
600
|
-
// Internet Explorer "browser"
|
601
|
-
var td = this.getClosest("td");
|
602
|
-
if (!td) {
|
603
|
-
alert(i18n["Please click into some cell"]);
|
604
|
-
break;
|
605
|
-
}
|
606
|
-
var tr = td.parentElement;
|
607
|
-
var no_cols = prompt(i18n["How many columns would you like to merge?"], 2);
|
608
|
-
if (!no_cols) {
|
609
|
-
// cancelled
|
610
|
-
break;
|
611
|
-
}
|
612
|
-
var no_rows = prompt(i18n["How many rows would you like to merge?"], 2);
|
613
|
-
if (!no_rows) {
|
614
|
-
// cancelled
|
615
|
-
break;
|
616
|
-
}
|
617
|
-
var cell_index = td.cellIndex;
|
618
|
-
while (no_rows-- > 0) {
|
619
|
-
td = tr.cells[cell_index];
|
620
|
-
cells = [td];
|
621
|
-
for (var i = 1; i < no_cols; ++i) {
|
622
|
-
td = td.nextSibling;
|
623
|
-
if (!td) {
|
624
|
-
break;
|
625
|
-
}
|
626
|
-
cells.push(td);
|
627
|
-
}
|
628
|
-
rows.push(cells);
|
629
|
-
tr = tr.nextSibling;
|
630
|
-
if (!tr) {
|
631
|
-
break;
|
632
|
-
}
|
633
|
-
}
|
634
|
-
}
|
635
|
-
var HTML = "";
|
636
|
-
for (i = 0; i < rows.length; ++i) {
|
637
|
-
// i && (HTML += "<br />");
|
638
|
-
var cells = rows[i];
|
639
|
-
for (var j = 0; j < cells.length; ++j) {
|
640
|
-
// j && (HTML += " ");
|
641
|
-
var cell = cells[j];
|
642
|
-
HTML += cell.innerHTML;
|
643
|
-
(i || j) && (cell.parentNode.removeChild(cell));
|
644
|
-
}
|
645
|
-
}
|
646
|
-
var td = rows[0][0];
|
647
|
-
td.innerHTML = HTML;
|
648
|
-
td.rowSpan = rows.length;
|
649
|
-
td.colSpan = rows[0].length;
|
650
|
-
editor.selectNodeContents(td);
|
651
|
-
editor.forceRedraw();
|
652
|
-
editor.focusEditor();
|
653
|
-
break;
|
654
|
-
|
655
|
-
// PROPERTIES
|
656
|
-
|
657
|
-
case "TO-table-prop":
|
658
|
-
this.dialogTableProperties();
|
659
|
-
break;
|
660
|
-
|
661
|
-
case "TO-row-prop":
|
662
|
-
this.dialogRowCellProperties(false);
|
663
|
-
break;
|
664
|
-
|
665
|
-
case "TO-cell-prop":
|
666
|
-
this.dialogRowCellProperties(true);
|
667
|
-
break;
|
668
|
-
|
669
|
-
default:
|
670
|
-
alert("Button [" + button_id + "] not yet implemented");
|
671
|
-
}
|
672
|
-
};
|
673
|
-
|
674
|
-
// the list of buttons added by this plugin
|
675
|
-
TableOperations.btnList = [
|
676
|
-
// table properties button
|
677
|
-
["table-prop", "table"],
|
678
|
-
null, // separator
|
679
|
-
|
680
|
-
// ROWS
|
681
|
-
["row-prop", "tr"],
|
682
|
-
["row-insert-above", "tr"],
|
683
|
-
["row-insert-under", "tr"],
|
684
|
-
["row-delete", "tr"],
|
685
|
-
["row-split", "td[rowSpan!=1]"],
|
686
|
-
null,
|
687
|
-
|
688
|
-
// COLS
|
689
|
-
["col-insert-before", "td"],
|
690
|
-
["col-insert-after", "td"],
|
691
|
-
["col-delete", "td"],
|
692
|
-
["col-split", "td[colSpan!=1]"],
|
693
|
-
null,
|
694
|
-
|
695
|
-
// CELLS
|
696
|
-
["cell-prop", "td"],
|
697
|
-
["cell-insert-before", "td"],
|
698
|
-
["cell-insert-after", "td"],
|
699
|
-
["cell-delete", "td"],
|
700
|
-
["cell-merge", "tr"],
|
701
|
-
["cell-split", "td[colSpan!=1,rowSpan!=1]"]
|
702
|
-
];
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
//// GENERIC CODE [style of any element; this should be moved into a separate
|
707
|
-
//// file as it'll be very useful]
|
708
|
-
//// BEGIN GENERIC CODE -----------------------------------------------------
|
709
|
-
|
710
|
-
TableOperations.getLength = function(value) {
|
711
|
-
var len = parseInt(value);
|
712
|
-
if (isNaN(len)) {
|
713
|
-
len = "";
|
714
|
-
}
|
715
|
-
return len;
|
716
|
-
};
|
717
|
-
|
718
|
-
// Applies the style found in "params" to the given element.
|
719
|
-
TableOperations.processStyle = function(params, element) {
|
720
|
-
var style = element.style;
|
721
|
-
for (var i in params) {
|
722
|
-
var val = params[i];
|
723
|
-
switch (i) {
|
724
|
-
case "f_st_backgroundColor":
|
725
|
-
style.backgroundColor = val;
|
726
|
-
break;
|
727
|
-
case "f_st_color":
|
728
|
-
style.color = val;
|
729
|
-
break;
|
730
|
-
case "f_st_backgroundImage":
|
731
|
-
if (/\S/.test(val)) {
|
732
|
-
style.backgroundImage = "url(" + val + ")";
|
733
|
-
} else {
|
734
|
-
style.backgroundImage = "none";
|
735
|
-
}
|
736
|
-
break;
|
737
|
-
case "f_st_borderWidth":
|
738
|
-
style.borderWidth = val;
|
739
|
-
break;
|
740
|
-
case "f_st_borderStyle":
|
741
|
-
style.borderStyle = val;
|
742
|
-
break;
|
743
|
-
case "f_st_borderColor":
|
744
|
-
style.borderColor = val;
|
745
|
-
break;
|
746
|
-
case "f_st_borderCollapse":
|
747
|
-
style.borderCollapse = val ? "collapse" : "";
|
748
|
-
break;
|
749
|
-
case "f_st_width":
|
750
|
-
if (/\S/.test(val)) {
|
751
|
-
style.width = val + params["f_st_widthUnit"];
|
752
|
-
} else {
|
753
|
-
style.width = "";
|
754
|
-
}
|
755
|
-
break;
|
756
|
-
case "f_st_height":
|
757
|
-
if (/\S/.test(val)) {
|
758
|
-
style.height = val + params["f_st_heightUnit"];
|
759
|
-
} else {
|
760
|
-
style.height = "";
|
761
|
-
}
|
762
|
-
break;
|
763
|
-
case "f_st_textAlign":
|
764
|
-
if (val == "char") {
|
765
|
-
var ch = params["f_st_textAlignChar"];
|
766
|
-
if (ch == '"') {
|
767
|
-
ch = '\\"';
|
768
|
-
}
|
769
|
-
style.textAlign = '"' + ch + '"';
|
770
|
-
} else {
|
771
|
-
style.textAlign = val;
|
772
|
-
}
|
773
|
-
break;
|
774
|
-
case "f_st_verticalAlign":
|
775
|
-
style.verticalAlign = val;
|
776
|
-
break;
|
777
|
-
case "f_st_float":
|
778
|
-
style.cssFloat = val;
|
779
|
-
break;
|
780
|
-
// case "f_st_margin":
|
781
|
-
// style.margin = val + "px";
|
782
|
-
// break;
|
783
|
-
// case "f_st_padding":
|
784
|
-
// style.padding = val + "px";
|
785
|
-
// break;
|
786
|
-
}
|
787
|
-
}
|
788
|
-
};
|
789
|
-
|
790
|
-
// Returns an HTML element for a widget that allows color selection. That is,
|
791
|
-
// a button that contains the given color, if any, and when pressed will popup
|
792
|
-
// the sooner-or-later-to-be-rewritten select_color.html dialog allowing user
|
793
|
-
// to select some color. If a color is selected, an input field with the name
|
794
|
-
// "f_st_"+name will be updated with the color value in #123456 format.
|
795
|
-
TableOperations.createColorButton = function(doc, editor, color, name) {
|
796
|
-
if (!color) {
|
797
|
-
color = "";
|
798
|
-
} else if (!/#/.test(color)) {
|
799
|
-
color = HTMLArea._colorToRgb(color);
|
800
|
-
}
|
801
|
-
|
802
|
-
var df = doc.createElement("span");
|
803
|
-
var field = doc.createElement("input");
|
804
|
-
field.type = "hidden";
|
805
|
-
df.appendChild(field);
|
806
|
-
field.name = "f_st_" + name;
|
807
|
-
field.value = color;
|
808
|
-
var button = doc.createElement("span");
|
809
|
-
button.className = "buttonColor";
|
810
|
-
df.appendChild(button);
|
811
|
-
var span = doc.createElement("span");
|
812
|
-
span.className = "chooser";
|
813
|
-
// span.innerHTML = " ";
|
814
|
-
span.style.backgroundColor = color;
|
815
|
-
button.appendChild(span);
|
816
|
-
button.onmouseover = function() { if (!this.disabled) { this.className += " buttonColor-hilite"; }};
|
817
|
-
button.onmouseout = function() { if (!this.disabled) { this.className = "buttonColor"; }};
|
818
|
-
span.onclick = function() {
|
819
|
-
if (this.parentNode.disabled) {
|
820
|
-
return false;
|
821
|
-
}
|
822
|
-
editor._popupDialog("select_color.html", function(color) {
|
823
|
-
if (color) {
|
824
|
-
span.style.backgroundColor = "#" + color;
|
825
|
-
field.value = "#" + color;
|
826
|
-
}
|
827
|
-
}, color);
|
828
|
-
};
|
829
|
-
var span2 = doc.createElement("span");
|
830
|
-
span2.innerHTML = "×";
|
831
|
-
span2.className = "nocolor";
|
832
|
-
span2.title = TableOperations.I18N["Unset color"];
|
833
|
-
button.appendChild(span2);
|
834
|
-
span2.onmouseover = function() { if (!this.parentNode.disabled) { this.className += " nocolor-hilite"; }};
|
835
|
-
span2.onmouseout = function() { if (!this.parentNode.disabled) { this.className = "nocolor"; }};
|
836
|
-
span2.onclick = function() {
|
837
|
-
span.style.backgroundColor = "";
|
838
|
-
field.value = "";
|
839
|
-
};
|
840
|
-
return df;
|
841
|
-
};
|
842
|
-
|
843
|
-
TableOperations.createStyleLayoutFieldset = function(doc, editor, el) {
|
844
|
-
var i18n = TableOperations.I18N;
|
845
|
-
var fieldset = doc.createElement("fieldset");
|
846
|
-
var legend = doc.createElement("legend");
|
847
|
-
fieldset.appendChild(legend);
|
848
|
-
legend.innerHTML = i18n["Layout"];
|
849
|
-
var table = doc.createElement("table");
|
850
|
-
fieldset.appendChild(table);
|
851
|
-
table.style.width = "100%";
|
852
|
-
var tbody = doc.createElement("tbody");
|
853
|
-
table.appendChild(tbody);
|
854
|
-
|
855
|
-
var tagname = el.tagName.toLowerCase();
|
856
|
-
var tr, td, input, select, option, options, i;
|
857
|
-
|
858
|
-
if (tagname != "td" && tagname != "tr" && tagname != "th") {
|
859
|
-
tr = doc.createElement("tr");
|
860
|
-
tbody.appendChild(tr);
|
861
|
-
td = doc.createElement("td");
|
862
|
-
td.className = "label";
|
863
|
-
tr.appendChild(td);
|
864
|
-
td.innerHTML = i18n["Float"] + ":";
|
865
|
-
td = doc.createElement("td");
|
866
|
-
tr.appendChild(td);
|
867
|
-
select = doc.createElement("select");
|
868
|
-
td.appendChild(select);
|
869
|
-
select.name = "f_st_float";
|
870
|
-
options = ["None", "Left", "Right"];
|
871
|
-
for (i in options) {
|
872
|
-
var Val = options[i];
|
873
|
-
var val = options[i].toLowerCase();
|
874
|
-
option = doc.createElement("option");
|
875
|
-
option.innerHTML = i18n[Val];
|
876
|
-
option.value = val;
|
877
|
-
option.selected = (("" + el.style.cssFloat).toLowerCase() == val);
|
878
|
-
select.appendChild(option);
|
879
|
-
}
|
880
|
-
}
|
881
|
-
|
882
|
-
tr = doc.createElement("tr");
|
883
|
-
tbody.appendChild(tr);
|
884
|
-
td = doc.createElement("td");
|
885
|
-
td.className = "label";
|
886
|
-
tr.appendChild(td);
|
887
|
-
td.innerHTML = i18n["Width"] + ":";
|
888
|
-
td = doc.createElement("td");
|
889
|
-
tr.appendChild(td);
|
890
|
-
input = doc.createElement("input");
|
891
|
-
input.type = "text";
|
892
|
-
input.value = TableOperations.getLength(el.style.width);
|
893
|
-
input.size = "5";
|
894
|
-
input.name = "f_st_width";
|
895
|
-
input.style.marginRight = "0.5em";
|
896
|
-
td.appendChild(input);
|
897
|
-
select = doc.createElement("select");
|
898
|
-
select.name = "f_st_widthUnit";
|
899
|
-
option = doc.createElement("option");
|
900
|
-
option.innerHTML = i18n["percent"];
|
901
|
-
option.value = "%";
|
902
|
-
option.selected = /%/.test(el.style.width);
|
903
|
-
select.appendChild(option);
|
904
|
-
option = doc.createElement("option");
|
905
|
-
option.innerHTML = i18n["pixels"];
|
906
|
-
option.value = "px";
|
907
|
-
option.selected = /px/.test(el.style.width);
|
908
|
-
select.appendChild(option);
|
909
|
-
td.appendChild(select);
|
910
|
-
|
911
|
-
select.style.marginRight = "0.5em";
|
912
|
-
td.appendChild(doc.createTextNode(i18n["Text align"] + ":"));
|
913
|
-
select = doc.createElement("select");
|
914
|
-
select.style.marginLeft = select.style.marginRight = "0.5em";
|
915
|
-
td.appendChild(select);
|
916
|
-
select.name = "f_st_textAlign";
|
917
|
-
options = ["Left", "Center", "Right", "Justify"];
|
918
|
-
if (tagname == "td") {
|
919
|
-
options.push("Char");
|
920
|
-
}
|
921
|
-
input = doc.createElement("input");
|
922
|
-
input.name = "f_st_textAlignChar";
|
923
|
-
input.size = "1";
|
924
|
-
input.style.fontFamily = "monospace";
|
925
|
-
td.appendChild(input);
|
926
|
-
for (i in options) {
|
927
|
-
var Val = options[i];
|
928
|
-
var val = Val.toLowerCase();
|
929
|
-
option = doc.createElement("option");
|
930
|
-
option.value = val;
|
931
|
-
option.innerHTML = i18n[Val];
|
932
|
-
option.selected = (el.style.textAlign.toLowerCase() == val);
|
933
|
-
select.appendChild(option);
|
934
|
-
}
|
935
|
-
function setCharVisibility(value) {
|
936
|
-
input.style.visibility = value ? "visible" : "hidden";
|
937
|
-
if (value) {
|
938
|
-
input.focus();
|
939
|
-
input.select();
|
940
|
-
}
|
941
|
-
};
|
942
|
-
select.onchange = function() { setCharVisibility(this.value == "char"); };
|
943
|
-
setCharVisibility(select.value == "char");
|
944
|
-
|
945
|
-
tr = doc.createElement("tr");
|
946
|
-
tbody.appendChild(tr);
|
947
|
-
td = doc.createElement("td");
|
948
|
-
td.className = "label";
|
949
|
-
tr.appendChild(td);
|
950
|
-
td.innerHTML = i18n["Height"] + ":";
|
951
|
-
td = doc.createElement("td");
|
952
|
-
tr.appendChild(td);
|
953
|
-
input = doc.createElement("input");
|
954
|
-
input.type = "text";
|
955
|
-
input.value = TableOperations.getLength(el.style.height);
|
956
|
-
input.size = "5";
|
957
|
-
input.name = "f_st_height";
|
958
|
-
input.style.marginRight = "0.5em";
|
959
|
-
td.appendChild(input);
|
960
|
-
select = doc.createElement("select");
|
961
|
-
select.name = "f_st_heightUnit";
|
962
|
-
option = doc.createElement("option");
|
963
|
-
option.innerHTML = i18n["percent"];
|
964
|
-
option.value = "%";
|
965
|
-
option.selected = /%/.test(el.style.height);
|
966
|
-
select.appendChild(option);
|
967
|
-
option = doc.createElement("option");
|
968
|
-
option.innerHTML = i18n["pixels"];
|
969
|
-
option.value = "px";
|
970
|
-
option.selected = /px/.test(el.style.height);
|
971
|
-
select.appendChild(option);
|
972
|
-
td.appendChild(select);
|
973
|
-
|
974
|
-
select.style.marginRight = "0.5em";
|
975
|
-
td.appendChild(doc.createTextNode(i18n["Vertical align"] + ":"));
|
976
|
-
select = doc.createElement("select");
|
977
|
-
select.name = "f_st_verticalAlign";
|
978
|
-
select.style.marginLeft = "0.5em";
|
979
|
-
td.appendChild(select);
|
980
|
-
options = ["Top", "Middle", "Bottom", "Baseline"];
|
981
|
-
for (i in options) {
|
982
|
-
var Val = options[i];
|
983
|
-
var val = Val.toLowerCase();
|
984
|
-
option = doc.createElement("option");
|
985
|
-
option.value = val;
|
986
|
-
option.innerHTML = i18n[Val];
|
987
|
-
option.selected = (el.style.verticalAlign.toLowerCase() == val);
|
988
|
-
select.appendChild(option);
|
989
|
-
}
|
990
|
-
|
991
|
-
return fieldset;
|
992
|
-
};
|
993
|
-
|
994
|
-
// Returns an HTML element containing the style attributes for the given
|
995
|
-
// element. This can be easily embedded into any dialog; the functionality is
|
996
|
-
// also provided.
|
997
|
-
TableOperations.createStyleFieldset = function(doc, editor, el) {
|
998
|
-
var i18n = TableOperations.I18N;
|
999
|
-
var fieldset = doc.createElement("fieldset");
|
1000
|
-
var legend = doc.createElement("legend");
|
1001
|
-
fieldset.appendChild(legend);
|
1002
|
-
legend.innerHTML = i18n["CSS Style"];
|
1003
|
-
var table = doc.createElement("table");
|
1004
|
-
fieldset.appendChild(table);
|
1005
|
-
table.style.width = "100%";
|
1006
|
-
var tbody = doc.createElement("tbody");
|
1007
|
-
table.appendChild(tbody);
|
1008
|
-
|
1009
|
-
var tr, td, input, select, option, options, i;
|
1010
|
-
|
1011
|
-
tr = doc.createElement("tr");
|
1012
|
-
tbody.appendChild(tr);
|
1013
|
-
td = doc.createElement("td");
|
1014
|
-
tr.appendChild(td);
|
1015
|
-
td.className = "label";
|
1016
|
-
td.innerHTML = i18n["Background"] + ":";
|
1017
|
-
td = doc.createElement("td");
|
1018
|
-
tr.appendChild(td);
|
1019
|
-
var df = TableOperations.createColorButton(doc, editor, el.style.backgroundColor, "backgroundColor");
|
1020
|
-
df.firstChild.nextSibling.style.marginRight = "0.5em";
|
1021
|
-
td.appendChild(df);
|
1022
|
-
td.appendChild(doc.createTextNode(i18n["Image URL"] + ": "));
|
1023
|
-
input = doc.createElement("input");
|
1024
|
-
input.type = "text";
|
1025
|
-
input.name = "f_st_backgroundImage";
|
1026
|
-
if (el.style.backgroundImage.match(/url\(\s*(.*?)\s*\)/)) {
|
1027
|
-
input.value = RegExp.$1;
|
1028
|
-
}
|
1029
|
-
// input.style.width = "100%";
|
1030
|
-
td.appendChild(input);
|
1031
|
-
|
1032
|
-
tr = doc.createElement("tr");
|
1033
|
-
tbody.appendChild(tr);
|
1034
|
-
td = doc.createElement("td");
|
1035
|
-
tr.appendChild(td);
|
1036
|
-
td.className = "label";
|
1037
|
-
td.innerHTML = i18n["FG Color"] + ":";
|
1038
|
-
td = doc.createElement("td");
|
1039
|
-
tr.appendChild(td);
|
1040
|
-
td.appendChild(TableOperations.createColorButton(doc, editor, el.style.color, "color"));
|
1041
|
-
|
1042
|
-
// for better alignment we include an invisible field.
|
1043
|
-
input = doc.createElement("input");
|
1044
|
-
input.style.visibility = "hidden";
|
1045
|
-
input.type = "text";
|
1046
|
-
td.appendChild(input);
|
1047
|
-
|
1048
|
-
tr = doc.createElement("tr");
|
1049
|
-
tbody.appendChild(tr);
|
1050
|
-
td = doc.createElement("td");
|
1051
|
-
tr.appendChild(td);
|
1052
|
-
td.className = "label";
|
1053
|
-
td.innerHTML = i18n["Border"] + ":";
|
1054
|
-
td = doc.createElement("td");
|
1055
|
-
tr.appendChild(td);
|
1056
|
-
|
1057
|
-
var colorButton = TableOperations.createColorButton(doc, editor, el.style.borderColor, "borderColor");
|
1058
|
-
var btn = colorButton.firstChild.nextSibling;
|
1059
|
-
td.appendChild(colorButton);
|
1060
|
-
// borderFields.push(btn);
|
1061
|
-
btn.style.marginRight = "0.5em";
|
1062
|
-
|
1063
|
-
select = doc.createElement("select");
|
1064
|
-
var borderFields = [];
|
1065
|
-
td.appendChild(select);
|
1066
|
-
select.name = "f_st_borderStyle";
|
1067
|
-
options = ["none", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"];
|
1068
|
-
var currentBorderStyle = el.style.borderStyle;
|
1069
|
-
// Gecko reports "solid solid solid solid" for "border-style: solid".
|
1070
|
-
// That is, "top right bottom left" -- we only consider the first
|
1071
|
-
// value.
|
1072
|
-
(currentBorderStyle.match(/([^\s]*)\s/)) && (currentBorderStyle = RegExp.$1);
|
1073
|
-
for (i in options) {
|
1074
|
-
var val = options[i];
|
1075
|
-
option = doc.createElement("option");
|
1076
|
-
option.value = val;
|
1077
|
-
option.innerHTML = val;
|
1078
|
-
(val == currentBorderStyle) && (option.selected = true);
|
1079
|
-
select.appendChild(option);
|
1080
|
-
}
|
1081
|
-
select.style.marginRight = "0.5em";
|
1082
|
-
function setBorderFieldsStatus(value) {
|
1083
|
-
for (i in borderFields) {
|
1084
|
-
var el = borderFields[i];
|
1085
|
-
el.style.visibility = value ? "hidden" : "visible";
|
1086
|
-
if (!value && (el.tagName.toLowerCase() == "input")) {
|
1087
|
-
el.focus();
|
1088
|
-
el.select();
|
1089
|
-
}
|
1090
|
-
}
|
1091
|
-
};
|
1092
|
-
select.onchange = function() { setBorderFieldsStatus(this.value == "none"); };
|
1093
|
-
|
1094
|
-
input = doc.createElement("input");
|
1095
|
-
borderFields.push(input);
|
1096
|
-
input.type = "text";
|
1097
|
-
input.name = "f_st_borderWidth";
|
1098
|
-
input.value = TableOperations.getLength(el.style.borderWidth);
|
1099
|
-
input.size = "5";
|
1100
|
-
td.appendChild(input);
|
1101
|
-
input.style.marginRight = "0.5em";
|
1102
|
-
var span = doc.createElement("span");
|
1103
|
-
span.innerHTML = i18n["pixels"];
|
1104
|
-
td.appendChild(span);
|
1105
|
-
borderFields.push(span);
|
1106
|
-
|
1107
|
-
setBorderFieldsStatus(select.value == "none");
|
1108
|
-
|
1109
|
-
if (el.tagName.toLowerCase() == "table") {
|
1110
|
-
// the border-collapse style is only for tables
|
1111
|
-
tr = doc.createElement("tr");
|
1112
|
-
tbody.appendChild(tr);
|
1113
|
-
td = doc.createElement("td");
|
1114
|
-
td.className = "label";
|
1115
|
-
tr.appendChild(td);
|
1116
|
-
input = doc.createElement("input");
|
1117
|
-
input.type = "checkbox";
|
1118
|
-
input.name = "f_st_borderCollapse";
|
1119
|
-
input.id = "f_st_borderCollapse";
|
1120
|
-
var val = (/collapse/i.test(el.style.borderCollapse));
|
1121
|
-
input.checked = val ? 1 : 0;
|
1122
|
-
td.appendChild(input);
|
1123
|
-
|
1124
|
-
td = doc.createElement("td");
|
1125
|
-
tr.appendChild(td);
|
1126
|
-
var label = doc.createElement("label");
|
1127
|
-
label.htmlFor = "f_st_borderCollapse";
|
1128
|
-
label.innerHTML = i18n["Collapsed borders"];
|
1129
|
-
td.appendChild(label);
|
1130
|
-
}
|
1131
|
-
|
1132
|
-
// tr = doc.createElement("tr");
|
1133
|
-
// tbody.appendChild(tr);
|
1134
|
-
// td = doc.createElement("td");
|
1135
|
-
// td.className = "label";
|
1136
|
-
// tr.appendChild(td);
|
1137
|
-
// td.innerHTML = i18n["Margin"] + ":";
|
1138
|
-
// td = doc.createElement("td");
|
1139
|
-
// tr.appendChild(td);
|
1140
|
-
// input = doc.createElement("input");
|
1141
|
-
// input.type = "text";
|
1142
|
-
// input.size = "5";
|
1143
|
-
// input.name = "f_st_margin";
|
1144
|
-
// td.appendChild(input);
|
1145
|
-
// input.style.marginRight = "0.5em";
|
1146
|
-
// td.appendChild(doc.createTextNode(i18n["Padding"] + ":"));
|
1147
|
-
|
1148
|
-
// input = doc.createElement("input");
|
1149
|
-
// input.type = "text";
|
1150
|
-
// input.size = "5";
|
1151
|
-
// input.name = "f_st_padding";
|
1152
|
-
// td.appendChild(input);
|
1153
|
-
// input.style.marginLeft = "0.5em";
|
1154
|
-
// input.style.marginRight = "0.5em";
|
1155
|
-
// td.appendChild(doc.createTextNode(i18n["pixels"]));
|
1156
|
-
|
1157
|
-
return fieldset;
|
1158
|
-
};
|
1159
|
-
|
1160
|
-
//// END GENERIC CODE -------------------------------------------------------
|