github.com/Azareal/Gosora@v0.0.0-20210729070923-553e66b59003/pubnot/trumbowyg/plugins/table/trumbowyg.table.js (about) 1 /* =========================================================== 2 * trumbowyg.table.js v1.2 3 * Table plugin for Trumbowyg 4 * http://alex-d.github.com/Trumbowyg 5 * =========================================================== 6 * Author : Lawrence Meckan 7 * Twitter : @absalomedia 8 * Website : absalom.biz 9 */ 10 11 (function ($) { 12 'use strict'; 13 14 var defaultOptions = { 15 rows: 0, 16 columns: 0, 17 styler: '' 18 }; 19 20 $.extend(true, $.trumbowyg, { 21 langs: { 22 en: { 23 table: 'Insert table', 24 tableAddRow: 'Add rows', 25 tableAddColumn: 'Add columns', 26 rows: 'Rows', 27 columns: 'Columns', 28 styler: 'Table class', 29 error: 'Error' 30 }, 31 sk: { 32 table: 'Vytvoriť tabuľky', 33 tableAddRow: 'Pridať riadok', 34 tableAddColumn: 'Pridať stĺpec', 35 rows: 'Riadky', 36 columns: 'Stĺpce', 37 styler: 'Tabuľku triedy', 38 error: 'Chyba' 39 }, 40 fr: { 41 table: 'Insérer un tableau', 42 tableAddRow: 'Ajouter des lignes', 43 tableAddColumn: 'Ajouter des colonnes', 44 rows: 'Lignes', 45 columns: 'Colonnes', 46 styler: 'Classes CSS sur la table', 47 error: 'Erreur' 48 }, 49 cs: { 50 table: 'Vytvořit příkaz Table', 51 tableAddRow: 'Přidat řádek', 52 tableAddColumn: 'Přidat sloupec', 53 rows: 'Řádky', 54 columns: 'Sloupce', 55 styler: 'Tabulku třída', 56 error: 'Chyba' 57 }, 58 ru: { 59 table: 'Вставить таблицу', 60 tableAddRow: 'Добавить строки', 61 tableAddColumn: 'Добавить столбцы', 62 rows: 'Строки', 63 columns: 'Столбцы', 64 styler: 'Имя CSS класса для таблицы', 65 error: 'Ошибка' 66 }, 67 ja: { 68 table: '表の挿入', 69 tableAddRow: '行の追加', 70 tableAddColumn: '列の追加', 71 rows: '行', 72 columns: '列', 73 styler: '表のクラス', 74 error: 'エラー' 75 } 76 }, 77 78 plugins: { 79 table: { 80 init: function (trumbowyg) { 81 trumbowyg.o.plugins.table = $.extend(true, {}, defaultOptions, trumbowyg.o.plugins.table || {}); 82 83 var tableBuild = { 84 fn: function () { 85 trumbowyg.saveRange(); 86 trumbowyg.openModalInsert( 87 // Title 88 trumbowyg.lang.table, 89 90 // Fields 91 { 92 rows: { 93 type: 'number', 94 required: true 95 }, 96 columns: { 97 type: 'number', 98 required: true 99 }, 100 styler: { 101 label: trumbowyg.lang.styler, 102 type: 'text' 103 } 104 }, 105 function (v) { // v is value 106 var tabler = $('<table></table>'); 107 if (v.styler.length !== 0) { 108 tabler.addClass(v.styler); 109 } 110 111 for (var i = 0; i < v.rows; i += 1) { 112 var row = $('<tr></tr>').appendTo(tabler); 113 for (var j = 0; j < v.columns; j += 1) { 114 $('<td></td>').appendTo(row); 115 } 116 } 117 118 trumbowyg.range.deleteContents(); 119 trumbowyg.range.insertNode(tabler[0]); 120 return true; 121 }); 122 } 123 }; 124 125 var addRow = { 126 fn: function () { 127 trumbowyg.saveRange(); 128 var rower = $('<tr></tr>'); 129 trumbowyg.range.deleteContents(); 130 trumbowyg.range.insertNode(rower[0]); 131 return true; 132 133 } 134 }; 135 136 var addColumn = { 137 fn: function () { 138 trumbowyg.saveRange(); 139 var columner = $('<td></td>'); 140 trumbowyg.range.deleteContents(); 141 trumbowyg.range.insertNode(columner[0]); 142 return true; 143 144 } 145 }; 146 147 trumbowyg.addBtnDef('table', tableBuild); 148 trumbowyg.addBtnDef('tableAddRow', addRow); 149 trumbowyg.addBtnDef('tableAddColumn', addColumn); 150 } 151 } 152 } 153 }); 154 })(jQuery);