Feature #1575 » feature-1575.patch
| public/javascripts/jstoolbar/jstoolbar.js | ||
|---|---|---|
| 471 | 471 |
}); |
| 472 | 472 |
return false; |
| 473 | 473 |
}; |
| 474 | ||
| 475 |
/* Table generator */ |
|
| 476 |
jsToolBar.prototype.tableMenu = function(fn){
|
|
| 477 |
var alphabets = "ABCDEFGHIJ".split('');
|
|
| 478 |
var menu = $("<table class='table-generator'></table>");
|
|
| 479 | ||
| 480 |
for (var r = 1; r <= 5; r++) {
|
|
| 481 |
var row = $("<tr></tr>").appendTo(menu);
|
|
| 482 |
for (var c = 1; c <= 10; c++) {
|
|
| 483 |
$("<td data-row="+r+" data-col="+c+" title="+(c)+'×'+(r)+"></td>").mousedown(function(){
|
|
| 484 |
fn(alphabets.slice(0, $(this).data('col')), $(this).data('row'));
|
|
| 485 |
}).hover(function(){
|
|
| 486 |
var hoverRow = $(this).data('row');
|
|
| 487 |
var hoverCol = $(this).data('col');
|
|
| 488 |
$(this).closest('table').find('td').each(function(_index, element){
|
|
| 489 |
if ($(element).data('row') <= hoverRow && $(element).data('col') <= hoverCol){
|
|
| 490 |
$(element).addClass('selected-cell');
|
|
| 491 |
} else {
|
|
| 492 |
$(element).removeClass('selected-cell');
|
|
| 493 |
} |
|
| 494 |
}); |
|
| 495 |
}).appendTo(row); |
|
| 496 |
} |
|
| 497 |
} |
|
| 498 |
$("body").append(menu);
|
|
| 499 |
menu.position({
|
|
| 500 |
my: "left top", |
|
| 501 |
at: "left bottom", |
|
| 502 |
of: this.toolNodes['table'] |
|
| 503 |
}); |
|
| 504 |
$(document).on("mousedown", function() {
|
|
| 505 |
menu.remove(); |
|
| 506 |
}); |
|
| 507 |
return false; |
|
| 508 |
}; |
|
| public/javascripts/jstoolbar/lang/jstoolbar-en.js | ||
|---|---|---|
| 12 | 12 |
jsToolBar.strings['Ordered list'] = 'Ordered list'; |
| 13 | 13 |
jsToolBar.strings['Quote'] = 'Quote'; |
| 14 | 14 |
jsToolBar.strings['Unquote'] = 'Remove Quote'; |
| 15 |
jsToolBar.strings['Table'] = 'Table'; |
|
| 15 | 16 |
jsToolBar.strings['Preformatted text'] = 'Preformatted text'; |
| 16 | 17 |
jsToolBar.strings['Wiki link'] = 'Link to a Wiki page'; |
| 17 | 18 |
jsToolBar.strings['Image'] = 'Image'; |
| public/javascripts/jstoolbar/markdown.js | ||
|---|---|---|
| 170 | 170 |
} |
| 171 | 171 |
} |
| 172 | 172 | |
| 173 |
// table |
|
| 174 |
jsToolBar.prototype.elements.table = {
|
|
| 175 |
type: 'button', |
|
| 176 |
title: 'Table', |
|
| 177 |
fn: {
|
|
| 178 |
wiki: function() {
|
|
| 179 |
var This = this; |
|
| 180 |
this.tableMenu(function(cols, rowCount){
|
|
| 181 |
This.encloseLineSelection(('|'+cols.join(' |')+' |\n') + ('|--'.repeat(cols.length)+'|\n') + (('| '.repeat(cols.length))+'|\n').repeat(rowCount));
|
|
| 182 |
}); |
|
| 183 |
} |
|
| 184 |
} |
|
| 185 |
} |
|
| 186 | ||
| 173 | 187 |
// pre |
| 174 | 188 |
jsToolBar.prototype.elements.pre = {
|
| 175 | 189 |
type: 'button', |
| public/javascripts/jstoolbar/textile.js | ||
|---|---|---|
| 170 | 170 |
} |
| 171 | 171 |
} |
| 172 | 172 | |
| 173 |
// table |
|
| 174 |
jsToolBar.prototype.elements.table = {
|
|
| 175 |
type: 'button', |
|
| 176 |
title: 'Table', |
|
| 177 |
fn: {
|
|
| 178 |
wiki: function() {
|
|
| 179 |
var This = this; |
|
| 180 |
this.tableMenu(function(cols, rowCount){
|
|
| 181 |
This.encloseLineSelection(('|_.'+cols.join('|_.')+'|\n') + (('| '.repeat(cols.length))+'|\n').repeat(rowCount));
|
|
| 182 |
}); |
|
| 183 |
} |
|
| 184 |
} |
|
| 185 |
} |
|
| 186 | ||
| 173 | 187 |
// pre |
| 174 | 188 |
jsToolBar.prototype.elements.pre = {
|
| 175 | 189 |
type: 'button', |
| public/stylesheets/jstoolbar.css | ||
|---|---|---|
| 80 | 80 |
.jstElements .help { float: right; margin-right: 0.5em; padding-top: 8px; font-size: 0.9em; }
|
| 81 | 81 |
.jstElements .help a {padding: 2px 0 2px 20px; background: url(../images/help.png) no-repeat 0 50%;}
|
| 82 | 82 | |
| 83 |
.table-generator td {
|
|
| 84 |
position: relative; |
|
| 85 |
border: 2px solid #ccc; |
|
| 86 |
background-color: white; |
|
| 87 |
padding: 10px; |
|
| 88 |
cursor: pointer; |
|
| 89 |
} |
|
| 90 | ||
| 91 |
.table-generator td.selected-cell, .table-generator td:hover {
|
|
| 92 |
background-color: #759FCF; |
|
| 93 |
} |
|
| 94 | ||
| 95 |
.table-generator {
|
|
| 96 |
position: absolute; |
|
| 97 |
border-collapse: collapse; |
|
| 98 |
} |
|
| 99 | ||
| 83 | 100 |
/* Buttons |
| 84 | 101 |
-------------------------------------------------------- */ |
| 85 | 102 |
.jstb_strong {
|
| ... | ... | |
| 130 | 147 |
.jstb_img {
|
| 131 | 148 |
background-image: url(../images/jstoolbar/bt_img.png); |
| 132 | 149 |
} |
| 150 |
.jstb_table {
|
|
| 151 |
/*background-image: url(../images/jstoolbar/bt_table.png);*/ |
|
| 152 |
} |
|
| 133 | 153 |
.jstb_help {
|
| 134 | 154 |
background-image: url(../images/help.png); |
| 135 | 155 |
} |