Patch #43259 » 0001-Convert-jstoolbar-to-ES-Module.patch
| app/assets/javascripts/jstoolbar/common_mark.js | ||
|---|---|---|
| 1 |
/** |
|
| 2 |
* This file is part of DotClear. |
|
| 3 |
* Copyright (c) 2005 Nicolas Martin & Olivier Meunier and contributors. All rights reserved. |
|
| 4 |
* This code is released under the GNU General Public License. |
|
| 5 |
* |
|
| 6 |
* Modified by JP LANG for common_mark formatting |
|
| 7 |
*/ |
|
| 8 | ||
| 9 |
// strong |
|
| 10 |
jsToolBar.prototype.elements.strong = {
|
|
| 11 |
type: 'button', |
|
| 12 |
title: 'Strong', |
|
| 13 |
shortcut: 'b', |
|
| 14 |
fn: {
|
|
| 15 |
wiki: function() { this.singleTag('**') }
|
|
| 16 |
} |
|
| 17 |
} |
|
| 18 | ||
| 19 |
// em |
|
| 20 |
jsToolBar.prototype.elements.em = {
|
|
| 21 |
type: 'button', |
|
| 22 |
title: 'Italic', |
|
| 23 |
shortcut: 'i', |
|
| 24 |
fn: {
|
|
| 25 |
wiki: function() { this.singleTag("*") }
|
|
| 26 |
} |
|
| 27 |
} |
|
| 28 | ||
| 29 |
// u |
|
| 30 |
jsToolBar.prototype.elements.ins = {
|
|
| 31 |
type: 'button', |
|
| 32 |
title: 'Underline', |
|
| 33 |
shortcut: 'u', |
|
| 34 |
fn: {
|
|
| 35 |
wiki: function() { this.singleTag('<u>', '</u>') }
|
|
| 36 |
} |
|
| 37 |
} |
|
| 38 | ||
| 39 |
// del |
|
| 40 |
jsToolBar.prototype.elements.del = {
|
|
| 41 |
type: 'button', |
|
| 42 |
title: 'Deleted', |
|
| 43 |
fn: {
|
|
| 44 |
wiki: function() { this.singleTag('~~') }
|
|
| 45 |
} |
|
| 46 |
} |
|
| 47 | ||
| 48 |
// code |
|
| 49 |
jsToolBar.prototype.elements.code = {
|
|
| 50 |
type: 'button', |
|
| 51 |
title: 'Code', |
|
| 52 |
fn: {
|
|
| 53 |
wiki: function() { this.singleTag('`') }
|
|
| 54 |
} |
|
| 55 |
} |
|
| 56 | ||
| 57 |
// spacer |
|
| 58 |
jsToolBar.prototype.elements.space1 = {type: 'space'}
|
|
| 59 | ||
| 60 |
// headings |
|
| 61 |
jsToolBar.prototype.elements.h1 = {
|
|
| 62 |
type: 'button', |
|
| 63 |
title: 'Heading 1', |
|
| 64 |
fn: {
|
|
| 65 |
wiki: function() {
|
|
| 66 |
this.encloseLineSelection('# ', '',function(str) {
|
|
| 67 |
str = str.replace(/^#+\s+/, '') |
|
| 68 |
return str; |
|
| 69 |
}); |
|
| 70 |
} |
|
| 71 |
} |
|
| 72 |
} |
|
| 73 |
jsToolBar.prototype.elements.h2 = {
|
|
| 74 |
type: 'button', |
|
| 75 |
title: 'Heading 2', |
|
| 76 |
fn: {
|
|
| 77 |
wiki: function() {
|
|
| 78 |
this.encloseLineSelection('## ', '',function(str) {
|
|
| 79 |
str = str.replace(/^#+\s+/, '') |
|
| 80 |
return str; |
|
| 81 |
}); |
|
| 82 |
} |
|
| 83 |
} |
|
| 84 |
} |
|
| 85 |
jsToolBar.prototype.elements.h3 = {
|
|
| 86 |
type: 'button', |
|
| 87 |
title: 'Heading 3', |
|
| 88 |
fn: {
|
|
| 89 |
wiki: function() {
|
|
| 90 |
this.encloseLineSelection('### ', '',function(str) {
|
|
| 91 |
str = str.replace(/^#+\s+/, '') |
|
| 92 |
return str; |
|
| 93 |
}); |
|
| 94 |
} |
|
| 95 |
} |
|
| 96 |
} |
|
| 97 | ||
| 98 |
// spacer |
|
| 99 |
jsToolBar.prototype.elements.space2 = {type: 'space'}
|
|
| 100 | ||
| 101 |
// ul |
|
| 102 |
jsToolBar.prototype.elements.ul = {
|
|
| 103 |
type: 'button', |
|
| 104 |
title: 'Unordered list', |
|
| 105 |
fn: {
|
|
| 106 |
wiki: function() {
|
|
| 107 |
this.encloseLineSelection('','',function(str) {
|
|
| 108 |
str = str.replace(/\r/g,''); |
|
| 109 |
return str.replace(/(\n|^)[#-]?\s*/g,"$1* "); |
|
| 110 |
}); |
|
| 111 |
} |
|
| 112 |
} |
|
| 113 |
} |
|
| 114 | ||
| 115 |
// ol |
|
| 116 |
jsToolBar.prototype.elements.ol = {
|
|
| 117 |
type: 'button', |
|
| 118 |
title: 'Ordered list', |
|
| 119 |
fn: {
|
|
| 120 |
wiki: function() {
|
|
| 121 |
this.encloseLineSelection('','',function(str) {
|
|
| 122 |
str = str.replace(/\r/g,''); |
|
| 123 |
return str.replace(/(\n|^)[*-]?\s*/g,"$11. "); |
|
| 124 |
}); |
|
| 125 |
} |
|
| 126 |
} |
|
| 127 |
} |
|
| 128 | ||
| 129 |
// tl |
|
| 130 |
jsToolBar.prototype.elements.tl = {
|
|
| 131 |
type: 'button', |
|
| 132 |
title: 'Task list', |
|
| 133 |
fn: {
|
|
| 134 |
wiki: function() {
|
|
| 135 |
this.encloseLineSelection('','',function(str) {
|
|
| 136 |
str = str.replace(/\r/g,''); |
|
| 137 |
return str.replace(/(\n|^)[*-]?\s*/g,"$1* [ ] "); |
|
| 138 |
}); |
|
| 139 |
} |
|
| 140 |
} |
|
| 141 |
} |
|
| 142 | ||
| 143 |
// spacer |
|
| 144 |
jsToolBar.prototype.elements.space3 = {type: 'space'}
|
|
| 145 | ||
| 146 |
// bq |
|
| 147 |
jsToolBar.prototype.elements.bq = {
|
|
| 148 |
type: 'button', |
|
| 149 |
title: 'Quote', |
|
| 150 |
fn: {
|
|
| 151 |
wiki: function() {
|
|
| 152 |
this.encloseLineSelection('','',function(str) {
|
|
| 153 |
str = str.replace(/\r/g,''); |
|
| 154 |
return str.replace(/(\n|^)( *)([^\n]*)/g,"$1> $2$3"); |
|
| 155 |
}); |
|
| 156 |
} |
|
| 157 |
} |
|
| 158 |
} |
|
| 159 | ||
| 160 |
// unbq |
|
| 161 |
jsToolBar.prototype.elements.unbq = {
|
|
| 162 |
type: 'button', |
|
| 163 |
title: 'Unquote', |
|
| 164 |
fn: {
|
|
| 165 |
wiki: function() {
|
|
| 166 |
this.encloseLineSelection('','',function(str) {
|
|
| 167 |
str = str.replace(/\r/g,''); |
|
| 168 |
return str.replace(/(\n|^) *(> ?)?( *)([^\n]*)/g,"$1$3$4"); |
|
| 169 |
}); |
|
| 170 |
} |
|
| 171 |
} |
|
| 172 |
} |
|
| 173 | ||
| 174 |
// table |
|
| 175 |
jsToolBar.prototype.elements.table = {
|
|
| 176 |
type: 'button', |
|
| 177 |
title: 'Table', |
|
| 178 |
fn: {
|
|
| 179 |
wiki: function() {
|
|
| 180 |
var This = this; |
|
| 181 |
this.tableMenu(function(cols, rowCount){
|
|
| 182 |
This.encloseLineSelection( |
|
| 183 |
'|'+cols.join(' |')+' |\n' + // header
|
|
| 184 |
Array(cols.length+1).join('|--')+'|\n' + // second line
|
|
| 185 |
Array(rowCount+1).join(Array(cols.length+1).join('| ')+'|\n') // cells
|
|
| 186 |
); |
|
| 187 |
}); |
|
| 188 |
} |
|
| 189 |
} |
|
| 190 |
} |
|
| 191 | ||
| 192 |
// pre |
|
| 193 |
jsToolBar.prototype.elements.pre = {
|
|
| 194 |
type: 'button', |
|
| 195 |
title: 'Preformatted text', |
|
| 196 |
fn: {
|
|
| 197 |
wiki: function() { this.encloseLineSelection('```\n', '\n```') }
|
|
| 198 |
} |
|
| 199 |
} |
|
| 200 | ||
| 201 |
// Code highlighting |
|
| 202 |
jsToolBar.prototype.elements.precode = {
|
|
| 203 |
type: 'button', |
|
| 204 |
title: 'Highlighted code', |
|
| 205 |
fn: {
|
|
| 206 |
wiki: function() {
|
|
| 207 |
var This = this; |
|
| 208 |
this.precodeMenu(function(lang){
|
|
| 209 |
This.encloseLineSelection('``` ' + lang + '\n', '\n```\n');
|
|
| 210 |
}); |
|
| 211 |
} |
|
| 212 |
} |
|
| 213 |
} |
|
| 214 | ||
| 215 |
// spacer |
|
| 216 |
jsToolBar.prototype.elements.space4 = {type: 'space'}
|
|
| 217 | ||
| 218 |
// wiki page |
|
| 219 |
jsToolBar.prototype.elements.link = {
|
|
| 220 |
type: 'button', |
|
| 221 |
title: 'Wiki link', |
|
| 222 |
fn: {
|
|
| 223 |
wiki: function() { this.encloseSelection("[[", "]]") }
|
|
| 224 |
} |
|
| 225 |
} |
|
| 226 |
// image |
|
| 227 |
jsToolBar.prototype.elements.img = {
|
|
| 228 |
type: 'button', |
|
| 229 |
title: 'Image', |
|
| 230 |
fn: {
|
|
| 231 |
wiki: function() { this.encloseSelection("") }
|
|
| 232 |
} |
|
| 233 |
} |
|
| 234 | ||
| 235 |
// spacer |
|
| 236 |
jsToolBar.prototype.elements.space5 = {type: 'space'}
|
|
| 237 |
// help |
|
| 238 |
jsToolBar.prototype.elements.help = {
|
|
| 239 |
type: 'button', |
|
| 240 |
title: 'Help', |
|
| 241 |
fn: {
|
|
| 242 |
wiki: function() { window.open(this.help_link, '', 'resizable=yes, location=no, width=300, height=640, menubar=no, status=no, scrollbars=yes') }
|
|
| 243 |
} |
|
| 244 |
} |
|
| app/assets/javascripts/jstoolbar/jstoolbar.js | ||
|---|---|---|
| 1 |
/** |
|
| 2 |
* This file is part of DotClear. |
|
| 3 |
* Copyright (c) 2005 Nicolas Martin & Olivier Meunier and contributors. All rights reserved. |
|
| 4 |
* This code is released under the GNU General Public License. |
|
| 5 |
* |
|
| 6 |
* Modified by JP LANG for multiple text formatting |
|
| 7 |
*/ |
|
| 8 | ||
| 9 |
let lastJstPreviewed = null; |
|
| 10 |
const isMac = Boolean(navigator.platform.toLowerCase().match(/mac/)); |
|
| 11 | ||
| 12 |
function jsToolBar(textarea) {
|
|
| 13 |
if (!document.createElement) { return; }
|
|
| 14 | ||
| 15 |
if (!textarea) { return; }
|
|
| 16 | ||
| 17 |
if ((typeof(document["selection"]) == "undefined") |
|
| 18 |
&& (typeof(textarea["setSelectionRange"]) == "undefined")) {
|
|
| 19 |
return; |
|
| 20 |
} |
|
| 21 | ||
| 22 |
this.textarea = textarea; |
|
| 23 | ||
| 24 |
this.toolbarBlock = document.createElement('div');
|
|
| 25 |
this.toolbarBlock.className = 'jstBlock'; |
|
| 26 |
this.textarea.parentNode.insertBefore(this.toolbarBlock, this.textarea); |
|
| 27 | ||
| 28 |
this.editor = document.createElement('div');
|
|
| 29 |
this.editor.className = 'jstEditor'; |
|
| 30 | ||
| 31 |
this.preview = document.createElement('div');
|
|
| 32 |
this.preview.className = 'wiki wiki-preview hidden'; |
|
| 33 |
this.preview.setAttribute('id', 'preview_' + textarea.getAttribute('id'));
|
|
| 34 | ||
| 35 |
this.editor.appendChild(this.textarea); |
|
| 36 |
this.editor.appendChild(this.preview); |
|
| 37 | ||
| 38 |
this.tabsBlock = document.createElement('div');
|
|
| 39 |
this.tabsBlock.className = 'jstTabs tabs'; |
|
| 40 | ||
| 41 |
var This = this; |
|
| 42 | ||
| 43 |
this.textarea.onkeydown = function(event) { This.keyboardShortcuts.call(This, event); };
|
|
| 44 | ||
| 45 |
this.editTab = new jsTab('Edit', true);
|
|
| 46 |
this.editTab.onclick = function(event) { This.hidePreview.call(This, event); return false; };
|
|
| 47 | ||
| 48 |
this.previewTab = new jsTab('Preview');
|
|
| 49 |
this.previewTab.onclick = function(event) { This.showPreview.call(This, event); return false; };
|
|
| 50 | ||
| 51 |
var elementsTab = document.createElement('li');
|
|
| 52 |
elementsTab.classList = 'tab-elements'; |
|
| 53 | ||
| 54 |
var tabs = document.createElement('ul');
|
|
| 55 |
tabs.appendChild(this.editTab); |
|
| 56 |
tabs.appendChild(this.previewTab); |
|
| 57 |
tabs.appendChild(elementsTab); |
|
| 58 |
this.tabsBlock.appendChild(tabs); |
|
| 59 | ||
| 60 |
this.toolbar = document.createElement("div");
|
|
| 61 |
this.toolbar.className = 'jstElements'; |
|
| 62 |
elementsTab.appendChild(this.toolbar); |
|
| 63 | ||
| 64 |
this.toolbarBlock.appendChild(this.tabsBlock); |
|
| 65 |
this.toolbarBlock.appendChild(this.editor); |
|
| 66 | ||
| 67 |
// Dragable resizing |
|
| 68 |
if (this.editor.addEventListener && navigator.appVersion.match(/\bMSIE\b/)) |
|
| 69 |
{
|
|
| 70 |
this.handle = document.createElement('div');
|
|
| 71 |
this.handle.className = 'jstHandle'; |
|
| 72 |
var dragStart = this.resizeDragStart; |
|
| 73 |
var This = this; |
|
| 74 |
this.handle.addEventListener('mousedown',function(event) { dragStart.call(This,event); },false);
|
|
| 75 |
// fix memory leak in Firefox (bug #241518) |
|
| 76 |
window.addEventListener('unload',function() {
|
|
| 77 |
var del = This.handle.parentNode.removeChild(This.handle); |
|
| 78 |
delete(This.handle); |
|
| 79 |
},false); |
|
| 80 | ||
| 81 |
this.editor.parentNode.insertBefore(this.handle,this.editor.nextSibling); |
|
| 82 |
} |
|
| 83 | ||
| 84 |
this.context = null; |
|
| 85 |
this.toolNodes = {}; // lorsque la toolbar est dessinée , cet objet est garni
|
|
| 86 |
// de raccourcis vers les éléments DOM correspondants aux outils. |
|
| 87 |
} |
|
| 88 | ||
| 89 |
function jsTab(name, selected) {
|
|
| 90 |
selected = selected || false; |
|
| 91 |
if(typeof jsToolBar.strings == 'undefined') {
|
|
| 92 |
var tabName = name || null; |
|
| 93 |
} else {
|
|
| 94 |
var tabName = jsToolBar.strings[name] || name || null; |
|
| 95 |
} |
|
| 96 | ||
| 97 |
var tab = document.createElement('li');
|
|
| 98 |
var link = document.createElement('a');
|
|
| 99 |
link.setAttribute('href', '#');
|
|
| 100 |
link.innerText = tabName; |
|
| 101 |
link.className = 'tab-' + name.toLowerCase(); |
|
| 102 | ||
| 103 |
if (selected == true) {
|
|
| 104 |
link.classList.add('selected');
|
|
| 105 |
} |
|
| 106 |
tab.appendChild(link) |
|
| 107 | ||
| 108 |
return tab; |
|
| 109 |
} |
|
| 110 |
function jsButton(title, fn, scope, className) {
|
|
| 111 |
if(typeof jsToolBar.strings == 'undefined') {
|
|
| 112 |
this.title = title || null; |
|
| 113 |
} else {
|
|
| 114 |
this.title = jsToolBar.strings[title] || title || null; |
|
| 115 |
} |
|
| 116 |
this.fn = fn || function(){};
|
|
| 117 |
this.scope = scope || null; |
|
| 118 |
this.className = className || null; |
|
| 119 |
} |
|
| 120 |
jsButton.prototype.draw = function() {
|
|
| 121 |
if (!this.scope) return null; |
|
| 122 | ||
| 123 |
var button = document.createElement('button');
|
|
| 124 |
button.setAttribute('type','button');
|
|
| 125 |
button.tabIndex = 200; |
|
| 126 |
if (this.className) button.className = this.className; |
|
| 127 |
button.title = this.title; |
|
| 128 |
var span = document.createElement('span');
|
|
| 129 |
span.appendChild(document.createTextNode(this.title)); |
|
| 130 |
button.appendChild(span); |
|
| 131 | ||
| 132 |
if (this.icon != undefined) {
|
|
| 133 |
button.style.backgroundImage = 'url('+this.icon+')';
|
|
| 134 |
} |
|
| 135 | ||
| 136 |
if (typeof(this.fn) == 'function') {
|
|
| 137 |
var This = this; |
|
| 138 |
button.onclick = function() { try { This.fn.apply(This.scope, arguments) } catch (e) {} return false; };
|
|
| 139 |
} |
|
| 140 |
return button; |
|
| 141 |
} |
|
| 142 | ||
| 143 |
function jsSpace(className) {
|
|
| 144 |
this.className = className || null; |
|
| 145 |
this.width = null; |
|
| 146 |
} |
|
| 147 |
jsSpace.prototype.draw = function() {
|
|
| 148 |
var span = document.createElement('span');
|
|
| 149 |
span.appendChild(document.createTextNode(String.fromCharCode(160))); |
|
| 150 |
span.className = 'jstSpacer' + (this.className ? ' ' + this.className : ''); |
|
| 151 |
if (this.width) span.style.marginRight = this.width+'px'; |
|
| 152 | ||
| 153 |
return span; |
|
| 154 |
} |
|
| 155 | ||
| 156 |
function jsCombo(title, options, scope, fn, className) {
|
|
| 157 |
this.title = title || null; |
|
| 158 |
this.options = options || null; |
|
| 159 |
this.scope = scope || null; |
|
| 160 |
this.fn = fn || function(){};
|
|
| 161 |
this.className = className || null; |
|
| 162 |
} |
|
| 163 |
jsCombo.prototype.draw = function() {
|
|
| 164 |
if (!this.scope || !this.options) return null; |
|
| 165 | ||
| 166 |
var select = document.createElement('select');
|
|
| 167 |
if (this.className) select.className = className; |
|
| 168 |
select.title = this.title; |
|
| 169 | ||
| 170 |
for (var o in this.options) {
|
|
| 171 |
//var opt = this.options[o]; |
|
| 172 |
var option = document.createElement('option');
|
|
| 173 |
option.value = o; |
|
| 174 |
option.appendChild(document.createTextNode(this.options[o])); |
|
| 175 |
select.appendChild(option); |
|
| 176 |
} |
|
| 177 | ||
| 178 |
var This = this; |
|
| 179 |
select.onchange = function() {
|
|
| 180 |
try {
|
|
| 181 |
This.fn.call(This.scope, this.value); |
|
| 182 |
} catch (e) { alert(e); }
|
|
| 183 | ||
| 184 |
return false; |
|
| 185 |
} |
|
| 186 | ||
| 187 |
return select; |
|
| 188 |
} |
|
| 189 | ||
| 190 | ||
| 191 |
jsToolBar.prototype = {
|
|
| 192 |
base_url: '', |
|
| 193 |
mode: 'wiki', |
|
| 194 |
elements: {},
|
|
| 195 |
help_link: '', |
|
| 196 |
shortcuts: {},
|
|
| 197 | ||
| 198 |
getMode: function() {
|
|
| 199 |
return this.mode; |
|
| 200 |
}, |
|
| 201 | ||
| 202 |
setMode: function(mode) {
|
|
| 203 |
this.mode = mode || 'wiki'; |
|
| 204 |
}, |
|
| 205 | ||
| 206 |
switchMode: function(mode) {
|
|
| 207 |
mode = mode || 'wiki'; |
|
| 208 |
this.draw(mode); |
|
| 209 |
}, |
|
| 210 | ||
| 211 |
setHelpLink: function(link) {
|
|
| 212 |
this.help_link = link; |
|
| 213 |
}, |
|
| 214 | ||
| 215 |
setPreviewUrl: function(url) {
|
|
| 216 |
this.previewTab.firstChild.setAttribute('data-url', url);
|
|
| 217 |
}, |
|
| 218 | ||
| 219 |
button: function(toolName) {
|
|
| 220 |
var tool = this.elements[toolName]; |
|
| 221 |
if (typeof tool.fn[this.mode] != 'function') return null; |
|
| 222 | ||
| 223 |
const className = 'jstb_' + toolName; |
|
| 224 |
let title = tool.title |
|
| 225 | ||
| 226 |
if (tool.hasOwnProperty('shortcut')) {
|
|
| 227 |
this.shortcuts[tool.shortcut] = className; |
|
| 228 |
title = this.buttonTitleWithShortcut(tool.title, tool.shortcut) |
|
| 229 |
} |
|
| 230 | ||
| 231 |
var b = new jsButton(title, tool.fn[this.mode], this, className); |
|
| 232 |
if (tool.icon != undefined) b.icon = tool.icon; |
|
| 233 | ||
| 234 |
return b; |
|
| 235 |
}, |
|
| 236 |
buttonTitleWithShortcut: function(title, shortcutKey) {
|
|
| 237 |
if(typeof jsToolBar.strings == 'undefined') {
|
|
| 238 |
var i18nTitle = title || null; |
|
| 239 |
} else {
|
|
| 240 |
var i18nTitle = jsToolBar.strings[title] || title || null; |
|
| 241 |
} |
|
| 242 | ||
| 243 |
if (isMac) {
|
|
| 244 |
return i18nTitle + " (⌘" + shortcutKey.toUpperCase() + ")"; |
|
| 245 |
} else {
|
|
| 246 |
return i18nTitle + " (Ctrl+" + shortcutKey.toUpperCase() + ")"; |
|
| 247 |
} |
|
| 248 |
}, |
|
| 249 |
space: function(toolName) {
|
|
| 250 |
var tool = new jsSpace(toolName) |
|
| 251 |
if (this.elements[toolName].width !== undefined) |
|
| 252 |
tool.width = this.elements[toolName].width; |
|
| 253 |
return tool; |
|
| 254 |
}, |
|
| 255 |
combo: function(toolName) {
|
|
| 256 |
var tool = this.elements[toolName]; |
|
| 257 |
var length = tool[this.mode].list.length; |
|
| 258 | ||
| 259 |
if (typeof tool[this.mode].fn != 'function' || length == 0) {
|
|
| 260 |
return null; |
|
| 261 |
} else {
|
|
| 262 |
var options = {};
|
|
| 263 |
for (var i=0; i < length; i++) {
|
|
| 264 |
var opt = tool[this.mode].list[i]; |
|
| 265 |
options[opt] = tool.options[opt]; |
|
| 266 |
} |
|
| 267 |
return new jsCombo(tool.title, options, this, tool[this.mode].fn); |
|
| 268 |
} |
|
| 269 |
}, |
|
| 270 |
draw: function(mode) {
|
|
| 271 |
this.setMode(mode); |
|
| 272 | ||
| 273 |
// Empty toolbar |
|
| 274 |
while (this.toolbar.hasChildNodes()) {
|
|
| 275 |
this.toolbar.removeChild(this.toolbar.firstChild) |
|
| 276 |
} |
|
| 277 |
this.toolNodes = {}; // vide les raccourcis DOM/**/
|
|
| 278 | ||
| 279 |
// Draw toolbar elements |
|
| 280 |
var b, tool, newTool; |
|
| 281 | ||
| 282 |
for (var i in this.elements) {
|
|
| 283 |
b = this.elements[i]; |
|
| 284 | ||
| 285 |
var disabled = |
|
| 286 |
b.type == undefined || b.type == '' |
|
| 287 |
|| (b.disabled != undefined && b.disabled) |
|
| 288 |
|| (b.context != undefined && b.context != null && b.context != this.context); |
|
| 289 | ||
| 290 |
if (!disabled && typeof this[b.type] == 'function') {
|
|
| 291 |
tool = this[b.type](i); |
|
| 292 |
if (tool) newTool = tool.draw(); |
|
| 293 |
if (newTool) {
|
|
| 294 |
this.toolNodes[i] = newTool; //mémorise l'accès DOM pour usage éventuel ultérieur |
|
| 295 |
this.toolbar.appendChild(newTool); |
|
| 296 |
} |
|
| 297 |
} |
|
| 298 |
} |
|
| 299 |
}, |
|
| 300 | ||
| 301 |
singleTag: function(stag,etag) {
|
|
| 302 |
stag = stag || null; |
|
| 303 |
etag = etag || stag; |
|
| 304 | ||
| 305 |
if (!stag || !etag) { return; }
|
|
| 306 | ||
| 307 |
this.encloseSelection(stag,etag); |
|
| 308 |
}, |
|
| 309 | ||
| 310 |
encloseLineSelection: function(prefix, suffix, fn) {
|
|
| 311 |
this.textarea.focus(); |
|
| 312 | ||
| 313 |
prefix = prefix || ''; |
|
| 314 |
suffix = suffix || ''; |
|
| 315 | ||
| 316 |
var start, end, sel, scrollPos, subst, res; |
|
| 317 | ||
| 318 |
if (typeof(document["selection"]) != "undefined") {
|
|
| 319 |
sel = document.selection.createRange().text; |
|
| 320 |
} else if (typeof(this.textarea["setSelectionRange"]) != "undefined") {
|
|
| 321 |
start = this.textarea.selectionStart; |
|
| 322 |
end = this.textarea.selectionEnd; |
|
| 323 |
scrollPos = this.textarea.scrollTop; |
|
| 324 |
// go to the start of the line |
|
| 325 |
start = this.textarea.value.substring(0, start).replace(/[^\r\n]*$/g,'').length; |
|
| 326 |
// go to the end of the line |
|
| 327 |
end = this.textarea.value.length - this.textarea.value.substring(end, this.textarea.value.length).replace(/^[^\r\n]*/, '').length; |
|
| 328 |
sel = this.textarea.value.substring(start, end); |
|
| 329 |
} |
|
| 330 | ||
| 331 |
if (sel.match(/ $/)) { // exclude ending space char, if any
|
|
| 332 |
sel = sel.substring(0, sel.length - 1); |
|
| 333 |
suffix = suffix + " "; |
|
| 334 |
} |
|
| 335 | ||
| 336 |
if (typeof(fn) == 'function') {
|
|
| 337 |
res = (sel) ? fn.call(this,sel) : fn('');
|
|
| 338 |
} else {
|
|
| 339 |
res = (sel) ? sel : ''; |
|
| 340 |
} |
|
| 341 | ||
| 342 |
subst = prefix + res + suffix; |
|
| 343 | ||
| 344 |
if (typeof(document["selection"]) != "undefined") {
|
|
| 345 |
document.selection.createRange().text = subst; |
|
| 346 |
var range = this.textarea.createTextRange(); |
|
| 347 |
range.collapse(false); |
|
| 348 |
range.move('character', -suffix.length);
|
|
| 349 |
range.select(); |
|
| 350 |
} else if (typeof(this.textarea["setSelectionRange"]) != "undefined") {
|
|
| 351 |
this.textarea.value = this.textarea.value.substring(0, start) + subst + |
|
| 352 |
this.textarea.value.substring(end); |
|
| 353 |
if (sel || (!prefix && start === end)) {
|
|
| 354 |
this.textarea.setSelectionRange(start + subst.length, start + subst.length); |
|
| 355 |
} else {
|
|
| 356 |
this.textarea.setSelectionRange(start + prefix.length, start + prefix.length); |
|
| 357 |
} |
|
| 358 |
this.textarea.scrollTop = scrollPos; |
|
| 359 |
} |
|
| 360 |
}, |
|
| 361 | ||
| 362 |
encloseSelection: function(prefix, suffix, fn) {
|
|
| 363 |
this.textarea.focus(); |
|
| 364 |
prefix = prefix || ''; |
|
| 365 |
suffix = suffix || ''; |
|
| 366 | ||
| 367 |
var start, end, sel, scrollPos, subst, res; |
|
| 368 | ||
| 369 |
if (typeof(document["selection"]) != "undefined") {
|
|
| 370 |
sel = document.selection.createRange().text; |
|
| 371 |
} else if (typeof(this.textarea["setSelectionRange"]) != "undefined") {
|
|
| 372 |
start = this.textarea.selectionStart; |
|
| 373 |
end = this.textarea.selectionEnd; |
|
| 374 |
scrollPos = this.textarea.scrollTop; |
|
| 375 |
sel = this.textarea.value.substring(start, end); |
|
| 376 |
if (start > 0 && this.textarea.value.substr(start-1, 1).match(/\S/)) {
|
|
| 377 |
prefix = ' ' + prefix; |
|
| 378 |
} |
|
| 379 |
if (this.textarea.value.substr(end, 1).match(/\S/)) {
|
|
| 380 |
suffix = suffix + ' '; |
|
| 381 |
} |
|
| 382 |
} |
|
| 383 |
if (sel.match(/ $/)) { // exclude ending space char, if any
|
|
| 384 |
sel = sel.substring(0, sel.length - 1); |
|
| 385 |
suffix = suffix + " "; |
|
| 386 |
} |
|
| 387 | ||
| 388 |
if (typeof(fn) == 'function') {
|
|
| 389 |
res = (sel) ? fn.call(this,sel) : fn('');
|
|
| 390 |
} else {
|
|
| 391 |
res = (sel) ? sel : ''; |
|
| 392 |
} |
|
| 393 | ||
| 394 |
subst = prefix + res + suffix; |
|
| 395 | ||
| 396 |
if (typeof(document["selection"]) != "undefined") {
|
|
| 397 |
document.selection.createRange().text = subst; |
|
| 398 |
var range = this.textarea.createTextRange(); |
|
| 399 |
range.collapse(false); |
|
| 400 |
range.move('character', -suffix.length);
|
|
| 401 |
range.select(); |
|
| 402 |
// this.textarea.caretPos -= suffix.length; |
|
| 403 |
} else if (typeof(this.textarea["setSelectionRange"]) != "undefined") {
|
|
| 404 |
this.textarea.value = this.textarea.value.substring(0, start) + subst + |
|
| 405 |
this.textarea.value.substring(end); |
|
| 406 |
if (sel) {
|
|
| 407 |
this.textarea.setSelectionRange(start + subst.length, start + subst.length); |
|
| 408 |
} else {
|
|
| 409 |
this.textarea.setSelectionRange(start + prefix.length, start + prefix.length); |
|
| 410 |
} |
|
| 411 |
this.textarea.scrollTop = scrollPos; |
|
| 412 |
} |
|
| 413 |
}, |
|
| 414 |
showPreview: function(event) {
|
|
| 415 |
if (event.target.classList.contains('selected')) { return; }
|
|
| 416 |
lastJstPreviewed = this.toolbarBlock; |
|
| 417 |
this.preview.setAttribute('style', 'min-height: ' + this.textarea.clientHeight + 'px;')
|
|
| 418 |
this.toolbar.classList.add('hidden');
|
|
| 419 |
this.textarea.classList.add('hidden');
|
|
| 420 |
this.preview.classList.remove('hidden');
|
|
| 421 |
this.tabsBlock.querySelector('.tab-edit').classList.remove('selected');
|
|
| 422 |
event.target.classList.add('selected');
|
|
| 423 |
}, |
|
| 424 |
hidePreview: function(event) {
|
|
| 425 |
if (event.target.classList.contains('selected')) { return; }
|
|
| 426 |
this.toolbar.classList.remove('hidden');
|
|
| 427 |
this.textarea.classList.remove('hidden');
|
|
| 428 |
this.textarea.focus(); |
|
| 429 |
this.preview.classList.add('hidden');
|
|
| 430 |
this.tabsBlock.querySelector('.tab-preview').classList.remove('selected');
|
|
| 431 |
event.target.classList.add('selected');
|
|
| 432 |
}, |
|
| 433 |
keyboardShortcuts: function(e) {
|
|
| 434 |
let stop = false; |
|
| 435 |
if (isToogleEditPreviewShortcut(e)) {
|
|
| 436 |
// Switch to preview only if Edit tab is selected when the event triggers. |
|
| 437 |
if (this.tabsBlock.querySelector('.tab-edit.selected')) {
|
|
| 438 |
stop = true |
|
| 439 |
this.tabsBlock.querySelector('.tab-preview').click();
|
|
| 440 |
} |
|
| 441 |
} |
|
| 442 |
if (isModifierKey(e) && this.shortcuts.hasOwnProperty(e.key.toLowerCase())) {
|
|
| 443 |
stop = true |
|
| 444 |
this.toolbar.querySelector("." + this.shortcuts[e.key.toLowerCase()]).click();
|
|
| 445 |
} |
|
| 446 |
if (stop) {
|
|
| 447 |
e.stopPropagation(); |
|
| 448 |
e.preventDefault(); |
|
| 449 |
} |
|
| 450 |
}, |
|
| 451 |
stripBaseURL: function(url) {
|
|
| 452 |
if (this.base_url != '') {
|
|
| 453 |
var pos = url.indexOf(this.base_url); |
|
| 454 |
if (pos == 0) {
|
|
| 455 |
url = url.substr(this.base_url.length); |
|
| 456 |
} |
|
| 457 |
} |
|
| 458 | ||
| 459 |
return url; |
|
| 460 |
} |
|
| 461 |
}; |
|
| 462 | ||
| 463 |
/** Resizer |
|
| 464 |
-------------------------------------------------------- */ |
|
| 465 |
jsToolBar.prototype.resizeSetStartH = function() {
|
|
| 466 |
this.dragStartH = this.textarea.offsetHeight + 0; |
|
| 467 |
}; |
|
| 468 |
jsToolBar.prototype.resizeDragStart = function(event) {
|
|
| 469 |
var This = this; |
|
| 470 |
this.dragStartY = event.clientY; |
|
| 471 |
this.resizeSetStartH(); |
|
| 472 |
document.addEventListener('mousemove', this.dragMoveHdlr=function(event){This.resizeDragMove(event);}, false);
|
|
| 473 |
document.addEventListener('mouseup', this.dragStopHdlr=function(event){This.resizeDragStop(event);}, false);
|
|
| 474 |
}; |
|
| 475 | ||
| 476 |
jsToolBar.prototype.resizeDragMove = function(event) {
|
|
| 477 |
this.textarea.style.height = (this.dragStartH+event.clientY-this.dragStartY)+'px'; |
|
| 478 |
}; |
|
| 479 | ||
| 480 |
jsToolBar.prototype.resizeDragStop = function(event) {
|
|
| 481 |
document.removeEventListener('mousemove', this.dragMoveHdlr, false);
|
|
| 482 |
document.removeEventListener('mouseup', this.dragStopHdlr, false);
|
|
| 483 |
}; |
|
| 484 | ||
| 485 |
/* Code highlighting menu */ |
|
| 486 |
jsToolBar.prototype.precodeMenu = function(fn){
|
|
| 487 |
var hlLanguages = window.userHlLanguages; |
|
| 488 |
var menu = $("<ul style='position:absolute;'></ul>");
|
|
| 489 |
for (var i = 0; i < hlLanguages.length; i++) {
|
|
| 490 |
var langItem = $('<div></div>').text(hlLanguages[i]);
|
|
| 491 |
$("<li></li>").html(langItem).appendTo(menu).mousedown(function(){
|
|
| 492 |
fn($(this).text()); |
|
| 493 |
}); |
|
| 494 |
} |
|
| 495 |
$("body").append(menu);
|
|
| 496 |
menu.menu().width(150).position({
|
|
| 497 |
my: "left top", |
|
| 498 |
at: "left bottom", |
|
| 499 |
of: this.toolNodes['precode'] |
|
| 500 |
}); |
|
| 501 |
$(document).on("mousedown", function() {
|
|
| 502 |
menu.remove(); |
|
| 503 |
}); |
|
| 504 |
return false; |
|
| 505 |
}; |
|
| 506 | ||
| 507 |
/* Table generator */ |
|
| 508 |
jsToolBar.prototype.tableMenu = function(fn){
|
|
| 509 |
var alphabets = "ABCDEFGHIJ".split('');
|
|
| 510 |
var menu = $("<table class='table-generator'></table>");
|
|
| 511 | ||
| 512 |
for (var r = 1; r <= 5; r++) {
|
|
| 513 |
var row = $("<tr></tr>").appendTo(menu);
|
|
| 514 |
for (var c = 1; c <= 10; c++) {
|
|
| 515 |
$("<td data-row="+r+" data-col="+c+" title="+(c)+'×'+(r)+"></td>").mousedown(function(){
|
|
| 516 |
fn(alphabets.slice(0, $(this).data('col')), $(this).data('row'));
|
|
| 517 |
}).hover(function(){
|
|
| 518 |
var hoverRow = $(this).data('row');
|
|
| 519 |
var hoverCol = $(this).data('col');
|
|
| 520 |
$(this).closest('table').find('td').each(function(_index, element){
|
|
| 521 |
if ($(element).data('row') <= hoverRow && $(element).data('col') <= hoverCol){
|
|
| 522 |
$(element).addClass('selected-cell');
|
|
| 523 |
} else {
|
|
| 524 |
$(element).removeClass('selected-cell');
|
|
| 525 |
} |
|
| 526 |
}); |
|
| 527 |
}).appendTo(row); |
|
| 528 |
} |
|
| 529 |
} |
|
| 530 |
$("body").append(menu);
|
|
| 531 |
menu.position({
|
|
| 532 |
my: "left top", |
|
| 533 |
at: "left bottom", |
|
| 534 |
of: this.toolNodes['table'] |
|
| 535 |
}); |
|
| 536 |
$(document).on("mousedown", function() {
|
|
| 537 |
menu.remove(); |
|
| 538 |
}); |
|
| 539 |
return false; |
|
| 540 |
}; |
|
| 541 | ||
| 542 |
$(document).keydown(function(e) {
|
|
| 543 |
if (isToogleEditPreviewShortcut(e)) {
|
|
| 544 |
if (lastJstPreviewed !== null) {
|
|
| 545 |
e.preventDefault(); |
|
| 546 |
e.stopPropagation(); |
|
| 547 |
lastJstPreviewed.querySelector('.tab-edit').click();
|
|
| 548 |
lastJstPreviewed = null; |
|
| 549 |
} |
|
| 550 |
} |
|
| 551 |
}); |
|
| 552 | ||
| 553 |
function isToogleEditPreviewShortcut(e) {
|
|
| 554 |
if ((e.metaKey || e.ctrlKey) && e.shiftKey && e.key.toLowerCase() === 'p') {
|
|
| 555 |
return true; |
|
| 556 |
} else {
|
|
| 557 |
return false; |
|
| 558 |
} |
|
| 559 |
} |
|
| 560 |
function isModifierKey(e) {
|
|
| 561 |
if (isMac && e.metaKey) {
|
|
| 562 |
return true; |
|
| 563 |
} else if (!isMac && e.ctrlKey) {
|
|
| 564 |
return true; |
|
| 565 |
} else {
|
|
| 566 |
return false; |
|
| 567 |
} |
|
| 568 |
} |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-ar.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'قوي'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'مائل'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'تسطير'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'محذوف'; |
|
| 6 |
jsToolBar.strings['Code'] = 'رمز ضمني'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'عنوان 1'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'عنوان 2'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'عنوان 3'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Highlighted code'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'قائمة غير مرتبة'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'قائمة مرتبة'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'اقتباس'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'إزالة الاقتباس'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'نص مسبق التنسيق'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'رابط الى صفحة ويكي'; |
|
| 18 |
jsToolBar.strings['Image'] = 'صورة'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'تعديل'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'معاينة'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-az.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'Strong'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'Italic'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'Underline'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'Deleted'; |
|
| 6 |
jsToolBar.strings['Code'] = 'Inline Code'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'Heading 1'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'Heading 2'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'Heading 3'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Highlighted code'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'Unordered list'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'Ordered list'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'Quote'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'Remove Quote'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'Preformatted text'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'Link to a Wiki page'; |
|
| 18 |
jsToolBar.strings['Image'] = 'Image'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'Redaktə etmək'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'İlkin baxış'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-bg.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'Получер'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'Курсив'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'Подчертан'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'Изтрит'; |
|
| 6 |
jsToolBar.strings['Code'] = 'Вграден код'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'Заглавие 1'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'Заглавие 2'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'Заглавие 3'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Вграден код'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'Неподреден списък'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'Подреден списък'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'Цитат'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'Премахване на цитат'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'Форматиран текст'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'Връзка до Wiki страница'; |
|
| 18 |
jsToolBar.strings['Image'] = 'Изображение'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'Редакция'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'Преглед'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-bs.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'Strong'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'Italic'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'Underline'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'Deleted'; |
|
| 6 |
jsToolBar.strings['Code'] = 'Inline Code'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'Heading 1'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'Heading 2'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'Heading 3'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Highlighted code'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'Unordered list'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'Ordered list'; |
|
| 13 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 14 |
jsToolBar.strings['Preformatted text'] = 'Preformatted text'; |
|
| 15 |
jsToolBar.strings['Wiki link'] = 'Link na Wiki stranicu'; |
|
| 16 |
jsToolBar.strings['Image'] = 'Slika'; |
|
| 17 |
jsToolBar.strings['Edit'] = 'Ispravka'; |
|
| 18 |
jsToolBar.strings['Preview'] = 'Pregled'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-ca.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'Negreta'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'Cursiva'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'Subratllat'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'Barrat'; |
|
| 6 |
jsToolBar.strings['Code'] = 'Codi en línia'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'Encapçalament 1'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'Encapçalament 2'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'Encapçalament 3'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Highlighted code'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'Llista sense ordre'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'Llista ordenada'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'Cometes'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'Sense cometes'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'Text formatat'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'Enllaça a una pàgina Wiki'; |
|
| 18 |
jsToolBar.strings['Image'] = 'Imatge'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'Editar'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'Previsualitzar'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-cs.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'Tučné'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'Kurzíva'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'Podtržené'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'Přeškrtnuté '; |
|
| 6 |
jsToolBar.strings['Code'] = 'Vnořený kód'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'Nadpis 1'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'Nadpis 2'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'Nadpis 3'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Zvýrazněný kód'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'Seznam'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'Uspořádaný seznam'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'Citace'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'Odstranit citaci'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Tabulka'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'Předformátovaný text'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'Vložit odkaz na Wiki stránku'; |
|
| 18 |
jsToolBar.strings['Image'] = 'Vložit obrázek'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'Upravit'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'Náhled'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-da.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'Fed'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'Kursiv'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'Understreget'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'Slettet'; |
|
| 6 |
jsToolBar.strings['Code'] = 'Inline-kode'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'Overskrift 1'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'Overskrift 2'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'Overskrift 3'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Highlighted code'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'Unummereret liste'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'Nummereret liste'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'Citér'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'Fjern citér'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'Præformateret tekst'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'Link til en wiki-side'; |
|
| 18 |
jsToolBar.strings['Image'] = 'Billede'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'Ret'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'Forhåndsvisning'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-de.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'Fett'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'Kursiv'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'Unterstrichen'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'Durchgestrichen'; |
|
| 6 |
jsToolBar.strings['Code'] = 'Quelltext'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'Überschrift 1. Ordnung'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'Überschrift 2. Ordnung'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'Überschrift 3. Ordnung'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Highlighted code'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'Aufzählungsliste'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'Nummerierte Liste'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'Zitat'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'Zitat entfernen'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'Präformatierter Text'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'Verweis (Link) zu einer Wiki-Seite'; |
|
| 18 |
jsToolBar.strings['Image'] = 'Grafik'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'Bearbeiten'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'Vorschau'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-en-gb.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'Strong'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'Italic'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'Underline'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'Deleted'; |
|
| 6 |
jsToolBar.strings['Code'] = 'Inline Code'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'Heading 1'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'Heading 2'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'Heading 3'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Highlighted code'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'Unordered list'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'Ordered list'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'Quote'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'Remove Quote'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'Preformatted text'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'Link to a Wiki page'; |
|
| 18 |
jsToolBar.strings['Image'] = 'Image'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'Edit'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'Preview'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-en.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'Strong'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'Italic'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'Underline'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'Deleted'; |
|
| 6 |
jsToolBar.strings['Code'] = 'Inline Code'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'Heading 1'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'Heading 2'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'Heading 3'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Highlighted code'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'Unordered list'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'Ordered list'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'Quote'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'Remove Quote'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'Preformatted text'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'Link to a Wiki page'; |
|
| 18 |
jsToolBar.strings['Image'] = 'Image'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'Edit'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'Preview'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-es-pa.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'Negrita'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'Itálica'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'Subrayado'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'Tachado'; |
|
| 6 |
jsToolBar.strings['Code'] = 'Código fuente'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'Encabezado 1'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'Encabezado 2'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'Encabezado 3'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Código resaltado'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'Lista sin ordenar'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'Lista ordenada'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'Citar'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'Quitar cita'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'Texto con formato'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'Enlace a página Wiki'; |
|
| 18 |
jsToolBar.strings['Image'] = 'Imagen'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'Modificar'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'Previsualizar'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-es.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'Negrita'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'Itálica'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'Subrayado'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'Tachado'; |
|
| 6 |
jsToolBar.strings['Code'] = 'Código fuente'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'Encabezado 1'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'Encabezado 2'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'Encabezado 3'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Código resaltado'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'Lista sin ordenar'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'Lista ordenada'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'Citar'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'Quitar cita'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'Texto con formato'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'Enlace a página Wiki'; |
|
| 18 |
jsToolBar.strings['Image'] = 'Imagen'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'Modificar'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'Previsualizar'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-et.js | ||
|---|---|---|
| 1 |
/* |
|
| 2 |
Copyright (C) 2012 Kaitseministeerium |
|
| 3 |
This program is free software; you can redistribute it and/or |
|
| 4 |
modify it under the terms of the GNU General Public License |
|
| 5 |
as published by the Free Software Foundation; either version 2 |
|
| 6 |
of the License, or (at your option) any later version. |
|
| 7 | ||
| 8 |
This program is distributed in the hope that it will be useful, |
|
| 9 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
| 10 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
| 11 |
GNU General Public License for more details. |
|
| 12 | ||
| 13 |
You should have received a copy of the GNU General Public License |
|
| 14 |
along with this program; if not, write to the Free Software |
|
| 15 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
| 16 |
*/ |
|
| 17 | ||
| 18 |
jsToolBar.strings = {};
|
|
| 19 |
jsToolBar.strings['Strong'] = 'Rõhutatult'; |
|
| 20 |
jsToolBar.strings['Italic'] = 'Kaldkirjas'; |
|
| 21 |
jsToolBar.strings['Underline'] = 'Allakriipsutatult'; |
|
| 22 |
jsToolBar.strings['Deleted'] = 'Läbikriipsutatult'; |
|
| 23 |
jsToolBar.strings['Code'] = 'Koodiblokk'; |
|
| 24 |
jsToolBar.strings['Heading 1'] = '1. taseme pealkiri'; |
|
| 25 |
jsToolBar.strings['Heading 2'] = '2. taseme pealkiri'; |
|
| 26 |
jsToolBar.strings['Heading 3'] = '3. taseme pealkiri'; |
|
| 27 |
jsToolBar.strings['Highlighted code'] = 'Highlighted code'; |
|
| 28 |
jsToolBar.strings['Unordered list'] = 'Täpitud nimekiri'; |
|
| 29 |
jsToolBar.strings['Ordered list'] = 'Nummerdatud nimekiri'; |
|
| 30 |
jsToolBar.strings['Quote'] = 'Tsitaat: aste juurde'; |
|
| 31 |
jsToolBar.strings['Unquote'] = 'Tsitaat: aste madalamaks'; |
|
| 32 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 33 |
jsToolBar.strings['Preformatted text'] = 'Eelvormindatud tekst'; |
|
| 34 |
jsToolBar.strings['Wiki link'] = 'Vikilehe link'; |
|
| 35 |
jsToolBar.strings['Image'] = 'Pilt'; |
|
| 36 |
jsToolBar.strings['Edit'] = 'Muuda'; |
|
| 37 |
jsToolBar.strings['Preview'] = 'Eelvaade'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-eu.js | ||
|---|---|---|
| 1 |
// jsToolBar EU language |
|
| 2 |
// Author: Ales Zabala Alava (Shagi), <shagi@gisa-elkartea.org> |
|
| 3 |
// 2010-01-25 |
|
| 4 |
// Distributed under the same terms as the jsToolBar itself. |
|
| 5 |
jsToolBar.strings = {};
|
|
| 6 |
jsToolBar.strings['Strong'] = 'Lodia'; |
|
| 7 |
jsToolBar.strings['Italic'] = 'Etzana'; |
|
| 8 |
jsToolBar.strings['Underline'] = 'Azpimarra'; |
|
| 9 |
jsToolBar.strings['Deleted'] = 'Ezabatuta'; |
|
| 10 |
jsToolBar.strings['Code'] = 'Inline Code'; |
|
| 11 |
jsToolBar.strings['Heading 1'] = '1 Goiburua'; |
|
| 12 |
jsToolBar.strings['Heading 2'] = '2 Goiburua'; |
|
| 13 |
jsToolBar.strings['Heading 3'] = '3 Goiburua'; |
|
| 14 |
jsToolBar.strings['Highlighted code'] = 'Highlighted code'; |
|
| 15 |
jsToolBar.strings['Unordered list'] = 'Ordenatu gabeko zerrenda'; |
|
| 16 |
jsToolBar.strings['Ordered list'] = 'Ordenatutako zerrenda'; |
|
| 17 |
jsToolBar.strings['Quote'] = 'Aipamena'; |
|
| 18 |
jsToolBar.strings['Unquote'] = 'Aipamena kendu'; |
|
| 19 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 20 |
jsToolBar.strings['Preformatted text'] = 'Aurrez formateatutako testua'; |
|
| 21 |
jsToolBar.strings['Wiki link'] = 'Wiki orri baterako esteka'; |
|
| 22 |
jsToolBar.strings['Image'] = 'Irudia'; |
|
| 23 |
jsToolBar.strings['Edit'] = 'Editatu'; |
|
| 24 |
jsToolBar.strings['Preview'] = 'Aurreikusi'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-fa.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'پررنگ'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'کج'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'زیرخط'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'برداشته شده'; |
|
| 6 |
jsToolBar.strings['Code'] = 'کد درون خطی'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'سربرگ ۱'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'سربرگ ۲'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'سربرگ ۳'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Highlighted code'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'فهرست بدون شماره'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'فهرست با شماره'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'تو بردن'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'بیرون آوردن'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'نوشته قالب بندی شده'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'پیوند به برگ ویکی'; |
|
| 18 |
jsToolBar.strings['Image'] = 'عکس'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'ویرایش'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'پیشنمایش'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-fi.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'Lihavoitu'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'Kursivoitu'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'Alleviivattu'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'Yliviivattu'; |
|
| 6 |
jsToolBar.strings['Code'] = 'Koodi näkymä'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'Otsikko 1'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'Otsikko 2'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'Otsikko 3'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Highlighted code'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'Järjestämätön lista'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'Järjestetty lista'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'Quote'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'Remove Quote'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'Ennaltamuotoiltu teksti'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'Linkki Wiki sivulle'; |
|
| 18 |
jsToolBar.strings['Image'] = 'Kuva'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'Muokkaa'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'Esikatselu'; |
|
| app/assets/javascripts/jstoolbar/lang/jstoolbar-fr.js | ||
|---|---|---|
| 1 |
jsToolBar.strings = {};
|
|
| 2 |
jsToolBar.strings['Strong'] = 'Gras'; |
|
| 3 |
jsToolBar.strings['Italic'] = 'Italique'; |
|
| 4 |
jsToolBar.strings['Underline'] = 'Souligné'; |
|
| 5 |
jsToolBar.strings['Deleted'] = 'Rayé'; |
|
| 6 |
jsToolBar.strings['Code'] = 'Code en ligne'; |
|
| 7 |
jsToolBar.strings['Heading 1'] = 'Titre niveau 1'; |
|
| 8 |
jsToolBar.strings['Heading 2'] = 'Titre niveau 2'; |
|
| 9 |
jsToolBar.strings['Heading 3'] = 'Titre niveau 3'; |
|
| 10 |
jsToolBar.strings['Highlighted code'] = 'Code colorisé'; |
|
| 11 |
jsToolBar.strings['Unordered list'] = 'Liste à puces'; |
|
| 12 |
jsToolBar.strings['Ordered list'] = 'Liste numérotée'; |
|
| 13 |
jsToolBar.strings['Quote'] = 'Indenté'; |
|
| 14 |
jsToolBar.strings['Unquote'] = 'Supprimer indentation'; |
|
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 16 |
jsToolBar.strings['Preformatted text'] = 'Texte préformaté'; |
|
| 17 |
jsToolBar.strings['Wiki link'] = 'Lien vers une page Wiki'; |
|
| 18 |
jsToolBar.strings['Image'] = 'Image'; |
|
| 19 |
jsToolBar.strings['Edit'] = 'Modifier'; |
|
| 20 |
jsToolBar.strings['Preview'] = 'Prévisualiser'; |
|