Reviewers: MikeSamuel,
Description:
Fixes 1083. Adds
HTMLTableElement: createCaption, deleteCaption, insertRow, deleteRow;
HTMLTableRowElement: insertCell, deleteCell
Please review this at http://codereview.appspot.com/98051
Affected files:
M src/com/google/caja/plugin/domita.js
Index: src/com/google/caja/plugin/domita.js
===================================================================
--- src/com/google/caja/plugin/domita.js (revision 3611)
+++ src/com/google/caja/plugin/domita.js (working copy)
@@ -2577,6 +2577,20 @@
return newValue;
};
+ function TameTableRowElement(node, editable) {
+ TameTableCompElement.call(this, node, editable, editable);
+ }
+ inertCtor(TameTableRowElement,
TameTableCompElement, 'HTMLTableRowElement');
+ TameTableRowElement.prototype.insertCell = function (index) {
+ if (!this.editable___) { throw new Error(NOT_EDITABLE); }
+ return defaultTameNode(this.node___.insertCell(0 + index),
this.editable___);
+ };
+ TameTableRowElement.prototype.deleteCell = function (index) {
+ if (!this.editable___) { throw new Error(NOT_EDITABLE); }
+ this.node___.deleteCell(0 + index);
+ };
+ ___.all2(___.grantTypedMethod, TameTableElement.prototype,
+ ['insertCell', 'deleteCell']);
function TameTableElement(node, editable) {
TameTableCompElement.call(this, node, editable);
@@ -2609,8 +2623,26 @@
if (!this.editable___) { throw new Error(NOT_EDITABLE); }
this.node___.deleteTFoot();
};
+ TameTableElement.prototype.createCaption = function () {
+ if (!this.editable___) { throw new Error(NOT_EDITABLE); }
+ return defaultTameNode(this.node___.createCaption(),
this.editable___);
+ };
+ TameTableElement.prototype.deleteCaption = function () {
+ if (!this.editable___) { throw new Error(NOT_EDITABLE); }
+ this.node___.deleteCaption();
+ };
+ TameTableElement.prototype.insertRow = function (index) {
+ if (!this.editable___) { throw new Error(NOT_EDITABLE); }
+ return defaultTameNode(this.node___.insertRow(0 + index),
this.editable___);
+ };
+ TameTableElement.prototype.deleteRow = function (index) {
+ if (!this.editable___) { throw new Error(NOT_EDITABLE); }
+ this.node___.deleteRow(0 + index);
+ };
+
___.all2(___.grantTypedMethod, TameTableElement.prototype,
- ['createTHead', 'deleteTHead','createTFoot', 'deleteTFoot']);
+ ['createTHead', 'deleteTHead','createTFoot', 'deleteTFoot',
+ 'createCaption', 'deleteCaption', 'insertRow', 'deleteRow']);
function tameEvent(event) {
if (event.tamed___) { return event.tamed___; }