rails_kindeditor 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +1 -1
- data/README.rdoc +77 -2
- data/config/routes.rb +2 -3
- data/lib/generators/rails_kindeditor/install/install_generator.rb +6 -2
- data/lib/generators/rails_kindeditor/install/templates/kindeditor/kindeditor-init.js +0 -1
- data/lib/rails_kindeditor/version.rb +1 -1
- data/vendor/assets/javascripts/kindeditor.js +158 -0
- data/vendor/assets/javascripts/lang/en.js +208 -0
- data/vendor/assets/javascripts/lang/zh_CN.js +210 -0
- data/vendor/assets/javascripts/lang/zh_TW.js +210 -0
- data/vendor/assets/javascripts/plugins/clearhtml/clearhtml.js +28 -0
- data/vendor/assets/javascripts/plugins/code/code.js +57 -0
- data/vendor/assets/javascripts/plugins/code/prettify.css +13 -0
- data/vendor/assets/javascripts/plugins/code/prettify.js +28 -0
- data/vendor/assets/javascripts/plugins/emoticons/emoticons.js +129 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/0.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/1.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/10.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/100.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/101.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/102.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/103.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/104.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/105.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/106.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/107.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/108.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/109.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/11.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/110.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/111.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/112.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/113.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/114.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/115.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/116.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/117.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/118.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/119.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/12.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/120.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/121.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/122.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/123.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/124.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/125.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/126.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/127.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/128.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/129.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/13.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/130.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/131.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/132.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/133.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/134.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/14.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/15.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/16.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/17.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/18.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/19.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/2.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/20.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/21.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/22.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/23.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/24.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/25.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/26.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/27.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/28.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/29.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/3.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/30.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/31.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/32.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/33.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/34.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/35.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/36.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/37.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/38.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/39.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/4.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/40.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/41.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/42.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/43.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/44.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/45.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/46.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/47.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/48.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/49.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/5.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/50.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/51.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/52.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/53.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/54.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/55.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/56.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/57.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/58.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/59.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/6.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/60.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/61.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/62.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/63.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/64.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/65.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/66.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/67.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/68.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/69.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/7.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/70.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/71.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/72.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/73.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/74.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/75.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/76.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/77.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/78.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/79.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/8.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/80.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/81.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/82.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/83.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/84.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/85.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/86.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/87.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/88.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/89.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/9.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/90.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/91.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/92.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/93.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/94.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/95.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/96.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/97.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/98.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/99.gif +0 -0
- data/vendor/assets/javascripts/plugins/emoticons/images/static.gif +0 -0
- data/vendor/assets/javascripts/plugins/filemanager/filemanager.js +189 -0
- data/vendor/assets/javascripts/plugins/filemanager/images/file-16.gif +0 -0
- data/vendor/assets/javascripts/plugins/filemanager/images/file-64.gif +0 -0
- data/vendor/assets/javascripts/plugins/filemanager/images/folder-16.gif +0 -0
- data/vendor/assets/javascripts/plugins/filemanager/images/folder-64.gif +0 -0
- data/vendor/assets/javascripts/plugins/filemanager/images/go-up.gif +0 -0
- data/vendor/assets/javascripts/plugins/flash/flash.js +128 -0
- data/vendor/assets/javascripts/plugins/image/image.js +226 -0
- data/vendor/assets/javascripts/plugins/image/images/align_left.gif +0 -0
- data/vendor/assets/javascripts/plugins/image/images/align_right.gif +0 -0
- data/vendor/assets/javascripts/plugins/image/images/align_top.gif +0 -0
- data/vendor/assets/javascripts/plugins/image/images/refresh.gif +0 -0
- data/vendor/assets/javascripts/plugins/insertfile/insertfile.js +104 -0
- data/vendor/assets/javascripts/plugins/lineheight/lineheight.js +38 -0
- data/vendor/assets/javascripts/plugins/link/link.js +59 -0
- data/vendor/assets/javascripts/plugins/map/map.html +57 -0
- data/vendor/assets/javascripts/plugins/map/map.js +135 -0
- data/vendor/assets/javascripts/plugins/media/media.js +136 -0
- data/vendor/assets/javascripts/plugins/pagebreak/pagebreak.js +26 -0
- data/vendor/assets/javascripts/plugins/plainpaste/plainpaste.js +41 -0
- data/vendor/assets/javascripts/plugins/preview/preview.js +31 -0
- data/vendor/assets/javascripts/plugins/quickformat/quickformat.js +71 -0
- data/vendor/assets/javascripts/plugins/table/table.js +661 -0
- data/vendor/assets/javascripts/plugins/template/html/1.html +14 -0
- data/vendor/assets/javascripts/plugins/template/html/2.html +42 -0
- data/vendor/assets/javascripts/plugins/template/html/3.html +36 -0
- data/vendor/assets/javascripts/plugins/template/template.js +58 -0
- data/vendor/assets/javascripts/plugins/wordpaste/wordpaste.js +57 -0
- data/vendor/assets/stylesheets/bg.gif +0 -0
- data/vendor/assets/stylesheets/default.gif +0 -0
- data/vendor/assets/stylesheets/kindeditor.css +942 -0
- data/vendor/assets/stylesheets/themes/common/blank.gif +0 -0
- data/vendor/assets/stylesheets/themes/common/flash.gif +0 -0
- data/vendor/assets/stylesheets/themes/common/loading.gif +0 -0
- data/vendor/assets/stylesheets/themes/common/media.gif +0 -0
- data/vendor/assets/stylesheets/themes/common/rm.gif +0 -0
- data/vendor/assets/stylesheets/themes/simple/simple.css +148 -0
- metadata +186 -4
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,104 @@
|
|
1
|
+
/*******************************************************************************
|
2
|
+
* KindEditor - WYSIWYG HTML Editor for Internet
|
3
|
+
* Copyright (C) 2006-2011 kindsoft.net
|
4
|
+
*
|
5
|
+
* @author Roddy <luolonghao@gmail.com>
|
6
|
+
* @site http://www.kindsoft.net/
|
7
|
+
* @licence http://www.kindsoft.net/license.php
|
8
|
+
*******************************************************************************/
|
9
|
+
|
10
|
+
KindEditor.plugin('insertfile', function(K) {
|
11
|
+
var self = this, name = 'insertfile',
|
12
|
+
allowFileManager = K.undef(self.allowFileManager, false),
|
13
|
+
uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'),
|
14
|
+
lang = self.lang(name + '.');
|
15
|
+
self.clickToolbar(name, function() {
|
16
|
+
var html = [
|
17
|
+
'<div style="padding:10px 20px;">',
|
18
|
+
'<div class="ke-dialog-row">',
|
19
|
+
'<label for="keUrl" style="width:60px;">' + lang.url + '</label>',
|
20
|
+
'<input type="text" id="keUrl" name="url" class="ke-input-text" style="width:160px;" /> ',
|
21
|
+
'<input type="button" class="ke-upload-button" value="' + lang.upload + '" /> ',
|
22
|
+
'<span class="ke-button-common ke-button-outer">',
|
23
|
+
'<input type="button" class="ke-button-common ke-button" name="viewServer" value="' + lang.viewServer + '" />',
|
24
|
+
'</span>',
|
25
|
+
'</div>',
|
26
|
+
//title
|
27
|
+
'<div class="ke-dialog-row">',
|
28
|
+
'<label for="keTitle" style="width:60px;">' + lang.title + '</label>',
|
29
|
+
'<input type="text" id="keTitle" class="ke-input-text" name="title" value="" style="width:160px;" /></div>',
|
30
|
+
'</div>',
|
31
|
+
//form end
|
32
|
+
'</form>',
|
33
|
+
'</div>'
|
34
|
+
].join('');
|
35
|
+
var dialog = self.createDialog({
|
36
|
+
name : name,
|
37
|
+
width : 450,
|
38
|
+
height : 180,
|
39
|
+
title : self.lang(name),
|
40
|
+
body : html,
|
41
|
+
yesBtn : {
|
42
|
+
name : self.lang('yes'),
|
43
|
+
click : function(e) {
|
44
|
+
var url = urlBox.val(),
|
45
|
+
title = titleBox.val();
|
46
|
+
if (K.trim(title) === '') {
|
47
|
+
title = url;
|
48
|
+
}
|
49
|
+
var html = '<a href="' + url + '" data-ke-src="' + url + '" target="_blank">' + title + '</a>';
|
50
|
+
self.insertHtml(html);
|
51
|
+
uploadbutton.remove();
|
52
|
+
self.hideDialog().focus();
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}),
|
56
|
+
div = dialog.div;
|
57
|
+
|
58
|
+
var urlBox = K('[name="url"]', div),
|
59
|
+
viewServerBtn = K('[name="viewServer"]', div),
|
60
|
+
titleBox = K('[name="title"]', div);
|
61
|
+
|
62
|
+
var uploadbutton = K.uploadbutton({
|
63
|
+
button : K('.ke-upload-button', div)[0],
|
64
|
+
fieldName : 'imgFile',
|
65
|
+
url : uploadJson + '?dir=file',
|
66
|
+
afterUpload : function(data) {
|
67
|
+
if (data.error === 0) {
|
68
|
+
var url = K.formatUrl(data.url, 'absolute');
|
69
|
+
urlBox.val(url);
|
70
|
+
if (self.afterUpload) {
|
71
|
+
self.afterUpload.call(self, url);
|
72
|
+
}
|
73
|
+
alert(self.lang('uploadSuccess'));
|
74
|
+
} else {
|
75
|
+
alert(data.message);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
});
|
79
|
+
uploadbutton.fileBox.change(function(e) {
|
80
|
+
uploadbutton.submit();
|
81
|
+
});
|
82
|
+
if (allowFileManager) {
|
83
|
+
viewServerBtn.click(function(e) {
|
84
|
+
self.loadPlugin('filemanager', function() {
|
85
|
+
self.plugin.filemanagerDialog({
|
86
|
+
viewType : 'LIST',
|
87
|
+
dirName : 'file',
|
88
|
+
clickFn : function(url, title) {
|
89
|
+
if (self.dialogs.length > 1) {
|
90
|
+
K('[name="url"]', div).val(url);
|
91
|
+
self.hideDialog();
|
92
|
+
}
|
93
|
+
}
|
94
|
+
});
|
95
|
+
});
|
96
|
+
});
|
97
|
+
} else {
|
98
|
+
viewServerBtn.hide();
|
99
|
+
}
|
100
|
+
urlBox.val('http://');
|
101
|
+
urlBox[0].focus();
|
102
|
+
urlBox[0].select();
|
103
|
+
});
|
104
|
+
});
|
@@ -0,0 +1,38 @@
|
|
1
|
+
/*******************************************************************************
|
2
|
+
* KindEditor - WYSIWYG HTML Editor for Internet
|
3
|
+
* Copyright (C) 2006-2011 kindsoft.net
|
4
|
+
*
|
5
|
+
* @author Roddy <luolonghao@gmail.com>
|
6
|
+
* @site http://www.kindsoft.net/
|
7
|
+
* @licence http://www.kindsoft.net/license.php
|
8
|
+
*******************************************************************************/
|
9
|
+
|
10
|
+
KindEditor.plugin('lineheight', function(K) {
|
11
|
+
var self = this, name = 'lineheight', lang = self.lang(name + '.');
|
12
|
+
self.clickToolbar(name, function() {
|
13
|
+
var curVal = '', commonNode = self.cmd.commonNode({'*' : '.line-height'});
|
14
|
+
if (commonNode) {
|
15
|
+
curVal = commonNode.css('line-height');
|
16
|
+
}
|
17
|
+
var menu = self.createMenu({
|
18
|
+
name : name,
|
19
|
+
width : 150
|
20
|
+
});
|
21
|
+
K.each(lang.lineHeight, function(i, row) {
|
22
|
+
K.each(row, function(key, val) {
|
23
|
+
menu.addItem({
|
24
|
+
title : val,
|
25
|
+
checked : curVal === key,
|
26
|
+
click : function() {
|
27
|
+
self.cmd.toggle('<span style="line-height:' + key + ';"></span>', {
|
28
|
+
span : '.line-height=' + key
|
29
|
+
});
|
30
|
+
self.updateState();
|
31
|
+
self.addBookmark();
|
32
|
+
self.hideMenu();
|
33
|
+
}
|
34
|
+
});
|
35
|
+
});
|
36
|
+
});
|
37
|
+
});
|
38
|
+
});
|
@@ -0,0 +1,59 @@
|
|
1
|
+
/*******************************************************************************
|
2
|
+
* KindEditor - WYSIWYG HTML Editor for Internet
|
3
|
+
* Copyright (C) 2006-2011 kindsoft.net
|
4
|
+
*
|
5
|
+
* @author Roddy <luolonghao@gmail.com>
|
6
|
+
* @site http://www.kindsoft.net/
|
7
|
+
* @licence http://www.kindsoft.net/license.php
|
8
|
+
*******************************************************************************/
|
9
|
+
|
10
|
+
KindEditor.plugin('link', function(K) {
|
11
|
+
var self = this, name = 'link';
|
12
|
+
self.plugin.link = {
|
13
|
+
edit : function() {
|
14
|
+
var lang = self.lang(name + '.'),
|
15
|
+
html = '<div style="padding:10px 20px;">' +
|
16
|
+
//url
|
17
|
+
'<div class="ke-dialog-row">' +
|
18
|
+
'<label for="keUrl">' + lang.url + '</label>' +
|
19
|
+
'<input class="ke-input-text" type="text" id="keUrl" name="url" value="" style="width:90%;" /></div>' +
|
20
|
+
//type
|
21
|
+
'<div class="ke-dialog-row"">' +
|
22
|
+
'<label for="keType">' + lang.linkType + '</label>' +
|
23
|
+
'<select id="keType" name="type"></select>' +
|
24
|
+
'</div>' +
|
25
|
+
'</div>',
|
26
|
+
dialog = self.createDialog({
|
27
|
+
name : name,
|
28
|
+
width : 400,
|
29
|
+
title : self.lang(name),
|
30
|
+
body : html,
|
31
|
+
yesBtn : {
|
32
|
+
name : self.lang('yes'),
|
33
|
+
click : function(e) {
|
34
|
+
self.exec('createlink', urlBox.val(), typeBox.val()).hideDialog().focus();
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}),
|
38
|
+
div = dialog.div,
|
39
|
+
urlBox = K('input[name="url"]', div),
|
40
|
+
typeBox = K('select[name="type"]', div);
|
41
|
+
urlBox.val('http://');
|
42
|
+
typeBox[0].options[0] = new Option(lang.newWindow, '_blank');
|
43
|
+
typeBox[0].options[1] = new Option(lang.selfWindow, '');
|
44
|
+
var a = self.plugin.getSelectedLink();
|
45
|
+
if (a) {
|
46
|
+
self.cmd.range.selectNode(a[0]);
|
47
|
+
self.cmd.select();
|
48
|
+
urlBox.val(a.attr('data-ke-src'));
|
49
|
+
typeBox.val(a.attr('target'));
|
50
|
+
}
|
51
|
+
urlBox[0].focus();
|
52
|
+
urlBox[0].select();
|
53
|
+
},
|
54
|
+
'delete' : function() {
|
55
|
+
self.exec('unlink', null);
|
56
|
+
}
|
57
|
+
};
|
58
|
+
self.clickToolbar(name, self.plugin.link.edit);
|
59
|
+
});
|
@@ -0,0 +1,57 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
|
5
|
+
<style>
|
6
|
+
html { height: 100% }
|
7
|
+
body { height: 100%; margin: 0; padding: 0; background-color: #FFF }
|
8
|
+
#map_canvas { height: 100% }
|
9
|
+
</style>
|
10
|
+
<script src="http://maps.googleapis.com/maps/api/js?sensor=false&language=zh_CN"></script>
|
11
|
+
<script>
|
12
|
+
var map, geocoder;
|
13
|
+
function initialize() {
|
14
|
+
var latlng = new google.maps.LatLng(31.230393, 121.473704);
|
15
|
+
var options = {
|
16
|
+
zoom: 11,
|
17
|
+
center: latlng,
|
18
|
+
disableDefaultUI: true,
|
19
|
+
panControl: true,
|
20
|
+
zoomControl: true,
|
21
|
+
mapTypeControl: true,
|
22
|
+
scaleControl: true,
|
23
|
+
streetViewControl: false,
|
24
|
+
overviewMapControl: true,
|
25
|
+
mapTypeId: google.maps.MapTypeId.ROADMAP
|
26
|
+
};
|
27
|
+
map = new google.maps.Map(document.getElementById("map_canvas"), options);
|
28
|
+
geocoder = new google.maps.Geocoder();
|
29
|
+
geocoder.geocode({latLng: latlng}, function(results, status) {
|
30
|
+
if (status == google.maps.GeocoderStatus.OK) {
|
31
|
+
if (results[3]) {
|
32
|
+
parent.document.getElementById("kindeditor_plugin_map_address").value = results[3].formatted_address;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
});
|
36
|
+
}
|
37
|
+
function search(address) {
|
38
|
+
if (!map) return;
|
39
|
+
geocoder.geocode({address : address}, function(results, status) {
|
40
|
+
if (status == google.maps.GeocoderStatus.OK) {
|
41
|
+
map.setZoom(11);
|
42
|
+
map.setCenter(results[0].geometry.location);
|
43
|
+
var marker = new google.maps.Marker({
|
44
|
+
map: map,
|
45
|
+
position: results[0].geometry.location
|
46
|
+
});
|
47
|
+
} else {
|
48
|
+
alert("Invalid address: " + address);
|
49
|
+
}
|
50
|
+
});
|
51
|
+
}
|
52
|
+
</script>
|
53
|
+
</head>
|
54
|
+
<body onload="initialize();">
|
55
|
+
<div id="map_canvas" style="width:100%; height:100%"></div>
|
56
|
+
</body>
|
57
|
+
</html>
|
@@ -0,0 +1,135 @@
|
|
1
|
+
/*******************************************************************************
|
2
|
+
* KindEditor - WYSIWYG HTML Editor for Internet
|
3
|
+
* Copyright (C) 2006-2011 kindsoft.net
|
4
|
+
*
|
5
|
+
* @author Roddy <luolonghao@gmail.com>
|
6
|
+
* @site http://www.kindsoft.net/
|
7
|
+
* @licence http://www.kindsoft.net/license.php
|
8
|
+
*******************************************************************************/
|
9
|
+
|
10
|
+
// Google Maps: http://code.google.com/apis/maps/index.html
|
11
|
+
|
12
|
+
KindEditor.plugin('map', function(K) {
|
13
|
+
var self = this, name = 'map', lang = self.lang(name + '.');
|
14
|
+
self.clickToolbar(name, function() {
|
15
|
+
var html = ['<div style="padding:10px 20px;">',
|
16
|
+
'<div class="ke-dialog-row">',
|
17
|
+
lang.address + ' <input id="kindeditor_plugin_map_address" name="address" class="ke-input-text" value="" style="width:200px;" /> ',
|
18
|
+
'<span class="ke-button-common ke-button-outer">',
|
19
|
+
'<input type="button" name="searchBtn" class="ke-button-common ke-button" value="' + lang.search + '" />',
|
20
|
+
'</span>',
|
21
|
+
'</div>',
|
22
|
+
'<div class="ke-map" style="width:558px;height:360px;"></div>',
|
23
|
+
'</div>'].join('');
|
24
|
+
var dialog = self.createDialog({
|
25
|
+
name : name,
|
26
|
+
width : 600,
|
27
|
+
title : self.lang(name),
|
28
|
+
body : html,
|
29
|
+
yesBtn : {
|
30
|
+
name : self.lang('yes'),
|
31
|
+
click : function(e) {
|
32
|
+
var geocoder = win.geocoder,
|
33
|
+
map = win.map,
|
34
|
+
center = map.getCenter().lat() + ',' + map.getCenter().lng(),
|
35
|
+
zoom = map.getZoom(),
|
36
|
+
maptype = map.getMapTypeId(),
|
37
|
+
url = 'http://maps.googleapis.com/maps/api/staticmap';
|
38
|
+
url += '?center=' + encodeURIComponent(center);
|
39
|
+
url += '&zoom=' + encodeURIComponent(zoom);
|
40
|
+
url += '&size=558x360';
|
41
|
+
url += '&maptype=' + encodeURIComponent(maptype);
|
42
|
+
url += '&markers=' + encodeURIComponent(center);
|
43
|
+
url += '&language=' + self.langType;
|
44
|
+
url += '&sensor=false';
|
45
|
+
self.exec('insertimage', url).hideDialog().focus();
|
46
|
+
}
|
47
|
+
},
|
48
|
+
beforeRemove : function() {
|
49
|
+
searchBtn.remove();
|
50
|
+
doc.write('');
|
51
|
+
iframe.remove();
|
52
|
+
}
|
53
|
+
});
|
54
|
+
var div = dialog.div,
|
55
|
+
addressBox = K('[name="address"]', div),
|
56
|
+
searchBtn = K('[name="searchBtn"]', div),
|
57
|
+
win, doc;
|
58
|
+
var iframeHtml = ['<!doctype html><html><head>',
|
59
|
+
'<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />',
|
60
|
+
'<style>',
|
61
|
+
' html { height: 100% }',
|
62
|
+
' body { height: 100%; margin: 0; padding: 0; background-color: #FFF }',
|
63
|
+
' #map_canvas { height: 100% }',
|
64
|
+
'</style>',
|
65
|
+
'<script src="http://maps.googleapis.com/maps/api/js?sensor=false&language=' + self.langType + '"></script>',
|
66
|
+
'<script>',
|
67
|
+
'var map, geocoder;',
|
68
|
+
'function initialize() {',
|
69
|
+
' var latlng = new google.maps.LatLng(31.230393, 121.473704);',
|
70
|
+
' var options = {',
|
71
|
+
' zoom: 11,',
|
72
|
+
' center: latlng,',
|
73
|
+
' disableDefaultUI: true,',
|
74
|
+
' panControl: true,',
|
75
|
+
' zoomControl: true,',
|
76
|
+
' mapTypeControl: true,',
|
77
|
+
' scaleControl: true,',
|
78
|
+
' streetViewControl: false,',
|
79
|
+
' overviewMapControl: true,',
|
80
|
+
' mapTypeId: google.maps.MapTypeId.ROADMAP',
|
81
|
+
' };',
|
82
|
+
' map = new google.maps.Map(document.getElementById("map_canvas"), options);',
|
83
|
+
' geocoder = new google.maps.Geocoder();',
|
84
|
+
' geocoder.geocode({latLng: latlng}, function(results, status) {',
|
85
|
+
' if (status == google.maps.GeocoderStatus.OK) {',
|
86
|
+
' if (results[3]) {',
|
87
|
+
' parent.document.getElementById("kindeditor_plugin_map_address").value = results[3].formatted_address;',
|
88
|
+
' }',
|
89
|
+
' }',
|
90
|
+
' });',
|
91
|
+
'}',
|
92
|
+
'function search(address) {',
|
93
|
+
' if (!map) return;',
|
94
|
+
' geocoder.geocode({address : address}, function(results, status) {',
|
95
|
+
' if (status == google.maps.GeocoderStatus.OK) {',
|
96
|
+
' map.setZoom(11);',
|
97
|
+
' map.setCenter(results[0].geometry.location);',
|
98
|
+
' var marker = new google.maps.Marker({',
|
99
|
+
' map: map,',
|
100
|
+
' position: results[0].geometry.location',
|
101
|
+
' });',
|
102
|
+
' } else {',
|
103
|
+
' alert("Invalid address: " + address);',
|
104
|
+
' }',
|
105
|
+
' });',
|
106
|
+
'}',
|
107
|
+
'</script>',
|
108
|
+
'</head>',
|
109
|
+
'<body onload="initialize();">',
|
110
|
+
'<div id="map_canvas" style="width:100%; height:100%"></div>',
|
111
|
+
'</body></html>'].join('\n');
|
112
|
+
// TODO:用doc.write(iframeHtml)方式加载时,在IE6上第一次加载报错,暂时使用src方式
|
113
|
+
var iframe = K('<iframe class="ke-textarea" frameborder="0" src="' + self.pluginsPath + 'map/map.html" style="width:558px;height:360px;"></iframe>');
|
114
|
+
function ready() {
|
115
|
+
win = iframe[0].contentWindow;
|
116
|
+
doc = K.iframeDoc(iframe);
|
117
|
+
//doc.open();
|
118
|
+
//doc.write(iframeHtml);
|
119
|
+
//doc.close();
|
120
|
+
}
|
121
|
+
iframe.bind('load', function() {
|
122
|
+
iframe.unbind('load');
|
123
|
+
if (K.IE) {
|
124
|
+
ready();
|
125
|
+
} else {
|
126
|
+
setTimeout(ready, 0);
|
127
|
+
}
|
128
|
+
});
|
129
|
+
K('.ke-map', div).replaceWith(iframe);
|
130
|
+
// search map
|
131
|
+
searchBtn.click(function() {
|
132
|
+
win.search(addressBox.val());
|
133
|
+
});
|
134
|
+
});
|
135
|
+
});
|
@@ -0,0 +1,136 @@
|
|
1
|
+
/*******************************************************************************
|
2
|
+
* KindEditor - WYSIWYG HTML Editor for Internet
|
3
|
+
* Copyright (C) 2006-2011 kindsoft.net
|
4
|
+
*
|
5
|
+
* @author Roddy <luolonghao@gmail.com>
|
6
|
+
* @site http://www.kindsoft.net/
|
7
|
+
* @licence http://www.kindsoft.net/license.php
|
8
|
+
*******************************************************************************/
|
9
|
+
|
10
|
+
KindEditor.plugin('media', function(K) {
|
11
|
+
var self = this, name = 'media', lang = self.lang(name + '.'),
|
12
|
+
allowMediaUpload = K.undef(self.allowMediaUpload, true),
|
13
|
+
allowFileManager = K.undef(self.allowFileManager, false),
|
14
|
+
uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php');
|
15
|
+
self.plugin.media = {
|
16
|
+
edit : function() {
|
17
|
+
var html = [
|
18
|
+
'<div style="padding:10px 20px;">',
|
19
|
+
//url
|
20
|
+
'<div class="ke-dialog-row">',
|
21
|
+
'<label for="keUrl" style="width:60px;">' + lang.url + '</label>',
|
22
|
+
'<input class="ke-input-text" type="text" id="keUrl" name="url" value="" style="width:160px;" /> ',
|
23
|
+
'<input type="button" class="ke-upload-button" value="' + lang.upload + '" /> ',
|
24
|
+
'<span class="ke-button-common ke-button-outer">',
|
25
|
+
'<input type="button" class="ke-button-common ke-button" name="viewServer" value="' + lang.viewServer + '" />',
|
26
|
+
'</span>',
|
27
|
+
'</div>',
|
28
|
+
//width
|
29
|
+
'<div class="ke-dialog-row">',
|
30
|
+
'<label for="keWidth" style="width:60px;">' + lang.width + '</label>',
|
31
|
+
'<input type="text" id="keWidth" class="ke-input-text ke-input-number" name="width" value="550" maxlength="4" />',
|
32
|
+
'</div>',
|
33
|
+
//height
|
34
|
+
'<div class="ke-dialog-row">',
|
35
|
+
'<label for="keHeight" style="width:60px;">' + lang.height + '</label>',
|
36
|
+
'<input type="text" id="keHeight" class="ke-input-text ke-input-number" name="height" value="400" maxlength="4" />',
|
37
|
+
'</div>',
|
38
|
+
//autostart
|
39
|
+
'<div class="ke-dialog-row">',
|
40
|
+
'<label for="keAutostart">' + lang.autostart + '</label>',
|
41
|
+
'<input type="checkbox" id="keAutostart" name="autostart" value="" /> ',
|
42
|
+
'</div>',
|
43
|
+
'</div>'
|
44
|
+
].join('');
|
45
|
+
var dialog = self.createDialog({
|
46
|
+
name : name,
|
47
|
+
width : 450,
|
48
|
+
height : 230,
|
49
|
+
title : self.lang(name),
|
50
|
+
body : html,
|
51
|
+
yesBtn : {
|
52
|
+
name : self.lang('yes'),
|
53
|
+
click : function(e) {
|
54
|
+
var url = urlBox.val(),
|
55
|
+
html = K.mediaImg(self.themesPath + 'common/blank.gif', {
|
56
|
+
src : url,
|
57
|
+
type : K.mediaType(url),
|
58
|
+
width : widthBox.val(),
|
59
|
+
height : heightBox.val(),
|
60
|
+
autostart : autostartBox[0].checked ? 'true' : 'false',
|
61
|
+
loop : 'true'
|
62
|
+
});
|
63
|
+
self.insertHtml(html).hideDialog().focus();
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}),
|
67
|
+
div = dialog.div,
|
68
|
+
urlBox = K('[name="url"]', div),
|
69
|
+
viewServerBtn = K('[name="viewServer"]', div),
|
70
|
+
widthBox = K('[name="width"]', div),
|
71
|
+
heightBox = K('[name="height"]', div),
|
72
|
+
autostartBox = K('[name="autostart"]', div);
|
73
|
+
urlBox.val('http://');
|
74
|
+
|
75
|
+
if (allowMediaUpload) {
|
76
|
+
var uploadbutton = K.uploadbutton({
|
77
|
+
button : K('.ke-upload-button', div)[0],
|
78
|
+
fieldName : 'imgFile',
|
79
|
+
url : uploadJson + '?dir=media',
|
80
|
+
afterUpload : function(data) {
|
81
|
+
if (data.error === 0) {
|
82
|
+
var url = K.formatUrl(data.url, 'absolute');
|
83
|
+
urlBox.val(url);
|
84
|
+
if (self.afterUpload) {
|
85
|
+
self.afterUpload.call(self, url);
|
86
|
+
}
|
87
|
+
alert(self.lang('uploadSuccess'));
|
88
|
+
} else {
|
89
|
+
alert(data.message);
|
90
|
+
}
|
91
|
+
}
|
92
|
+
});
|
93
|
+
uploadbutton.fileBox.change(function(e) {
|
94
|
+
uploadbutton.submit();
|
95
|
+
});
|
96
|
+
} else {
|
97
|
+
K('.ke-upload-button', div).hide();
|
98
|
+
urlBox.width(250);
|
99
|
+
}
|
100
|
+
|
101
|
+
if (allowFileManager) {
|
102
|
+
viewServerBtn.click(function(e) {
|
103
|
+
self.loadPlugin('filemanager', function() {
|
104
|
+
self.plugin.filemanagerDialog({
|
105
|
+
viewType : 'LIST',
|
106
|
+
dirName : 'media',
|
107
|
+
clickFn : function(url, title) {
|
108
|
+
if (self.dialogs.length > 1) {
|
109
|
+
K('[name="url"]', div).val(url);
|
110
|
+
self.hideDialog();
|
111
|
+
}
|
112
|
+
}
|
113
|
+
});
|
114
|
+
});
|
115
|
+
});
|
116
|
+
} else {
|
117
|
+
viewServerBtn.hide();
|
118
|
+
}
|
119
|
+
|
120
|
+
var img = self.plugin.getSelectedMedia();
|
121
|
+
if (img) {
|
122
|
+
var attrs = K.mediaAttrs(img.attr('data-ke-tag'));
|
123
|
+
urlBox.val(attrs.src);
|
124
|
+
widthBox.val(K.removeUnit(img.css('width')) || attrs.width || 0);
|
125
|
+
heightBox.val(K.removeUnit(img.css('height')) || attrs.height || 0);
|
126
|
+
autostartBox[0].checked = (attrs.autostart === 'true');
|
127
|
+
}
|
128
|
+
urlBox[0].focus();
|
129
|
+
urlBox[0].select();
|
130
|
+
},
|
131
|
+
'delete' : function() {
|
132
|
+
self.plugin.getSelectedMedia().remove();
|
133
|
+
}
|
134
|
+
};
|
135
|
+
self.clickToolbar(name, self.plugin.media.edit);
|
136
|
+
});
|