ueditor_rails 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. data/README.markdown +2 -2
  2. data/app/assets/images/ueditor_rails/dialogs/scrawl/addimg.png +0 -0
  3. data/app/assets/images/ueditor_rails/dialogs/scrawl/brush.png +0 -0
  4. data/app/assets/images/ueditor_rails/dialogs/scrawl/delimg.png +0 -0
  5. data/app/assets/images/ueditor_rails/dialogs/scrawl/delimgH.png +0 -0
  6. data/app/assets/images/ueditor_rails/dialogs/scrawl/empty.png +0 -0
  7. data/app/assets/images/ueditor_rails/dialogs/scrawl/emptyH.png +0 -0
  8. data/app/assets/images/ueditor_rails/dialogs/scrawl/eraser.png +0 -0
  9. data/app/assets/images/ueditor_rails/dialogs/scrawl/redo.png +0 -0
  10. data/app/assets/images/ueditor_rails/dialogs/scrawl/redoH.png +0 -0
  11. data/app/assets/images/ueditor_rails/dialogs/scrawl/scale.png +0 -0
  12. data/app/assets/images/ueditor_rails/dialogs/scrawl/scaleH.png +0 -0
  13. data/app/assets/images/ueditor_rails/dialogs/scrawl/size.png +0 -0
  14. data/app/assets/images/ueditor_rails/dialogs/scrawl/undo.png +0 -0
  15. data/app/assets/images/ueditor_rails/dialogs/scrawl/undoH.png +0 -0
  16. data/app/assets/javascripts/ueditor_rails/_config.js.erb +28 -24
  17. data/app/assets/javascripts/ueditor_rails/dialogs/scrawl.js +655 -0
  18. data/app/assets/javascripts/ueditor_rails/dialogs/wordimage.js +154 -0
  19. data/app/assets/stylesheets/ueditor_rails/dialogs/scrawl.css.erb +72 -0
  20. data/app/controllers/ueditor_rails/dialogs_controller.rb +8 -0
  21. data/app/controllers/ueditor_rails/libs_controller.rb +14 -1
  22. data/app/helpers/ueditor_rails/application_helper.rb +23 -0
  23. data/app/views/ueditor_rails/dialogs/attachment.html.erb +3 -3
  24. data/app/views/ueditor_rails/dialogs/image.html.erb +2 -2
  25. data/app/views/ueditor_rails/dialogs/scrawl.html.erb +96 -0
  26. data/app/views/ueditor_rails/dialogs/wordimage.html.erb +155 -0
  27. data/config/routes.rb +2 -2
  28. data/lib/generators/ueditor_rails/templates/ueditor_config.js.erb +33 -21
  29. data/lib/ueditor_rails.rb +7 -0
  30. data/lib/ueditor_rails/util.rb +1 -1
  31. data/lib/ueditor_rails/version.rb +1 -1
  32. data/test/dummy/config/application.rb +2 -0
  33. data/test/dummy/log/development.log +594 -0
  34. data/test/dummy/tmp/cache/assets/C81/610/sprockets%2F74551592340adfb31d564a6f0780986a +0 -0
  35. data/test/dummy/tmp/cache/assets/C81/680/sprockets%2F05f48503b0539542bae58cd42890287d +0 -0
  36. data/test/dummy/tmp/cache/assets/C92/A50/sprockets%2Fb8ab434fa9743f8545988223229ef813 +0 -0
  37. data/test/dummy/tmp/cache/assets/CA9/8D0/sprockets%2F430c458f24b93f37143e610b7af710d8 +0 -0
  38. data/test/dummy/tmp/cache/assets/CDD/110/sprockets%2F201786630fb75920fef0b95a7ba8e404 +0 -0
  39. data/test/dummy/tmp/cache/assets/CF8/FC0/sprockets%2Fe181c7f625e3797eaa44e044c77e9688 +0 -0
  40. data/test/dummy/tmp/cache/assets/CFC/560/sprockets%2Fbc63d027b162a565426fdbb4611619ab +0 -0
  41. data/test/dummy/tmp/cache/assets/D05/3A0/sprockets%2F8362a0d2c101ef1148d5efcb53e34893 +0 -0
  42. data/test/dummy/tmp/cache/assets/D05/570/sprockets%2Fca8368b2f01a1645dfe894d41152f2c0 +0 -0
  43. data/test/dummy/tmp/cache/assets/D16/E70/sprockets%2Ffcc7289ae3530fcff4500f35990533f4 +0 -0
  44. data/test/dummy/tmp/cache/assets/D2D/F70/sprockets%2F1db6dd5b1f0887b130386d6bc20d13e2 +0 -0
  45. data/test/dummy/tmp/cache/assets/D31/7D0/sprockets%2Fe9f71394f8e86a70e9431c3d83fb86f9 +0 -0
  46. data/test/dummy/tmp/cache/assets/D39/B00/sprockets%2F84ac6151984303fcaec0d48651b6d7ca +0 -0
  47. data/test/dummy/tmp/cache/assets/D40/280/sprockets%2Fc564b6fa3f835a246df0355a83058fcd +0 -0
  48. data/test/dummy/tmp/cache/assets/D41/C00/sprockets%2F0f88cb64779d212943bbab3f5ac483d4 +0 -0
  49. data/test/dummy/tmp/cache/assets/D4A/CF0/sprockets%2F78a5eda44e97ab212ce37b889470c4d7 +0 -0
  50. data/test/dummy/tmp/cache/assets/D4D/060/sprockets%2Fdf8071fd9e383d72ba1f17b5d5e98516 +0 -0
  51. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  52. data/test/dummy/tmp/cache/assets/D55/1F0/sprockets%2F978d1a29569eb1c8ca9883b64ffb91b3 +0 -0
  53. data/test/dummy/tmp/cache/assets/D70/B70/sprockets%2F6ebaed371aa715b95667e416378cba4d +0 -0
  54. data/test/dummy/tmp/cache/assets/D75/2B0/sprockets%2F7a4cbc3862aa0d6f1ec9e7518fa55838 +0 -0
  55. data/test/dummy/tmp/cache/assets/DCD/870/sprockets%2Fd5daf18cb49181ab0ba896acfd8c8334 +0 -0
  56. data/test/dummy/tmp/cache/assets/DD7/600/sprockets%2F0cec2cc545e1d3bd889d195f68dea4b7 +0 -0
  57. data/test/dummy/tmp/cache/assets/DDB/C20/sprockets%2F46613f4acf7d7cc09f5190f2d8bbdf9f +0 -0
  58. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  59. data/test/dummy/tmp/cache/assets/DFE/FF0/sprockets%2F9d2bcad3ae0c53ee9a4685b5aac1887f +0 -0
  60. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  61. data/test/dummy/tmp/cache/assets/E34/9F0/sprockets%2F2dbdbaffe3f466f85cee37cee4331f34 +0 -0
  62. data/test/dummy/tmp/cache/assets/E3A/DA0/sprockets%2Ffd736ded1575dfbcf2d45ad5eb4e28d9 +0 -0
  63. data/vendor/assets/javascripts/ueditor/dialogs/anchor/anchor.html.erb +57 -0
  64. data/vendor/assets/javascripts/ueditor/dialogs/background/background.css +24 -0
  65. data/vendor/assets/javascripts/ueditor/dialogs/background/background.html.erb +55 -0
  66. data/vendor/assets/javascripts/ueditor/dialogs/background/background.js +348 -0
  67. data/vendor/assets/javascripts/ueditor/dialogs/emotion/emotion.css.erb +0 -1
  68. data/vendor/assets/javascripts/ueditor/dialogs/emotion/emotion.html.erb +41 -41
  69. data/vendor/assets/javascripts/ueditor/dialogs/gmap/gmap.html.erb +89 -0
  70. data/vendor/assets/javascripts/ueditor/dialogs/help/help.html.erb +72 -70
  71. data/vendor/assets/javascripts/ueditor/dialogs/highlightcode/highlightcode.html.erb +131 -0
  72. data/vendor/assets/javascripts/ueditor/dialogs/insertframe/insertframe.html.erb +98 -0
  73. data/vendor/assets/javascripts/ueditor/dialogs/link/link.html.erb +122 -107
  74. data/vendor/assets/javascripts/ueditor/dialogs/map/map.html.erb +105 -0
  75. data/vendor/assets/javascripts/ueditor/dialogs/music/music.css +30 -0
  76. data/vendor/assets/javascripts/ueditor/dialogs/music/music.html.erb +32 -0
  77. data/vendor/assets/javascripts/ueditor/dialogs/music/music.js +192 -0
  78. data/vendor/assets/javascripts/ueditor/dialogs/searchreplace/searchreplace.html.erb +74 -0
  79. data/vendor/assets/javascripts/ueditor/dialogs/searchreplace/searchreplace.js +160 -0
  80. data/vendor/assets/javascripts/ueditor/dialogs/snapscreen/snapscreen.html.erb +91 -0
  81. data/vendor/assets/javascripts/ueditor/dialogs/spechars/spechars.html.erb +2 -2
  82. data/vendor/assets/javascripts/ueditor/dialogs/table/edittable.html.erb +46 -45
  83. data/vendor/assets/javascripts/ueditor/dialogs/table/edittd.html.erb +40 -39
  84. data/vendor/assets/javascripts/ueditor/dialogs/table/edittip.html.erb +21 -21
  85. data/vendor/assets/javascripts/ueditor/dialogs/template/config.js +42 -0
  86. data/vendor/assets/javascripts/ueditor/dialogs/template/images/bg.gif +0 -0
  87. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre0.png +0 -0
  88. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre1.png +0 -0
  89. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre2.png +0 -0
  90. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre3.png +0 -0
  91. data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre4.png +0 -0
  92. data/vendor/assets/javascripts/ueditor/dialogs/template/template.css +18 -0
  93. data/vendor/assets/javascripts/ueditor/dialogs/template/template.html.erb +26 -0
  94. data/vendor/assets/javascripts/ueditor/dialogs/template/template.js +53 -0
  95. data/vendor/assets/javascripts/ueditor/dialogs/video/video.html.erb +64 -53
  96. data/vendor/assets/javascripts/ueditor/dialogs/video/video.js.erb +409 -0
  97. data/vendor/assets/javascripts/ueditor/dialogs/webapp/webapp.html.erb +64 -0
  98. data/vendor/assets/javascripts/ueditor/editor_all.js.erb +17209 -15783
  99. data/vendor/assets/javascripts/ueditor/third-party/SyntaxHighlighter/shCore.js +3655 -0
  100. data/vendor/assets/javascripts/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css +316 -0
  101. data/vendor/assets/javascripts/ueditor/third-party/fClipboard_ueditor.swf +0 -0
  102. data/vendor/assets/javascripts/ueditor/third-party/snapscreen/UEditorSnapscreen.exe +0 -0
  103. data/vendor/assets/javascripts/ueditor/uparse.js +3 -13
  104. metadata +77 -3
  105. data/vendor/assets/javascripts/ueditor/dialogs/video/video.js +0 -402
