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.
- data/README.markdown +2 -2
- data/app/assets/images/ueditor_rails/dialogs/scrawl/addimg.png +0 -0
- data/app/assets/images/ueditor_rails/dialogs/scrawl/brush.png +0 -0
- data/app/assets/images/ueditor_rails/dialogs/scrawl/delimg.png +0 -0
- data/app/assets/images/ueditor_rails/dialogs/scrawl/delimgH.png +0 -0
- data/app/assets/images/ueditor_rails/dialogs/scrawl/empty.png +0 -0
- data/app/assets/images/ueditor_rails/dialogs/scrawl/emptyH.png +0 -0
- data/app/assets/images/ueditor_rails/dialogs/scrawl/eraser.png +0 -0
- data/app/assets/images/ueditor_rails/dialogs/scrawl/redo.png +0 -0
- data/app/assets/images/ueditor_rails/dialogs/scrawl/redoH.png +0 -0
- data/app/assets/images/ueditor_rails/dialogs/scrawl/scale.png +0 -0
- data/app/assets/images/ueditor_rails/dialogs/scrawl/scaleH.png +0 -0
- data/app/assets/images/ueditor_rails/dialogs/scrawl/size.png +0 -0
- data/app/assets/images/ueditor_rails/dialogs/scrawl/undo.png +0 -0
- data/app/assets/images/ueditor_rails/dialogs/scrawl/undoH.png +0 -0
- data/app/assets/javascripts/ueditor_rails/_config.js.erb +28 -24
- data/app/assets/javascripts/ueditor_rails/dialogs/scrawl.js +655 -0
- data/app/assets/javascripts/ueditor_rails/dialogs/wordimage.js +154 -0
- data/app/assets/stylesheets/ueditor_rails/dialogs/scrawl.css.erb +72 -0
- data/app/controllers/ueditor_rails/dialogs_controller.rb +8 -0
- data/app/controllers/ueditor_rails/libs_controller.rb +14 -1
- data/app/helpers/ueditor_rails/application_helper.rb +23 -0
- data/app/views/ueditor_rails/dialogs/attachment.html.erb +3 -3
- data/app/views/ueditor_rails/dialogs/image.html.erb +2 -2
- data/app/views/ueditor_rails/dialogs/scrawl.html.erb +96 -0
- data/app/views/ueditor_rails/dialogs/wordimage.html.erb +155 -0
- data/config/routes.rb +2 -2
- data/lib/generators/ueditor_rails/templates/ueditor_config.js.erb +33 -21
- data/lib/ueditor_rails.rb +7 -0
- data/lib/ueditor_rails/util.rb +1 -1
- data/lib/ueditor_rails/version.rb +1 -1
- data/test/dummy/config/application.rb +2 -0
- data/test/dummy/log/development.log +594 -0
- data/test/dummy/tmp/cache/assets/C81/610/sprockets%2F74551592340adfb31d564a6f0780986a +0 -0
- data/test/dummy/tmp/cache/assets/C81/680/sprockets%2F05f48503b0539542bae58cd42890287d +0 -0
- data/test/dummy/tmp/cache/assets/C92/A50/sprockets%2Fb8ab434fa9743f8545988223229ef813 +0 -0
- data/test/dummy/tmp/cache/assets/CA9/8D0/sprockets%2F430c458f24b93f37143e610b7af710d8 +0 -0
- data/test/dummy/tmp/cache/assets/CDD/110/sprockets%2F201786630fb75920fef0b95a7ba8e404 +0 -0
- data/test/dummy/tmp/cache/assets/CF8/FC0/sprockets%2Fe181c7f625e3797eaa44e044c77e9688 +0 -0
- data/test/dummy/tmp/cache/assets/CFC/560/sprockets%2Fbc63d027b162a565426fdbb4611619ab +0 -0
- data/test/dummy/tmp/cache/assets/D05/3A0/sprockets%2F8362a0d2c101ef1148d5efcb53e34893 +0 -0
- data/test/dummy/tmp/cache/assets/D05/570/sprockets%2Fca8368b2f01a1645dfe894d41152f2c0 +0 -0
- data/test/dummy/tmp/cache/assets/D16/E70/sprockets%2Ffcc7289ae3530fcff4500f35990533f4 +0 -0
- data/test/dummy/tmp/cache/assets/D2D/F70/sprockets%2F1db6dd5b1f0887b130386d6bc20d13e2 +0 -0
- data/test/dummy/tmp/cache/assets/D31/7D0/sprockets%2Fe9f71394f8e86a70e9431c3d83fb86f9 +0 -0
- data/test/dummy/tmp/cache/assets/D39/B00/sprockets%2F84ac6151984303fcaec0d48651b6d7ca +0 -0
- data/test/dummy/tmp/cache/assets/D40/280/sprockets%2Fc564b6fa3f835a246df0355a83058fcd +0 -0
- data/test/dummy/tmp/cache/assets/D41/C00/sprockets%2F0f88cb64779d212943bbab3f5ac483d4 +0 -0
- data/test/dummy/tmp/cache/assets/D4A/CF0/sprockets%2F78a5eda44e97ab212ce37b889470c4d7 +0 -0
- data/test/dummy/tmp/cache/assets/D4D/060/sprockets%2Fdf8071fd9e383d72ba1f17b5d5e98516 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D55/1F0/sprockets%2F978d1a29569eb1c8ca9883b64ffb91b3 +0 -0
- data/test/dummy/tmp/cache/assets/D70/B70/sprockets%2F6ebaed371aa715b95667e416378cba4d +0 -0
- data/test/dummy/tmp/cache/assets/D75/2B0/sprockets%2F7a4cbc3862aa0d6f1ec9e7518fa55838 +0 -0
- data/test/dummy/tmp/cache/assets/DCD/870/sprockets%2Fd5daf18cb49181ab0ba896acfd8c8334 +0 -0
- data/test/dummy/tmp/cache/assets/DD7/600/sprockets%2F0cec2cc545e1d3bd889d195f68dea4b7 +0 -0
- data/test/dummy/tmp/cache/assets/DDB/C20/sprockets%2F46613f4acf7d7cc09f5190f2d8bbdf9f +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/DFE/FF0/sprockets%2F9d2bcad3ae0c53ee9a4685b5aac1887f +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E34/9F0/sprockets%2F2dbdbaffe3f466f85cee37cee4331f34 +0 -0
- data/test/dummy/tmp/cache/assets/E3A/DA0/sprockets%2Ffd736ded1575dfbcf2d45ad5eb4e28d9 +0 -0
- data/vendor/assets/javascripts/ueditor/dialogs/anchor/anchor.html.erb +57 -0
- data/vendor/assets/javascripts/ueditor/dialogs/background/background.css +24 -0
- data/vendor/assets/javascripts/ueditor/dialogs/background/background.html.erb +55 -0
- data/vendor/assets/javascripts/ueditor/dialogs/background/background.js +348 -0
- data/vendor/assets/javascripts/ueditor/dialogs/emotion/emotion.css.erb +0 -1
- data/vendor/assets/javascripts/ueditor/dialogs/emotion/emotion.html.erb +41 -41
- data/vendor/assets/javascripts/ueditor/dialogs/gmap/gmap.html.erb +89 -0
- data/vendor/assets/javascripts/ueditor/dialogs/help/help.html.erb +72 -70
- data/vendor/assets/javascripts/ueditor/dialogs/highlightcode/highlightcode.html.erb +131 -0
- data/vendor/assets/javascripts/ueditor/dialogs/insertframe/insertframe.html.erb +98 -0
- data/vendor/assets/javascripts/ueditor/dialogs/link/link.html.erb +122 -107
- data/vendor/assets/javascripts/ueditor/dialogs/map/map.html.erb +105 -0
- data/vendor/assets/javascripts/ueditor/dialogs/music/music.css +30 -0
- data/vendor/assets/javascripts/ueditor/dialogs/music/music.html.erb +32 -0
- data/vendor/assets/javascripts/ueditor/dialogs/music/music.js +192 -0
- data/vendor/assets/javascripts/ueditor/dialogs/searchreplace/searchreplace.html.erb +74 -0
- data/vendor/assets/javascripts/ueditor/dialogs/searchreplace/searchreplace.js +160 -0
- data/vendor/assets/javascripts/ueditor/dialogs/snapscreen/snapscreen.html.erb +91 -0
- data/vendor/assets/javascripts/ueditor/dialogs/spechars/spechars.html.erb +2 -2
- data/vendor/assets/javascripts/ueditor/dialogs/table/edittable.html.erb +46 -45
- data/vendor/assets/javascripts/ueditor/dialogs/table/edittd.html.erb +40 -39
- data/vendor/assets/javascripts/ueditor/dialogs/table/edittip.html.erb +21 -21
- data/vendor/assets/javascripts/ueditor/dialogs/template/config.js +42 -0
- data/vendor/assets/javascripts/ueditor/dialogs/template/images/bg.gif +0 -0
- data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre0.png +0 -0
- data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre1.png +0 -0
- data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre2.png +0 -0
- data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre3.png +0 -0
- data/vendor/assets/javascripts/ueditor/dialogs/template/images/pre4.png +0 -0
- data/vendor/assets/javascripts/ueditor/dialogs/template/template.css +18 -0
- data/vendor/assets/javascripts/ueditor/dialogs/template/template.html.erb +26 -0
- data/vendor/assets/javascripts/ueditor/dialogs/template/template.js +53 -0
- data/vendor/assets/javascripts/ueditor/dialogs/video/video.html.erb +64 -53
- data/vendor/assets/javascripts/ueditor/dialogs/video/video.js.erb +409 -0
- data/vendor/assets/javascripts/ueditor/dialogs/webapp/webapp.html.erb +64 -0
- data/vendor/assets/javascripts/ueditor/editor_all.js.erb +17209 -15783
- data/vendor/assets/javascripts/ueditor/third-party/SyntaxHighlighter/shCore.js +3655 -0
- data/vendor/assets/javascripts/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css +316 -0
- data/vendor/assets/javascripts/ueditor/third-party/fClipboard_ueditor.swf +0 -0
- data/vendor/assets/javascripts/ueditor/third-party/snapscreen/UEditorSnapscreen.exe +0 -0
- data/vendor/assets/javascripts/ueditor/uparse.js +3 -13
- metadata +77 -3
- 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
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
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
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
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
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
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
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
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
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
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
|
-
|
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
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
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;}
|