diff options
Diffstat (limited to 'addons/website/static/lib/summernote/src/js/editing/Table.js')
| -rw-r--r-- | addons/website/static/lib/summernote/src/js/editing/Table.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/addons/website/static/lib/summernote/src/js/editing/Table.js b/addons/website/static/lib/summernote/src/js/editing/Table.js new file mode 100644 index 00000000000..291f85128e5 --- /dev/null +++ b/addons/website/static/lib/summernote/src/js/editing/Table.js @@ -0,0 +1,50 @@ +define([ + 'summernote/core/dom', 'summernote/core/range', 'summernote/core/list' +], function (dom, range, list) { + /** + * Table + * @class + */ + var Table = function () { + /** + * handle tab key + * + * @param {WrappedRange} rng + * @param {Boolean} isShift + */ + this.tab = function (rng, isShift) { + var cell = dom.ancestor(rng.commonAncestor(), dom.isCell); + var table = dom.ancestor(cell, dom.isTable); + var cells = dom.listDescendant(table, dom.isCell); + + var nextCell = list[isShift ? 'prev' : 'next'](cells, cell); + if (nextCell) { + range.create(nextCell, 0).select(); + } + }; + + /** + * create empty table element + * + * @param {Number} rowCount + * @param {Number} colCount + * @return {Node} + */ + this.createTable = function (colCount, rowCount) { + var tds = [], tdHTML; + for (var idxCol = 0; idxCol < colCount; idxCol++) { + tds.push('<td>' + dom.blank + '</td>'); + } + tdHTML = tds.join(''); + + var trs = [], trHTML; + for (var idxRow = 0; idxRow < rowCount; idxRow++) { + trs.push('<tr>' + tdHTML + '</tr>'); + } + trHTML = trs.join(''); + return $('<table class="table table-bordered">' + trHTML + '</table>')[0]; + }; + }; + return Table; +}); + |
