Version Description
This update is a stability, maintenance, and compatibility release. Updating is recommended.
Download this release
Release Info
Developer | TobiasBg |
Plugin | TablePress |
Version | 1.11 |
Comparing to | |
See all releases |
Code changes from version 1.10 to 1.11
- admin/css/common.css +2 -5
- admin/css/common.min.css +1 -1
- admin/img/wsal-logo.png +0 -0
- admin/img/wsal-mark.png +0 -0
- admin/js/edit.js +2 -2
- admin/js/edit.min.js +1 -1
- admin/js/import.min.js +1 -1
- classes/class-controller.php +1 -17
- classes/class-import.php +3 -3
- classes/class-render.php +2 -2
- classes/class-tablepress.php +25 -2
- classes/class-view.php +9 -2
- controllers/controller-admin.php +4 -2
- controllers/controller-admin_ajax.php +4 -2
- css/default-rtl.css +3 -5
- css/default-rtl.min.css +1 -1
- css/default.css +3 -5
- css/default.min.css +1 -1
- css/tablepress.eot +0 -0
- css/tablepress.svg +0 -40
- css/tablepress.ttf +0 -0
- css/tablepress.woff2 +0 -0
- libraries/csstidy/data.inc.php +35 -0
- libraries/simplexlsx.class.php +39 -46
- models/model-table.php +2 -92
- readme.txt +16 -11
- tablepress.php +3 -3
- views/view-about.php +5 -0
- views/view-edit.php +1 -1
- views/view-list.php +20 -16
admin/css/common.css
CHANGED
@@ -93,6 +93,7 @@
|
|
93 |
font-weight: bold;
|
94 |
box-shadow: none;
|
95 |
text-align: center;
|
|
|
96 |
}
|
97 |
|
98 |
/* Table ID/name dropdown on "Export" screen */
|
@@ -153,12 +154,8 @@
|
|
153 |
#tablepress-page select {
|
154 |
vertical-align: baseline;
|
155 |
}
|
156 |
-
/*
|
157 |
#tablepress-page textarea,
|
158 |
.tablepress-postbox-table .button {
|
159 |
margin: 1px;
|
160 |
}
|
161 |
-
#tablepress-page .button,
|
162 |
-
#tablepress-page select {
|
163 |
-
min-height: 30px;
|
164 |
-
}
|
93 |
font-weight: bold;
|
94 |
box-shadow: none;
|
95 |
text-align: center;
|
96 |
+
vertical-align: baseline;
|
97 |
}
|
98 |
|
99 |
/* Table ID/name dropdown on "Export" screen */
|
154 |
#tablepress-page select {
|
155 |
vertical-align: baseline;
|
156 |
}
|
157 |
+
/* Proper alignment of elements */
|
158 |
#tablepress-page textarea,
|
159 |
.tablepress-postbox-table .button {
|
160 |
margin: 1px;
|
161 |
}
|
|
|
|
|
|
|
|
admin/css/common.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#tablepress-page div.notice{margin:10px 0 0}@media screen and (min-width:783px) and (max-width:1150px){#tablepress-nav{padding-top:30px}}@media screen and (max-width:700px){#tablepress-nav{border-bottom:0}#tablepress-nav .nav-tab{margin:0 0 10px .5em;border-bottom:1px solid #ccc}}#tablepress-nav .wp-heading-inline{float:left;padding:5px 0 0;line-height:inherit}#tablepress-nav .nav-tab-separator{margin-left:2em}#tablepress_add-add-table .form-wrap{max-width:500px}#tablepress_add-add-table .form-field{margin:0}#tablepress_add-add-table .form-field-small{float:left;width:150px;margin-right:20px}.tablepress-all-tables thead .column-table_id{width:50px}.tablepress-all-tables thead .column-table_name{width:30%}.tablepress-all-tables thead .column-table_author{width:12%}.tablepress-all-tables thead .column-table_last_modified{width:15%}.tablepress-all-tables tbody .column-table_id{font-weight:700}@media screen and (max-width:782px){.tablepress-all-tables .column-table_id{display:none!important;padding:3px 8px 3px 35%}}#tablepress-page .subtitle{float:left;padding-left:0}#tablepress-page .table-shortcode-inline{background:0 0;border:none;color:#333;width:120px;margin:0;padding:0;font-weight:700;box-shadow:none;text-align:center}#tablepress-page #tables-export{width:100%}#tablepress-page form .invalid,#tablepress-page form :invalid{border-color:#c00!important}.tablepress-postbox-table{border-spacing:0;max-width:1000px;width:100%}.tablepress-postbox-table .column-1{width:25%}.tablepress-postbox-table .column-2{width:75%}.tablepress-postbox-table th{text-align:left;font-weight:400}.tablepress-postbox-table td,.tablepress-postbox-table th{padding:2px;word-wrap:break-word}.tablepress-postbox-table .top-border td,.tablepress-postbox-table .top-border th{padding-top:6px}.tablepress-postbox-table .bottom-border td,.tablepress-postbox-table .bottom-border th{padding-bottom:6px;border-bottom:1px solid #eee}.tablepress-postbox-table .top-align{vertical-align:top;padding-top:6px}#tablepress_import-import-form .column-2 label{margin-right:20px}#uninstall-tablepress{color:#bc0b0b}#tablepress-page select{vertical-align:baseline}#tablepress-page textarea,.tablepress-postbox-table .button{margin:1px}
|
1 |
+
#tablepress-page div.notice{margin:10px 0 0}@media screen and (min-width:783px) and (max-width:1150px){#tablepress-nav{padding-top:30px}}@media screen and (max-width:700px){#tablepress-nav{border-bottom:0}#tablepress-nav .nav-tab{margin:0 0 10px .5em;border-bottom:1px solid #ccc}}#tablepress-nav .wp-heading-inline{float:left;padding:5px 0 0;line-height:inherit}#tablepress-nav .nav-tab-separator{margin-left:2em}#tablepress_add-add-table .form-wrap{max-width:500px}#tablepress_add-add-table .form-field{margin:0}#tablepress_add-add-table .form-field-small{float:left;width:150px;margin-right:20px}.tablepress-all-tables thead .column-table_id{width:50px}.tablepress-all-tables thead .column-table_name{width:30%}.tablepress-all-tables thead .column-table_author{width:12%}.tablepress-all-tables thead .column-table_last_modified{width:15%}.tablepress-all-tables tbody .column-table_id{font-weight:700}@media screen and (max-width:782px){.tablepress-all-tables .column-table_id{display:none!important;padding:3px 8px 3px 35%}}#tablepress-page .subtitle{float:left;padding-left:0}#tablepress-page .table-shortcode-inline{background:0 0;border:none;color:#333;width:120px;margin:0;padding:0;font-weight:700;box-shadow:none;text-align:center;vertical-align:baseline}#tablepress-page #tables-export{width:100%}#tablepress-page form .invalid,#tablepress-page form :invalid{border-color:#c00!important}.tablepress-postbox-table{border-spacing:0;max-width:1000px;width:100%}.tablepress-postbox-table .column-1{width:25%}.tablepress-postbox-table .column-2{width:75%}.tablepress-postbox-table th{text-align:left;font-weight:400}.tablepress-postbox-table td,.tablepress-postbox-table th{padding:2px;word-wrap:break-word}.tablepress-postbox-table .top-border td,.tablepress-postbox-table .top-border th{padding-top:6px}.tablepress-postbox-table .bottom-border td,.tablepress-postbox-table .bottom-border th{padding-bottom:6px;border-bottom:1px solid #eee}.tablepress-postbox-table .top-align{vertical-align:top;padding-top:6px}#tablepress_import-import-form .column-2 label{margin-right:20px}#uninstall-tablepress{color:#bc0b0b}#tablepress-page select{vertical-align:baseline}#tablepress-page textarea,.tablepress-postbox-table .button{margin:1px}
|
admin/img/wsal-logo.png
ADDED
Binary file
|
admin/img/wsal-mark.png
ADDED
Binary file
|
admin/js/edit.js
CHANGED
@@ -193,7 +193,7 @@ jQuery( document ).ready( function( $ ) {
|
|
193 |
$id( 'option-datatables-paginate_entries' ).focus().select();
|
194 |
return;
|
195 |
}
|
196 |
-
if ( ( /[^A-Za-z0-9- _]/ ).test( $id( 'option-extra-css-classes' ).val() ) ) {
|
197 |
alert( tablepress_strings.extra_css_classes_invalid );
|
198 |
$id( 'option-extra-css-classes' ).focus().select();
|
199 |
return;
|
@@ -1029,7 +1029,7 @@ jQuery( document ).ready( function( $ ) {
|
|
1029 |
$id( 'option-datatables-paginate_entries' ).focus().select();
|
1030 |
return;
|
1031 |
}
|
1032 |
-
if ( ( /[^A-Za-z0-9- _]/ ).test( $id( 'option-extra-css-classes' ).val() ) ) {
|
1033 |
alert( tablepress_strings.extra_css_classes_invalid );
|
1034 |
$id( 'option-extra-css-classes' ).focus().select();
|
1035 |
return;
|
193 |
$id( 'option-datatables-paginate_entries' ).focus().select();
|
194 |
return;
|
195 |
}
|
196 |
+
if ( ( /[^A-Za-z0-9- _:]/ ).test( $id( 'option-extra-css-classes' ).val() ) ) {
|
197 |
alert( tablepress_strings.extra_css_classes_invalid );
|
198 |
$id( 'option-extra-css-classes' ).focus().select();
|
199 |
return;
|
1029 |
$id( 'option-datatables-paginate_entries' ).focus().select();
|
1030 |
return;
|
1031 |
}
|
1032 |
+
if ( ( /[^A-Za-z0-9- _:]/ ).test( $id( 'option-extra-css-classes' ).val() ) ) {
|
1033 |
alert( tablepress_strings.extra_css_classes_invalid );
|
1034 |
$id( 'option-extra-css-classes' ).focus().select();
|
1035 |
return;
|
admin/js/edit.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
window.tp=window.tp||{},jQuery(document).ready(function(i){"use strict";function l(e){return i(document.getElementById(e))}tp.made_changes=!1,tp.table={id:l("table-id").val(),new_id:l("table-new-id").val(),rows:parseInt(l("number-rows").val(),10),columns:parseInt(l("number-columns").val(),10),head:l("option-table-head").prop("checked"),foot:l("option-table-foot").prop("checked"),no_data_columns_pre:2,no_data_columns_post:1,body_cells_pre:'<tr><td><span class="move-handle"></span></td><td><input type="checkbox" /><input type="hidden" class="visibility" name="table[visibility][rows][]" value="1" /></td>',body_cells_post:'<td><span class="move-handle"></span></td></tr>',body_cell:'<td><textarea rows="1"></textarea></td>',head_cell:'<th class="head"><span class="sort-control sort-desc" title="'+tablepress_strings.sort_desc+'"><span class="sorting-indicator"></span></span><span class="sort-control sort-asc" title="'+tablepress_strings.sort_asc+'"><span class="sorting-indicator"></span></span><span class="move-handle"></span></th>',foot_cell:'<th><input type="checkbox" /><input type="hidden" class="visibility" name="table[visibility][columns][]" value="1" /></th>',set_table_changed:function(){tp.made_changes=!0},unset_table_changed:function(){tp.made_changes=!1,l("edit-form-body").one("change","textarea",tp.table.set_table_changed),i("#tablepress_edit-table-information, #tablepress_edit-table-options, #tablepress_edit-datatables-features").one("change","input, textarea, select",tp.table.set_table_changed)},change_id:function(){return""===i.trim(l("table-new-id").val())?(alert(tablepress_strings.table_id_not_empty),void l("table-new-id").val(tp.table.new_id).focus().select()):"0"===i.trim(l("table-new-id").val())?(alert(tablepress_strings.table_id_not_zero),void l("table-new-id").val(tp.table.new_id).focus().select()):void(this.value!==tp.table.new_id&&(confirm(tablepress_strings.ays_change_table_id)?(tp.table.new_id=this.value,i(".table-shortcode").val("["+tablepress_options.shortcode+" id="+tp.table.new_id+" /]").click(),tp.table.set_table_changed()):i(this).val(tp.table.new_id)))},change_table_head:function(){tp.table.head=i(this).prop("checked"),l("option-use-datatables").prop("disabled",!tp.table.head).change(),l("notice-datatables-head-row").toggle(!tp.table.head),tp.rows.stripe()},change_table_foot:function(){tp.table.foot=i(this).prop("checked"),tp.rows.stripe()},change_print_name_description:function(){l(this.id+"-position").prop("disabled",!i(this).prop("checked"))},change_datatables:function(){var e=l("option-use-datatables"),t=!(e.prop("checked")&&!e.prop("disabled"));e.closest("tbody").find("input").not(e).prop("disabled",t),tp.table.change_datatables_pagination()},change_datatables_pagination:function(){var e=l("option-datatables-paginate"),t=e.prop("checked")&&!e.prop("disabled");l("option-datatables-lengthchange").prop("disabled",!t),l("option-datatables-paginate_entries").prop("disabled",!t)},prepare_ajax_request:function(e,t){var a,n=l("edit-form-body"),o=[],s={rows:tp.table.rows,columns:tp.table.columns,hidden_rows:0,hidden_columns:0},r={rows:[],columns:[]};return n.children().each(function(e,t){o[e]=i(t).find("textarea").map(function(){return i(this).val()}).get()}),o=JSON.stringify(o),a={table_head:tp.table.head,table_foot:tp.table.foot,alternating_row_colors:l("option-alternating-row-colors").prop("checked"),row_hover:l("option-row-hover").prop("checked"),print_name:l("option-print-name").prop("checked"),print_description:l("option-print-description").prop("checked"),print_name_position:l("option-print-name-position").val(),print_description_position:l("option-print-description-position").val(),extra_css_classes:l("option-extra-css-classes").val(),use_datatables:l("option-use-datatables").prop("checked"),datatables_sort:l("option-datatables-sort").prop("checked"),datatables_filter:l("option-datatables-filter").prop("checked"),datatables_paginate:l("option-datatables-paginate").prop("checked"),datatables_lengthchange:l("option-datatables-lengthchange").prop("checked"),datatables_paginate_entries:l("option-datatables-paginate_entries").val(),datatables_info:l("option-datatables-info").prop("checked"),datatables_scrollx:l("option-datatables-scrollx").prop("checked"),datatables_custom_commands:l("option-datatables-custom-commands").val()},a=JSON.stringify(a),r.rows=n.find('input[type="hidden"]').map(function(){return"1"===i(this).val()?1:(s.hidden_rows+=1,0)}).get(),r.columns=l("edit-form-foot").find('input[type="hidden"]').map(function(){return"1"===i(this).val()?1:(s.hidden_columns+=1,0)}).get(),r=JSON.stringify(r),{action:e,_ajax_nonce:i(t).val(),tablepress:{id:tp.table.id,new_id:tp.table.new_id,name:l("table-name").val(),description:l("table-description").val(),number:s,data:o,options:a,visibility:r}}},preview:{trigger:function(){return tp.made_changes?l("option-datatables-paginate").prop("checked")&&!/^[1-9][0-9]{0,4}$/.test(l("option-datatables-paginate_entries").val())?(alert(tablepress_strings.num_pagination_entries_invalid),void l("option-datatables-paginate_entries").focus().select()):/[^A-Za-z0-9- _]/.test(l("option-extra-css-classes").val())?(alert(tablepress_strings.extra_css_classes_invalid),void l("option-extra-css-classes").focus().select()):(i(this).closest("p").append('<span class="animation-preview spinner is-active" title="'+tablepress_strings.preparing_preview+'"/>'),i("body").addClass("wait"),l("table-preview").empty(),i.ajax({type:"POST",url:ajaxurl,data:tp.table.prepare_ajax_request("tablepress_preview_table","#nonce-preview-table"),success:tp.table.preview.ajax_success,error:tp.table.preview.ajax_error,dataType:"json"}),!1):(tp.table.preview.show(i(this).attr("href")+"&TB_iframe=true"),!1)},ajax_success:function(e,t){void 0===t||"success"!==t?tp.table.preview.error("AJAX call successful, but unclear status."):null==e||"-1"===e||void 0===e.success||!0!==e.success?tp.table.preview.error("AJAX call successful, but unclear data."):tp.table.preview.success(e)},ajax_error:function(e,t,a){tp.table.preview.error("AJAX call failed: "+t+" - "+a)},success:function(t){l("table-preview").empty(),i('<iframe id="table-preview-iframe" />').load(function(){var e=i(this).contents();e.find("head").append(t.head_html),e.find("body").append(t.body_html)}).appendTo("#table-preview"),i(".animation-preview").remove(),i("body").removeClass("wait"),tp.table.preview.show("#TB_inline?inlineId=preview-container")},error:function(e){i(".animation-preview").closest("p").after('<div class="ajax-alert preview-error error"><p>'+tablepress_strings.preview_error+": "+e+"</p></div>"),i(".animation-preview").remove(),i(".preview-error").delay(6e3).fadeOut(2e3,function(){i(this).remove()}),i("body").removeClass("wait")},show:function(e){var t=i(window).width()-120,a=i(window).height()-120;i("#wpadminbar").length&&(a-=parseInt(i("#wpadminbar").css("height"),10)),tb_show(i(".show-preview-button").first().text(),e+"&height="+a+"&width="+t,!1)}}},tp.rows={create:function(e){var t,a,n,o="";for(t=0;t<e;t++){for(o+=tp.table.body_cells_pre,a=0;a<tp.table.columns;a++)o+=tp.table.body_cell;o+=tp.table.body_cells_post}return n=l("edit-form-foot").find(".column-hidden").map(function(){return i(this).index()}).get(),i(o).each(function(e,t){i(t).children().filter(function(e){return-1!==i.inArray(e,n)}).addClass("column-hidden")})},append:function(){var e=l("rows-append-number").val();if(!/^[1-9][0-9]{0,4}$/.test(e))return alert(tablepress_strings.append_num_rows_invalid),void l("rows-append-number").focus().select();l("edit-form-body").append(tp.rows.create(e)),tp.rows.stripe(),tp.reindex()},insert:function(e){var t=l("edit-form-body").find("input:checked").prop("checked",e.shiftKey).closest("tr");0!==t.length?(t.before(tp.rows.create(1)),tp.rows.stripe(),tp.reindex()):alert(tablepress_strings.no_rows_selected)},duplicate:function(e){var t=l("edit-form-body").find("input:checked").prop("checked",e.shiftKey).closest("tr");0!==t.length?(t.each(function(e,t){var a=i(t),n=a.find("textarea"),o=a.clone();o.find("textarea").removeAttr("id").each(function(e,t){i(t).val(n.eq(e).val())}),a.after(o)}),tp.rows.stripe(),tp.reindex()):alert(tablepress_strings.no_rows_selected)},hide:function(e){var t=l("edit-form-body").find("input:checked").prop("checked",e.shiftKey).closest("tr");0!==t.length?(t.addClass("row-hidden").find(".visibility").val("0"),tp.rows.stripe(),tp.table.set_table_changed()):alert(tablepress_strings.no_rows_selected)},unhide:function(e){var t=l("edit-form-body").find("input:checked").prop("checked",e.shiftKey).closest("tr");0!==t.length?(t.removeClass("row-hidden").find(".visibility").val("1"),tp.rows.stripe(),tp.table.set_table_changed()):alert(tablepress_strings.no_rows_selected)},remove:function(){var e,t=l("edit-form-body").find("input:checked").closest("tr");0!==t.length?tp.table.rows!==t.length?(e=1===t.length?tablepress_strings.ays_remove_rows_singular:tablepress_strings.ays_remove_rows_plural,confirm(e)&&(t.remove(),tp.rows.stripe(),tp.reindex())):alert(tablepress_strings.no_remove_all_rows):alert(tablepress_strings.no_rows_selected)},move:{start:function(e,t){i(t.placeholder).removeClass("row-hidden").css("visibility","visible").html('<td colspan="'+(tp.table.columns+tp.table.no_data_columns_pre+tp.table.no_data_columns_post)+'"><div/></td>'),i(t.helper).removeClass("odd head-row foot-row")},change:function(e,t){tp.rows.stripe(t.helper)},stop:function(){tp.rows.stripe()}},sort:function(){function a(e,t){function a(e,t){return(!e.match(c)||1===t)&&parseFloat(e)||e.replace(i," ").replace(r,"")||0}var n,o,s=/(^([+\-]?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?(?=\D|\s|$))|^0x[\da-fA-F]+$|\d+)/g,r=/^\s+|\s+$/g,i=/\s+/g,l=/^0x[0-9a-f]+$/i,c=/^0/,d=e.replace(r,"")||"",p=t.replace(r,"")||"",u=d.replace(s,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),h=p.replace(s,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),_=parseInt(d.match(l),16)||1!==u.length&&Date.parse(d),m=parseInt(p.match(l),16)||_&&p.match(/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/)&&Date.parse(p)||null;if(m){if(_<m)return-1;if(m<_)return 1}for(var b=0,f=u.length,v=h.length,g=Math.max(f,v);b<g;b++){if(n=a(u[b]||"",f),o=a(h[b]||"",v),isNaN(n)!==isNaN(o))return isNaN(n)?1:-1;if(/[^\x00-\x80]/.test(n+o)&&n.localeCompare){var w=n.localeCompare(o);return w/Math.abs(w)}if(n<o)return-1;if(o<n)return 1}}var n=i(this).parent().index(),o=i(this).hasClass("sort-asc")?1:-1,e=i("#edit-form-body"),t=e.find(".head-row").prevAll().addBack(),s=e.find(".foot-row").nextAll().addBack(),r=e.children().not(t).not(s).get();i.each(r,function(e,t){t.sort_key=(""+i(t).children().eq(n).find("textarea").val()).toLowerCase()}),r.sort(function(e,t){return o*a(e.sort_key,t.sort_key)}),i.each(r,function(e,t){t.sort_key=null}),e.append(t),e.append(r),e.append(s),tp.rows.stripe(),tp.reindex()},stripe:function(e){void 0===e&&(e=null),e=i(e);var t=l("edit-form-body").children().removeClass("odd head-row foot-row").not(e);t.filter(":even").addClass("odd"),t=t.not(".row-hidden"),e.hasClass("row-hidden")&&(t=t.not(".ui-sortable-placeholder")),tp.table.head&&t.first().addClass("head-row"),tp.table.foot&&t.last().addClass("foot-row")}},tp.columns={append:function(){var e,t=l("columns-append-number").val(),a="",n="",o="";if(!/^[1-9][0-9]{0,4}$/.test(t))return alert(tablepress_strings.append_num_columns_invalid),void l("columns-append-number").focus().select();for(e=0;e<t;e++)n+=tp.table.body_cell,a+=tp.table.head_cell,o+=tp.table.foot_cell;l("edit-form-body").children().each(function(e,t){i(t).children().slice(-tp.table.no_data_columns_post).before(n)}),l("edit-form-head").children().slice(-tp.table.no_data_columns_post).before(a),l("edit-form-foot").children().slice(-tp.table.no_data_columns_post).before(o),tp.reindex()},insert:function(e){var a,t=l("edit-form-foot").find("input:checked").prop("checked",e.shiftKey).closest("th");0!==t.length?(a=t.map(function(){return i(this).index()}).get(),l("edit-form-body").children().each(function(e,t){i(t).children().filter(function(e){return-1!==i.inArray(e,a)}).before(tp.table.body_cell)}),l("edit-form-head").children().filter(function(e){return-1!==i.inArray(e,a)}).before(tp.table.head_cell),t.before(tp.table.foot_cell),tp.reindex()):alert(tablepress_strings.no_columns_selected)},duplicate:function(e){var o,t=l("edit-form-foot").find("input:checked").prop("checked",e.shiftKey).closest("th");0!==t.length?(o=t.map(function(){return i(this).index()}).get(),l("edit-form").find("tr").each(function(e,t){i(t).children().each(function(e,t){if(-1!==i.inArray(e,o)){var a=i(t),n=a.clone();n.find("textarea").removeAttr("id").val(a.find("textarea").val()),a.after(n)}})}),tp.reindex()):alert(tablepress_strings.no_columns_selected)},hide:function(e){var a,t=l("edit-form-foot").find("input:checked").prop("checked",e.shiftKey).closest("th");0!==t.length?(a=t.map(function(){return i(this).index()}).get(),l("edit-form-body").children().add("#edit-form-head").each(function(e,t){i(t).children().filter(function(e){return-1!==i.inArray(e,a)}).addClass("column-hidden")}),t.addClass("column-hidden").find(".visibility").val("0"),tp.table.set_table_changed()):alert(tablepress_strings.no_columns_selected)},unhide:function(e){var a,t=l("edit-form-foot").find("input:checked").prop("checked",e.shiftKey).closest("th");0!==t.length?(a=t.map(function(){return i(this).index()}).get(),l("edit-form-body").children().add("#edit-form-head").each(function(e,t){i(t).children().filter(function(e){return-1!==i.inArray(e,a)}).removeClass("column-hidden")}),t.removeClass("column-hidden").find(".visibility").val("1"),tp.table.set_table_changed()):alert(tablepress_strings.no_columns_selected)},remove:function(){var a,e,t=l("edit-form-foot").find("input:checked").closest("th");0!==t.length?tp.table.columns!==t.length?(e=1===t.length?tablepress_strings.ays_remove_columns_singular:tablepress_strings.ays_remove_columns_plural,confirm(e)&&(a=t.map(function(){return i(this).index()}).get(),l("edit-form-body").children().add("#edit-form-head").each(function(e,t){i(t).children().filter(function(e){return-1!==i.inArray(e,a)}).remove()}),t.remove(),tp.reindex())):alert(tablepress_strings.no_remove_all_columns):alert(tablepress_strings.no_columns_selected)},move:{source_idx:-1,target_idx:-1,$rows:null,$row_children:null,$cell:null,$cells:null,$placeholder:null,$helper:null,start:function(e,t){var a,n=i(t.item);tp.columns.move.source_idx=n.index(),tp.columns.move.$rows=l("edit-form-body").children().add("#edit-form-foot"),tp.columns.move.$cells=tp.columns.move.$rows.children(":nth-child("+(tp.columns.move.source_idx+1)+")").each(function(){tp.columns.move.$cell=i(this),i('<td class="move-placeholder"><div/></td>').insertBefore(tp.columns.move.$cell),tp.columns.move.$cell.insertAfter(tp.columns.move.$cell.nextAll().last()).clone().addClass("move-hover").insertAfter(tp.columns.move.$cell).find("textarea").val(tp.columns.move.$cell.find("textarea").val())}).hide(),tp.columns.move.$helper=tp.columns.move.$rows.find(".move-hover"),a=tp.columns.move.$helper.eq(1).width(),tp.columns.move.$helper.eq(0).width(a),tp.columns.move.$placeholder=tp.columns.move.$rows.find(".move-placeholder"),tp.columns.move.$placeholder.find("div").width(a)},change:function(e,t){tp.columns.move.target_idx=i(t.placeholder).index(),tp.columns.move.target_idx-tp.columns.move.source_idx==1?tp.columns.move.target_idx+=1:tp.columns.move.target_idx===tp.columns.move.source_idx&&(tp.columns.move.target_idx-=1),tp.columns.move.$placeholder.each(function(){tp.columns.move.$cell=i(this),tp.columns.move.$cell.insertBefore(tp.columns.move.$cell.parent().children().eq(tp.columns.move.target_idx))}),tp.columns.move.target_idx>tp.columns.move.source_idx&&(tp.columns.move.target_idx-=1),tp.columns.move.source_idx=tp.columns.move.target_idx},sort:function(e,t){tp.columns.move.$helper.css("left",t.position.left)},stop:function(){tp.columns.move.$helper.remove(),tp.columns.move.$cells.each(function(){tp.columns.move.$cell=i(this),tp.columns.move.$cell.insertBefore(tp.columns.move.$cell.parent().find(".move-placeholder"))}).show(),tp.columns.move.$placeholder.remove(),tp.columns.move.source_idx=tp.columns.move.target_idx=-1,tp.columns.move.$rows=tp.columns.move.$row_children=tp.columns.move.$cell=tp.columns.move.$cells=tp.columns.move.$placeholder=tp.columns.move.$helper=null,tp.reindex()}},number_to_letter:function(e){for(var t="";0<e;)t=String.fromCharCode(65+(e-1)%26)+t,e=Math.floor((e-1)/26);return t}},tp.cells={$focus:i(null),$textarea:null,autogrow:function(){tp.cells.$focus.removeClass("focus"),tp.cells.$focus=i(this).closest("tr").addClass("focus")},advanced_editor:{prompt_shown:!1,keyopen:function(e){if(e.shiftKey){var t=l("advanced-editor-content");tp.cells.$textarea=i(this).blur(),t.val(tp.cells.$textarea.val()),l("advanced-editor").wpdialog("open"),t.get(0).selectionStart=t.get(0).selectionEnd=t.val().length,t.focus()}},buttonopen:function(){(tp.cells.advanced_editor.prompt_shown||confirm(tablepress_strings.advanced_editor_open))&&(tp.cells.advanced_editor.prompt_shown=!0,l("edit-form-body").one("click","textarea",function(){var e=l("advanced-editor-content");tp.cells.$textarea=i(this).blur(),e.val(tp.cells.$textarea.val()),l("advanced-editor").wpdialog("open"),e.get(0).selectionStart=e.get(0).selectionEnd=e.val().length,e.focus()}))},save:function(){var e=l("advanced-editor-content").blur().val();tp.cells.$textarea.val()!==e&&(tp.cells.$textarea.val(e),tp.cells.$textarea.get(0).selectionStart=tp.cells.$textarea.get(0).selectionEnd=tp.cells.$textarea.val().length,tp.table.set_table_changed()),tp.cells.$textarea.focus(),tp.cells.advanced_editor.close()},close:function(){return l("advanced-editor").wpdialog("close"),!1}},checkboxes:{last_clicked:{"#edit-form-body":!1,"#edit-form-foot":!1},multi_select:function(e){if("undefined"===e.shiftKey)return!0;if(e.shiftKey){if(!tp.cells.checkboxes.last_clicked[e.data.parent])return!0;var t=i(e.data.parent).find(":checkbox"),a=t.index(tp.cells.checkboxes.last_clicked[e.data.parent]),n=t.index(this);a!==n&&t.slice(Math.min(a,n),Math.max(a,n)).prop("checked",i(this).prop("checked"))}return tp.cells.checkboxes.last_clicked[e.data.parent]=this,!0}}},tp.content={link:{prompt_shown:!1,add:function(){(tp.content.link.prompt_shown||confirm(tablepress_strings.link_add))&&(tp.content.link.prompt_shown=!0,l("edit-form-body").one("mousedown","textarea",function(){var e=this.id;i(document).one("mouseup",function(){"undefined"!=typeof wpLink&&(wpLink.open(e),tp.table.set_table_changed())})}))}},image:{prompt_shown:!1,add:function(){(tp.content.image.prompt_shown||confirm(tablepress_strings.image_add))&&(tp.content.image.prompt_shown=!0,l("edit-form-body").one("click","textarea",function(){var e=this.id,t={frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:!0};this.selectionStart=this.selectionEnd=this.value.length,i(this).blur(),wp.media.editor.open(e,t),tp.table.set_table_changed()}))}},span:{prompt_shown:!1,add:function(n){var e="#rowspan#"===n?tablepress_strings.rowspan_add:tablepress_strings.colspan_add;if(!1===tp.content.span.prompt_shown&&(tp.content.span.prompt_shown={},tp.content.span.prompt_shown["#rowspan#"]=tp.content.span.prompt_shown["#colspan#"]=!1),l("option-use-datatables").prop("checked")){if(!confirm(tablepress_strings.span_add_datatables_warning))return;l("option-use-datatables").prop("checked",!1).change()}(tp.content.span.prompt_shown[n]||confirm(e))&&(tp.content.span.prompt_shown[n]=!0,l("edit-form-body").one("click","textarea",function(){var e=i(this),t=e.parent().index(),a=e.closest("tr").index();if("#rowspan#"===n){if(0===a)return void alert(tablepress_strings.no_rowspan_first_row);if(tp.table.head&&1===a)return void alert(tablepress_strings.no_rowspan_table_head);if(tp.table.foot&&tp.table.rows-1===a)return void alert(tablepress_strings.no_rowspan_table_foot)}else if("#colspan#"===n&&tp.table.no_data_columns_pre===t)return void alert(tablepress_strings.no_colspan_first_col);e.val(n),tp.table.set_table_changed()}))}}},tp.check={table_id:function(e){if(37!==e.which&&39!==e.which){var t=i(this);t.val(t.val().replace(/[^0-9a-zA-Z-_]/g,""))}},changes_saved:function(){if(tp.made_changes)return tablepress_strings.unsaved_changes_unload}},tp.reindex=function(){var a,n,e=l("edit-form-body").children(),o={};tp.table.rows=e.length,0<tp.table.rows?tp.table.columns=e.first().children().length-tp.table.no_data_columns_pre-tp.table.no_data_columns_post:tp.table.columns=0,e.each(function(t,e){(a=i(e)).find("textarea").val(function(e,t){return""===t||"="!==t.charAt(0)?t:t.replace(/([A-Z]+[0-9]+)(?::([A-Z]+[0-9]+))?/g,function(e,t,a){return o.hasOwnProperty(t)||((n=l("cell-"+t)).length?o[t]=tp.columns.number_to_letter(n.parent().index()-tp.table.no_data_columns_pre+1)+(n.closest("tr").index()+1):o[t]=t),e=o[t],void 0!==a&&""!==a&&(o.hasOwnProperty(a)||((n=l("cell-"+a)).length?o[a]=tp.columns.number_to_letter(n.parent().index()-tp.table.no_data_columns_pre+1)+(n.closest("tr").index()+1):o[a]=a),e+=":"+o[a]),e})}).attr("name",function(e){return"table[data]["+t+"]["+e+"]"}),a.find(".move-handle").html(t+1)}).each(function(t,e){i(e).find("textarea").attr("id",function(e){return"cell-"+tp.columns.number_to_letter(e+1)+(t+1)})}),l("edit-form-head").find(".move-handle").html(function(e){return tp.columns.number_to_letter(e+1)}),l("number-rows").val(tp.table.rows),l("number-columns").val(tp.table.columns),tp.table.set_table_changed()},tp.save_changes={trigger:function(e){return l("option-datatables-paginate").prop("checked")&&!/^[1-9][0-9]{0,4}$/.test(l("option-datatables-paginate_entries").val())?(alert(tablepress_strings.num_pagination_entries_invalid),void l("option-datatables-paginate_entries").focus().select()):/[^A-Za-z0-9- _]/.test(l("option-extra-css-classes").val())?(alert(tablepress_strings.extra_css_classes_invalid),void l("option-extra-css-classes").focus().select()):e.shiftKey?(tp.made_changes=!1,void l("tablepress-page").find("form").submit()):(i(this).closest("p").append('<span class="animation-saving spinner is-active" title="'+tablepress_strings.saving_changes+'"/>'),i(".save-changes-button").prop("disabled",!0),i("body").addClass("wait"),void i.ajax({type:"POST",url:ajaxurl,data:tp.table.prepare_ajax_request("tablepress_save_table","#nonce-edit-table"),success:tp.save_changes.ajax_success,error:tp.save_changes.ajax_error,dataType:"json"}))},ajax_success:function(e,t){if(void 0===t||"success"!==t)tp.save_changes.error("AJAX call successful, but unclear status. Try again while holding down the “Shift” key.");else if(null==e||"-1"===e||void 0===e.success)tp.save_changes.error("AJAX call successful, but unclear data. Try again while holding down the “Shift” key.");else if(!0!==e.success){var a="";void 0!==e.error_details&&tablepress_options.print_debug_output&&(a="</p><p>These errors were encountered:</p><pre>"+e.error_details+"</pre><p>"),tp.save_changes.error("AJAX call successful, internal saving process failed. Try again while holding down the “Shift” key."+a)}else tp.save_changes.success(e)},ajax_error:function(e,t,a){tp.save_changes.error("AJAX call failed: "+t+" - "+a+". Try again while holding down the “Shift” key.")},success:function(e){tp.table.id!==e.table_id&&"pushState"in window.history&&null!==window.history.pushState&&window.history.pushState("","",window.location.href.replace(/table_id=[0-9a-zA-Z-_]+/gi,"table_id="+e.table_id)),l("edit-form").removeClass("tablepress-edit-screen-id-"+tp.table.id).addClass("tablepress-edit-screen-id-"+e.table_id),tp.table.id=tp.table.new_id=e.table_id,l("table-id").val(tp.table.id),l("table-new-id").val(tp.table.new_id),i(".table-shortcode").val("["+tablepress_options.shortcode+" id="+tp.table.new_id+" /]"),l("nonce-edit-table").val(e.new_edit_nonce),l("nonce-preview-table").val(e.new_preview_nonce);var t=i(".show-preview-button");t.length&&t.attr("href",t.first().attr("href").replace(/item=[a-zA-Z0-9_-]+/g,"item="+e.table_id).replace(/&_wpnonce=[a-z0-9]+/gi,"&_wpnonce="+e.new_preview_nonce)),l("last-modified").text(e.last_modified),l("last-editor").text(e.last_editor),tp.table.unset_table_changed(),tp.save_changes.after_saving_dialog("success",tablepress_strings[e.message])},error:function(e){tp.save_changes.after_saving_dialog("error",e)},after_saving_dialog:function(e,t){t=void 0===t?"":": "+t;var a,n="save-changes-"+e;a="success"===e?(n+=" notice notice-success",3e3):(n+=" notice notice-error",6e3),i(".animation-saving").closest("p").after('<div class="ajax-alert '+n+'"><p>'+tablepress_strings["save_changes_"+e]+t+"</p></div>"),i(".animation-saving").remove(),i(".save-changes-"+e).delay(a).fadeOut(2e3,function(){i(this).remove()}),i(".save-changes-button").prop("disabled",!1),i("body").removeClass("wait")}},tp.init=function(){var e={click:{"#rows-insert":tp.rows.insert,"#columns-insert":tp.columns.insert,"#rows-duplicate":tp.rows.duplicate,"#columns-duplicate":tp.columns.duplicate,"#rows-remove":tp.rows.remove,"#columns-remove":tp.columns.remove,"#rows-hide":tp.rows.hide,"#columns-hide":tp.columns.hide,"#rows-unhide":tp.rows.unhide,"#columns-unhide":tp.columns.unhide,"#rows-append":tp.rows.append,"#columns-append":tp.columns.append,"#link-add":tp.content.link.add,"#image-add":tp.content.image.add,"#span-add-rowspan":function(){tp.content.span.add("#rowspan#")},"#span-add-colspan":function(){tp.content.span.add("#colspan#")},".show-preview-button":tp.table.preview.trigger,".save-changes-button":tp.save_changes.trigger,".show-help-box":function(){i(this).next().wpdialog({title:i(this).attr("title"),height:470,width:320,modal:!0,dialogClass:"wp-dialog",resizable:!1})}},keyup:{"#table-new-id":tp.check.table_id},change:{"#option-table-head":tp.table.change_table_head,"#option-table-foot":tp.table.change_table_foot,"#option-use-datatables":tp.table.change_datatables,"#option-datatables-paginate":tp.table.change_datatables_pagination},blur:{"#table-new-id":tp.table.change_id}},t=l("edit-form-body");i.each(e,function(a,e){i.each(e,function(e,t){i(e).on(a,t)})}),i(window).on("beforeunload",tp.check.changes_saved),l("option-table-head").change(),l("option-print-name").change(tp.table.change_print_name_description).change(),l("option-print-description").change(tp.table.change_print_name_description).change(),t.one("change","textarea",tp.table.set_table_changed),i("#tablepress_edit-table-information, #tablepress_edit-table-options, #tablepress_edit-datatables-features").one("change","input, textarea, select",tp.table.set_table_changed),tablepress_options.cells_advanced_editor?(t.on("click","textarea",tp.cells.advanced_editor.keyopen),l("advanced-editor-open").on("click",tp.cells.advanced_editor.buttonopen),l("advanced-editor-confirm").on("click",tp.cells.advanced_editor.save),l("advanced-editor-cancel").on("click",tp.cells.advanced_editor.close),l("advanced-editor").wpdialog({autoOpen:!1,title:l("advanced-editor-open").val(),width:600,modal:!0,dialogClass:"wp-dialog",resizable:!1}),l("wp-link").on("focus","input",function(e){e.stopPropagation()})):l("advanced-editor-open").hide(),i("body").on("focus",".media-modal .media-frame-content input, .media-modal .media-frame-content textarea",function(e){e.stopPropagation()}),tablepress_options.cells_auto_grow&&t.on("focus","textarea",tp.cells.autogrow),l("edit-form-body").on("click","input:checkbox",{parent:"#edit-form-body"},tp.cells.checkboxes.multi_select),l("edit-form-foot").on("click","input:checkbox",{parent:"#edit-form-foot"},tp.cells.checkboxes.multi_select),l("edit-form-head").on("click",".sort-control",tp.rows.sort),l("tablepress-page").find("form").on("submit",function(){i(this).find(".tablepress-postbox-table").find("input, select").prop("disabled",!1)}),t.sortable({axis:"y",containment:l("edit-form"),forceHelperSize:!0,handle:".move-handle",start:tp.rows.move.start,change:tp.rows.move.change,stop:tp.rows.move.stop,update:tp.reindex}),l("edit-form-head").sortable({axis:"x",items:".head",containment:"parent",forceHelperSize:!0,helper:"clone",handle:".move-handle",start:tp.columns.move.start,stop:tp.columns.move.stop,change:tp.columns.move.change,sort:tp.columns.move.sort}).disableSelection()},tp.init()});
|
1 |
+
window.tp=window.tp||{},jQuery(document).ready(function(i){"use strict";function l(e){return i(document.getElementById(e))}tp.made_changes=!1,tp.table={id:l("table-id").val(),new_id:l("table-new-id").val(),rows:parseInt(l("number-rows").val(),10),columns:parseInt(l("number-columns").val(),10),head:l("option-table-head").prop("checked"),foot:l("option-table-foot").prop("checked"),no_data_columns_pre:2,no_data_columns_post:1,body_cells_pre:'<tr><td><span class="move-handle"></span></td><td><input type="checkbox" /><input type="hidden" class="visibility" name="table[visibility][rows][]" value="1" /></td>',body_cells_post:'<td><span class="move-handle"></span></td></tr>',body_cell:'<td><textarea rows="1"></textarea></td>',head_cell:'<th class="head"><span class="sort-control sort-desc" title="'+tablepress_strings.sort_desc+'"><span class="sorting-indicator"></span></span><span class="sort-control sort-asc" title="'+tablepress_strings.sort_asc+'"><span class="sorting-indicator"></span></span><span class="move-handle"></span></th>',foot_cell:'<th><input type="checkbox" /><input type="hidden" class="visibility" name="table[visibility][columns][]" value="1" /></th>',set_table_changed:function(){tp.made_changes=!0},unset_table_changed:function(){tp.made_changes=!1,l("edit-form-body").one("change","textarea",tp.table.set_table_changed),i("#tablepress_edit-table-information, #tablepress_edit-table-options, #tablepress_edit-datatables-features").one("change","input, textarea, select",tp.table.set_table_changed)},change_id:function(){return""===i.trim(l("table-new-id").val())?(alert(tablepress_strings.table_id_not_empty),void l("table-new-id").val(tp.table.new_id).focus().select()):"0"===i.trim(l("table-new-id").val())?(alert(tablepress_strings.table_id_not_zero),void l("table-new-id").val(tp.table.new_id).focus().select()):void(this.value!==tp.table.new_id&&(confirm(tablepress_strings.ays_change_table_id)?(tp.table.new_id=this.value,i(".table-shortcode").val("["+tablepress_options.shortcode+" id="+tp.table.new_id+" /]").click(),tp.table.set_table_changed()):i(this).val(tp.table.new_id)))},change_table_head:function(){tp.table.head=i(this).prop("checked"),l("option-use-datatables").prop("disabled",!tp.table.head).change(),l("notice-datatables-head-row").toggle(!tp.table.head),tp.rows.stripe()},change_table_foot:function(){tp.table.foot=i(this).prop("checked"),tp.rows.stripe()},change_print_name_description:function(){l(this.id+"-position").prop("disabled",!i(this).prop("checked"))},change_datatables:function(){var e=l("option-use-datatables"),t=!(e.prop("checked")&&!e.prop("disabled"));e.closest("tbody").find("input").not(e).prop("disabled",t),tp.table.change_datatables_pagination()},change_datatables_pagination:function(){var e=l("option-datatables-paginate"),t=e.prop("checked")&&!e.prop("disabled");l("option-datatables-lengthchange").prop("disabled",!t),l("option-datatables-paginate_entries").prop("disabled",!t)},prepare_ajax_request:function(e,t){var a,n=l("edit-form-body"),o=[],s={rows:tp.table.rows,columns:tp.table.columns,hidden_rows:0,hidden_columns:0},r={rows:[],columns:[]};return n.children().each(function(e,t){o[e]=i(t).find("textarea").map(function(){return i(this).val()}).get()}),o=JSON.stringify(o),a={table_head:tp.table.head,table_foot:tp.table.foot,alternating_row_colors:l("option-alternating-row-colors").prop("checked"),row_hover:l("option-row-hover").prop("checked"),print_name:l("option-print-name").prop("checked"),print_description:l("option-print-description").prop("checked"),print_name_position:l("option-print-name-position").val(),print_description_position:l("option-print-description-position").val(),extra_css_classes:l("option-extra-css-classes").val(),use_datatables:l("option-use-datatables").prop("checked"),datatables_sort:l("option-datatables-sort").prop("checked"),datatables_filter:l("option-datatables-filter").prop("checked"),datatables_paginate:l("option-datatables-paginate").prop("checked"),datatables_lengthchange:l("option-datatables-lengthchange").prop("checked"),datatables_paginate_entries:l("option-datatables-paginate_entries").val(),datatables_info:l("option-datatables-info").prop("checked"),datatables_scrollx:l("option-datatables-scrollx").prop("checked"),datatables_custom_commands:l("option-datatables-custom-commands").val()},a=JSON.stringify(a),r.rows=n.find('input[type="hidden"]').map(function(){return"1"===i(this).val()?1:(s.hidden_rows+=1,0)}).get(),r.columns=l("edit-form-foot").find('input[type="hidden"]').map(function(){return"1"===i(this).val()?1:(s.hidden_columns+=1,0)}).get(),r=JSON.stringify(r),{action:e,_ajax_nonce:i(t).val(),tablepress:{id:tp.table.id,new_id:tp.table.new_id,name:l("table-name").val(),description:l("table-description").val(),number:s,data:o,options:a,visibility:r}}},preview:{trigger:function(){return tp.made_changes?l("option-datatables-paginate").prop("checked")&&!/^[1-9][0-9]{0,4}$/.test(l("option-datatables-paginate_entries").val())?(alert(tablepress_strings.num_pagination_entries_invalid),void l("option-datatables-paginate_entries").focus().select()):/[^A-Za-z0-9- _:]/.test(l("option-extra-css-classes").val())?(alert(tablepress_strings.extra_css_classes_invalid),void l("option-extra-css-classes").focus().select()):(i(this).closest("p").append('<span class="animation-preview spinner is-active" title="'+tablepress_strings.preparing_preview+'"/>'),i("body").addClass("wait"),l("table-preview").empty(),i.ajax({type:"POST",url:ajaxurl,data:tp.table.prepare_ajax_request("tablepress_preview_table","#nonce-preview-table"),success:tp.table.preview.ajax_success,error:tp.table.preview.ajax_error,dataType:"json"}),!1):(tp.table.preview.show(i(this).attr("href")+"&TB_iframe=true"),!1)},ajax_success:function(e,t){void 0===t||"success"!==t?tp.table.preview.error("AJAX call successful, but unclear status."):null==e||"-1"===e||void 0===e.success||!0!==e.success?tp.table.preview.error("AJAX call successful, but unclear data."):tp.table.preview.success(e)},ajax_error:function(e,t,a){tp.table.preview.error("AJAX call failed: "+t+" - "+a)},success:function(t){l("table-preview").empty(),i('<iframe id="table-preview-iframe" />').load(function(){var e=i(this).contents();e.find("head").append(t.head_html),e.find("body").append(t.body_html)}).appendTo("#table-preview"),i(".animation-preview").remove(),i("body").removeClass("wait"),tp.table.preview.show("#TB_inline?inlineId=preview-container")},error:function(e){i(".animation-preview").closest("p").after('<div class="ajax-alert preview-error error"><p>'+tablepress_strings.preview_error+": "+e+"</p></div>"),i(".animation-preview").remove(),i(".preview-error").delay(6e3).fadeOut(2e3,function(){i(this).remove()}),i("body").removeClass("wait")},show:function(e){var t=i(window).width()-120,a=i(window).height()-120;i("#wpadminbar").length&&(a-=parseInt(i("#wpadminbar").css("height"),10)),tb_show(i(".show-preview-button").first().text(),e+"&height="+a+"&width="+t,!1)}}},tp.rows={create:function(e){var t,a,n,o="";for(t=0;t<e;t++){for(o+=tp.table.body_cells_pre,a=0;a<tp.table.columns;a++)o+=tp.table.body_cell;o+=tp.table.body_cells_post}return n=l("edit-form-foot").find(".column-hidden").map(function(){return i(this).index()}).get(),i(o).each(function(e,t){i(t).children().filter(function(e){return-1!==i.inArray(e,n)}).addClass("column-hidden")})},append:function(){var e=l("rows-append-number").val();if(!/^[1-9][0-9]{0,4}$/.test(e))return alert(tablepress_strings.append_num_rows_invalid),void l("rows-append-number").focus().select();l("edit-form-body").append(tp.rows.create(e)),tp.rows.stripe(),tp.reindex()},insert:function(e){var t=l("edit-form-body").find("input:checked").prop("checked",e.shiftKey).closest("tr");0!==t.length?(t.before(tp.rows.create(1)),tp.rows.stripe(),tp.reindex()):alert(tablepress_strings.no_rows_selected)},duplicate:function(e){var t=l("edit-form-body").find("input:checked").prop("checked",e.shiftKey).closest("tr");0!==t.length?(t.each(function(e,t){var a=i(t),n=a.find("textarea"),o=a.clone();o.find("textarea").removeAttr("id").each(function(e,t){i(t).val(n.eq(e).val())}),a.after(o)}),tp.rows.stripe(),tp.reindex()):alert(tablepress_strings.no_rows_selected)},hide:function(e){var t=l("edit-form-body").find("input:checked").prop("checked",e.shiftKey).closest("tr");0!==t.length?(t.addClass("row-hidden").find(".visibility").val("0"),tp.rows.stripe(),tp.table.set_table_changed()):alert(tablepress_strings.no_rows_selected)},unhide:function(e){var t=l("edit-form-body").find("input:checked").prop("checked",e.shiftKey).closest("tr");0!==t.length?(t.removeClass("row-hidden").find(".visibility").val("1"),tp.rows.stripe(),tp.table.set_table_changed()):alert(tablepress_strings.no_rows_selected)},remove:function(){var e,t=l("edit-form-body").find("input:checked").closest("tr");0!==t.length?tp.table.rows!==t.length?(e=1===t.length?tablepress_strings.ays_remove_rows_singular:tablepress_strings.ays_remove_rows_plural,confirm(e)&&(t.remove(),tp.rows.stripe(),tp.reindex())):alert(tablepress_strings.no_remove_all_rows):alert(tablepress_strings.no_rows_selected)},move:{start:function(e,t){i(t.placeholder).removeClass("row-hidden").css("visibility","visible").html('<td colspan="'+(tp.table.columns+tp.table.no_data_columns_pre+tp.table.no_data_columns_post)+'"><div/></td>'),i(t.helper).removeClass("odd head-row foot-row")},change:function(e,t){tp.rows.stripe(t.helper)},stop:function(){tp.rows.stripe()}},sort:function(){function a(e,t){function a(e,t){return(!e.match(c)||1===t)&&parseFloat(e)||e.replace(i," ").replace(r,"")||0}var n,o,s=/(^([+\-]?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?(?=\D|\s|$))|^0x[\da-fA-F]+$|\d+)/g,r=/^\s+|\s+$/g,i=/\s+/g,l=/^0x[0-9a-f]+$/i,c=/^0/,d=e.replace(r,"")||"",p=t.replace(r,"")||"",u=d.replace(s,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),h=p.replace(s,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),_=parseInt(d.match(l),16)||1!==u.length&&Date.parse(d),m=parseInt(p.match(l),16)||_&&p.match(/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/)&&Date.parse(p)||null;if(m){if(_<m)return-1;if(m<_)return 1}for(var b=0,f=u.length,v=h.length,g=Math.max(f,v);b<g;b++){if(n=a(u[b]||"",f),o=a(h[b]||"",v),isNaN(n)!==isNaN(o))return isNaN(n)?1:-1;if(/[^\x00-\x80]/.test(n+o)&&n.localeCompare){var w=n.localeCompare(o);return w/Math.abs(w)}if(n<o)return-1;if(o<n)return 1}}var n=i(this).parent().index(),o=i(this).hasClass("sort-asc")?1:-1,e=i("#edit-form-body"),t=e.find(".head-row").prevAll().addBack(),s=e.find(".foot-row").nextAll().addBack(),r=e.children().not(t).not(s).get();i.each(r,function(e,t){t.sort_key=(""+i(t).children().eq(n).find("textarea").val()).toLowerCase()}),r.sort(function(e,t){return o*a(e.sort_key,t.sort_key)}),i.each(r,function(e,t){t.sort_key=null}),e.append(t),e.append(r),e.append(s),tp.rows.stripe(),tp.reindex()},stripe:function(e){void 0===e&&(e=null),e=i(e);var t=l("edit-form-body").children().removeClass("odd head-row foot-row").not(e);t.filter(":even").addClass("odd"),t=t.not(".row-hidden"),e.hasClass("row-hidden")&&(t=t.not(".ui-sortable-placeholder")),tp.table.head&&t.first().addClass("head-row"),tp.table.foot&&t.last().addClass("foot-row")}},tp.columns={append:function(){var e,t=l("columns-append-number").val(),a="",n="",o="";if(!/^[1-9][0-9]{0,4}$/.test(t))return alert(tablepress_strings.append_num_columns_invalid),void l("columns-append-number").focus().select();for(e=0;e<t;e++)n+=tp.table.body_cell,a+=tp.table.head_cell,o+=tp.table.foot_cell;l("edit-form-body").children().each(function(e,t){i(t).children().slice(-tp.table.no_data_columns_post).before(n)}),l("edit-form-head").children().slice(-tp.table.no_data_columns_post).before(a),l("edit-form-foot").children().slice(-tp.table.no_data_columns_post).before(o),tp.reindex()},insert:function(e){var a,t=l("edit-form-foot").find("input:checked").prop("checked",e.shiftKey).closest("th");0!==t.length?(a=t.map(function(){return i(this).index()}).get(),l("edit-form-body").children().each(function(e,t){i(t).children().filter(function(e){return-1!==i.inArray(e,a)}).before(tp.table.body_cell)}),l("edit-form-head").children().filter(function(e){return-1!==i.inArray(e,a)}).before(tp.table.head_cell),t.before(tp.table.foot_cell),tp.reindex()):alert(tablepress_strings.no_columns_selected)},duplicate:function(e){var o,t=l("edit-form-foot").find("input:checked").prop("checked",e.shiftKey).closest("th");0!==t.length?(o=t.map(function(){return i(this).index()}).get(),l("edit-form").find("tr").each(function(e,t){i(t).children().each(function(e,t){if(-1!==i.inArray(e,o)){var a=i(t),n=a.clone();n.find("textarea").removeAttr("id").val(a.find("textarea").val()),a.after(n)}})}),tp.reindex()):alert(tablepress_strings.no_columns_selected)},hide:function(e){var a,t=l("edit-form-foot").find("input:checked").prop("checked",e.shiftKey).closest("th");0!==t.length?(a=t.map(function(){return i(this).index()}).get(),l("edit-form-body").children().add("#edit-form-head").each(function(e,t){i(t).children().filter(function(e){return-1!==i.inArray(e,a)}).addClass("column-hidden")}),t.addClass("column-hidden").find(".visibility").val("0"),tp.table.set_table_changed()):alert(tablepress_strings.no_columns_selected)},unhide:function(e){var a,t=l("edit-form-foot").find("input:checked").prop("checked",e.shiftKey).closest("th");0!==t.length?(a=t.map(function(){return i(this).index()}).get(),l("edit-form-body").children().add("#edit-form-head").each(function(e,t){i(t).children().filter(function(e){return-1!==i.inArray(e,a)}).removeClass("column-hidden")}),t.removeClass("column-hidden").find(".visibility").val("1"),tp.table.set_table_changed()):alert(tablepress_strings.no_columns_selected)},remove:function(){var a,e,t=l("edit-form-foot").find("input:checked").closest("th");0!==t.length?tp.table.columns!==t.length?(e=1===t.length?tablepress_strings.ays_remove_columns_singular:tablepress_strings.ays_remove_columns_plural,confirm(e)&&(a=t.map(function(){return i(this).index()}).get(),l("edit-form-body").children().add("#edit-form-head").each(function(e,t){i(t).children().filter(function(e){return-1!==i.inArray(e,a)}).remove()}),t.remove(),tp.reindex())):alert(tablepress_strings.no_remove_all_columns):alert(tablepress_strings.no_columns_selected)},move:{source_idx:-1,target_idx:-1,$rows:null,$row_children:null,$cell:null,$cells:null,$placeholder:null,$helper:null,start:function(e,t){var a,n=i(t.item);tp.columns.move.source_idx=n.index(),tp.columns.move.$rows=l("edit-form-body").children().add("#edit-form-foot"),tp.columns.move.$cells=tp.columns.move.$rows.children(":nth-child("+(tp.columns.move.source_idx+1)+")").each(function(){tp.columns.move.$cell=i(this),i('<td class="move-placeholder"><div/></td>').insertBefore(tp.columns.move.$cell),tp.columns.move.$cell.insertAfter(tp.columns.move.$cell.nextAll().last()).clone().addClass("move-hover").insertAfter(tp.columns.move.$cell).find("textarea").val(tp.columns.move.$cell.find("textarea").val())}).hide(),tp.columns.move.$helper=tp.columns.move.$rows.find(".move-hover"),a=tp.columns.move.$helper.eq(1).width(),tp.columns.move.$helper.eq(0).width(a),tp.columns.move.$placeholder=tp.columns.move.$rows.find(".move-placeholder"),tp.columns.move.$placeholder.find("div").width(a)},change:function(e,t){tp.columns.move.target_idx=i(t.placeholder).index(),tp.columns.move.target_idx-tp.columns.move.source_idx==1?tp.columns.move.target_idx+=1:tp.columns.move.target_idx===tp.columns.move.source_idx&&--tp.columns.move.target_idx,tp.columns.move.$placeholder.each(function(){tp.columns.move.$cell=i(this),tp.columns.move.$cell.insertBefore(tp.columns.move.$cell.parent().children().eq(tp.columns.move.target_idx))}),tp.columns.move.target_idx>tp.columns.move.source_idx&&--tp.columns.move.target_idx,tp.columns.move.source_idx=tp.columns.move.target_idx},sort:function(e,t){tp.columns.move.$helper.css("left",t.position.left)},stop:function(){tp.columns.move.$helper.remove(),tp.columns.move.$cells.each(function(){tp.columns.move.$cell=i(this),tp.columns.move.$cell.insertBefore(tp.columns.move.$cell.parent().find(".move-placeholder"))}).show(),tp.columns.move.$placeholder.remove(),tp.columns.move.source_idx=tp.columns.move.target_idx=-1,tp.columns.move.$rows=tp.columns.move.$row_children=tp.columns.move.$cell=tp.columns.move.$cells=tp.columns.move.$placeholder=tp.columns.move.$helper=null,tp.reindex()}},number_to_letter:function(e){for(var t="";0<e;)t=String.fromCharCode(65+(e-1)%26)+t,e=Math.floor((e-1)/26);return t}},tp.cells={$focus:i(null),$textarea:null,autogrow:function(){tp.cells.$focus.removeClass("focus"),tp.cells.$focus=i(this).closest("tr").addClass("focus")},advanced_editor:{prompt_shown:!1,keyopen:function(e){if(e.shiftKey){var t=l("advanced-editor-content");tp.cells.$textarea=i(this).blur(),t.val(tp.cells.$textarea.val()),l("advanced-editor").wpdialog("open"),t.get(0).selectionStart=t.get(0).selectionEnd=t.val().length,t.focus()}},buttonopen:function(){(tp.cells.advanced_editor.prompt_shown||confirm(tablepress_strings.advanced_editor_open))&&(tp.cells.advanced_editor.prompt_shown=!0,l("edit-form-body").one("click","textarea",function(){var e=l("advanced-editor-content");tp.cells.$textarea=i(this).blur(),e.val(tp.cells.$textarea.val()),l("advanced-editor").wpdialog("open"),e.get(0).selectionStart=e.get(0).selectionEnd=e.val().length,e.focus()}))},save:function(){var e=l("advanced-editor-content").blur().val();tp.cells.$textarea.val()!==e&&(tp.cells.$textarea.val(e),tp.cells.$textarea.get(0).selectionStart=tp.cells.$textarea.get(0).selectionEnd=tp.cells.$textarea.val().length,tp.table.set_table_changed()),tp.cells.$textarea.focus(),tp.cells.advanced_editor.close()},close:function(){return l("advanced-editor").wpdialog("close"),!1}},checkboxes:{last_clicked:{"#edit-form-body":!1,"#edit-form-foot":!1},multi_select:function(e){if("undefined"===e.shiftKey)return!0;if(e.shiftKey){if(!tp.cells.checkboxes.last_clicked[e.data.parent])return!0;var t=i(e.data.parent).find(":checkbox"),a=t.index(tp.cells.checkboxes.last_clicked[e.data.parent]),n=t.index(this);a!==n&&t.slice(Math.min(a,n),Math.max(a,n)).prop("checked",i(this).prop("checked"))}return tp.cells.checkboxes.last_clicked[e.data.parent]=this,!0}}},tp.content={link:{prompt_shown:!1,add:function(){(tp.content.link.prompt_shown||confirm(tablepress_strings.link_add))&&(tp.content.link.prompt_shown=!0,l("edit-form-body").one("mousedown","textarea",function(){var e=this.id;i(document).one("mouseup",function(){"undefined"!=typeof wpLink&&(wpLink.open(e),tp.table.set_table_changed())})}))}},image:{prompt_shown:!1,add:function(){(tp.content.image.prompt_shown||confirm(tablepress_strings.image_add))&&(tp.content.image.prompt_shown=!0,l("edit-form-body").one("click","textarea",function(){var e=this.id,t={frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:!0};this.selectionStart=this.selectionEnd=this.value.length,i(this).blur(),wp.media.editor.open(e,t),tp.table.set_table_changed()}))}},span:{prompt_shown:!1,add:function(n){var e="#rowspan#"===n?tablepress_strings.rowspan_add:tablepress_strings.colspan_add;if(!1===tp.content.span.prompt_shown&&(tp.content.span.prompt_shown={},tp.content.span.prompt_shown["#rowspan#"]=tp.content.span.prompt_shown["#colspan#"]=!1),l("option-use-datatables").prop("checked")){if(!confirm(tablepress_strings.span_add_datatables_warning))return;l("option-use-datatables").prop("checked",!1).change()}(tp.content.span.prompt_shown[n]||confirm(e))&&(tp.content.span.prompt_shown[n]=!0,l("edit-form-body").one("click","textarea",function(){var e=i(this),t=e.parent().index(),a=e.closest("tr").index();if("#rowspan#"===n){if(0===a)return void alert(tablepress_strings.no_rowspan_first_row);if(tp.table.head&&1===a)return void alert(tablepress_strings.no_rowspan_table_head);if(tp.table.foot&&tp.table.rows-1===a)return void alert(tablepress_strings.no_rowspan_table_foot)}else if("#colspan#"===n&&tp.table.no_data_columns_pre===t)return void alert(tablepress_strings.no_colspan_first_col);e.val(n),tp.table.set_table_changed()}))}}},tp.check={table_id:function(e){if(37!==e.which&&39!==e.which){var t=i(this);t.val(t.val().replace(/[^0-9a-zA-Z-_]/g,""))}},changes_saved:function(){if(tp.made_changes)return tablepress_strings.unsaved_changes_unload}},tp.reindex=function(){var a,n,e=l("edit-form-body").children(),o={};tp.table.rows=e.length,0<tp.table.rows?tp.table.columns=e.first().children().length-tp.table.no_data_columns_pre-tp.table.no_data_columns_post:tp.table.columns=0,e.each(function(t,e){(a=i(e)).find("textarea").val(function(e,t){return""===t||"="!==t.charAt(0)?t:t.replace(/([A-Z]+[0-9]+)(?::([A-Z]+[0-9]+))?/g,function(e,t,a){return o.hasOwnProperty(t)||((n=l("cell-"+t)).length?o[t]=tp.columns.number_to_letter(n.parent().index()-tp.table.no_data_columns_pre+1)+(n.closest("tr").index()+1):o[t]=t),e=o[t],void 0!==a&&""!==a&&(o.hasOwnProperty(a)||((n=l("cell-"+a)).length?o[a]=tp.columns.number_to_letter(n.parent().index()-tp.table.no_data_columns_pre+1)+(n.closest("tr").index()+1):o[a]=a),e+=":"+o[a]),e})}).attr("name",function(e){return"table[data]["+t+"]["+e+"]"}),a.find(".move-handle").html(t+1)}).each(function(t,e){i(e).find("textarea").attr("id",function(e){return"cell-"+tp.columns.number_to_letter(e+1)+(t+1)})}),l("edit-form-head").find(".move-handle").html(function(e){return tp.columns.number_to_letter(e+1)}),l("number-rows").val(tp.table.rows),l("number-columns").val(tp.table.columns),tp.table.set_table_changed()},tp.save_changes={trigger:function(e){return l("option-datatables-paginate").prop("checked")&&!/^[1-9][0-9]{0,4}$/.test(l("option-datatables-paginate_entries").val())?(alert(tablepress_strings.num_pagination_entries_invalid),void l("option-datatables-paginate_entries").focus().select()):/[^A-Za-z0-9- _:]/.test(l("option-extra-css-classes").val())?(alert(tablepress_strings.extra_css_classes_invalid),void l("option-extra-css-classes").focus().select()):e.shiftKey?(tp.made_changes=!1,void l("tablepress-page").find("form").submit()):(i(this).closest("p").append('<span class="animation-saving spinner is-active" title="'+tablepress_strings.saving_changes+'"/>'),i(".save-changes-button").prop("disabled",!0),i("body").addClass("wait"),void i.ajax({type:"POST",url:ajaxurl,data:tp.table.prepare_ajax_request("tablepress_save_table","#nonce-edit-table"),success:tp.save_changes.ajax_success,error:tp.save_changes.ajax_error,dataType:"json"}))},ajax_success:function(e,t){if(void 0===t||"success"!==t)tp.save_changes.error("AJAX call successful, but unclear status. Try again while holding down the “Shift” key.");else if(null==e||"-1"===e||void 0===e.success)tp.save_changes.error("AJAX call successful, but unclear data. Try again while holding down the “Shift” key.");else if(!0!==e.success){var a="";void 0!==e.error_details&&tablepress_options.print_debug_output&&(a="</p><p>These errors were encountered:</p><pre>"+e.error_details+"</pre><p>"),tp.save_changes.error("AJAX call successful, internal saving process failed. Try again while holding down the “Shift” key."+a)}else tp.save_changes.success(e)},ajax_error:function(e,t,a){tp.save_changes.error("AJAX call failed: "+t+" - "+a+". Try again while holding down the “Shift” key.")},success:function(e){tp.table.id!==e.table_id&&"pushState"in window.history&&null!==window.history.pushState&&window.history.pushState("","",window.location.href.replace(/table_id=[0-9a-zA-Z-_]+/gi,"table_id="+e.table_id)),l("edit-form").removeClass("tablepress-edit-screen-id-"+tp.table.id).addClass("tablepress-edit-screen-id-"+e.table_id),tp.table.id=tp.table.new_id=e.table_id,l("table-id").val(tp.table.id),l("table-new-id").val(tp.table.new_id),i(".table-shortcode").val("["+tablepress_options.shortcode+" id="+tp.table.new_id+" /]"),l("nonce-edit-table").val(e.new_edit_nonce),l("nonce-preview-table").val(e.new_preview_nonce);var t=i(".show-preview-button");t.length&&t.attr("href",t.first().attr("href").replace(/item=[a-zA-Z0-9_-]+/g,"item="+e.table_id).replace(/&_wpnonce=[a-z0-9]+/gi,"&_wpnonce="+e.new_preview_nonce)),l("last-modified").text(e.last_modified),l("last-editor").text(e.last_editor),tp.table.unset_table_changed(),tp.save_changes.after_saving_dialog("success",tablepress_strings[e.message])},error:function(e){tp.save_changes.after_saving_dialog("error",e)},after_saving_dialog:function(e,t){t=void 0===t?"":": "+t;var a,n="save-changes-"+e;a="success"===e?(n+=" notice notice-success",3e3):(n+=" notice notice-error",6e3),i(".animation-saving").closest("p").after('<div class="ajax-alert '+n+'"><p>'+tablepress_strings["save_changes_"+e]+t+"</p></div>"),i(".animation-saving").remove(),i(".save-changes-"+e).delay(a).fadeOut(2e3,function(){i(this).remove()}),i(".save-changes-button").prop("disabled",!1),i("body").removeClass("wait")}},tp.init=function(){var e={click:{"#rows-insert":tp.rows.insert,"#columns-insert":tp.columns.insert,"#rows-duplicate":tp.rows.duplicate,"#columns-duplicate":tp.columns.duplicate,"#rows-remove":tp.rows.remove,"#columns-remove":tp.columns.remove,"#rows-hide":tp.rows.hide,"#columns-hide":tp.columns.hide,"#rows-unhide":tp.rows.unhide,"#columns-unhide":tp.columns.unhide,"#rows-append":tp.rows.append,"#columns-append":tp.columns.append,"#link-add":tp.content.link.add,"#image-add":tp.content.image.add,"#span-add-rowspan":function(){tp.content.span.add("#rowspan#")},"#span-add-colspan":function(){tp.content.span.add("#colspan#")},".show-preview-button":tp.table.preview.trigger,".save-changes-button":tp.save_changes.trigger,".show-help-box":function(){i(this).next().wpdialog({title:i(this).attr("title"),height:470,width:320,modal:!0,dialogClass:"wp-dialog",resizable:!1})}},keyup:{"#table-new-id":tp.check.table_id},change:{"#option-table-head":tp.table.change_table_head,"#option-table-foot":tp.table.change_table_foot,"#option-use-datatables":tp.table.change_datatables,"#option-datatables-paginate":tp.table.change_datatables_pagination},blur:{"#table-new-id":tp.table.change_id}},t=l("edit-form-body");i.each(e,function(a,e){i.each(e,function(e,t){i(e).on(a,t)})}),i(window).on("beforeunload",tp.check.changes_saved),l("option-table-head").change(),l("option-print-name").change(tp.table.change_print_name_description).change(),l("option-print-description").change(tp.table.change_print_name_description).change(),t.one("change","textarea",tp.table.set_table_changed),i("#tablepress_edit-table-information, #tablepress_edit-table-options, #tablepress_edit-datatables-features").one("change","input, textarea, select",tp.table.set_table_changed),tablepress_options.cells_advanced_editor?(t.on("click","textarea",tp.cells.advanced_editor.keyopen),l("advanced-editor-open").on("click",tp.cells.advanced_editor.buttonopen),l("advanced-editor-confirm").on("click",tp.cells.advanced_editor.save),l("advanced-editor-cancel").on("click",tp.cells.advanced_editor.close),l("advanced-editor").wpdialog({autoOpen:!1,title:l("advanced-editor-open").val(),width:600,modal:!0,dialogClass:"wp-dialog",resizable:!1}),l("wp-link").on("focus","input",function(e){e.stopPropagation()})):l("advanced-editor-open").hide(),i("body").on("focus",".media-modal .media-frame-content input, .media-modal .media-frame-content textarea",function(e){e.stopPropagation()}),tablepress_options.cells_auto_grow&&t.on("focus","textarea",tp.cells.autogrow),l("edit-form-body").on("click","input:checkbox",{parent:"#edit-form-body"},tp.cells.checkboxes.multi_select),l("edit-form-foot").on("click","input:checkbox",{parent:"#edit-form-foot"},tp.cells.checkboxes.multi_select),l("edit-form-head").on("click",".sort-control",tp.rows.sort),l("tablepress-page").find("form").on("submit",function(){i(this).find(".tablepress-postbox-table").find("input, select").prop("disabled",!1)}),t.sortable({axis:"y",containment:l("edit-form"),forceHelperSize:!0,handle:".move-handle",start:tp.rows.move.start,change:tp.rows.move.change,stop:tp.rows.move.stop,update:tp.reindex}),l("edit-form-head").sortable({axis:"x",items:".head",containment:"parent",forceHelperSize:!0,helper:"clone",handle:".move-handle",start:tp.columns.move.start,stop:tp.columns.move.stop,change:tp.columns.move.change,sort:tp.columns.move.sort}).disableSelection()},tp.init()});
|
admin/js/import.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(
|
1 |
+
jQuery(document).ready(function(n){"use strict";var s="csv";n("#row-import-type").on("change","input",function(){var e=n(this).val();n("#tables-import-existing-table").prop("disabled","replace"!==e&&"append"!==e||"zip"===s)}).find("input:checked").change(),n("#row-import-source").on("change","input",function(){n("#row-import-source-file-upload, #row-import-source-url, #row-import-source-server, #row-import-source-form-field").hide(),n("#row-import-source-"+n(this).val()).show()}).find("input:checked").change(),n("#tables-import-file-upload, #tables-import-url, #tables-import-server").on("change",function(e){var t,i,r=n(this).val(),a=n("#row-import-type").find("input:checked").val(),o=r;"tables-import-url"===e.target.id&&(s="html"),-1===(t=r.lastIndexOf("\\"))&&-1===(t=r.lastIndexOf("/"))||(o=r.substr(t+1)),-1!==(i=o.lastIndexOf("."))&&(s=o.substr(i+1).toLowerCase()),"htm"===s&&(s="html"),n("#tables-import-existing-table").prop("disabled","replace"!==a&&"append"!==a||"zip"===s),"zip"!==s&&n("#tables-import-format").val(s)}),n("#tablepress-page").find("form").on("submit.tablepress",function(){var e=n("#row-import-source").find("input:checked").val(),t=n("#tables-import-"+e).get(0),i=!0,r=n("#row-import-type").find("input:checked").val();if(t.defaultValue===t.value&&(n(t).addClass("invalid").one("change",function(){n(this).removeClass("invalid")}).focus().select(),i=!1),"replace"!==r&&"append"!==r||"zip"===s||""===n("#tables-import-existing-table").val()&&(n("#row-import-type").one("change","input",function(){n("#tables-import-existing-table").removeClass("invalid")}),n("#tables-import-existing-table").addClass("invalid").one("change",function(){n(this).removeClass("invalid")}).focus().select(),i=!1),!i)return!1})});
|
classes/class-controller.php
CHANGED
@@ -136,13 +136,7 @@ abstract class TablePress_Controller {
|
|
136 |
TablePress::$model_options->update( $updated_options );
|
137 |
|
138 |
// Clear table caches.
|
139 |
-
|
140 |
-
// For pre-0.9-RC, where the arrays are serialized and not JSON encoded.
|
141 |
-
TablePress::$model_table->invalidate_table_output_caches_tp09();
|
142 |
-
} else {
|
143 |
-
// For 0.9-RC and onwards.
|
144 |
-
TablePress::$model_table->invalidate_table_output_caches();
|
145 |
-
}
|
146 |
|
147 |
// Add mime type field to existing posts with the TablePress Custom Post Type, so that other plugins know that they are not dealing with plain text.
|
148 |
if ( $current_plugin_options_db_version < 25 ) {
|
@@ -158,18 +152,8 @@ abstract class TablePress_Controller {
|
|
158 |
|
159 |
// Maybe update the table scheme in each existing table, independently from updating the plugin options.
|
160 |
if ( TablePress::$model_options->get( 'table_scheme_db_version' ) < TablePress::table_scheme_version ) {
|
161 |
-
// Convert parameter "datatables_scrollX" to "datatables_scrollx", has to be done before merge_table_options_defaults() is called!
|
162 |
-
if ( TablePress::$model_options->get( 'table_scheme_db_version' ) < 3 ) {
|
163 |
-
TablePress::$model_table->merge_table_options_tp08();
|
164 |
-
}
|
165 |
-
|
166 |
TablePress::$model_table->merge_table_options_defaults();
|
167 |
|
168 |
-
// Merge print_name/print_description changes made for 0.6-beta.
|
169 |
-
if ( TablePress::$model_options->get( 'table_scheme_db_version' ) < 2 ) {
|
170 |
-
TablePress::$model_table->merge_table_options_tp06();
|
171 |
-
}
|
172 |
-
|
173 |
TablePress::$model_options->update( array(
|
174 |
'table_scheme_db_version' => TablePress::table_scheme_version,
|
175 |
) );
|
136 |
TablePress::$model_options->update( $updated_options );
|
137 |
|
138 |
// Clear table caches.
|
139 |
+
TablePress::$model_table->invalidate_table_output_caches();
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
|
141 |
// Add mime type field to existing posts with the TablePress Custom Post Type, so that other plugins know that they are not dealing with plain text.
|
142 |
if ( $current_plugin_options_db_version < 25 ) {
|
152 |
|
153 |
// Maybe update the table scheme in each existing table, independently from updating the plugin options.
|
154 |
if ( TablePress::$model_options->get( 'table_scheme_db_version' ) < TablePress::table_scheme_version ) {
|
|
|
|
|
|
|
|
|
|
|
155 |
TablePress::$model_table->merge_table_options_defaults();
|
156 |
|
|
|
|
|
|
|
|
|
|
|
157 |
TablePress::$model_options->update( array(
|
158 |
'table_scheme_db_version' => TablePress::table_scheme_version,
|
159 |
) );
|
classes/class-import.php
CHANGED
@@ -83,7 +83,7 @@ class TablePress_Import {
|
|
83 |
}
|
84 |
$this->import_formats['json'] = __( 'JSON - JavaScript Object Notation', 'tablepress' );
|
85 |
$this->import_formats['xls'] = __( 'XLS - Microsoft Excel 97-2003 (experimental)', 'tablepress' );
|
86 |
-
$this->import_formats['xlsx'] = __( 'XLSX - Microsoft Excel 2007-
|
87 |
}
|
88 |
|
89 |
/**
|
@@ -364,7 +364,7 @@ class TablePress_Import {
|
|
364 |
}
|
365 |
|
366 |
/**
|
367 |
-
* Import Microsoft Excel 2007-
|
368 |
*
|
369 |
* @since 1.1.0
|
370 |
*/
|
@@ -375,7 +375,7 @@ class TablePress_Import {
|
|
375 |
if ( $xlsx_file ) {
|
376 |
$this->imported_table = array( 'data' => $xlsx_file->rows() );
|
377 |
} else {
|
378 |
-
$output = '<strong>' . __( 'The imported file contains errors:', 'tablepress' ) . '</strong><br /><br />' . SimpleXLSX::
|
379 |
wp_die( $output, 'Import Error', array( 'response' => 200, 'back_link' => true ) );
|
380 |
}
|
381 |
}
|
83 |
}
|
84 |
$this->import_formats['json'] = __( 'JSON - JavaScript Object Notation', 'tablepress' );
|
85 |
$this->import_formats['xls'] = __( 'XLS - Microsoft Excel 97-2003 (experimental)', 'tablepress' );
|
86 |
+
$this->import_formats['xlsx'] = __( 'XLSX - Microsoft Excel 2007-2019 (experimental)', 'tablepress' );
|
87 |
}
|
88 |
|
89 |
/**
|
364 |
}
|
365 |
|
366 |
/**
|
367 |
+
* Import Microsoft Excel 2007-2019 data.
|
368 |
*
|
369 |
* @since 1.1.0
|
370 |
*/
|
375 |
if ( $xlsx_file ) {
|
376 |
$this->imported_table = array( 'data' => $xlsx_file->rows() );
|
377 |
} else {
|
378 |
+
$output = '<strong>' . __( 'The imported file contains errors:', 'tablepress' ) . '</strong><br /><br />' . SimpleXLSX::parseError() . '<br />';
|
379 |
wp_die( $output, 'Import Error', array( 'response' => 200, 'back_link' => true ) );
|
380 |
}
|
381 |
}
|
classes/class-render.php
CHANGED
@@ -476,7 +476,7 @@ class TablePress_Render {
|
|
476 |
$css_classes = apply_filters( 'tablepress_table_css_classes', $css_classes, $this->table['id'] );
|
477 |
// $css_classes might contain several classes in one array entry.
|
478 |
$css_classes = explode( ' ', implode( ' ', $css_classes ) );
|
479 |
-
$css_classes = array_map( '
|
480 |
$css_classes = array_unique( $css_classes );
|
481 |
$css_classes = trim( implode( ' ', $css_classes ) );
|
482 |
if ( ! empty( $css_classes ) ) {
|
@@ -520,7 +520,7 @@ class TablePress_Render {
|
|
520 |
$table_attributes = $this->_attributes_array_to_string( $table_attributes );
|
521 |
|
522 |
$output .= "\n<table{$table_attributes}>\n";
|
523 |
-
$output .= $caption . $colgroup . $thead . $
|
524 |
$output .= "</table>\n";
|
525 |
|
526 |
// name/description below table (HTML already generated above).
|
476 |
$css_classes = apply_filters( 'tablepress_table_css_classes', $css_classes, $this->table['id'] );
|
477 |
// $css_classes might contain several classes in one array entry.
|
478 |
$css_classes = explode( ' ', implode( ' ', $css_classes ) );
|
479 |
+
$css_classes = array_map( array( 'TablePress', 'sanitize_css_class' ), $css_classes );
|
480 |
$css_classes = array_unique( $css_classes );
|
481 |
$css_classes = trim( implode( ' ', $css_classes ) );
|
482 |
if ( ! empty( $css_classes ) ) {
|
520 |
$table_attributes = $this->_attributes_array_to_string( $table_attributes );
|
521 |
|
522 |
$output .= "\n<table{$table_attributes}>\n";
|
523 |
+
$output .= $caption . $colgroup . $thead . $tbody . $tfoot;
|
524 |
$output .= "</table>\n";
|
525 |
|
526 |
// name/description below table (HTML already generated above).
|
classes/class-tablepress.php
CHANGED
@@ -26,7 +26,7 @@ abstract class TablePress {
|
|
26 |
* @since 1.0.0
|
27 |
* @const string
|
28 |
*/
|
29 |
-
const version = '1.
|
30 |
|
31 |
/**
|
32 |
* TablePress internal plugin version ("options scheme" version).
|
@@ -36,7 +36,7 @@ abstract class TablePress {
|
|
36 |
* @since 1.0.0
|
37 |
* @const int
|
38 |
*/
|
39 |
-
const db_version =
|
40 |
|
41 |
/**
|
42 |
* TablePress "table scheme" (data format structure) version.
|
@@ -340,6 +340,8 @@ abstract class TablePress {
|
|
340 |
/**
|
341 |
* Get a nice looking date and time string from the mySQL format of datetime strings for output.
|
342 |
*
|
|
|
|
|
343 |
* @param string $datetime DateTime string in mySQL format or a Unix timestamp.
|
344 |
* @param string $type Optional. Type of $datetime, 'mysql' or 'timestamp'.
|
345 |
* @param string $separator Optional. Separator between date and time.
|
@@ -357,6 +359,8 @@ abstract class TablePress {
|
|
357 |
/**
|
358 |
* Get the name from a WP user ID (used to store information on last editor of a table).
|
359 |
*
|
|
|
|
|
360 |
* @param int $user_id WP user ID.
|
361 |
* @return string Nickname of the WP user with the $user_id.
|
362 |
*/
|
@@ -365,6 +369,25 @@ abstract class TablePress {
|
|
365 |
return ( $user && isset( $user->display_name ) ) ? $user->display_name : sprintf( '<em>%s</em>', __( 'unknown', 'tablepress' ) );
|
366 |
}
|
367 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
368 |
/**
|
369 |
* Generate the action URL, to be used as a link within the plugin (e.g. in the submenu navigation or List of Tables).
|
370 |
*
|
26 |
* @since 1.0.0
|
27 |
* @const string
|
28 |
*/
|
29 |
+
const version = '1.11';
|
30 |
|
31 |
/**
|
32 |
* TablePress internal plugin version ("options scheme" version).
|
36 |
* @since 1.0.0
|
37 |
* @const int
|
38 |
*/
|
39 |
+
const db_version = 40;
|
40 |
|
41 |
/**
|
42 |
* TablePress "table scheme" (data format structure) version.
|
340 |
/**
|
341 |
* Get a nice looking date and time string from the mySQL format of datetime strings for output.
|
342 |
*
|
343 |
+
* @since 1.0.0
|
344 |
+
*
|
345 |
* @param string $datetime DateTime string in mySQL format or a Unix timestamp.
|
346 |
* @param string $type Optional. Type of $datetime, 'mysql' or 'timestamp'.
|
347 |
* @param string $separator Optional. Separator between date and time.
|
359 |
/**
|
360 |
* Get the name from a WP user ID (used to store information on last editor of a table).
|
361 |
*
|
362 |
+
* @since 1.0.0
|
363 |
+
*
|
364 |
* @param int $user_id WP user ID.
|
365 |
* @return string Nickname of the WP user with the $user_id.
|
366 |
*/
|
369 |
return ( $user && isset( $user->display_name ) ) ? $user->display_name : sprintf( '<em>%s</em>', __( 'unknown', 'tablepress' ) );
|
370 |
}
|
371 |
|
372 |
+
/**
|
373 |
+
* Sanitizes a CSS class to ensure it only contains valid characters.
|
374 |
+
*
|
375 |
+
* Strips the string down to A-Z, a-z, 0-9, :, _, -.
|
376 |
+
* This is an extension to WP's `sanitize_html_class()`, to also allow `:` which are used in some CSS frameworks.
|
377 |
+
*
|
378 |
+
* @since 1.11.0
|
379 |
+
*
|
380 |
+
* @param string $class The CSS class name to be sanitized.
|
381 |
+
* @return string The sanitized CSS class.
|
382 |
+
*/
|
383 |
+
public static function sanitize_css_class( $class ) {
|
384 |
+
// Strip out any %-encoded octets.
|
385 |
+
$sanitized_class = preg_replace( '|%[a-fA-F0-9][a-fA-F0-9]|', '', $class );
|
386 |
+
// Limit to A-Z, a-z, 0-9, ':', '_', and '-'.
|
387 |
+
$sanitized_class = preg_replace( '/[^A-Za-z0-9:_-]/', '', $sanitized_class );
|
388 |
+
return $sanitized_class;
|
389 |
+
}
|
390 |
+
|
391 |
/**
|
392 |
* Generate the action URL, to be used as a link within the plugin (e.g. in the submenu navigation or List of Tables).
|
393 |
*
|
classes/class-view.php
CHANGED
@@ -178,12 +178,19 @@ abstract class TablePress_View {
|
|
178 |
*
|
179 |
* @param string $text Text for the header message.
|
180 |
* @param string $class Optional. Additional CSS class for the header message.
|
|
|
181 |
*/
|
182 |
-
protected function add_header_message( $text, $class = 'notice-success' ) {
|
183 |
if ( ! stripos( $class, 'not-dismissible' ) ) {
|
184 |
$class .= ' is-dismissible';
|
185 |
}
|
186 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
}
|
188 |
|
189 |
/**
|
178 |
*
|
179 |
* @param string $text Text for the header message.
|
180 |
* @param string $class Optional. Additional CSS class for the header message.
|
181 |
+
* @param string $title Optional. Text for the header title.
|
182 |
*/
|
183 |
+
protected function add_header_message( $text, $class = 'notice-success', $title = '' ) {
|
184 |
if ( ! stripos( $class, 'not-dismissible' ) ) {
|
185 |
$class .= ' is-dismissible';
|
186 |
}
|
187 |
+
if ( ! empty( $title ) ) {
|
188 |
+
$title = "<h3>{$title}</h3>";
|
189 |
+
}
|
190 |
+
if ( ! empty( $text ) ) {
|
191 |
+
$text = "<p>{$text}</p>";
|
192 |
+
}
|
193 |
+
$this->header_messages[] = "<div class=\"notice {$class}\">{$title}{$text}</div>\n";
|
194 |
}
|
195 |
|
196 |
/**
|
controllers/controller-admin.php
CHANGED
@@ -1475,8 +1475,10 @@ class TablePress_Admin_Controller extends TablePress_Controller {
|
|
1475 |
wp_die( __( 'The table could not be loaded.', 'tablepress' ), __( 'Preview', 'tablepress' ) );
|
1476 |
}
|
1477 |
|
1478 |
-
// Sanitize all table data to remove unsafe HTML from the preview output.
|
1479 |
-
|
|
|
|
|
1480 |
|
1481 |
// Create a render class instance.
|
1482 |
$_render = TablePress::load_class( 'TablePress_Render', 'class-render.php', 'classes' );
|
1475 |
wp_die( __( 'The table could not be loaded.', 'tablepress' ), __( 'Preview', 'tablepress' ) );
|
1476 |
}
|
1477 |
|
1478 |
+
// Sanitize all table data to remove unsafe HTML from the preview output, if the user is not allowed to work with unfiltered HTML.
|
1479 |
+
if ( ! current_user_can( 'unfiltered_html' ) ) {
|
1480 |
+
$table = TablePress::$model_table->sanitize( $table );
|
1481 |
+
}
|
1482 |
|
1483 |
// Create a render class instance.
|
1484 |
$_render = TablePress::load_class( 'TablePress_Render', 'class-render.php', 'classes' );
|
controllers/controller-admin_ajax.php
CHANGED
@@ -240,8 +240,10 @@ class TablePress_Admin_AJAX_Controller extends TablePress_Controller {
|
|
240 |
$table['id'] = $table['new_id'];
|
241 |
}
|
242 |
|
243 |
-
// Sanitize all table data to remove unsafe HTML from the preview output.
|
244 |
-
|
|
|
|
|
245 |
|
246 |
// At this point, the table data is valid and sanitized and can be rendered.
|
247 |
$success = true;
|
240 |
$table['id'] = $table['new_id'];
|
241 |
}
|
242 |
|
243 |
+
// Sanitize all table data to remove unsafe HTML from the preview output, if the user is not allowed to work with unfiltered HTML.
|
244 |
+
if ( ! current_user_can( 'unfiltered_html' ) ) {
|
245 |
+
$table = TablePress::$model_table->sanitize( $table );
|
246 |
+
}
|
247 |
|
248 |
// At this point, the table data is valid and sanitized and can be rendered.
|
249 |
$success = true;
|
css/default-rtl.css
CHANGED
@@ -12,13 +12,11 @@
|
|
12 |
|
13 |
@font-face {
|
14 |
font-family: 'TablePress';
|
15 |
-
src: url(
|
16 |
-
|
17 |
-
url(data:application/x-font-woff;base64,d09GRgABAAAAAAXYAAwAAAAACXwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABHAAAABwAAAAcZInHOk9TLzIAAAE4AAAAPgAAAGB7NXPDY21hcAAAAXgAAABMAAABUvD45QVnYXNwAAABxAAAAAgAAAAIAAAAEGdseWYAAAHMAAABKQAAAgjYVHFyaGVhZAAAAvgAAAAvAAAANv2jaBNoaGVhAAADKAAAAB0AAAAkCk0F6GhtdHgAAANIAAAAIAAAACgoAADqbG9jYQAAA2gAAAAWAAAAFgJWAbxtYXhwAAADgAAAAB0AAAAgAE4AH25hbWUAAAOgAAAB3AAAA43ZugaUcG9zdAAABXwAAABZAAAAgeNVfAkAAAABAAAAAMwXcmMAAAAAy1XFoAAAAADNHI82eJxjYGbexjiBgZWBhaWHxZiBgaENQjMVM0SB+ThBQWVRMYPDh+APd9gY/gP5bAyMykCKEUmJAgMjAC56Ct8AAHicY2BgYGaAYBkGRgYQ8AHyGMF8FgYDIM0BhEwMDB9CPtz6cOf/fyAr+MN1EIt/A78evy5UFxgwsjHAuYxAPSB9KICRYdgDAL67D8kAAQAB//8AD3icXU/NTsJAEJ5ZFggxxmCbkiwHAzLTowlu4ejeyxPwCOBR7r3rE/geeubuG3i3TyGts12MtT18ndnd7w8QsvpdX/Q/IAboI9s1rpY3mMTDkcAVDuaqPD0RqRfaU05UGSxJhj2p5wDNUplqyjsZQT6EQ/2mc9GcyBIPReQOObPrkccHMZhgonMS3R1tiLCsDNFm8bgQF3W06ekgqqnN5Aa//D9nlrOgDeg09Aq4lK3RTiX16n621BBVLrIe2PQK09s2c4THyPIvF4TrAndwO5uHvhPUwOa7MNw8FsCtZfZDJBKB66BQhW58cRwHW09OVMEtI+3aOhEHX+E63crM2dh6X+WazMFLvf6F57OvAqiPGvo+87Tb+LrT4X9/7lT6bKXs9vsByDlkyAAAAHicY2BkYGAA4mO9Sxji+W2+MnCzM4DAWZl+bwT9fyuLN+tpIJeDgQkkCgAbqgoOAHicY2BkYGBj+HeXgYGdAQRYvBkYGVABFwA+hgJEAAAAeJxjZ4AAdiBmaWAwBeJSFhAbiJkaGByAGMwGADa+AxEAAAAAAAAAAAAqAFgAdgCUALIA0AEEAAB4nGNgZGBg4GKQYWBiAAEQycgAEnMA8xkABjEAbgAAAHicjZJBaxNBFMf/u0mbJoig5KC3QcRblt2tFCm9lEp701iKIHiZJLPJ0mSnzE5S8h38BB79Nn4ab94E/zN9JVB7MCEzv/3Pm/f+720ADPEbCe4/qXCCAV4Kp+jhrXAHGb4Ld/Ecv4T38Cx5I7yPQfJBuIdPyR/hAzxJa+E+Buk3Zku6fal8xwn9dIRTPMVr4Q6+4kS4S/Wn8B5eJanwPobJO+EefiRfhA/wIv0o3Mcw3YRyV9CYYAmDMRzXll9c6cnSjJ1pyZcU51gzRDMAl2a+XmrCOSwa+Lg7RhgolJxKzv2Yv8cSqwfZ7iILHGHEdcT7OfdDJreNP7dublSZ5epY7QwpMUCxOBoVozIvDh/v4mEx/JsE+MwQx+A6dhO8hA7y2EvwUjLEuLa2jSqyPFcsV/7H0MbxUFMOYwkhVSykODAb10U8OePTDbY8qel0QV3FO1PSvaUqDnh3p5LBB8WxxozqKnZ4TU1T9THfhJ3vsjTcw9M02s1ocWl0a5QzlXHKW+UXRp3Zm62r5wuvWjP1oenKunhS8YUo7/TMrLS7Vtp7V0/WMaSxvp6aNoP8FYKzU9zGOpbOTHidzqvTW9PaFZ/e0+QmtnJBatjAlqLeGHWhm9kWfwGPR6C4eJxjYGIAg/9VDFEM2AAXEDMyMDEyMTIzsjCyMrIxsjNy8CRnpJYV5efF56SmlfDCOEWZ6RklXMmJRakl8Sn55XkcEGZpAVQMpJgbwgQrZSnOLyoBACnGHqgAAAA=) format('woff'),
|
18 |
-
url(tablepress.ttf) format('truetype'),
|
19 |
-
url(tablepress.svg#TablePress) format('svg');
|
20 |
font-weight: normal;
|
21 |
font-style: normal;
|
|
|
22 |
}
|
23 |
|
24 |
/* Table description */
|
12 |
|
13 |
@font-face {
|
14 |
font-family: 'TablePress';
|
15 |
+
src: url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAAPUAA0AAAAACZAAAAN+AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4GYACCUhEICoQIgnILFgABNgIkAygEIAWGcgeBARv6B8iuBzK53oAhKg2KWDsrezjalSefocfD9/uZ575PSbYEqJHAIdo6tMDGdCprFIHd+F9r+rZE46O2iHBJfoAuxwW0yfgKS8KGVFE4dHX1gPmgVhzwhcJbReQ9RWXcraeutbmNHE7T7B1sex8stfMfnkvv0XsgUZrYO1hirXme9TnUkBvQ22RGX50VAr48H54Cn9b8GD73edAAhjboBpIQ6kKOhCz7GA8V5HfzyeA6h0mnrFTJnPjxC7KCrl9caqIUg0EAYACGDBn6YGCxeIE+EkwANTWJX/brZpNfyE5o/7r9uPZjS4tESbCTExLCjxOEbxGi2dQeNEAXUMMlvADkqSV0IHXtkQXNOnI2ctJpRIPt8+HjNivx3rlQYA8FqGwdCxF2aZrdJluMnaqFvy+yngVKbBcn0fSOd1xTpnW4HTkptV8Gi2kvCeUHC0BD+D0VKMIqXniZPJyPya9D7gT6DvUpwJER6avgKDsOfW9jU+YGc/ng6MhA3VSar3NdtvrD9WHZurKVKYOi0RwlY9500YSuWDE084F+jMinu4sTudD5yBTTozA9Horpmb+M3TwIBHempnzdpu1/raWypX0JND/ki4p71CQQlFqnAvkijABrVFIq5BdNJbFncoBOF03/h3IINPQRBxJCYDoAOnkRIDR0w0BSmYiBzDinAuQ6eROg0DEGY6DUiEUYqKyILwFq2qS9GKhrpFsykdeFLmDjknYG4jKbNeNyQ1zhCoP840pdYiqu8jTW4mp6pMXH1HVJp8wRmHmQKTKiUOBVSMHrlKuBlYidxkMgw6/bMoG5RD6qfs8yO8LVqFCFa8ELrcVLEqTaS7UG5aqVq1GlWi28k3rRgCjbiU+qqOItvDEqXjkvwF/dUF595jB8LSqqgwIWAWsRmcJJ5GsHbYUqVbirBi5IpRMxLso/i2oSA6ZYDoMFCiknI7ZkGacSVYUjlLSXyG8n08nOQcXTeyzU5ozbiGRQZRt0vu/TMoEV8RLI3DiBSiVzMtNKAPgErlwLoqiAY2fJ9UbRMU/0rz38UP5FQtH3i8V3KYSHYJdSYRnwW8XazUAUop3gQY19hkEH98OA2QQ6wg0S+FjtwOwdOvF5J2VXBBLQmo2EAxsIKVJkkUcRZVRRa7NrP+my6Ns8cKszHYJf+fPPLPTq5vFcmYKZNL+fn1CZDgoYecKZHwA=) format('woff2'),
|
16 |
+
url(tablepress.woff) format('woff');
|
|
|
|
|
|
|
17 |
font-weight: normal;
|
18 |
font-style: normal;
|
19 |
+
font-display: block;
|
20 |
}
|
21 |
|
22 |
/* Table description */
|
css/default-rtl.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
@font-face{font-family:TablePress;src:url(
|
1 |
+
@font-face{font-family:TablePress;src:url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAAPUAA0AAAAACZAAAAN+AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4GYACCUhEICoQIgnILFgABNgIkAygEIAWGcgeBARv6B8iuBzK53oAhKg2KWDsrezjalSefocfD9/uZ575PSbYEqJHAIdo6tMDGdCprFIHd+F9r+rZE46O2iHBJfoAuxwW0yfgKS8KGVFE4dHX1gPmgVhzwhcJbReQ9RWXcraeutbmNHE7T7B1sex8stfMfnkvv0XsgUZrYO1hirXme9TnUkBvQ22RGX50VAr48H54Cn9b8GD73edAAhjboBpIQ6kKOhCz7GA8V5HfzyeA6h0mnrFTJnPjxC7KCrl9caqIUg0EAYACGDBn6YGCxeIE+EkwANTWJX/brZpNfyE5o/7r9uPZjS4tESbCTExLCjxOEbxGi2dQeNEAXUMMlvADkqSV0IHXtkQXNOnI2ctJpRIPt8+HjNivx3rlQYA8FqGwdCxF2aZrdJluMnaqFvy+yngVKbBcn0fSOd1xTpnW4HTkptV8Gi2kvCeUHC0BD+D0VKMIqXniZPJyPya9D7gT6DvUpwJER6avgKDsOfW9jU+YGc/ng6MhA3VSar3NdtvrD9WHZurKVKYOi0RwlY9500YSuWDE084F+jMinu4sTudD5yBTTozA9Horpmb+M3TwIBHempnzdpu1/raWypX0JND/ki4p71CQQlFqnAvkijABrVFIq5BdNJbFncoBOF03/h3IINPQRBxJCYDoAOnkRIDR0w0BSmYiBzDinAuQ6eROg0DEGY6DUiEUYqKyILwFq2qS9GKhrpFsykdeFLmDjknYG4jKbNeNyQ1zhCoP840pdYiqu8jTW4mp6pMXH1HVJp8wRmHmQKTKiUOBVSMHrlKuBlYidxkMgw6/bMoG5RD6qfs8yO8LVqFCFa8ELrcVLEqTaS7UG5aqVq1GlWi28k3rRgCjbiU+qqOItvDEqXjkvwF/dUF595jB8LSqqgwIWAWsRmcJJ5GsHbYUqVbirBi5IpRMxLso/i2oSA6ZYDoMFCiknI7ZkGacSVYUjlLSXyG8n08nOQcXTeyzU5ozbiGRQZRt0vu/TMoEV8RLI3DiBSiVzMtNKAPgErlwLoqiAY2fJ9UbRMU/0rz38UP5FQtH3i8V3KYSHYJdSYRnwW8XazUAUop3gQY19hkEH98OA2QQ6wg0S+FjtwOwdOvF5J2VXBBLQmo2EAxsIKVJkkUcRZVRRa7NrP+my6Ns8cKszHYJf+fPPLPTq5vFcmYKZNL+fn1CZDgoYecKZHwA=) format('woff2'),url(tablepress.woff) format('woff');font-weight:400;font-style:normal;font-display:block}.tablepress-table-description{clear:both;display:block}.tablepress{border-collapse:collapse;border-spacing:0;width:100%;margin-bottom:1em;border:none}.tablepress td,.tablepress th{padding:8px;border:none;background:0 0;text-align:right;float:none!important}.tablepress tbody td{vertical-align:top}.tablepress tbody td,.tablepress tfoot th{border-top:1px solid #ddd}.tablepress tbody tr:first-child td{border-top:0}.tablepress thead th{border-bottom:1px solid #ddd}.tablepress tfoot th,.tablepress thead th{background-color:#d9edf7;font-weight:700;vertical-align:middle}.tablepress .odd td{background-color:#f9f9f9}.tablepress .even td{background-color:#fff}.tablepress .row-hover tr:hover td{background-color:#f3f3f3}.tablepress img{margin:0;padding:0;border:none;max-width:none}.dataTables_wrapper{clear:both;margin-bottom:1em}.dataTables_wrapper .tablepress{clear:both;margin:0!important}.dataTables_length{float:left;white-space:nowrap}.dataTables_filter{float:right;white-space:nowrap}.dataTables_wrapper .dataTables_filter input{margin-right:.5em}.dataTables_info{clear:both;float:left;margin:4px 0 0}.dataTables_paginate{float:right;margin:4px 0 0;direction:rtl}.dataTables_paginate a{color:#111!important;display:inline-block;outline:0;position:relative;text-decoration:underline;margin:0 5px}.dataTables_paginate a:first-child{margin-right:0}.dataTables_paginate a:last-child{margin-left:0}.paginate_button:hover{cursor:pointer;text-decoration:none}.paginate_button.disabled{color:#999!important;text-decoration:none;cursor:default}.paginate_button.current{font-weight:700;text-decoration:none;cursor:default}.dataTables_paginate.paging_simple{padding:0 15px}.paging_simple .paginate_button.next:after,.paging_simple .paginate_button.previous:before{text-align:right;font-family:TablePress;font-size:14px;font-weight:700;-webkit-font-smoothing:antialiased;content:"\f054";text-shadow:.1em .1em #666;position:absolute;top:0;right:-14px;bottom:0;left:auto;margin:auto;height:14px;width:14px;line-height:1}.paging_simple .paginate_button.next:after{text-align:left;content:"\f053";right:auto;left:-14px}.paginate_button:after,.paginate_button:before{color:#d9edf7}.paginate_button:hover:after,.paginate_button:hover:before{color:#049cdb}.paginate_button.disabled:after,.paginate_button.disabled:before{color:#f9f9f9}.dataTables_processing{display:none}.dataTables_scroll{clear:both}.dataTables_scrollBody{-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.tablepress .sorting,.tablepress .sorting_asc,.tablepress .sorting_desc{position:relative;padding-left:20px;cursor:pointer;outline:0}.tablepress .sorting:before,.tablepress .sorting_asc:before,.tablepress .sorting_desc:before{font-family:TablePress;font-weight:400;font-size:14px;-webkit-font-smoothing:antialiased;position:absolute;top:0;bottom:0;left:6px;right:auto;margin:auto;height:14px;line-height:1}.tablepress .sorting:before{content:"\f0dc"}.tablepress .sorting_asc:before{content:"\f0d8";padding:0 0 2px}.tablepress .sorting_desc:before{content:"\f0d7"}.tablepress .sorting:hover,.tablepress .sorting_asc,.tablepress .sorting_desc{background-color:#049cdb}.dataTables_scrollBody .tablepress thead th:before{content:""}.dataTables_wrapper:after{content:"";display:block;clear:both;visibility:hidden;line-height:0;height:0}.dataTables_wrapper label input,.dataTables_wrapper label select{display:inline;margin:2px;width:auto}
|
css/default.css
CHANGED
@@ -12,13 +12,11 @@
|
|
12 |
|
13 |
@font-face {
|
14 |
font-family: 'TablePress';
|
15 |
-
src: url(
|
16 |
-
|
17 |
-
url(data:application/x-font-woff;base64,d09GRgABAAAAAAXYAAwAAAAACXwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABHAAAABwAAAAcZInHOk9TLzIAAAE4AAAAPgAAAGB7NXPDY21hcAAAAXgAAABMAAABUvD45QVnYXNwAAABxAAAAAgAAAAIAAAAEGdseWYAAAHMAAABKQAAAgjYVHFyaGVhZAAAAvgAAAAvAAAANv2jaBNoaGVhAAADKAAAAB0AAAAkCk0F6GhtdHgAAANIAAAAIAAAACgoAADqbG9jYQAAA2gAAAAWAAAAFgJWAbxtYXhwAAADgAAAAB0AAAAgAE4AH25hbWUAAAOgAAAB3AAAA43ZugaUcG9zdAAABXwAAABZAAAAgeNVfAkAAAABAAAAAMwXcmMAAAAAy1XFoAAAAADNHI82eJxjYGbexjiBgZWBhaWHxZiBgaENQjMVM0SB+ThBQWVRMYPDh+APd9gY/gP5bAyMykCKEUmJAgMjAC56Ct8AAHicY2BgYGaAYBkGRgYQ8AHyGMF8FgYDIM0BhEwMDB9CPtz6cOf/fyAr+MN1EIt/A78evy5UFxgwsjHAuYxAPSB9KICRYdgDAL67D8kAAQAB//8AD3icXU/NTsJAEJ5ZFggxxmCbkiwHAzLTowlu4ejeyxPwCOBR7r3rE/geeubuG3i3TyGts12MtT18ndnd7w8QsvpdX/Q/IAboI9s1rpY3mMTDkcAVDuaqPD0RqRfaU05UGSxJhj2p5wDNUplqyjsZQT6EQ/2mc9GcyBIPReQOObPrkccHMZhgonMS3R1tiLCsDNFm8bgQF3W06ekgqqnN5Aa//D9nlrOgDeg09Aq4lK3RTiX16n621BBVLrIe2PQK09s2c4THyPIvF4TrAndwO5uHvhPUwOa7MNw8FsCtZfZDJBKB66BQhW58cRwHW09OVMEtI+3aOhEHX+E63crM2dh6X+WazMFLvf6F57OvAqiPGvo+87Tb+LrT4X9/7lT6bKXs9vsByDlkyAAAAHicY2BkYGAA4mO9Sxji+W2+MnCzM4DAWZl+bwT9fyuLN+tpIJeDgQkkCgAbqgoOAHicY2BkYGBj+HeXgYGdAQRYvBkYGVABFwA+hgJEAAAAeJxjZ4AAdiBmaWAwBeJSFhAbiJkaGByAGMwGADa+AxEAAAAAAAAAAAAqAFgAdgCUALIA0AEEAAB4nGNgZGBg4GKQYWBiAAEQycgAEnMA8xkABjEAbgAAAHicjZJBaxNBFMf/u0mbJoig5KC3QcRblt2tFCm9lEp701iKIHiZJLPJ0mSnzE5S8h38BB79Nn4ab94E/zN9JVB7MCEzv/3Pm/f+720ADPEbCe4/qXCCAV4Kp+jhrXAHGb4Ld/Ecv4T38Cx5I7yPQfJBuIdPyR/hAzxJa+E+Buk3Zku6fal8xwn9dIRTPMVr4Q6+4kS4S/Wn8B5eJanwPobJO+EefiRfhA/wIv0o3Mcw3YRyV9CYYAmDMRzXll9c6cnSjJ1pyZcU51gzRDMAl2a+XmrCOSwa+Lg7RhgolJxKzv2Yv8cSqwfZ7iILHGHEdcT7OfdDJreNP7dublSZ5epY7QwpMUCxOBoVozIvDh/v4mEx/JsE+MwQx+A6dhO8hA7y2EvwUjLEuLa2jSqyPFcsV/7H0MbxUFMOYwkhVSykODAb10U8OePTDbY8qel0QV3FO1PSvaUqDnh3p5LBB8WxxozqKnZ4TU1T9THfhJ3vsjTcw9M02s1ocWl0a5QzlXHKW+UXRp3Zm62r5wuvWjP1oenKunhS8YUo7/TMrLS7Vtp7V0/WMaSxvp6aNoP8FYKzU9zGOpbOTHidzqvTW9PaFZ/e0+QmtnJBatjAlqLeGHWhm9kWfwGPR6C4eJxjYGIAg/9VDFEM2AAXEDMyMDEyMTIzsjCyMrIxsjNy8CRnpJYV5efF56SmlfDCOEWZ6RklXMmJRakl8Sn55XkcEGZpAVQMpJgbwgQrZSnOLyoBACnGHqgAAAA=) format('woff'),
|
18 |
-
url(tablepress.ttf) format('truetype'),
|
19 |
-
url(tablepress.svg#TablePress) format('svg');
|
20 |
font-weight: normal;
|
21 |
font-style: normal;
|
|
|
22 |
}
|
23 |
|
24 |
/* Table description */
|
12 |
|
13 |
@font-face {
|
14 |
font-family: 'TablePress';
|
15 |
+
src: url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAAPUAA0AAAAACZAAAAN+AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4GYACCUhEICoQIgnILFgABNgIkAygEIAWGcgeBARv6B8iuBzK53oAhKg2KWDsrezjalSefocfD9/uZ575PSbYEqJHAIdo6tMDGdCprFIHd+F9r+rZE46O2iHBJfoAuxwW0yfgKS8KGVFE4dHX1gPmgVhzwhcJbReQ9RWXcraeutbmNHE7T7B1sex8stfMfnkvv0XsgUZrYO1hirXme9TnUkBvQ22RGX50VAr48H54Cn9b8GD73edAAhjboBpIQ6kKOhCz7GA8V5HfzyeA6h0mnrFTJnPjxC7KCrl9caqIUg0EAYACGDBn6YGCxeIE+EkwANTWJX/brZpNfyE5o/7r9uPZjS4tESbCTExLCjxOEbxGi2dQeNEAXUMMlvADkqSV0IHXtkQXNOnI2ctJpRIPt8+HjNivx3rlQYA8FqGwdCxF2aZrdJluMnaqFvy+yngVKbBcn0fSOd1xTpnW4HTkptV8Gi2kvCeUHC0BD+D0VKMIqXniZPJyPya9D7gT6DvUpwJER6avgKDsOfW9jU+YGc/ng6MhA3VSar3NdtvrD9WHZurKVKYOi0RwlY9500YSuWDE084F+jMinu4sTudD5yBTTozA9Horpmb+M3TwIBHempnzdpu1/raWypX0JND/ki4p71CQQlFqnAvkijABrVFIq5BdNJbFncoBOF03/h3IINPQRBxJCYDoAOnkRIDR0w0BSmYiBzDinAuQ6eROg0DEGY6DUiEUYqKyILwFq2qS9GKhrpFsykdeFLmDjknYG4jKbNeNyQ1zhCoP840pdYiqu8jTW4mp6pMXH1HVJp8wRmHmQKTKiUOBVSMHrlKuBlYidxkMgw6/bMoG5RD6qfs8yO8LVqFCFa8ELrcVLEqTaS7UG5aqVq1GlWi28k3rRgCjbiU+qqOItvDEqXjkvwF/dUF595jB8LSqqgwIWAWsRmcJJ5GsHbYUqVbirBi5IpRMxLso/i2oSA6ZYDoMFCiknI7ZkGacSVYUjlLSXyG8n08nOQcXTeyzU5ozbiGRQZRt0vu/TMoEV8RLI3DiBSiVzMtNKAPgErlwLoqiAY2fJ9UbRMU/0rz38UP5FQtH3i8V3KYSHYJdSYRnwW8XazUAUop3gQY19hkEH98OA2QQ6wg0S+FjtwOwdOvF5J2VXBBLQmo2EAxsIKVJkkUcRZVRRa7NrP+my6Ns8cKszHYJf+fPPLPTq5vFcmYKZNL+fn1CZDgoYecKZHwA=) format('woff2'),
|
16 |
+
url(tablepress.woff) format('woff');
|
|
|
|
|
|
|
17 |
font-weight: normal;
|
18 |
font-style: normal;
|
19 |
+
font-display: block;
|
20 |
}
|
21 |
|
22 |
/* Table description */
|
css/default.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
@font-face{font-family:TablePress;src:url(
|
1 |
+
@font-face{font-family:TablePress;src:url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAAPUAA0AAAAACZAAAAN+AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4GYACCUhEICoQIgnILFgABNgIkAygEIAWGcgeBARv6B8iuBzK53oAhKg2KWDsrezjalSefocfD9/uZ575PSbYEqJHAIdo6tMDGdCprFIHd+F9r+rZE46O2iHBJfoAuxwW0yfgKS8KGVFE4dHX1gPmgVhzwhcJbReQ9RWXcraeutbmNHE7T7B1sex8stfMfnkvv0XsgUZrYO1hirXme9TnUkBvQ22RGX50VAr48H54Cn9b8GD73edAAhjboBpIQ6kKOhCz7GA8V5HfzyeA6h0mnrFTJnPjxC7KCrl9caqIUg0EAYACGDBn6YGCxeIE+EkwANTWJX/brZpNfyE5o/7r9uPZjS4tESbCTExLCjxOEbxGi2dQeNEAXUMMlvADkqSV0IHXtkQXNOnI2ctJpRIPt8+HjNivx3rlQYA8FqGwdCxF2aZrdJluMnaqFvy+yngVKbBcn0fSOd1xTpnW4HTkptV8Gi2kvCeUHC0BD+D0VKMIqXniZPJyPya9D7gT6DvUpwJER6avgKDsOfW9jU+YGc/ng6MhA3VSar3NdtvrD9WHZurKVKYOi0RwlY9500YSuWDE084F+jMinu4sTudD5yBTTozA9Horpmb+M3TwIBHempnzdpu1/raWypX0JND/ki4p71CQQlFqnAvkijABrVFIq5BdNJbFncoBOF03/h3IINPQRBxJCYDoAOnkRIDR0w0BSmYiBzDinAuQ6eROg0DEGY6DUiEUYqKyILwFq2qS9GKhrpFsykdeFLmDjknYG4jKbNeNyQ1zhCoP840pdYiqu8jTW4mp6pMXH1HVJp8wRmHmQKTKiUOBVSMHrlKuBlYidxkMgw6/bMoG5RD6qfs8yO8LVqFCFa8ELrcVLEqTaS7UG5aqVq1GlWi28k3rRgCjbiU+qqOItvDEqXjkvwF/dUF595jB8LSqqgwIWAWsRmcJJ5GsHbYUqVbirBi5IpRMxLso/i2oSA6ZYDoMFCiknI7ZkGacSVYUjlLSXyG8n08nOQcXTeyzU5ozbiGRQZRt0vu/TMoEV8RLI3DiBSiVzMtNKAPgErlwLoqiAY2fJ9UbRMU/0rz38UP5FQtH3i8V3KYSHYJdSYRnwW8XazUAUop3gQY19hkEH98OA2QQ6wg0S+FjtwOwdOvF5J2VXBBLQmo2EAxsIKVJkkUcRZVRRa7NrP+my6Ns8cKszHYJf+fPPLPTq5vFcmYKZNL+fn1CZDgoYecKZHwA=) format('woff2'),url(tablepress.woff) format('woff');font-weight:400;font-style:normal;font-display:block}.tablepress-table-description{clear:both;display:block}.tablepress{border-collapse:collapse;border-spacing:0;width:100%;margin-bottom:1em;border:none}.tablepress td,.tablepress th{padding:8px;border:none;background:0 0;text-align:left;float:none!important}.tablepress tbody td{vertical-align:top}.tablepress tbody td,.tablepress tfoot th{border-top:1px solid #ddd}.tablepress tbody tr:first-child td{border-top:0}.tablepress thead th{border-bottom:1px solid #ddd}.tablepress tfoot th,.tablepress thead th{background-color:#d9edf7;font-weight:700;vertical-align:middle}.tablepress .odd td{background-color:#f9f9f9}.tablepress .even td{background-color:#fff}.tablepress .row-hover tr:hover td{background-color:#f3f3f3}.tablepress img{margin:0;padding:0;border:none;max-width:none}.dataTables_wrapper{clear:both;margin-bottom:1em}.dataTables_wrapper .tablepress{clear:both;margin:0!important}.dataTables_length{float:left;white-space:nowrap}.dataTables_filter{float:right;white-space:nowrap}.dataTables_wrapper .dataTables_filter input{margin-left:.5em}.dataTables_info{clear:both;float:left;margin:4px 0 0}.dataTables_paginate{float:right;margin:4px 0 0}.dataTables_paginate a{color:#111!important;display:inline-block;outline:0;position:relative;text-decoration:underline;margin:0 5px}.dataTables_paginate a:first-child{margin-left:0}.dataTables_paginate a:last-child{margin-right:0}.paginate_button:hover{cursor:pointer;text-decoration:none}.paginate_button.disabled{color:#999!important;text-decoration:none;cursor:default}.paginate_button.current{font-weight:700;text-decoration:none;cursor:default}.dataTables_paginate.paging_simple{padding:0 15px}.paging_simple .paginate_button.next:after,.paging_simple .paginate_button.previous:before{text-align:left;font-family:TablePress;font-size:14px;font-weight:700;-webkit-font-smoothing:antialiased;content:"\f053";text-shadow:.1em .1em #666;position:absolute;top:0;right:auto;bottom:0;left:-14px;margin:auto;height:14px;width:14px;line-height:1}.paging_simple .paginate_button.next:after{text-align:right;content:"\f054";left:auto}.paginate_button:after,.paginate_button:before{color:#d9edf7}.paginate_button:hover:after,.paginate_button:hover:before{color:#049cdb}.paginate_button.disabled:after,.paginate_button.disabled:before{color:#f9f9f9}.dataTables_processing{display:none}.dataTables_scroll{clear:both}.dataTables_scrollBody{-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.tablepress .sorting,.tablepress .sorting_asc,.tablepress .sorting_desc{position:relative;padding-right:20px;cursor:pointer;outline:0}.tablepress .sorting:after,.tablepress .sorting_asc:after,.tablepress .sorting_desc:after{font-family:TablePress;font-weight:400;font-size:14px;-webkit-font-smoothing:antialiased;position:absolute;top:0;bottom:0;left:auto;right:6px;margin:auto;height:14px;line-height:1}.tablepress .sorting:after{content:"\f0dc"}.tablepress .sorting_asc:after{content:"\f0d8";padding:0 0 2px}.tablepress .sorting_desc:after{content:"\f0d7"}.tablepress .sorting:hover,.tablepress .sorting_asc,.tablepress .sorting_desc{background-color:#049cdb}.dataTables_scrollBody .tablepress thead th:after{content:""}.dataTables_wrapper:after{content:"";display:block;clear:both;visibility:hidden;line-height:0;height:0}.dataTables_wrapper label input,.dataTables_wrapper label select{display:inline;margin:2px;width:auto}
|
css/tablepress.eot
DELETED
Binary file
|
css/tablepress.svg
DELETED
@@ -1,40 +0,0 @@
|
|
1 |
-
<?xml version="1.0" standalone="no"?>
|
2 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
-
<svg>
|
4 |
-
<metadata>
|
5 |
-
Created by FontForge 20120702 at Wed Jan 16 18:09:38 2013
|
6 |
-
|
7 |
-
|
8 |
-
</metadata>
|
9 |
-
<defs>
|
10 |
-
<font id="TablePress" horiz-adv-x="1024" >
|
11 |
-
<font-face
|
12 |
-
font-family="TablePress"
|
13 |
-
font-weight="400"
|
14 |
-
font-stretch="normal"
|
15 |
-
units-per-em="1792"
|
16 |
-
panose-1="0 0 0 0 0 0 0 0 0 0"
|
17 |
-
ascent="1536"
|
18 |
-
descent="-256"
|
19 |
-
bbox="0 -75 1099 1483"
|
20 |
-
underline-thickness="90"
|
21 |
-
underline-position="-89"
|
22 |
-
unicode-range="U+0020-F519"
|
23 |
-
/>
|
24 |
-
<missing-glyph />
|
25 |
-
<glyph glyph-name="chevron_left" unicode="" horiz-adv-x="1152"
|
26 |
-
d="M742 -37l-652 651q-37 37 -37 90.5t37 90.5l652 651q37 37 90.5 37t90.5 -37l75 -75q37 -37 37 -90.5t-37 -90.5l-486 -486l486 -485q37 -38 37 -91t-37 -90l-75 -75q-37 -37 -90.5 -37t-90.5 37z" />
|
27 |
-
<glyph glyph-name="chevron_right" unicode="" horiz-adv-x="1152"
|
28 |
-
d="M1099 704q0 -52 -37 -91l-652 -651q-37 -37 -90 -37t-90 37l-76 75q-37 39 -37 91q0 53 37 90l486 486l-486 485q-37 39 -37 91q0 53 37 90l76 75q36 38 90 38t90 -38l652 -651q37 -37 37 -90z" />
|
29 |
-
<glyph glyph-name="caret_down" unicode=""
|
30 |
-
d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
|
31 |
-
<glyph glyph-name="caret_up" unicode=""
|
32 |
-
d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
|
33 |
-
<glyph glyph-name="caret_left" unicode="" horiz-adv-x="640"
|
34 |
-
d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
|
35 |
-
<glyph glyph-name="caret_right" unicode="" horiz-adv-x="640"
|
36 |
-
d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
|
37 |
-
<glyph glyph-name="sort" unicode=""
|
38 |
-
d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
|
39 |
-
</font>
|
40 |
-
</defs></svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/tablepress.ttf
DELETED
Binary file
|
css/tablepress.woff2
ADDED
Binary file
|
libraries/csstidy/data.inc.php
CHANGED
@@ -510,6 +510,14 @@ $data['csstidy']['all_properties']['marquee-loop'] = 'CSS3.0';
|
|
510 |
$data['csstidy']['all_properties']['marquee-play-count'] = 'CSS3.0';
|
511 |
$data['csstidy']['all_properties']['marquee-speed'] = 'CSS3.0';
|
512 |
$data['csstidy']['all_properties']['marquee-style'] = 'CSS3.0';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
513 |
$data['csstidy']['all_properties']['max-height'] = 'CSS2.0,CSS2.1,CSS3.0';
|
514 |
$data['csstidy']['all_properties']['max-width'] = 'CSS2.0,CSS2.1,CSS3.0';
|
515 |
$data['csstidy']['all_properties']['min-height'] = 'CSS2.0,CSS2.1,CSS3.0';
|
@@ -520,6 +528,8 @@ $data['csstidy']['all_properties']['nav-index'] = 'CSS3.0';
|
|
520 |
$data['csstidy']['all_properties']['nav-left'] = 'CSS3.0';
|
521 |
$data['csstidy']['all_properties']['nav-right'] = 'CSS3.0';
|
522 |
$data['csstidy']['all_properties']['nav-up'] = 'CSS3.0';
|
|
|
|
|
523 |
$data['csstidy']['all_properties']['opacity'] = 'CSS3.0';
|
524 |
$data['csstidy']['all_properties']['order'] = 'CSS3.0';
|
525 |
$data['csstidy']['all_properties']['orphans'] = 'CSS2.0,CSS2.1,CSS3.0';
|
@@ -569,6 +579,31 @@ $data['csstidy']['all_properties']['ruby-align'] = 'CSS3.0';
|
|
569 |
$data['csstidy']['all_properties']['ruby-overhang'] = 'CSS3.0';
|
570 |
$data['csstidy']['all_properties']['ruby-position'] = 'CSS3.0';
|
571 |
$data['csstidy']['all_properties']['ruby-span'] = 'CSS3.0';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
572 |
$data['csstidy']['all_properties']['size'] = 'CSS2.0,CSS3.0';
|
573 |
$data['csstidy']['all_properties']['speak'] = 'CSS2.0,CSS2.1,CSS3.0';
|
574 |
$data['csstidy']['all_properties']['speak-header'] = 'CSS2.0,CSS2.1,CSS3.0';
|
510 |
$data['csstidy']['all_properties']['marquee-play-count'] = 'CSS3.0';
|
511 |
$data['csstidy']['all_properties']['marquee-speed'] = 'CSS3.0';
|
512 |
$data['csstidy']['all_properties']['marquee-style'] = 'CSS3.0';
|
513 |
+
$data['csstidy']['all_properties']['mask-clip'] = 'CSS3.0';
|
514 |
+
$data['csstidy']['all_properties']['mask-composite'] = 'CSS3.0';
|
515 |
+
$data['csstidy']['all_properties']['mask-image'] = 'CSS3.0';
|
516 |
+
$data['csstidy']['all_properties']['mask-mode'] = 'CSS3.0';
|
517 |
+
$data['csstidy']['all_properties']['mask-origin'] = 'CSS3.0';
|
518 |
+
$data['csstidy']['all_properties']['mask-position'] = 'CSS3.0';
|
519 |
+
$data['csstidy']['all_properties']['mask-repeat'] = 'CSS3.0';
|
520 |
+
$data['csstidy']['all_properties']['mask-size'] = 'CSS3.0';
|
521 |
$data['csstidy']['all_properties']['max-height'] = 'CSS2.0,CSS2.1,CSS3.0';
|
522 |
$data['csstidy']['all_properties']['max-width'] = 'CSS2.0,CSS2.1,CSS3.0';
|
523 |
$data['csstidy']['all_properties']['min-height'] = 'CSS2.0,CSS2.1,CSS3.0';
|
528 |
$data['csstidy']['all_properties']['nav-left'] = 'CSS3.0';
|
529 |
$data['csstidy']['all_properties']['nav-right'] = 'CSS3.0';
|
530 |
$data['csstidy']['all_properties']['nav-up'] = 'CSS3.0';
|
531 |
+
$data['csstidy']['all_properties']['object-fit'] = 'CSS3.0';
|
532 |
+
$data['csstidy']['all_properties']['object-position'] = 'CSS3.0';
|
533 |
$data['csstidy']['all_properties']['opacity'] = 'CSS3.0';
|
534 |
$data['csstidy']['all_properties']['order'] = 'CSS3.0';
|
535 |
$data['csstidy']['all_properties']['orphans'] = 'CSS2.0,CSS2.1,CSS3.0';
|
579 |
$data['csstidy']['all_properties']['ruby-overhang'] = 'CSS3.0';
|
580 |
$data['csstidy']['all_properties']['ruby-position'] = 'CSS3.0';
|
581 |
$data['csstidy']['all_properties']['ruby-span'] = 'CSS3.0';
|
582 |
+
$data['csstidy']['all_properties']['scroll-behavior'] = 'CSS3.0';
|
583 |
+
$data['csstidy']['all_properties']['scroll-margin'] = 'CSS3.0';
|
584 |
+
$data['csstidy']['all_properties']['scroll-margin-block'] = 'CSS3.0';
|
585 |
+
$data['csstidy']['all_properties']['scroll-margin-block-end'] = 'CSS3.0';
|
586 |
+
$data['csstidy']['all_properties']['scroll-margin-block-start'] = 'CSS3.0';
|
587 |
+
$data['csstidy']['all_properties']['scroll-margin-bottom'] = 'CSS3.0';
|
588 |
+
$data['csstidy']['all_properties']['scroll-margin-inline'] = 'CSS3.0';
|
589 |
+
$data['csstidy']['all_properties']['scroll-margin-inline-end'] = 'CSS3.0';
|
590 |
+
$data['csstidy']['all_properties']['scroll-margin-inline-start'] = 'CSS3.0';
|
591 |
+
$data['csstidy']['all_properties']['scroll-margin-left'] = 'CSS3.0';
|
592 |
+
$data['csstidy']['all_properties']['scroll-margin-right'] = 'CSS3.0';
|
593 |
+
$data['csstidy']['all_properties']['scroll-margin-top'] = 'CSS3.0';
|
594 |
+
$data['csstidy']['all_properties']['scroll-padding'] = 'CSS3.0';
|
595 |
+
$data['csstidy']['all_properties']['scroll-padding-block'] = 'CSS3.0';
|
596 |
+
$data['csstidy']['all_properties']['scroll-padding-block-end'] = 'CSS3.0';
|
597 |
+
$data['csstidy']['all_properties']['scroll-padding-block-start'] = 'CSS3.0';
|
598 |
+
$data['csstidy']['all_properties']['scroll-padding-bottom'] = 'CSS3.0';
|
599 |
+
$data['csstidy']['all_properties']['scroll-padding-inline'] = 'CSS3.0';
|
600 |
+
$data['csstidy']['all_properties']['scroll-padding-inline-end'] = 'CSS3.0';
|
601 |
+
$data['csstidy']['all_properties']['scroll-padding-inline-start'] = 'CSS3.0';
|
602 |
+
$data['csstidy']['all_properties']['scroll-padding-left'] = 'CSS3.0';
|
603 |
+
$data['csstidy']['all_properties']['scroll-padding-right'] = 'CSS3.0';
|
604 |
+
$data['csstidy']['all_properties']['scroll-padding-top'] = 'CSS3.0';
|
605 |
+
$data['csstidy']['all_properties']['scroll-snap-align'] = 'CSS3.0';
|
606 |
+
$data['csstidy']['all_properties']['scroll-snap-stop'] = 'CSS3.0';
|
607 |
$data['csstidy']['all_properties']['size'] = 'CSS2.0,CSS3.0';
|
608 |
$data['csstidy']['all_properties']['speak'] = 'CSS2.0,CSS2.1,CSS3.0';
|
609 |
$data['csstidy']['all_properties']['speak-header'] = 'CSS2.0,CSS2.1,CSS3.0';
|
libraries/simplexlsx.class.php
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* Excel 2007-
|
4 |
*
|
5 |
-
* Based on SimpleXLSX v0.8.
|
6 |
* @link https://github.com/shuchkin/simplexlsx/
|
7 |
*
|
8 |
* @package TablePress
|
@@ -19,7 +19,7 @@ defined( 'ABSPATH' ) || die( 'No direct script access allowed!' );
|
|
19 |
/** @noinspection MultiAssignmentUsageInspection */
|
20 |
|
21 |
/**
|
22 |
-
* PHP Excel 2007-2013 Reader Class
|
23 |
* @package TablePress
|
24 |
* @subpackage Import
|
25 |
* @author Sergey Shuchkin, Tobias Bäthge
|
@@ -80,7 +80,6 @@ class SimpleXLSX {
|
|
80 |
);
|
81 |
public $cellFormats = array();
|
82 |
public $datetimeFormat = 'Y-m-d H:i:s';
|
83 |
-
public $skipEmptyRows = false;
|
84 |
public $debug;
|
85 |
|
86 |
/* @var SimpleXMLElement $workbook */
|
@@ -155,18 +154,34 @@ class SimpleXLSX {
|
|
155 |
$this->_parse();
|
156 |
}
|
157 |
}
|
158 |
-
public function parseFile( $filename ) {
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
return
|
163 |
}
|
164 |
-
public function
|
165 |
-
|
166 |
-
|
|
|
|
|
167 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
return false;
|
169 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
|
171 |
private function _unzip( $filename, $is_data = false ) {
|
172 |
|
@@ -436,10 +451,11 @@ class SimpleXLSX {
|
|
436 |
if ( isset( $v['@attributes']['numFmtId'] ) ) {
|
437 |
$v = $v['@attributes'];
|
438 |
$fid = (int) $v['numFmtId'];
|
439 |
-
|
440 |
-
|
441 |
-
} else if ( isset( $nf[ $fid ] ) ) {
|
442 |
$v['format'] = $nf[ $fid ];
|
|
|
|
|
443 |
}
|
444 |
}
|
445 |
$this->cellFormats[] = $v;
|
@@ -475,10 +491,12 @@ class SimpleXLSX {
|
|
475 |
$entry_xml = preg_replace('/<[a-zA-Z0-9]+:([^>]+)>/', '<$1>', $entry_xml); // fix namespaced openned tags
|
476 |
$entry_xml = preg_replace('/<\/[a-zA-Z0-9]+:([^>]+)>/', '</$1>', $entry_xml); // fix namespaced closed tags
|
477 |
|
478 |
-
if ( $this->skipEmptyRows && strpos($name, '/sheet') ) {
|
|
|
479 |
$entry_xml = preg_replace( '/<row[^>]+>\s*(<c[^\/]+\/>\s*)+<\/row>/', '', $entry_xml,-1, $cnt ); // remove empty rows
|
480 |
$entry_xml = preg_replace( '/<row[^\/>]*\/>/', '', $entry_xml, -1, $cnt2 );
|
481 |
-
|
|
|
482 |
$entry_xml = preg_replace('/<dimension[^\/]+\/>/', '', $entry_xml);
|
483 |
}
|
484 |
// file_put_contents( basename( $name ), $entry_xml ); // @to do comment!!!
|
@@ -539,28 +557,6 @@ class SimpleXLSX {
|
|
539 |
return implode( '', $value );
|
540 |
}
|
541 |
|
542 |
-
public static function parse( $filename, $is_data = false, $debug = false, $skip_empty_rows = false ) {
|
543 |
-
$xlsx = new self();
|
544 |
-
$xlsx->debug = $debug;
|
545 |
-
$xlsx->skipEmptyRows = $skip_empty_rows;
|
546 |
-
$is_data ? $xlsx->parseData( $filename ) : $xlsx->parseFile( $filename );
|
547 |
-
if ( $xlsx->success() ) {
|
548 |
-
return $xlsx;
|
549 |
-
}
|
550 |
-
self::parseError( $xlsx->error() );
|
551 |
-
self::parseErrno( $xlsx->errno() );
|
552 |
-
|
553 |
-
return false;
|
554 |
-
}
|
555 |
-
public static function parseError( $set = false ) {
|
556 |
-
static $error = false;
|
557 |
-
return $set ? $error = $set : $error;
|
558 |
-
}
|
559 |
-
public static function parseErrno( $set = false ) {
|
560 |
-
static $errno = false;
|
561 |
-
return $set ? $errno = $set : $errno;
|
562 |
-
}
|
563 |
-
|
564 |
public function success() {
|
565 |
return ! $this->error;
|
566 |
}
|
@@ -621,9 +617,7 @@ class SimpleXLSX {
|
|
621 |
$numCols = $dim[0];
|
622 |
$numRows = $dim[1];
|
623 |
|
624 |
-
/** @noinspection ForeachInvariantsInspection */
|
625 |
for ( $y = 0; $y < $numRows; $y++ ) {
|
626 |
-
/** @noinspection ForeachInvariantsInspection */
|
627 |
for ( $x = 0; $x < $numCols; $x++ ) {
|
628 |
// 0.6.8
|
629 |
$c = '';
|
@@ -842,8 +836,10 @@ class SimpleXLSX {
|
|
842 |
|
843 |
break;
|
844 |
case 'd':
|
845 |
-
// Value is a date
|
846 |
-
|
|
|
|
|
847 |
break;
|
848 |
|
849 |
|
@@ -871,12 +867,9 @@ class SimpleXLSX {
|
|
871 |
$t = $excelDateTime - $d;
|
872 |
|
873 |
if ( $this->date1904 ) {
|
874 |
-
/** @noinspection SummerTimeUnsafeTimeManipulationInspection */
|
875 |
$d += 1462;
|
876 |
}
|
877 |
|
878 |
-
|
879 |
-
/** @noinspection SummerTimeUnsafeTimeManipulationInspection */
|
880 |
$t = ( abs( $d ) > 0 ) ? ( $d - 25569 ) * 86400 + round( $t * 86400 ) : round( $t * 86400 );
|
881 |
|
882 |
return (int) $t;
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Excel 2007-2019/Office 365 Reader Class
|
4 |
*
|
5 |
+
* Based on SimpleXLSX v0.8.13 by Sergey Shuchkin.
|
6 |
* @link https://github.com/shuchkin/simplexlsx/
|
7 |
*
|
8 |
* @package TablePress
|
19 |
/** @noinspection MultiAssignmentUsageInspection */
|
20 |
|
21 |
/**
|
22 |
+
* PHP Excel 2007-2013/Office 365 Reader Class
|
23 |
* @package TablePress
|
24 |
* @subpackage Import
|
25 |
* @author Sergey Shuchkin, Tobias Bäthge
|
80 |
);
|
81 |
public $cellFormats = array();
|
82 |
public $datetimeFormat = 'Y-m-d H:i:s';
|
|
|
83 |
public $debug;
|
84 |
|
85 |
/* @var SimpleXMLElement $workbook */
|
154 |
$this->_parse();
|
155 |
}
|
156 |
}
|
157 |
+
public static function parseFile( $filename, $debug = false ) {
|
158 |
+
return self::parse( $filename, false, $debug );
|
159 |
+
}
|
160 |
+
public static function parseData( $data, $debug = false ) {
|
161 |
+
return self::parse( $data, true, $debug );
|
162 |
}
|
163 |
+
public static function parse( $filename, $is_data = false, $debug = false ) {
|
164 |
+
$xlsx = new self();
|
165 |
+
$xlsx->debug = $debug;
|
166 |
+
if ( $xlsx->_unzip($filename, $is_data )) {
|
167 |
+
$xlsx->_parse();
|
168 |
}
|
169 |
+
if ( $xlsx->success() ) {
|
170 |
+
return $xlsx;
|
171 |
+
}
|
172 |
+
self::parseError( $xlsx->error() );
|
173 |
+
self::parseErrno( $xlsx->errno() );
|
174 |
+
|
175 |
return false;
|
176 |
}
|
177 |
+
public static function parseError( $set = false ) {
|
178 |
+
static $error = false;
|
179 |
+
return $set ? $error = $set : $error;
|
180 |
+
}
|
181 |
+
public static function parseErrno( $set = false ) {
|
182 |
+
static $errno = false;
|
183 |
+
return $set ? $errno = $set : $errno;
|
184 |
+
}
|
185 |
|
186 |
private function _unzip( $filename, $is_data = false ) {
|
187 |
|
451 |
if ( isset( $v['@attributes']['numFmtId'] ) ) {
|
452 |
$v = $v['@attributes'];
|
453 |
$fid = (int) $v['numFmtId'];
|
454 |
+
// formats priority
|
455 |
+
if ( isset( $nf[ $fid ] ) ) {
|
|
|
456 |
$v['format'] = $nf[ $fid ];
|
457 |
+
} else if ( isset( self::$CF[ $fid ] ) ) {
|
458 |
+
$v['format'] = self::$CF[ $fid ];
|
459 |
}
|
460 |
}
|
461 |
$this->cellFormats[] = $v;
|
491 |
$entry_xml = preg_replace('/<[a-zA-Z0-9]+:([^>]+)>/', '<$1>', $entry_xml); // fix namespaced openned tags
|
492 |
$entry_xml = preg_replace('/<\/[a-zA-Z0-9]+:([^>]+)>/', '</$1>', $entry_xml); // fix namespaced closed tags
|
493 |
|
494 |
+
// if ( $this->skipEmptyRows && strpos($name, '/sheet') ) {
|
495 |
+
if ( strpos($name, '/sheet') ) { // dirty skip empty rows
|
496 |
$entry_xml = preg_replace( '/<row[^>]+>\s*(<c[^\/]+\/>\s*)+<\/row>/', '', $entry_xml,-1, $cnt ); // remove empty rows
|
497 |
$entry_xml = preg_replace( '/<row[^\/>]*\/>/', '', $entry_xml, -1, $cnt2 );
|
498 |
+
$entry_xml = preg_replace( '/<row[^>]*><\/row>/', '', $entry_xml, -1, $cnt3 );
|
499 |
+
if ( $cnt || $cnt2 || $cnt3 ) {
|
500 |
$entry_xml = preg_replace('/<dimension[^\/]+\/>/', '', $entry_xml);
|
501 |
}
|
502 |
// file_put_contents( basename( $name ), $entry_xml ); // @to do comment!!!
|
557 |
return implode( '', $value );
|
558 |
}
|
559 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
560 |
public function success() {
|
561 |
return ! $this->error;
|
562 |
}
|
617 |
$numCols = $dim[0];
|
618 |
$numRows = $dim[1];
|
619 |
|
|
|
620 |
for ( $y = 0; $y < $numRows; $y++ ) {
|
|
|
621 |
for ( $x = 0; $x < $numCols; $x++ ) {
|
622 |
// 0.6.8
|
623 |
$c = '';
|
836 |
|
837 |
break;
|
838 |
case 'd':
|
839 |
+
// Value is a date and non-empty
|
840 |
+
if ( ! empty($cell->v) ) {
|
841 |
+
$value = $this->datetimeFormat ? gmdate( $this->datetimeFormat, $this->unixstamp( (float) $cell->v ) ) : (float) $cell->v;
|
842 |
+
}
|
843 |
break;
|
844 |
|
845 |
|
867 |
$t = $excelDateTime - $d;
|
868 |
|
869 |
if ( $this->date1904 ) {
|
|
|
870 |
$d += 1462;
|
871 |
}
|
872 |
|
|
|
|
|
873 |
$t = ( abs( $d ) > 0 ) ? ( $d - 25569 ) * 86400 + round( $t * 86400 ) : round( $t * 86400 );
|
874 |
|
875 |
return (int) $t;
|
models/model-table.php
CHANGED
@@ -1013,7 +1013,7 @@ class TablePress_Table_Model extends TablePress_Model {
|
|
1013 |
// Specials check for certain options.
|
1014 |
if ( isset( $new_table['options']['extra_css_classes'] ) ) {
|
1015 |
$new_table['options']['extra_css_classes'] = explode( ' ', $new_table['options']['extra_css_classes'] );
|
1016 |
-
$new_table['options']['extra_css_classes'] = array_map( '
|
1017 |
$new_table['options']['extra_css_classes'] = array_unique( $new_table['options']['extra_css_classes'] );
|
1018 |
$new_table['options']['extra_css_classes'] = trim( implode( ' ', $new_table['options']['extra_css_classes'] ) );
|
1019 |
}
|
@@ -1158,70 +1158,6 @@ class TablePress_Table_Model extends TablePress_Model {
|
|
1158 |
}
|
1159 |
}
|
1160 |
|
1161 |
-
/**
|
1162 |
-
* Merge changes made for TablePress 0.6-beta:
|
1163 |
-
* Table Name/Table Description.
|
1164 |
-
*
|
1165 |
-
* @since 0.6-beta
|
1166 |
-
*/
|
1167 |
-
public function merge_table_options_tp06() {
|
1168 |
-
$table_post = $this->tables->get( 'table_post' );
|
1169 |
-
if ( empty( $table_post ) ) {
|
1170 |
-
return;
|
1171 |
-
}
|
1172 |
-
|
1173 |
-
// Prime the meta cache with the table options of all tables.
|
1174 |
-
update_meta_cache( 'post', array_values( $table_post ) );
|
1175 |
-
|
1176 |
-
// Go through all tables.
|
1177 |
-
foreach ( $table_post as $table_id => $post_id ) {
|
1178 |
-
$table_options = $this->_get_table_options( $post_id );
|
1179 |
-
|
1180 |
-
// Move "Print Name" to new format.
|
1181 |
-
$print_name = in_array( $table_options['print_name'], array( 'above', 'below' ), true );
|
1182 |
-
if ( $print_name ) {
|
1183 |
-
$table_options['print_name_position'] = $table_options['print_name'];
|
1184 |
-
}
|
1185 |
-
$table_options['print_name'] = $print_name;
|
1186 |
-
// Move "Print Description" to new format.
|
1187 |
-
$print_description = in_array( $table_options['print_description'], array( 'above', 'below' ), true );
|
1188 |
-
if ( $print_description ) {
|
1189 |
-
$table_options['print_description_position'] = $table_options['print_description'];
|
1190 |
-
}
|
1191 |
-
$table_options['print_description'] = $print_description;
|
1192 |
-
|
1193 |
-
$this->_update_table_options( $post_id, $table_options );
|
1194 |
-
}
|
1195 |
-
}
|
1196 |
-
|
1197 |
-
/**
|
1198 |
-
* Merge changes made for TablePress 0.8-beta:
|
1199 |
-
* Conversion of parameter "datatables_scrollX" to "datatables_scrollx".
|
1200 |
-
* Fixes a bug that affects about the first 600 downloaders of 0.8-beta.
|
1201 |
-
*
|
1202 |
-
* @since 0.8-beta
|
1203 |
-
*/
|
1204 |
-
public function merge_table_options_tp08() {
|
1205 |
-
$table_post = $this->tables->get( 'table_post' );
|
1206 |
-
if ( empty( $table_post ) ) {
|
1207 |
-
return;
|
1208 |
-
}
|
1209 |
-
|
1210 |
-
// Prime the meta cache with the table options of all tables.
|
1211 |
-
update_meta_cache( 'post', array_values( $table_post ) );
|
1212 |
-
|
1213 |
-
foreach ( $table_post as $table_id => $post_id ) {
|
1214 |
-
$table_options = $this->_get_table_options( $post_id );
|
1215 |
-
|
1216 |
-
// Convert parameter "datatables_scrollX" to "datatables_scrollx".
|
1217 |
-
if ( isset( $table_options['datatables_scrollX'] ) && ! isset( $table_options['datatables_scrollx'] ) ) {
|
1218 |
-
$table_options['datatables_scrollx'] = $table_options['datatables_scrollX'];
|
1219 |
-
}
|
1220 |
-
|
1221 |
-
$this->_update_table_options( $post_id, $table_options );
|
1222 |
-
}
|
1223 |
-
}
|
1224 |
-
|
1225 |
/**
|
1226 |
* Convert old parameter names to new ones in DataTables "Custom Commands".
|
1227 |
* DataTables 1.9 used Hungarian notation, while DataTables 1.10+ (used since TablePress 1.5) uses camelCase notation.
|
@@ -1259,9 +1195,7 @@ class TablePress_Table_Model extends TablePress_Model {
|
|
1259 |
/**
|
1260 |
* Invalidate all table output caches, e.g. after a plugin update.
|
1261 |
*
|
1262 |
-
*
|
1263 |
-
*
|
1264 |
-
* @since 0.9-RC
|
1265 |
*/
|
1266 |
public function invalidate_table_output_caches() {
|
1267 |
$table_post = $this->tables->get( 'table_post' );
|
@@ -1274,30 +1208,6 @@ class TablePress_Table_Model extends TablePress_Model {
|
|
1274 |
}
|
1275 |
}
|
1276 |
|
1277 |
-
/**
|
1278 |
-
* Invalidate all table output caches, e.g. after a plugin update.
|
1279 |
-
* For TablePress pre-0.9-RC updates.
|
1280 |
-
*
|
1281 |
-
* @since 0.9-RC
|
1282 |
-
*/
|
1283 |
-
public function invalidate_table_output_caches_tp09() {
|
1284 |
-
$table_post = $this->tables->get( 'table_post' );
|
1285 |
-
if ( empty( $table_post ) ) {
|
1286 |
-
return;
|
1287 |
-
}
|
1288 |
-
|
1289 |
-
foreach ( $table_post as $table_id => $post_id ) {
|
1290 |
-
$caches_list_transient_name = 'tablepress_c_' . md5( $table_id );
|
1291 |
-
$caches_list = get_transient( $caches_list_transient_name );
|
1292 |
-
if ( is_array( $caches_list ) ) {
|
1293 |
-
foreach ( $caches_list as $cache_transient_name => $dummy_value ) {
|
1294 |
-
delete_transient( $cache_transient_name );
|
1295 |
-
}
|
1296 |
-
}
|
1297 |
-
delete_transient( $caches_list_transient_name );
|
1298 |
-
}
|
1299 |
-
}
|
1300 |
-
|
1301 |
/**
|
1302 |
* Add mime type field to existing posts with the TablePress Custom Post Type,
|
1303 |
* so that other plugins know that they are not dealing with plain text.
|
1013 |
// Specials check for certain options.
|
1014 |
if ( isset( $new_table['options']['extra_css_classes'] ) ) {
|
1015 |
$new_table['options']['extra_css_classes'] = explode( ' ', $new_table['options']['extra_css_classes'] );
|
1016 |
+
$new_table['options']['extra_css_classes'] = array_map( array( 'TablePress', 'sanitize_css_class' ), $new_table['options']['extra_css_classes'] );
|
1017 |
$new_table['options']['extra_css_classes'] = array_unique( $new_table['options']['extra_css_classes'] );
|
1018 |
$new_table['options']['extra_css_classes'] = trim( implode( ' ', $new_table['options']['extra_css_classes'] ) );
|
1019 |
}
|
1158 |
}
|
1159 |
}
|
1160 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1161 |
/**
|
1162 |
* Convert old parameter names to new ones in DataTables "Custom Commands".
|
1163 |
* DataTables 1.9 used Hungarian notation, while DataTables 1.10+ (used since TablePress 1.5) uses camelCase notation.
|
1195 |
/**
|
1196 |
* Invalidate all table output caches, e.g. after a plugin update.
|
1197 |
*
|
1198 |
+
* @since 1.0.0
|
|
|
|
|
1199 |
*/
|
1200 |
public function invalidate_table_output_caches() {
|
1201 |
$table_post = $this->tables->get( 'table_post' );
|
1208 |
}
|
1209 |
}
|
1210 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1211 |
/**
|
1212 |
* Add mime type field to existing posts with the TablePress Custom Post Type,
|
1213 |
* so that other plugins know that they are not dealing with plain text.
|
readme.txt
CHANGED
@@ -4,8 +4,8 @@ Donate link: https://tablepress.org/donate/
|
|
4 |
Tags: table,spreadsheet,data,csv,excel,html,tables
|
5 |
Requires at least: 5.3
|
6 |
Requires PHP: 5.6.20
|
7 |
-
Tested up to: 5.
|
8 |
-
Stable tag: 1.
|
9 |
License: GPLv2
|
10 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -62,7 +62,7 @@ In short: WordPress 5.3 or higher, while the latest version of WordPress is alwa
|
|
62 |
= Languages and Localization? =
|
63 |
TablePress uses the ["Translate WordPress" platform](https://translate.wordpress.org/). Please see the sidebar on the TablePress page in the [WordPress Plugin Directory](https://wordpress.org/plugins/tablepress/) for available translations.
|
64 |
|
65 |
-
To make TablePress available in your language, go to the [TablePress translations page](https://translate.wordpress.org/projects/wp-plugins/tablepress), log in with a free wordpress.org account and start translating.
|
66 |
|
67 |
= Migration from WP-Table Reloaded =
|
68 |
Several years ago, TablePress has superseded the now discontinued WP-Table Reloaded plugin. If you are still using that, please see the [migration guide](https://tablepress.org/migration-from-wp-table-reloaded/) and switch to TablePress.
|
@@ -97,8 +97,18 @@ You may use it free of charge for any purpose.
|
|
97 |
|
98 |
Recent changes are shown below. For earlier changes, please see the [changelog history](https://tablepress.org/info/#changelog).
|
99 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
= Version 1.10 =
|
101 |
-
* Full compatibility with WordPress 5.3
|
102 |
* Enhancement: Allow importing with replacing/appending existing tables with ZIP archives of JSON files.
|
103 |
* Enhancement: Greatly enhance the code quality by removing old code and using modern features of PHP.
|
104 |
* Enhancement: Flush the caches of more caching plugins when the "Custom CSS" was modified.
|
@@ -111,15 +121,10 @@ Recent changes are shown below. For earlier changes, please see the [changelog h
|
|
111 |
* Removed the migration/import code for the discontinued WP-Table Reloaded plugin.
|
112 |
* TablePress 1.10 requires WordPress 5.3!
|
113 |
|
114 |
-
= Version 1.9.2 =
|
115 |
-
* Compatibility with WordPress 5.1
|
116 |
-
* Enhancement: Make the save process more robust against data corruption.
|
117 |
-
* Minor internal changes on CSS and typos in the documentation.
|
118 |
-
|
119 |
== Upgrade Notice ==
|
120 |
|
121 |
-
= 1.
|
122 |
This update is a stability, maintenance, and compatibility release. Updating is recommended.
|
123 |
|
124 |
-
= 1.
|
125 |
This update is a stability, maintenance, and compatibility release. Updating is recommended.
|
4 |
Tags: table,spreadsheet,data,csv,excel,html,tables
|
5 |
Requires at least: 5.3
|
6 |
Requires PHP: 5.6.20
|
7 |
+
Tested up to: 5.4
|
8 |
+
Stable tag: 1.11
|
9 |
License: GPLv2
|
10 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
62 |
= Languages and Localization? =
|
63 |
TablePress uses the ["Translate WordPress" platform](https://translate.wordpress.org/). Please see the sidebar on the TablePress page in the [WordPress Plugin Directory](https://wordpress.org/plugins/tablepress/) for available translations.
|
64 |
|
65 |
+
To make TablePress available in your language, go to the [TablePress translations page](https://translate.wordpress.org/projects/wp-plugins/tablepress/), log in with a free wordpress.org account and start translating.
|
66 |
|
67 |
= Migration from WP-Table Reloaded =
|
68 |
Several years ago, TablePress has superseded the now discontinued WP-Table Reloaded plugin. If you are still using that, please see the [migration guide](https://tablepress.org/migration-from-wp-table-reloaded/) and switch to TablePress.
|
97 |
|
98 |
Recent changes are shown below. For earlier changes, please see the [changelog history](https://tablepress.org/info/#changelog).
|
99 |
|
100 |
+
= Version 1.11 =
|
101 |
+
* Full compatibility with WordPress 5.4.
|
102 |
+
* Enhancement: Update list of allowed CSS features in "Custom CSS".
|
103 |
+
* Enhancement: Allow more complex "Extra CSS classes", to support more CSS frameworks.
|
104 |
+
* Enhancement: Modernize the arrow icons web font loading for faster loading.
|
105 |
+
* Enhancement: Support the table markup structure of HTML 5.1.
|
106 |
+
* Bugfix: Prevent fatal error due to misspelled function name during Excel import.
|
107 |
+
* Updated external libraries (SimpleXLSX, CSSTidy, Build tools).
|
108 |
+
* Some internal changes for better stability, translations, and documentation.
|
109 |
+
|
110 |
= Version 1.10 =
|
111 |
+
* Full compatibility with WordPress 5.3.
|
112 |
* Enhancement: Allow importing with replacing/appending existing tables with ZIP archives of JSON files.
|
113 |
* Enhancement: Greatly enhance the code quality by removing old code and using modern features of PHP.
|
114 |
* Enhancement: Flush the caches of more caching plugins when the "Custom CSS" was modified.
|
121 |
* Removed the migration/import code for the discontinued WP-Table Reloaded plugin.
|
122 |
* TablePress 1.10 requires WordPress 5.3!
|
123 |
|
|
|
|
|
|
|
|
|
|
|
124 |
== Upgrade Notice ==
|
125 |
|
126 |
+
= 1.11 =
|
127 |
This update is a stability, maintenance, and compatibility release. Updating is recommended.
|
128 |
|
129 |
+
= 1.10 =
|
130 |
This update is a stability, maintenance, and compatibility release. Updating is recommended.
|
tablepress.php
CHANGED
@@ -4,13 +4,13 @@
|
|
4 |
*
|
5 |
* @package TablePress
|
6 |
* @author Tobias Bäthge
|
7 |
-
* @version 1.
|
8 |
*
|
9 |
*
|
10 |
* Plugin Name: TablePress
|
11 |
* Plugin URI: https://tablepress.org/
|
12 |
* Description: Embed beautiful and feature-rich tables into your posts and pages, without having to write code.
|
13 |
-
* Version: 1.
|
14 |
* Requires at least: 5.3
|
15 |
* Requires PHP: 5.6.20
|
16 |
* Author: Tobias Bäthge
|
@@ -20,7 +20,7 @@
|
|
20 |
* Donate URI: https://tablepress.org/donate/
|
21 |
*
|
22 |
*
|
23 |
-
* Copyright 2012-
|
24 |
*
|
25 |
* TablePress is free software: you can redistribute it and/or modify
|
26 |
* it under the terms of the GNU General Public License, version 2, as published by
|
4 |
*
|
5 |
* @package TablePress
|
6 |
* @author Tobias Bäthge
|
7 |
+
* @version 1.11
|
8 |
*
|
9 |
*
|
10 |
* Plugin Name: TablePress
|
11 |
* Plugin URI: https://tablepress.org/
|
12 |
* Description: Embed beautiful and feature-rich tables into your posts and pages, without having to write code.
|
13 |
+
* Version: 1.11
|
14 |
* Requires at least: 5.3
|
15 |
* Requires PHP: 5.6.20
|
16 |
* Author: Tobias Bäthge
|
20 |
* Donate URI: https://tablepress.org/donate/
|
21 |
*
|
22 |
*
|
23 |
+
* Copyright 2012-2020 Tobias Bäthge
|
24 |
*
|
25 |
* TablePress is free software: you can redistribute it and/or modify
|
26 |
* it under the terms of the GNU General Public License, version 2, as published by
|
views/view-about.php
CHANGED
@@ -211,6 +211,11 @@ class TablePress_About_View extends TablePress_View {
|
|
211 |
<br />· <?php printf( __( 'the translators in the <a href="%s">Plugin Directory</a>,', 'tablepress' ), 'https://translate.wordpress.org/projects/wp-plugins/tablepress/' ); ?>
|
212 |
<br />· <?php _e( 'all donors, contributors, supporters, reviewers, and users of the plugin!', 'tablepress' ); ?>
|
213 |
</p>
|
|
|
|
|
|
|
|
|
|
|
214 |
<?php
|
215 |
}
|
216 |
|
211 |
<br />· <?php printf( __( 'the translators in the <a href="%s">Plugin Directory</a>,', 'tablepress' ), 'https://translate.wordpress.org/projects/wp-plugins/tablepress/' ); ?>
|
212 |
<br />· <?php _e( 'all donors, contributors, supporters, reviewers, and users of the plugin!', 'tablepress' ); ?>
|
213 |
</p>
|
214 |
+
<hr />
|
215 |
+
<p>
|
216 |
+
<a href="https://www.wpsecurityauditlog.com/?utm_source=tablepress&utm_medium=referral&utm_campaign=WSAL" target="_blank" rel="noopener noreferrer"><img src="<?php echo plugins_url( 'admin/img/wsal-logo.png', TABLEPRESS__FILE__ ); ?>" alt="<?php printf( esc_attr_x( 'This release of TablePress is supported by %s, the most comprehensive WordPress activity logs plugin.', 'WP Security Audit Log', 'tablepress' ), 'WP Security Audit Log' ); ?>" style="width:100%;height:auto;max-width:320px;display:block;margin:0 auto" /></a>
|
217 |
+
<?php printf( _x( 'This release of TablePress is supported by %s, the most comprehensive WordPress activity logs plugin.', 'WP Security Audit Log', 'tablepress' ), '<a href="https://www.wpsecurityauditlog.com/?utm_source=tablepress&utm_medium=referral&utm_campaign=WSAL" target="_blank" rel="noopener noreferrer">WP Security Audit Log</a>' ); ?>
|
218 |
+
</p>
|
219 |
<?php
|
220 |
}
|
221 |
|
views/view-edit.php
CHANGED
@@ -563,7 +563,7 @@ class TablePress_Edit_View extends TablePress_View {
|
|
563 |
</tr>
|
564 |
<tr class="top-border">
|
565 |
<th class="column-1" scope="row"><?php _e( 'Extra CSS Classes', 'tablepress' ); ?>:</th>
|
566 |
-
<td class="column-2"><label for="option-extra-css-classes"><input type="text" id="option-extra-css-classes" class="large-text" name="table[options][extra_css_classes]" value="<?php echo esc_attr( $options['extra_css_classes'] ); ?>" title="<?php esc_attr_e( 'This field can only contain letters, numbers, spaces, hyphens (-),
|
567 |
</tr>
|
568 |
</tbody>
|
569 |
</table>
|
563 |
</tr>
|
564 |
<tr class="top-border">
|
565 |
<th class="column-1" scope="row"><?php _e( 'Extra CSS Classes', 'tablepress' ); ?>:</th>
|
566 |
+
<td class="column-2"><label for="option-extra-css-classes"><input type="text" id="option-extra-css-classes" class="large-text" name="table[options][extra_css_classes]" value="<?php echo esc_attr( $options['extra_css_classes'] ); ?>" title="<?php esc_attr_e( 'This field can only contain letters, numbers, spaces, hyphens (-), underscores (_), and colons (:).', 'tablepress' ); ?>" pattern="[A-Za-z0-9- _:]*" /><p class="description"><?php echo __( 'Additional CSS classes for styling purposes can be entered here.', 'tablepress' ) . ' ' . sprintf( __( 'This is NOT the place to enter <a href="%s">Custom CSS</a> code!', 'tablepress' ), TablePress::url( array( 'action' => 'options' ) ) ); ?></p></label></td>
|
567 |
</tr>
|
568 |
</tbody>
|
569 |
</table>
|
views/view-list.php
CHANGED
@@ -50,47 +50,51 @@ class TablePress_List_View extends TablePress_View {
|
|
50 |
|
51 |
if ( $data['messages']['first_visit'] ) {
|
52 |
$this->add_header_message(
|
53 |
-
'
|
54 |
-
. __( '
|
55 |
-
. sprintf( __( 'If you encounter any questions or problems, please visit the <a href="%1$s">FAQ</a>, the <a href="%2$s">Documentation</a>, and the <a href="%3$s">Support</a> section on the <a href="%4$s">plugin website</a>.', 'tablepress' ), 'https://tablepress.org/faq/', 'https://tablepress.org/documentation/', 'https://tablepress.org/support/', 'https://tablepress.org/' ) . '<br /><br />'
|
56 |
. $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'first_visit', 'return' => 'list' ), __( 'Hide this message', 'tablepress' ) ),
|
57 |
-
'notice-info not-dismissible'
|
|
|
58 |
);
|
59 |
}
|
60 |
|
61 |
if ( $data['messages']['wp_table_reloaded_warning'] ) {
|
62 |
$this->add_header_message(
|
63 |
-
'<strong
|
64 |
-
. __( 'You have activated the plugin WP-Table Reloaded, which can not be used together with TablePress.', 'tablepress' ) . '<br />'
|
65 |
. __( 'It is strongly recommended that you switch from WP-Table Reloaded to TablePress, which not only fixes many problems, but also has more and better features than WP-Table Reloaded.', 'tablepress' ) . '<br />'
|
66 |
. sprintf( __( 'Please follow the <a href="%s">migration guide</a> to move your tables and then deactivate WP-Table Reloaded!', 'tablepress' ), 'https://tablepress.org/migration-from-wp-table-reloaded/' ),
|
67 |
-
'notice-error not-dismissible'
|
|
|
68 |
);
|
69 |
}
|
70 |
|
71 |
if ( $data['messages']['donation_message'] ) {
|
72 |
$this->add_header_message(
|
73 |
-
'<img alt="' . esc_attr__( 'Tobias Bäthge, developer of TablePress', 'tablepress' ) . '" src="https://secure.gravatar.com/avatar/50f1cff2e27a1f522b18ce229c057bc5?s=110" height="110" width="110" style="float:left;margin:
|
74 |
-
. __( 'Hi, my name is Tobias, I’m the developer of the TablePress plugin.', 'tablepress' ) . '
|
75 |
. __( 'Thanks for using it! You’ve installed TablePress over a month ago.', 'tablepress' ) . ' '
|
76 |
. sprintf( _n( 'If everything works and you are satisfied with the results of managing your %s table, isn’t that worth a coffee or two?', 'If everything works and you are satisfied with the results of managing your %s tables, isn’t that worth a coffee or two?', $data['table_count'], 'tablepress' ), esc_html( $data['table_count'] ) ) . '<br />'
|
77 |
-
. sprintf( __( '<a href="%s">Donations</a> help me to continue user support and development of this <em>free</em> software — things for which I spend countless hours of my free time! Thank you very much!', 'tablepress' ), 'https://tablepress.org/donate/' ) . '
|
78 |
-
. __( 'Sincerely, Tobias', 'tablepress' ) . '
|
79 |
. sprintf( '<a href="%s" target="_blank" rel="noopener noreferrer"><strong>%s</strong></a>', 'https://tablepress.org/donate/', __( 'Sure, I’ll buy you a coffee and support TablePress!', 'tablepress' ) ) . ' · '
|
80 |
. $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'donation_nag', 'return' => 'list', 'target' => 'already-donated' ), __( 'I already donated.', 'tablepress' ) ) . ' · '
|
81 |
. $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'donation_nag', 'return' => 'list', 'target' => 'maybe-later' ), __( 'No, thanks. Don’t ask again.', 'tablepress' ) ),
|
82 |
-
'notice-success not-dismissible'
|
|
|
83 |
);
|
84 |
}
|
85 |
|
86 |
if ( $data['messages']['plugin_update_message'] ) {
|
87 |
$this->add_header_message(
|
88 |
-
|
89 |
-
. sprintf( __( 'Please read the <a href="%s">release announcement</a> for more information.', 'tablepress' ), 'https://tablepress.org/news/' ) . ' '
|
90 |
. sprintf( __( 'If you like the new features and enhancements, <a href="%s">giving a donation</a> towards the further support and development of TablePress is recommended. Thank you!', 'tablepress' ), 'https://tablepress.org/donate/' )
|
91 |
-
. '
|
|
|
|
|
|
|
92 |
. $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'plugin_update', 'return' => 'list' ), __( 'Hide this message', 'tablepress' ) ),
|
93 |
-
'notice-info not-dismissible'
|
|
|
94 |
);
|
95 |
}
|
96 |
|
50 |
|
51 |
if ( $data['messages']['first_visit'] ) {
|
52 |
$this->add_header_message(
|
53 |
+
__( 'Thank you for using TablePress for the first time!', 'tablepress' ) . ' '
|
54 |
+
. sprintf( __( 'If you encounter any questions or problems, please visit the <a href="%1$s">FAQ</a>, the <a href="%2$s">Documentation</a>, and the <a href="%3$s">Support</a> section on the <a href="%4$s">plugin website</a>.', 'tablepress' ), 'https://tablepress.org/faq/', 'https://tablepress.org/documentation/', 'https://tablepress.org/support/', 'https://tablepress.org/' ) . '</p><p>'
|
|
|
55 |
. $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'first_visit', 'return' => 'list' ), __( 'Hide this message', 'tablepress' ) ),
|
56 |
+
'notice-info not-dismissible',
|
57 |
+
'<em>' . __( 'Welcome!', 'tablepress' ) . '</em>'
|
58 |
);
|
59 |
}
|
60 |
|
61 |
if ( $data['messages']['wp_table_reloaded_warning'] ) {
|
62 |
$this->add_header_message(
|
63 |
+
'<strong>' . __( 'You have activated the plugin WP-Table Reloaded, which can not be used together with TablePress.', 'tablepress' ) . '</strong><br />'
|
|
|
64 |
. __( 'It is strongly recommended that you switch from WP-Table Reloaded to TablePress, which not only fixes many problems, but also has more and better features than WP-Table Reloaded.', 'tablepress' ) . '<br />'
|
65 |
. sprintf( __( 'Please follow the <a href="%s">migration guide</a> to move your tables and then deactivate WP-Table Reloaded!', 'tablepress' ), 'https://tablepress.org/migration-from-wp-table-reloaded/' ),
|
66 |
+
'notice-error not-dismissible',
|
67 |
+
'<em>' . __( 'Attention!', 'tablepress' ) . '</em>'
|
68 |
);
|
69 |
}
|
70 |
|
71 |
if ( $data['messages']['donation_message'] ) {
|
72 |
$this->add_header_message(
|
73 |
+
'<img alt="' . esc_attr__( 'Tobias Bäthge, developer of TablePress', 'tablepress' ) . '" src="https://secure.gravatar.com/avatar/50f1cff2e27a1f522b18ce229c057bc5?s=110" height="110" width="110" style="float:left;margin:2px 10px 30px 0;" />'
|
74 |
+
. __( 'Hi, my name is Tobias, I’m the developer of the TablePress plugin.', 'tablepress' ) . '</p><p>'
|
75 |
. __( 'Thanks for using it! You’ve installed TablePress over a month ago.', 'tablepress' ) . ' '
|
76 |
. sprintf( _n( 'If everything works and you are satisfied with the results of managing your %s table, isn’t that worth a coffee or two?', 'If everything works and you are satisfied with the results of managing your %s tables, isn’t that worth a coffee or two?', $data['table_count'], 'tablepress' ), esc_html( $data['table_count'] ) ) . '<br />'
|
77 |
+
. sprintf( __( '<a href="%s">Donations</a> help me to continue user support and development of this <em>free</em> software — things for which I spend countless hours of my free time! Thank you very much!', 'tablepress' ), 'https://tablepress.org/donate/' ) . '</p><p>'
|
78 |
+
. __( 'Sincerely, Tobias', 'tablepress' ) . '</p><p style="font-size:14px">'
|
79 |
. sprintf( '<a href="%s" target="_blank" rel="noopener noreferrer"><strong>%s</strong></a>', 'https://tablepress.org/donate/', __( 'Sure, I’ll buy you a coffee and support TablePress!', 'tablepress' ) ) . ' · '
|
80 |
. $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'donation_nag', 'return' => 'list', 'target' => 'already-donated' ), __( 'I already donated.', 'tablepress' ) ) . ' · '
|
81 |
. $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'donation_nag', 'return' => 'list', 'target' => 'maybe-later' ), __( 'No, thanks. Don’t ask again.', 'tablepress' ) ),
|
82 |
+
'notice-success not-dismissible',
|
83 |
+
'<em>' . __( 'TablePress needs you!', 'tablepress' ) . '</em>'
|
84 |
);
|
85 |
}
|
86 |
|
87 |
if ( $data['messages']['plugin_update_message'] ) {
|
88 |
$this->add_header_message(
|
89 |
+
sprintf( __( 'Please read the <a href="%s">release announcement</a> for more information.', 'tablepress' ), 'https://tablepress.org/news/' ) . ' '
|
|
|
90 |
. sprintf( __( 'If you like the new features and enhancements, <a href="%s">giving a donation</a> towards the further support and development of TablePress is recommended. Thank you!', 'tablepress' ), 'https://tablepress.org/donate/' )
|
91 |
+
. '</p>'
|
92 |
+
. '<div style="margin:20px 0;height:45px"><a href="https://www.wpsecurityauditlog.com/?utm_source=tablepress&utm_medium=referral&utm_campaign=WSAL" target="_blank" rel="noopener noreferrer"><img src="' . plugins_url( 'admin/img/wsal-mark.png', TABLEPRESS__FILE__ ) . '" alt="' . sprintf( esc_attr_x( 'This release of TablePress is supported by %s, the most comprehensive WordPress activity logs plugin.', 'WP Security Audit Log', 'tablepress' ), 'WP Security Audit Log' ) . '" style="width:46px;height:45px;float:left;margin-right:10px" /></a>'
|
93 |
+
. '<div style="font-size:14px;font-weight:bold;max-width:530px;padding:5px 0;line-height:normal">' . sprintf( _x( 'This release of TablePress is supported by %s, the most comprehensive WordPress activity logs plugin.', 'WP Security Audit Log', 'tablepress' ), '<a href="https://www.wpsecurityauditlog.com/?utm_source=tablepress&utm_medium=referral&utm_campaign=WSAL" target="_blank" rel="noopener noreferrer">WP Security Audit Log</a>' ) . '</div></div>'
|
94 |
+
. '<p>'
|
95 |
. $this->ajax_link( array( 'action' => 'hide_message', 'item' => 'plugin_update', 'return' => 'list' ), __( 'Hide this message', 'tablepress' ) ),
|
96 |
+
'notice-info not-dismissible',
|
97 |
+
'<em>' . sprintf( __( 'Thank you for updating to TablePress %s!', 'tablepress' ), TablePress::version ) . '</em>'
|
98 |
);
|
99 |
}
|
100 |
|