@@ -0,0 +1,98 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
5
+ <title></title>
6
+ <style type="text/css">
7
+ .warp {width: 320px;height: 153px;margin-left:5px;padding: 20px 0 0 15px;position: relative;}
8
+ #url {width: 290px; margin-bottom: 2px; margin-left: -6px; margin-left: -2px\9;*margin-left:0;_margin-left:0; }
9
+ .format span{display: inline-block; width: 58px;text-align: center; zoom:1;}
10
+ table td{padding:5px 0;}
11
+ #align{width: 65px;height: 23px;line-height: 22px;}
12
+ </style>
13
+ </head>
14
+ <body>
15
+ <div class="warp">
16
+ <table width="300" cellpadding="0" cellspacing="0">
17
+ <tr>
18
+ <td colspan="2" class="format">
19
+ <span><var id="lang_input_address"></var></span>
20
+ <input style="width:200px" id="url" type="text" value=""/>
21
+ </td>
22
+ </tr>
23
+ <tr>
24
+ <td colspan="2" class="format"><span><var id="lang_input_width"></var></span><input style="width:200px" type="text" id="width"/> px</td>
25
+
26
+ </tr>
27
+ <tr>
28
+ <td colspan="2" class="format"><span><var id="lang_input_height"></var></span><input style="width:200px" type="text" id="height"/> px</td>
29
+ </tr>
30
+ <tr>
31
+ <td><span><var id="lang_input_isScroll"></var></span><input type="checkbox" id="scroll"/> </td>
32
+ <td><span><var id="lang_input_frameborder"></var></span><input type="checkbox" id="frameborder"/> </td>
33
+ </tr>
34
+
35
+ <tr>
36
+ <td colspan="2"><span><var id="lang_input_alignMode"></var></span>
37
+ <select id="align">
38
+ <option value=""></option>
39
+ <option value="left"></option>
40
+ <option value="right"></option>
41
+ </select>
42
+ </td>
43
+ </tr>
44
+ </table>
45
+ </div>
46
+ <%= javascript_include_tag 'ueditor/dialogs/internal.js' %>
47
+ <script type="text/javascript">
48
+ var iframe = editor._iframe;
49
+ if(iframe){
50
+ $G("url").value = iframe.getAttribute("src")||"";
51
+ $G("width").value = iframe.getAttribute("width")||iframe.style.width.replace("px","")||"";
52
+ $G("height").value = iframe.getAttribute("height") || iframe.style.height.replace("px","") ||"";
53
+ $G("scroll").checked = (iframe.getAttribute("scrolling") == "yes") ? true : false;
54
+ $G("frameborder").checked = (iframe.getAttribute("frameborder") == "1") ? true : false;
55
+ $G("align").value = iframe.align ? iframe.align : "";
56
+ }
57
+ function queding(){
58
+ var url = $G("url").value.replace(/^\s*|\s*$/ig,""),
59
+ width = $G("width").value,
60
+ height = $G("height").value,
61
+ scroll = $G("scroll"),
62
+ frameborder = $G("frameborder"),
63
+ float = $G("align").value,
64
+ newIframe = editor.document.createElement("iframe"),
65
+ div;
66
+ if(!url){
67
+ alert(lang.enterAddress);
68
+ return false;
69
+ }
70
+ newIframe.setAttribute("src",/http:\/\/|https:\/\//ig.test(url) ? url : "http://"+url);
71
+ /^[1-9]+[.]?\d*$/g.test( width ) ? newIframe.setAttribute("width",width) : "";
72
+ /^[1-9]+[.]?\d*$/g.test( height ) ? newIframe.setAttribute("height",height) : "";
73
+ scroll.checked ? newIframe.setAttribute("scrolling","yes") : newIframe.setAttribute("scrolling","no");
74
+ frameborder.checked ? newIframe.setAttribute("frameborder","1",0) : newIframe.setAttribute("frameborder","0",0);
75
+ float ? newIframe.setAttribute("align",float) : newIframe.setAttribute("align","");
76
+ if(iframe){
77
+ iframe.parentNode.insertBefore(newIframe,iframe);
78
+ domUtils.remove(iframe);
79
+ }else{
80
+ div = editor.document.createElement("div");
81
+ div.appendChild(newIframe);
82
+ editor.execCommand("inserthtml",div.innerHTML);
83
+ }
84
+ editor._iframe = null;
85
+ dialog.close();
86
+ }
87
+ dialog.onok = queding;
88
+ $G("url").onkeydown = function(evt){
89
+ evt = evt || event;
90
+ if(evt.keyCode == 13){
91
+ queding();
92
+ }
93
+ };
94
+ $focus($G( "url" ));
95
+
96
+ </script>
97
+ </body>
98
+ </html>
@@ -2,123 +2,138 @@
2
2
  "http://www.w3.org/TR/html4/loose.dtd">
3
3
  <html>
4
4
  <head>
5
- <title></title>
6
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
7
- <script type="text/javascript" src="<%= asset_path 'ueditor/dialogs/internal.js' %>"></script>
8
- <style type="text/css">
9
- *{margin:0;padding:0;color: #838383;}
10
- table{font-size: 12px;margin: 10px;line-height: 30px}
11
- .txt{width:300px;height:21px;line-height:21px;border:1px solid #d7d7d7;}
12
- </style>
5
+ <title></title>
6
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
7
+ <style type="text/css">
8
+ * {
9
+ margin: 0;
10
+ padding: 0;
11
+ color: #838383;
12
+ }
13
+
14
+ table {
15
+ font-size: 12px;
16
+ margin: 10px;
17
+ line-height: 30px
18
+ }
19
+
20
+ .txt {
21
+ width: 300px;
22
+ height: 21px;
23
+ line-height: 21px;
24
+ border: 1px solid #d7d7d7;
25
+ }
26
+ </style>
13
27
  </head>
14
28
  <body>
15
- <table>
16
- <tr>
17
- <td><label for="text"> <var id="lang_input_text"></var></label></td>
18
- <td><input class="txt" id="text" type="text" disabled="true"/></td>
19
- </tr>
20
- <tr>
21
- <td><label for="href"> <var id="lang_input_url"></var></label></td>
22
- <td><input class="txt" id="href" type="text" /></td>
23
- </tr>
24
- <tr>
25
- <td><label for="title"> <var id="lang_input_title"></var></label></td>
26
- <td><input class="txt" id="title" type="text"/></td>
27
- </tr>
28
- <tr>
29
- <td colspan="2">
30
- <label for="target"><var id="lang_input_target"></var></label>
31
- <input id="target" type="checkbox"/>
32
- </td>
33
- </tr>
34
- <tr>
35
- <td colspan="2" id="msg"></td>
36
- </tr>
37
- </table>
29
+ <table>
30
+ <tr>
31
+ <td><label for="text"> <var id="lang_input_text"></var></label></td>
32
+ <td><input class="txt" id="text" type="text" disabled="true"/></td>
33
+ </tr>
34
+ <tr>
35
+ <td><label for="href"> <var id="lang_input_url"></var></label></td>
36
+ <td><input class="txt" id="href" type="text"/></td>
37
+ </tr>
38
+ <tr>
39
+ <td><label for="title"> <var id="lang_input_title"></var></label></td>
40
+ <td><input class="txt" id="title" type="text"/></td>
41
+ </tr>
42
+ <tr>
43
+ <td colspan="2">
44
+ <label for="target"><var id="lang_input_target"></var></label>
45
+ <input id="target" type="checkbox"/>
46
+ </td>
47
+ </tr>
48
+ <tr>
49
+ <td colspan="2" id="msg"></td>
50
+ </tr>
51
+ </table>
52
+ <%= javascript_include_tag 'ueditor/dialogs/internal.js' %>
38
53
  <script type="text/javascript">
39
- var range = editor.selection.getRange(),
40
- link = range.collapsed ? editor.queryCommandValue( "link" ) : editor.selection.getStart(),
41
- url,
42
- text = $G('text'),
43
- rangeLink = domUtils.findParentByTagName(range.getCommonAncestor(),'a',true),
44
- orgText;
45
- link = domUtils.findParentByTagName( link, "a", true );
46
- if(link){
47
- url = utils.html(link.getAttribute( 'data_ue_src' ) || link.getAttribute( 'href', 2 ));
54
+ var range = editor.selection.getRange(),
55
+ link = range.collapsed ? editor.queryCommandValue("link") : editor.selection.getStart(),
56
+ url,
57
+ text = $G('text'),
58
+ rangeLink = domUtils.findParentByTagName(range.getCommonAncestor(), 'a', true),
59
+ orgText;
60
+ link = domUtils.findParentByTagName(link, "a", true);
61
+ if (link) {
62
+ url = utils.html(link.getAttribute('data_ue_src') || link.getAttribute('href', 2));
48
63
 
49
- if(rangeLink === link && !link.getElementsByTagName('img').length){
50
- text.removeAttribute('disabled');
51
- orgText = text.value = link[browser.ie ? 'innerText':'textContent'];
52
- }else{
53
- text.setAttribute('disabled','true');
54
- text.value = lang.validLink;
55
- }
56
-
57
- }else{
58
- if(range.collapsed){
59
- text.removeAttribute('disabled');
60
- text.value = '';
61
- }else{
62
- text.setAttribute('disabled','true');
63
- text.value = lang.validLink;
64
- }
64
+ if (rangeLink === link && !link.getElementsByTagName('img').length) {
65
+ text.removeAttribute('disabled');
66
+ orgText = text.value = link[browser.ie ? 'innerText' : 'textContent'];
67
+ } else {
68
+ text.setAttribute('disabled', 'true');
69
+ text.value = lang.validLink;
70
+ }
65
71
 
72
+ } else {
73
+ if (range.collapsed) {
74
+ text.removeAttribute('disabled');
75
+ text.value = '';
76
+ } else {
77
+ text.setAttribute('disabled', 'true');
78
+ text.value = lang.validLink;
66
79
  }
67
- $G("title").value = url ? link.title : "";
68
- $G("href").value = url ? url: '';
69
- $G("target").checked = url && link.target == "_blank" ? true : false;
70
- $focus($G("href"));
71
80
 
72
- function handleDialogOk(){
73
- var href =$G('href').value.replace(/^\s+|\s+$/g, '');
74
- if(href){
75
- if(!hrefStartWith(href,["http","/","ftp://"])) {
76
- href = "http://" + href;
77
- }
78
- var obj = {
79
- 'href' : href,
80
- 'target' : $G("target").checked ? "_blank" : '_self',
81
- 'title' : $G("title").value.replace(/^\s+|\s+$/g, ''),
82
- 'data_ue_src':href
83
- };
84
- //修改链接内容的情况太特殊了,所以先做到这里了
85
- //todo:情况多的时候,做到command里
86
- if(orgText && text.value != orgText){
87
- link[browser.ie ? 'innerText' : 'textContent'] = obj.textValue = text.value;
88
- range.selectNode(link).select()
89
- }
90
- if(range.collapsed){
91
- obj.textValue = text.value;
92
- }
93
- editor.execCommand('link',obj );
94
- dialog.close();
95
- }
81
+ }
82
+ $G("title").value = url ? link.title : "";
83
+ $G("href").value = url ? url : '';
84
+ $G("target").checked = url && link.target == "_blank" ? true : false;
85
+ $focus($G("href"));
86
+
87
+ function handleDialogOk() {
88
+ var href = $G('href').value.replace(/^\s+|\s+$/g, '');
89
+ if (href) {
90
+ if (!hrefStartWith(href, ["http", "/", "ftp://"])) {
91
+ href = "http://" + href;
92
+ }
93
+ var obj = {
94
+ 'href': href,
95
+ 'target': $G("target").checked ? "_blank" : '_self',
96
+ 'title': $G("title").value.replace(/^\s+|\s+$/g, ''),
97
+ 'data_ue_src': href
98
+ };
99
+ //修改链接内容的情况太特殊了,所以先做到这里了
100
+ //todo:情况多的时候,做到command里
101
+ if (orgText && text.value != orgText) {
102
+ link[browser.ie ? 'innerText' : 'textContent'] = obj.textValue = text.value;
103
+ range.selectNode(link).select()
104
+ }
105
+ if (range.collapsed) {
106
+ obj.textValue = text.value;
107
+ }
108
+ editor.execCommand('link', obj);
109
+ dialog.close();
110
+ }
111
+ }
112
+ dialog.onok = handleDialogOk;
113
+ $G('href').onkeydown = $G('title').onkeydown = function (evt) {
114
+ evt = evt || window.event;
115
+ if (evt.keyCode == 13) {
116
+ handleDialogOk();
117
+ return false;
118
+ }
119
+ };
120
+ $G('href').onblur = function () {
121
+ if (!hrefStartWith(this.value, ["http", "/", "ftp://"])) {
122
+ $G("msg").innerHTML = "<span style='color: red'>" + lang.httpPrompt + "</span>";
123
+ } else {
124
+ $G("msg").innerHTML = "";
96
125
  }
97
- dialog.onok = handleDialogOk;
98
- $G('href').onkeydown = $G('title').onkeydown = function(evt){
99
- evt = evt || window.event;
100
- if (evt.keyCode == 13) {
101
- handleDialogOk();
102
- return false;
103
- }
104
- };
105
- $G('href').onblur = function(){
106
- if(!hrefStartWith(this.value,["http","/","ftp://"])){
107
- $G("msg").innerHTML = "<span style='color: red'>"+lang.httpPrompt+"</span>";
108
- }else{
109
- $G("msg").innerHTML = "";
110
- }
111
- };
126
+ };
112
127
 
113
- function hrefStartWith(href,arr){
114
- href = href.replace(/^\s+|\s+$/g, '');
115
- for(var i=0,ai;ai=arr[i++];){
116
- if(href.indexOf(ai)==0){
117
- return true;
118
- }
119
- }
120
- return false;
128
+ function hrefStartWith(href, arr) {
129
+ href = href.replace(/^\s+|\s+$/g, '');
130
+ for (var i = 0, ai; ai = arr[i++];) {
131
+ if (href.indexOf(ai) == 0) {
132
+ return true;
133
+ }
121
134
  }
135
+ return false;
136
+ }
122
137
 
123
138
 
124
139
  </script>
@@ -0,0 +1,105 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+ <title></title>
6
+ <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.1&services=true"></script>
7
+ <style type="text/css">
8
+ .content{width:530px; height: 350px;margin: 10px auto;}
9
+ .content table{width: 100%}
10
+ .content table td{vertical-align: middle;}
11
+ #city,#address{height:21px;background: #FFF;border:1px solid #d7d7d7; line-height: 21px;}
12
+ #city{width:90px}
13
+ #address{width:220px}
14
+ </style>
15
+ </head>
16
+ <body>
17
+ <div class="content">
18
+ <table>
19
+ <tr>
20
+ <td><var id="lang_city"></var>:</td>
21
+ <td><input id="city" type="text" /></td>
22
+ <td><var id="lang_address"></var>:</td>
23
+ <td><input id="address" type="text" value="" /></td>
24
+ <td><a href="javascript:doSearch()" class="button"><var id="lang_search"></var></a></td>
25
+ </tr>
26
+ </table>
27
+ <div style="width:100%;height:340px;margin:5px auto;border:1px solid gray" id="container"></div>
28
+
29
+ </div>
30
+ <%= javascript_include_tag 'ueditor/dialogs/internal.js' %>
31
+ <script type="text/javascript">
32
+ var map = new BMap.Map("container"),marker,point,imgcss;
33
+ map.enableScrollWheelZoom();
34
+ map.enableContinuousZoom();
35
+ function doSearch(){
36
+ if (!document.getElementById('city').value) {
37
+ alert(lang.cityMsg);
38
+ return;
39
+ }
40
+ var search = new BMap.LocalSearch(document.getElementById('city').value, {
41
+ onSearchComplete: function (results){
42
+ if (results && results.getNumPois()) {
43
+ var points = [];
44
+ for (var i=0; i<results.getCurrentNumPois(); i++) {
45
+ points.push(results.getPoi(i).point);
46
+ }
47
+ if (points.length > 1) {
48
+ map.setViewport(points);
49
+ } else {
50
+ map.centerAndZoom(points[0], 13);
51
+ }
52
+ point = map.getCenter();
53
+ marker.setPoint(point);
54
+ } else {
55
+ alert(lang.errorMsg);
56
+ }
57
+ }
58
+ });
59
+ search.search(document.getElementById('address').value || document.getElementById('city').value);
60
+ }
61
+ //获得参数
62
+ function getPars(str,par){
63
+ var reg = new RegExp(par+"=((\\d+|[.,])*)","g");
64
+ return reg.exec(str)[1];
65
+ }
66
+ function init(){
67
+ var img = editor.selection.getRange().getClosedNode();
68
+ if(img && /api[.]map[.]baidu[.]com/ig.test(img.getAttribute("src"))){
69
+ var url = img.getAttribute("src"),centers;
70
+ centers = getPars(url,"center").split(",");
71
+ point = new BMap.Point(Number(centers[0]),Number(centers[1]));
72
+ map.addControl(new BMap.NavigationControl());
73
+ map.centerAndZoom(point, Number(getPars(url,"zoom")));
74
+ imgcss = img.style.cssText;
75
+ }else{
76
+ point = new BMap.Point(116.404, 39.915); // 创建点坐标
77
+ map.addControl(new BMap.NavigationControl());
78
+ map.centerAndZoom(point, 10); // 初始化地图,设置中心点坐标和地图级别。
79
+ }
80
+ marker = new BMap.Marker(point);
81
+ marker.enableDragging();
82
+ map.addOverlay(marker);
83
+ }
84
+ init();
85
+ document.getElementById('address').onkeydown = function (evt){
86
+ evt = evt || event;
87
+ if (evt.keyCode == 13) {
88
+ doSearch();
89
+ }
90
+ };
91
+ dialog.onok = function (){
92
+ var center = map.getCenter();
93
+ var zoom = map.zoomLevel;
94
+ var size = map.getSize();
95
+ var point = marker.getPoint();
96
+ var url = "http://api.map.baidu.com/staticimage?center=" + center.lng + ',' + center.lat +
97
+ "&zoom=" + zoom + "&width=" + size.width + '&height=' + size.height + "&markers=" + point.lng + ',' + point.lat;
98
+ editor.execCommand('inserthtml', '<img width="'+ size.width +'"height="'+ size.height +'" src="' + url + '"' + (imgcss ? ' style="' + imgcss + '"' :'') + '/>');
99
+ };
100
+ document.getElementById("address").focus();
101
+ </script>
102
+
103
+
104
+ </body>
105
+ </html>
@@ -0,0 +1,30 @@
1
+ .wrapper{margin: 5px 10px;}
2
+
3
+ .searchBar{height:30px;padding:7px 0 3px;text-align:center;}
4
+ .searchBtn{font-size:13px;height:24px;}
5
+
6
+ .resultBar{width:460px;margin:5px auto;border: 1px solid #CCC;border-radius: 5px;box-shadow: 2px 2px 5px #D3D6DA;overflow: hidden;}
7
+
8
+ .listPanel{overflow: hidden;}
9
+ .panelon{display:block;}
10
+ .paneloff{display:none}
11
+
12
+ .page{width:220px;margin:20px auto;overflow: hidden;}
13
+ .pageon{float:right;width:24px;line-height:24px;height:24px;margin-right: 5px;background: none;border: none;color: #000;font-weight: bold;text-align:center}
14
+ .pageoff{float:right;width:24px;line-height:24px;height:24px;cursor:pointer;background-color: #fff;
15
+ border: 1px solid #E7ECF0;color: #2D64B3;margin-right: 5px;text-decoration: none;text-align:center;}
16
+
17
+ .m-box{width:460px;}
18
+ .m-m{float: left;line-height: 20px;height: 20px;}
19
+ .m-h{height:24px;line-height:24px;padding-left: 46px;background-color:#FAFAFA;border-bottom: 1px solid #DAD8D8;font-weight: bold;font-size: 12px;color: #333;}
20
+ .m-l{float:left;width:40px; }
21
+ .m-t{float:left;width:140px;}
22
+ .m-s{float:left;width:110px;}
23
+ .m-z{float:left;width:100px;}
24
+ .m-try-t{float: left;width: 60px;;}
25
+
26
+ .m-try{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/try_music.gif') no-repeat ;}
27
+ .m-trying{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/stop_music.gif') no-repeat ;}
28
+
29
+ .loading{width:95px;height:7px;font-size:7px;margin:60px auto;background:url(http://static.tieba.baidu.com/tb/editor/images/loading.gif) no-repeat}
30
+ .empty{width:300px;height:40px;padding:2px;margin:50px auto;line-height:40px; color:#006699;text-align:center;}