beef-admin_area 0.3.4 → 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/app/controllers/admin/users_controller.rb +16 -1
- data/app/views/admin/users/index.html.erb +27 -2
- data/beef-admin_area.gemspec +77 -6
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/langs/en.js +170 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +635 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/editor_plugin.js +1 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/editor_plugin_src.js +952 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/js/pastetext.js +36 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/js/pasteword.js +51 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/langs/en_dlg.js +5 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/pastetext.htm +2 -8
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/pasteword.htm +2 -8
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/template/css/template.css +23 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/template/editor_plugin.js +1 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/template/editor_plugin_src.js +159 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/template/js/template.js +106 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/template/langs/en_dlg.js +15 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/template/template.htm +2 -9
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/wordcount/editor_plugin.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/wordcount/editor_plugin_src.js +98 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/about.htm +54 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/anchor.htm +2 -7
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/charmap.htm +52 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/color_picker.htm +1 -3
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/editor_template.js +1 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/editor_template_src.js +1217 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/image.htm +80 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/js/about.js +72 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/js/anchor.js +37 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/js/charmap.js +335 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/js/color_picker.js +253 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/js/image.js +245 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/js/link.js +156 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/langs/en.js +62 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/langs/en_dlg.js +51 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/link.htm +2 -7
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/default/content.css +36 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/default/dialog.css +117 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/default/ui.css +213 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/content.css +36 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/dialog.css +116 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/ui.css +215 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/source_editor.htm +4 -10
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/tiny_mce.js +1 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/tiny_mce_popup.js +5 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/utils/editable_selects.js +70 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/utils/form_utils.js +200 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/utils/mctabs.js +77 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/utils/validate.js +220 -1
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/langs/en.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/editor_plugin.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/skins/clearlooks2/window.css +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/template.htm +387 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/paste/editor_plugin.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/paste/js/pastetext.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/paste/js/pasteword.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/paste/langs/en_dlg.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/paste/pastetext.htm +33 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/paste/pasteword.htm +27 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/{tiny_mce → tiny_mce.old}/plugins/safari/blank.htm +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/{tiny_mce → tiny_mce.old}/plugins/safari/editor_plugin.js +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/template/blank.htm +12 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/template/css/template.css +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/template/editor_plugin.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/template/js/template.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/template/langs/en_dlg.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/template/template.htm +38 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/anchor.htm +31 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/color_picker.htm +75 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/editor_template.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/img/colorpicker.jpg +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/img/icons.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/js/anchor.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/js/color_picker.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/js/link.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/js/source_editor.js +62 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/langs/en.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/langs/en_dlg.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/link.htm +63 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/content.css +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/dialog.css +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/img/buttons.png +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/img/items.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/img/menu_check.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/img/progress.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/img/tabs.gif +0 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/ui.css +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/source_editor.htm +31 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/tiny_mce.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/tiny_mce_popup.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/utils/form_utils.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/utils/mctabs.js +1 -0
- data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/utils/validate.js +1 -0
- metadata +78 -7
@@ -1 +1,36 @@
|
|
1
|
-
tinyMCEPopup.requireLangPack();
|
1
|
+
tinyMCEPopup.requireLangPack();
|
2
|
+
|
3
|
+
var PasteTextDialog = {
|
4
|
+
init : function() {
|
5
|
+
this.resize();
|
6
|
+
},
|
7
|
+
|
8
|
+
insert : function() {
|
9
|
+
var h = tinyMCEPopup.dom.encode(document.getElementById('content').value), lines;
|
10
|
+
|
11
|
+
// Convert linebreaks into paragraphs
|
12
|
+
if (document.getElementById('linebreaks').checked) {
|
13
|
+
lines = h.split(/\r?\n/);
|
14
|
+
if (lines.length > 1) {
|
15
|
+
h = '';
|
16
|
+
tinymce.each(lines, function(row) {
|
17
|
+
h += '<p>' + row + '</p>';
|
18
|
+
});
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h});
|
23
|
+
tinyMCEPopup.close();
|
24
|
+
},
|
25
|
+
|
26
|
+
resize : function() {
|
27
|
+
var vp = tinyMCEPopup.dom.getViewPort(window), el;
|
28
|
+
|
29
|
+
el = document.getElementById('content');
|
30
|
+
|
31
|
+
el.style.width = (vp.w - 20) + 'px';
|
32
|
+
el.style.height = (vp.h - 90) + 'px';
|
33
|
+
}
|
34
|
+
};
|
35
|
+
|
36
|
+
tinyMCEPopup.onInit.add(PasteTextDialog.init, PasteTextDialog);
|
@@ -1 +1,51 @@
|
|
1
|
-
tinyMCEPopup.requireLangPack();
|
1
|
+
tinyMCEPopup.requireLangPack();
|
2
|
+
|
3
|
+
var PasteWordDialog = {
|
4
|
+
init : function() {
|
5
|
+
var ed = tinyMCEPopup.editor, el = document.getElementById('iframecontainer'), ifr, doc, css, cssHTML = '';
|
6
|
+
|
7
|
+
// Create iframe
|
8
|
+
el.innerHTML = '<iframe id="iframe" src="javascript:\'\';" frameBorder="0" style="border: 1px solid gray"></iframe>';
|
9
|
+
ifr = document.getElementById('iframe');
|
10
|
+
doc = ifr.contentWindow.document;
|
11
|
+
|
12
|
+
// Force absolute CSS urls
|
13
|
+
css = [ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css")];
|
14
|
+
css = css.concat(tinymce.explode(ed.settings.content_css) || []);
|
15
|
+
tinymce.each(css, function(u) {
|
16
|
+
cssHTML += '<link href="' + ed.documentBaseURI.toAbsolute('' + u) + '" rel="stylesheet" type="text/css" />';
|
17
|
+
});
|
18
|
+
|
19
|
+
// Write content into iframe
|
20
|
+
doc.open();
|
21
|
+
doc.write('<html><head>' + cssHTML + '</head><body class="mceContentBody" spellcheck="false"></body></html>');
|
22
|
+
doc.close();
|
23
|
+
|
24
|
+
doc.designMode = 'on';
|
25
|
+
this.resize();
|
26
|
+
|
27
|
+
window.setTimeout(function() {
|
28
|
+
ifr.contentWindow.focus();
|
29
|
+
}, 10);
|
30
|
+
},
|
31
|
+
|
32
|
+
insert : function() {
|
33
|
+
var h = document.getElementById('iframe').contentWindow.document.body.innerHTML;
|
34
|
+
|
35
|
+
tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h, wordContent : true});
|
36
|
+
tinyMCEPopup.close();
|
37
|
+
},
|
38
|
+
|
39
|
+
resize : function() {
|
40
|
+
var vp = tinyMCEPopup.dom.getViewPort(window), el;
|
41
|
+
|
42
|
+
el = document.getElementById('iframe');
|
43
|
+
|
44
|
+
if (el) {
|
45
|
+
el.style.width = (vp.w - 20) + 'px';
|
46
|
+
el.style.height = (vp.h - 90) + 'px';
|
47
|
+
}
|
48
|
+
}
|
49
|
+
};
|
50
|
+
|
51
|
+
tinyMCEPopup.onInit.add(PasteWordDialog.init, PasteWordDialog);
|
@@ -1 +1,5 @@
|
|
1
|
-
tinyMCE.addI18n(
|
1
|
+
tinyMCE.addI18n('en.paste_dlg',{
|
2
|
+
text_title:"Use CTRL+V on your keyboard to paste the text into the window.",
|
3
|
+
text_linebreaks:"Keep linebreaks",
|
4
|
+
word_title:"Use CTRL+V on your keyboard to paste the text into the window."
|
5
|
+
});
|
@@ -1,7 +1,6 @@
|
|
1
1
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
2
2
|
<head>
|
3
3
|
<title>{#paste.paste_text_desc}</title>
|
4
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
5
4
|
<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
|
6
5
|
<script type="text/javascript" src="js/pastetext.js"></script>
|
7
6
|
</head>
|
@@ -20,13 +19,8 @@
|
|
20
19
|
<textarea id="content" name="content" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;" dir="ltr" wrap="soft" class="mceFocus"></textarea>
|
21
20
|
|
22
21
|
<div class="mceActionPanel">
|
23
|
-
<
|
24
|
-
|
25
|
-
</div>
|
26
|
-
|
27
|
-
<div style="float: right">
|
28
|
-
<input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
|
29
|
-
</div>
|
22
|
+
<input type="submit" name="insert" value="{#insert}" id="insert" />
|
23
|
+
<input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
|
30
24
|
</div>
|
31
25
|
</form>
|
32
26
|
</body>
|
@@ -1,6 +1,5 @@
|
|
1
1
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
2
2
|
<head>
|
3
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
4
3
|
<title>{#paste.paste_word_desc}</title>
|
5
4
|
<script type="text/javascript" src="../../tiny_mce_popup.js"></script>
|
6
5
|
<script type="text/javascript" src="js/pasteword.js"></script>
|
@@ -14,13 +13,8 @@
|
|
14
13
|
<div id="iframecontainer"></div>
|
15
14
|
|
16
15
|
<div class="mceActionPanel">
|
17
|
-
<
|
18
|
-
|
19
|
-
</div>
|
20
|
-
|
21
|
-
<div style="float: right">
|
22
|
-
<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
|
23
|
-
</div>
|
16
|
+
<input type="submit" id="insert" name="insert" value="{#insert}" />
|
17
|
+
<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
|
24
18
|
</div>
|
25
19
|
</form>
|
26
20
|
</body>
|
@@ -1 +1,23 @@
|
|
1
|
-
#frmbody
|
1
|
+
#frmbody {
|
2
|
+
padding: 10px;
|
3
|
+
background-color: #FFF;
|
4
|
+
border: 1px solid #CCC;
|
5
|
+
}
|
6
|
+
|
7
|
+
.frmRow {
|
8
|
+
margin-bottom: 10px;
|
9
|
+
}
|
10
|
+
|
11
|
+
#templatesrc {
|
12
|
+
border: none;
|
13
|
+
width: 320px;
|
14
|
+
height: 240px;
|
15
|
+
}
|
16
|
+
|
17
|
+
.title {
|
18
|
+
padding-bottom: 5px;
|
19
|
+
}
|
20
|
+
|
21
|
+
.mceActionPanel {
|
22
|
+
padding-top: 5px;
|
23
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
(function(){var
|
1
|
+
(function(){var a=tinymce.each;tinymce.create("tinymce.plugins.TemplatePlugin",{init:function(b,c){var d=this;d.editor=b;b.addCommand("mceTemplate",function(e){b.windowManager.open({file:c+"/template.htm",width:b.getParam("template_popup_width",750),height:b.getParam("template_popup_height",600),inline:1},{plugin_url:c})});b.addCommand("mceInsertTemplate",d._insertTemplate,d);b.addButton("template",{title:"template.desc",cmd:"mceTemplate"});b.onPreProcess.add(function(e,g){var f=e.dom;a(f.select("div",g.node),function(h){if(f.hasClass(h,"mceTmpl")){a(f.select("*",h),function(i){if(f.hasClass(i,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){i.innerHTML=d._getDateTime(new Date(),e.getParam("template_mdate_format",e.getLang("template.mdate_format")))}});d._replaceVals(h)}})})},getInfo:function(){return{longname:"Template plugin",author:"Moxiecode Systems AB",authorurl:"http://www.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_insertTemplate:function(i,j){var k=this,g=k.editor,f,c,d=g.dom,b=g.selection.getContent();f=j.content;a(k.editor.getParam("template_replace_values"),function(l,h){if(typeof(l)!="function"){f=f.replace(new RegExp("\\{\\$"+h+"\\}","g"),l)}});c=d.create("div",null,f);n=d.select(".mceTmpl",c);if(n&&n.length>0){c=d.create("div",null);c.appendChild(n[0].cloneNode(true))}function e(l,h){return new RegExp("\\b"+h+"\\b","g").test(l.className)}a(d.select("*",c),function(h){if(e(h,g.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_cdate_format",g.getLang("template.cdate_format")))}if(e(h,g.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_mdate_format",g.getLang("template.mdate_format")))}if(e(h,g.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))){h.innerHTML=b}});k._replaceVals(c);g.execCommand("mceInsertContent",false,c.innerHTML);g.addVisual()},_replaceVals:function(c){var d=this.editor.dom,b=this.editor.getParam("template_replace_values");a(d.select("*",c),function(f){a(b,function(g,e){if(d.hasClass(f,e)){if(typeof(b[e])=="function"){b[e](f)}}})})},_getDateTime:function(e,b){if(!b){return""}function c(g,d){var f;g=""+g;if(g.length<d){for(f=0;f<(d-g.length);f++){g="0"+g}}return g}b=b.replace("%D","%m/%d/%y");b=b.replace("%r","%I:%M:%S %p");b=b.replace("%Y",""+e.getFullYear());b=b.replace("%y",""+e.getYear());b=b.replace("%m",c(e.getMonth()+1,2));b=b.replace("%d",c(e.getDate(),2));b=b.replace("%H",""+c(e.getHours(),2));b=b.replace("%M",""+c(e.getMinutes(),2));b=b.replace("%S",""+c(e.getSeconds(),2));b=b.replace("%I",""+((e.getHours()+11)%12+1));b=b.replace("%p",""+(e.getHours()<12?"AM":"PM"));b=b.replace("%B",""+this.editor.getLang("template_months_long").split(",")[e.getMonth()]);b=b.replace("%b",""+this.editor.getLang("template_months_short").split(",")[e.getMonth()]);b=b.replace("%A",""+this.editor.getLang("template_day_long").split(",")[e.getDay()]);b=b.replace("%a",""+this.editor.getLang("template_day_short").split(",")[e.getDay()]);b=b.replace("%%","%");return b}});tinymce.PluginManager.add("template",tinymce.plugins.TemplatePlugin)})();
|
@@ -0,0 +1,159 @@
|
|
1
|
+
/**
|
2
|
+
* editor_plugin_src.js
|
3
|
+
*
|
4
|
+
* Copyright 2009, Moxiecode Systems AB
|
5
|
+
* Released under LGPL License.
|
6
|
+
*
|
7
|
+
* License: http://tinymce.moxiecode.com/license
|
8
|
+
* Contributing: http://tinymce.moxiecode.com/contributing
|
9
|
+
*/
|
10
|
+
|
11
|
+
(function() {
|
12
|
+
var each = tinymce.each;
|
13
|
+
|
14
|
+
tinymce.create('tinymce.plugins.TemplatePlugin', {
|
15
|
+
init : function(ed, url) {
|
16
|
+
var t = this;
|
17
|
+
|
18
|
+
t.editor = ed;
|
19
|
+
|
20
|
+
// Register commands
|
21
|
+
ed.addCommand('mceTemplate', function(ui) {
|
22
|
+
ed.windowManager.open({
|
23
|
+
file : url + '/template.htm',
|
24
|
+
width : ed.getParam('template_popup_width', 750),
|
25
|
+
height : ed.getParam('template_popup_height', 600),
|
26
|
+
inline : 1
|
27
|
+
}, {
|
28
|
+
plugin_url : url
|
29
|
+
});
|
30
|
+
});
|
31
|
+
|
32
|
+
ed.addCommand('mceInsertTemplate', t._insertTemplate, t);
|
33
|
+
|
34
|
+
// Register buttons
|
35
|
+
ed.addButton('template', {title : 'template.desc', cmd : 'mceTemplate'});
|
36
|
+
|
37
|
+
ed.onPreProcess.add(function(ed, o) {
|
38
|
+
var dom = ed.dom;
|
39
|
+
|
40
|
+
each(dom.select('div', o.node), function(e) {
|
41
|
+
if (dom.hasClass(e, 'mceTmpl')) {
|
42
|
+
each(dom.select('*', e), function(e) {
|
43
|
+
if (dom.hasClass(e, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))
|
44
|
+
e.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));
|
45
|
+
});
|
46
|
+
|
47
|
+
t._replaceVals(e);
|
48
|
+
}
|
49
|
+
});
|
50
|
+
});
|
51
|
+
},
|
52
|
+
|
53
|
+
getInfo : function() {
|
54
|
+
return {
|
55
|
+
longname : 'Template plugin',
|
56
|
+
author : 'Moxiecode Systems AB',
|
57
|
+
authorurl : 'http://www.moxiecode.com',
|
58
|
+
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',
|
59
|
+
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
60
|
+
};
|
61
|
+
},
|
62
|
+
|
63
|
+
_insertTemplate : function(ui, v) {
|
64
|
+
var t = this, ed = t.editor, h, el, dom = ed.dom, sel = ed.selection.getContent();
|
65
|
+
|
66
|
+
h = v.content;
|
67
|
+
|
68
|
+
each(t.editor.getParam('template_replace_values'), function(v, k) {
|
69
|
+
if (typeof(v) != 'function')
|
70
|
+
h = h.replace(new RegExp('\\{\\$' + k + '\\}', 'g'), v);
|
71
|
+
});
|
72
|
+
|
73
|
+
el = dom.create('div', null, h);
|
74
|
+
|
75
|
+
// Find template element within div
|
76
|
+
n = dom.select('.mceTmpl', el);
|
77
|
+
if (n && n.length > 0) {
|
78
|
+
el = dom.create('div', null);
|
79
|
+
el.appendChild(n[0].cloneNode(true));
|
80
|
+
}
|
81
|
+
|
82
|
+
function hasClass(n, c) {
|
83
|
+
return new RegExp('\\b' + c + '\\b', 'g').test(n.className);
|
84
|
+
};
|
85
|
+
|
86
|
+
each(dom.select('*', el), function(n) {
|
87
|
+
// Replace cdate
|
88
|
+
if (hasClass(n, ed.getParam('template_cdate_classes', 'cdate').replace(/\s+/g, '|')))
|
89
|
+
n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_cdate_format", ed.getLang("template.cdate_format")));
|
90
|
+
|
91
|
+
// Replace mdate
|
92
|
+
if (hasClass(n, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))
|
93
|
+
n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));
|
94
|
+
|
95
|
+
// Replace selection
|
96
|
+
if (hasClass(n, ed.getParam('template_selected_content_classes', 'selcontent').replace(/\s+/g, '|')))
|
97
|
+
n.innerHTML = sel;
|
98
|
+
});
|
99
|
+
|
100
|
+
t._replaceVals(el);
|
101
|
+
|
102
|
+
ed.execCommand('mceInsertContent', false, el.innerHTML);
|
103
|
+
ed.addVisual();
|
104
|
+
},
|
105
|
+
|
106
|
+
_replaceVals : function(e) {
|
107
|
+
var dom = this.editor.dom, vl = this.editor.getParam('template_replace_values');
|
108
|
+
|
109
|
+
each(dom.select('*', e), function(e) {
|
110
|
+
each(vl, function(v, k) {
|
111
|
+
if (dom.hasClass(e, k)) {
|
112
|
+
if (typeof(vl[k]) == 'function')
|
113
|
+
vl[k](e);
|
114
|
+
}
|
115
|
+
});
|
116
|
+
});
|
117
|
+
},
|
118
|
+
|
119
|
+
_getDateTime : function(d, fmt) {
|
120
|
+
if (!fmt)
|
121
|
+
return "";
|
122
|
+
|
123
|
+
function addZeros(value, len) {
|
124
|
+
var i;
|
125
|
+
|
126
|
+
value = "" + value;
|
127
|
+
|
128
|
+
if (value.length < len) {
|
129
|
+
for (i=0; i<(len-value.length); i++)
|
130
|
+
value = "0" + value;
|
131
|
+
}
|
132
|
+
|
133
|
+
return value;
|
134
|
+
}
|
135
|
+
|
136
|
+
fmt = fmt.replace("%D", "%m/%d/%y");
|
137
|
+
fmt = fmt.replace("%r", "%I:%M:%S %p");
|
138
|
+
fmt = fmt.replace("%Y", "" + d.getFullYear());
|
139
|
+
fmt = fmt.replace("%y", "" + d.getYear());
|
140
|
+
fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
|
141
|
+
fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
|
142
|
+
fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
|
143
|
+
fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
|
144
|
+
fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
|
145
|
+
fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
|
146
|
+
fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
|
147
|
+
fmt = fmt.replace("%B", "" + this.editor.getLang("template_months_long").split(',')[d.getMonth()]);
|
148
|
+
fmt = fmt.replace("%b", "" + this.editor.getLang("template_months_short").split(',')[d.getMonth()]);
|
149
|
+
fmt = fmt.replace("%A", "" + this.editor.getLang("template_day_long").split(',')[d.getDay()]);
|
150
|
+
fmt = fmt.replace("%a", "" + this.editor.getLang("template_day_short").split(',')[d.getDay()]);
|
151
|
+
fmt = fmt.replace("%%", "%");
|
152
|
+
|
153
|
+
return fmt;
|
154
|
+
}
|
155
|
+
});
|
156
|
+
|
157
|
+
// Register plugin
|
158
|
+
tinymce.PluginManager.add('template', tinymce.plugins.TemplatePlugin);
|
159
|
+
})();
|
@@ -1 +1,106 @@
|
|
1
|
-
tinyMCEPopup.requireLangPack();
|
1
|
+
tinyMCEPopup.requireLangPack();
|
2
|
+
|
3
|
+
var TemplateDialog = {
|
4
|
+
preInit : function() {
|
5
|
+
var url = tinyMCEPopup.getParam("template_external_list_url");
|
6
|
+
|
7
|
+
if (url != null)
|
8
|
+
document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></sc'+'ript>');
|
9
|
+
},
|
10
|
+
|
11
|
+
init : function() {
|
12
|
+
var ed = tinyMCEPopup.editor, tsrc, sel, x, u;
|
13
|
+
|
14
|
+
tsrc = ed.getParam("template_templates", false);
|
15
|
+
sel = document.getElementById('tpath');
|
16
|
+
|
17
|
+
// Setup external template list
|
18
|
+
if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {
|
19
|
+
for (x=0, tsrc = []; x<tinyMCETemplateList.length; x++)
|
20
|
+
tsrc.push({title : tinyMCETemplateList[x][0], src : tinyMCETemplateList[x][1], description : tinyMCETemplateList[x][2]});
|
21
|
+
}
|
22
|
+
|
23
|
+
for (x=0; x<tsrc.length; x++)
|
24
|
+
sel.options[sel.options.length] = new Option(tsrc[x].title, tinyMCEPopup.editor.documentBaseURI.toAbsolute(tsrc[x].src));
|
25
|
+
|
26
|
+
this.resize();
|
27
|
+
this.tsrc = tsrc;
|
28
|
+
},
|
29
|
+
|
30
|
+
resize : function() {
|
31
|
+
var w, h, e;
|
32
|
+
|
33
|
+
if (!self.innerWidth) {
|
34
|
+
w = document.body.clientWidth - 50;
|
35
|
+
h = document.body.clientHeight - 160;
|
36
|
+
} else {
|
37
|
+
w = self.innerWidth - 50;
|
38
|
+
h = self.innerHeight - 170;
|
39
|
+
}
|
40
|
+
|
41
|
+
e = document.getElementById('templatesrc');
|
42
|
+
|
43
|
+
if (e) {
|
44
|
+
e.style.height = Math.abs(h) + 'px';
|
45
|
+
e.style.width = Math.abs(w - 5) + 'px';
|
46
|
+
}
|
47
|
+
},
|
48
|
+
|
49
|
+
loadCSSFiles : function(d) {
|
50
|
+
var ed = tinyMCEPopup.editor;
|
51
|
+
|
52
|
+
tinymce.each(ed.getParam("content_css", '').split(','), function(u) {
|
53
|
+
d.write('<link href="' + ed.documentBaseURI.toAbsolute(u) + '" rel="stylesheet" type="text/css" />');
|
54
|
+
});
|
55
|
+
},
|
56
|
+
|
57
|
+
selectTemplate : function(u, ti) {
|
58
|
+
var d = window.frames['templatesrc'].document, x, tsrc = this.tsrc;
|
59
|
+
|
60
|
+
if (!u)
|
61
|
+
return;
|
62
|
+
|
63
|
+
d.body.innerHTML = this.templateHTML = this.getFileContents(u);
|
64
|
+
|
65
|
+
for (x=0; x<tsrc.length; x++) {
|
66
|
+
if (tsrc[x].title == ti)
|
67
|
+
document.getElementById('tmpldesc').innerHTML = tsrc[x].description || '';
|
68
|
+
}
|
69
|
+
},
|
70
|
+
|
71
|
+
insert : function() {
|
72
|
+
tinyMCEPopup.execCommand('mceInsertTemplate', false, {
|
73
|
+
content : this.templateHTML,
|
74
|
+
selection : tinyMCEPopup.editor.selection.getContent()
|
75
|
+
});
|
76
|
+
|
77
|
+
tinyMCEPopup.close();
|
78
|
+
},
|
79
|
+
|
80
|
+
getFileContents : function(u) {
|
81
|
+
var x, d, t = 'text/plain';
|
82
|
+
|
83
|
+
function g(s) {
|
84
|
+
x = 0;
|
85
|
+
|
86
|
+
try {
|
87
|
+
x = new ActiveXObject(s);
|
88
|
+
} catch (s) {
|
89
|
+
}
|
90
|
+
|
91
|
+
return x;
|
92
|
+
};
|
93
|
+
|
94
|
+
x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest();
|
95
|
+
|
96
|
+
// Synchronous AJAX load file
|
97
|
+
x.overrideMimeType && x.overrideMimeType(t);
|
98
|
+
x.open("GET", u, false);
|
99
|
+
x.send(null);
|
100
|
+
|
101
|
+
return x.responseText;
|
102
|
+
}
|
103
|
+
};
|
104
|
+
|
105
|
+
TemplateDialog.preInit();
|
106
|
+
tinyMCEPopup.onInit.add(TemplateDialog.init, TemplateDialog);
|
@@ -1 +1,15 @@
|
|
1
|
-
tinyMCE.addI18n(
|
1
|
+
tinyMCE.addI18n('en.template_dlg',{
|
2
|
+
title:"Templates",
|
3
|
+
label:"Template",
|
4
|
+
desc_label:"Description",
|
5
|
+
desc:"Insert predefined template content",
|
6
|
+
select:"Select a template",
|
7
|
+
preview:"Preview",
|
8
|
+
warning:"Warning: Updating a template with a different one may cause data loss.",
|
9
|
+
mdate_format:"%Y-%m-%d %H:%M:%S",
|
10
|
+
cdate_format:"%Y-%m-%d %H:%M:%S",
|
11
|
+
months_long:"January,February,March,April,May,June,July,August,September,October,November,December",
|
12
|
+
months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",
|
13
|
+
day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",
|
14
|
+
day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"
|
15
|
+
});
|
@@ -23,15 +23,8 @@
|
|
23
23
|
</div>
|
24
24
|
|
25
25
|
<div class="mceActionPanel">
|
26
|
-
<
|
27
|
-
|
28
|
-
</div>
|
29
|
-
|
30
|
-
<div style="float: right">
|
31
|
-
<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
|
32
|
-
</div>
|
33
|
-
|
34
|
-
<br style="clear:both" />
|
26
|
+
<input type="submit" id="insert" name="insert" value="{#insert}" />
|
27
|
+
<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
|
35
28
|
</div>
|
36
29
|
</form>
|
37
30
|
</body>
|
@@ -0,0 +1 @@
|
|
1
|
+
(function(){tinymce.create("tinymce.plugins.WordCount",{block:0,id:null,countre:null,cleanre:null,init:function(a,b){var c=this,d=0;c.countre=a.getParam("wordcount_countregex",/\S\s+/g);c.cleanre=a.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$�'"_+=\\\/-]*/g);c.id=a.id+"-word-count";a.onPostRender.add(function(f,e){var g,h;h=f.getParam("wordcount_target_id");if(!h){g=tinymce.DOM.get(f.id+"_path_row");if(g){tinymce.DOM.add(g.parentNode,"div",{style:"float: right"},f.getLang("wordcount.words","Words: ")+'<span id="'+c.id+'">0</span>')}}else{tinymce.DOM.add(h,"span",{},'<span id="'+c.id+'">0</span>')}});a.onInit.add(function(e){e.selection.onSetContent.add(function(){c._count(e)});c._count(e)});a.onSetContent.add(function(e){c._count(e)});a.onKeyUp.add(function(f,g){if(g.keyCode==d){return}if(13==g.keyCode||8==d||46==d){c._count(f)}d=g.keyCode})},_count:function(b){var c=this,a=0;if(c.block){return}c.block=1;setTimeout(function(){var d=b.getContent({format:"raw"});if(d){d=d.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," ");d=d.replace(c.cleanre,"");d.replace(c.countre,function(){a++})}tinymce.DOM.setHTML(c.id,a.toString());setTimeout(function(){c.block=0},2000)},1)},getInfo:function(){return{longname:"Word Count plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("wordcount",tinymce.plugins.WordCount)})();
|
@@ -0,0 +1,98 @@
|
|
1
|
+
/**
|
2
|
+
* editor_plugin_src.js
|
3
|
+
*
|
4
|
+
* Copyright 2009, Moxiecode Systems AB
|
5
|
+
* Released under LGPL License.
|
6
|
+
*
|
7
|
+
* License: http://tinymce.moxiecode.com/license
|
8
|
+
* Contributing: http://tinymce.moxiecode.com/contributing
|
9
|
+
*/
|
10
|
+
|
11
|
+
(function() {
|
12
|
+
tinymce.create('tinymce.plugins.WordCount', {
|
13
|
+
block : 0,
|
14
|
+
id : null,
|
15
|
+
countre : null,
|
16
|
+
cleanre : null,
|
17
|
+
|
18
|
+
init : function(ed, url) {
|
19
|
+
var t = this, last = 0;
|
20
|
+
|
21
|
+
t.countre = ed.getParam('wordcount_countregex', /\S\s+/g);
|
22
|
+
t.cleanre = ed.getParam('wordcount_cleanregex', /[0-9.(),;:!?%#$�'"_+=\\\/-]*/g);
|
23
|
+
t.id = ed.id + '-word-count';
|
24
|
+
|
25
|
+
ed.onPostRender.add(function(ed, cm) {
|
26
|
+
var row, id;
|
27
|
+
|
28
|
+
// Add it to the specified id or the theme advanced path
|
29
|
+
id = ed.getParam('wordcount_target_id');
|
30
|
+
if (!id) {
|
31
|
+
row = tinymce.DOM.get(ed.id + '_path_row');
|
32
|
+
|
33
|
+
if (row)
|
34
|
+
tinymce.DOM.add(row.parentNode, 'div', {'style': 'float: right'}, ed.getLang('wordcount.words', 'Words: ') + '<span id="' + t.id + '">0</span>');
|
35
|
+
} else
|
36
|
+
tinymce.DOM.add(id, 'span', {}, '<span id="' + t.id + '">0</span>');
|
37
|
+
});
|
38
|
+
|
39
|
+
ed.onInit.add(function(ed) {
|
40
|
+
ed.selection.onSetContent.add(function() {
|
41
|
+
t._count(ed);
|
42
|
+
});
|
43
|
+
|
44
|
+
t._count(ed);
|
45
|
+
});
|
46
|
+
|
47
|
+
ed.onSetContent.add(function(ed) {
|
48
|
+
t._count(ed);
|
49
|
+
});
|
50
|
+
|
51
|
+
ed.onKeyUp.add(function(ed, e) {
|
52
|
+
if (e.keyCode == last)
|
53
|
+
return;
|
54
|
+
|
55
|
+
if (13 == e.keyCode || 8 == last || 46 == last)
|
56
|
+
t._count(ed);
|
57
|
+
|
58
|
+
last = e.keyCode;
|
59
|
+
});
|
60
|
+
},
|
61
|
+
|
62
|
+
_count : function(ed) {
|
63
|
+
var t = this, tc = 0;
|
64
|
+
|
65
|
+
// Keep multiple calls from happening at the same time
|
66
|
+
if (t.block)
|
67
|
+
return;
|
68
|
+
|
69
|
+
t.block = 1;
|
70
|
+
|
71
|
+
setTimeout(function() {
|
72
|
+
var tx = ed.getContent({format : 'raw'});
|
73
|
+
|
74
|
+
if (tx) {
|
75
|
+
tx = tx.replace(/<.[^<>]*?>/g, ' ').replace(/ | /gi, ' '); // remove html tags and space chars
|
76
|
+
tx = tx.replace(t.cleanre, ''); // remove numbers and punctuation
|
77
|
+
tx.replace(t.countre, function() {tc++;}); // count the words
|
78
|
+
}
|
79
|
+
|
80
|
+
tinymce.DOM.setHTML(t.id, tc.toString());
|
81
|
+
|
82
|
+
setTimeout(function() {t.block = 0;}, 2000);
|
83
|
+
}, 1);
|
84
|
+
},
|
85
|
+
|
86
|
+
getInfo: function() {
|
87
|
+
return {
|
88
|
+
longname : 'Word Count plugin',
|
89
|
+
author : 'Moxiecode Systems AB',
|
90
|
+
authorurl : 'http://tinymce.moxiecode.com',
|
91
|
+
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount',
|
92
|
+
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
93
|
+
};
|
94
|
+
}
|
95
|
+
});
|
96
|
+
|
97
|
+
tinymce.PluginManager.add('wordcount', tinymce.plugins.WordCount);
|
98
|
+
})();
|