},
allRowsSaved: function () {
return _.every(this.getValue().models,
- function (e) { return e.isReadyClean(); });
+ function (model) { return model.isReadyClean(); });
},
buttonTapped: function (inSender, inEvent) {
var editor = this.$.editableGridRow,
this.doExportAttr({ attr: gridbox.attr });
},
refreshLists: function () {
+ var collection = this.getValue();
this.$.aboveGridList.refresh();
this.$.belowGridList.refresh();
- this.$.exportButton.setDisabled(! this.allRowsSaved());
+ this.$.exportButton.setDisabled(! this.allRowsSaved() ||
+ ! collection.length);
},
reset: function () {
this.setEditableIndex(null);
this.$.summaryPanel.setValue(model);
}
- this.$.exportButton.setDisabled(! this.allRowsSaved());
+ this.$.exportButton.setDisabled(! this.allRowsSaved() ||
+ ! collection.length);
}
});
}());
it('checks for the export button', function () {
var exportButton = getExportButton(component);
assert.ok(exportButton);
- // TODO: need to populate before we can export
- // assert.doesNotThrow(exportButton.doTap());
- // TODO: find the generated file & check contents
});
it('creates line items for ' + component, function () {
gridRow,
startingRows = gridBox.liveModels().length;
- assert.isFalse(exportButton.disabled,
- 'export enabled for fresh data');
+ assert.equal(startingRows, 0, 'expect no data for new gridbox');
+ assert.isTrue(exportButton.disabled,
+ 'expect export disabled if no data');
gridBox.newItem();
gridRow = gridBox.$.editableGridRow;
assert.equal(gridBox.liveModels().length, startingRows += 1);
gridRow.bubble("onkeyup", {keyCode: 13});
assert.equal(gridBox.liveModels().length, startingRows += 1);
});
+
+ // TODO: populate, apply, & actually export
+ // generate some data
+ // assert.isTrue(exportButton.disabled,
+ // 'expect export disabled if no data');
+ // save the data
+ // assert.isFalse(exportButton.disabled,
+ // 'expect export disabled if no data');
+ // assert.doesNotThrow(exportButton.doTap());
+ // find the generated file & check contents
});
}
});