From df9207f55ea549c7143aff2e610bb529671931d9 Mon Sep 17 00:00:00 2001 From: dongwoo Date: Mon, 16 Jan 2017 17:17:43 +0900 Subject: [PATCH] feat: add isUpdateOriginal option to request() --- src/js/addon/net.js | 24 ++++++++++++++---------- test/unit/js/addon/net.spec.js | 8 ++++++++ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/js/addon/net.js b/src/js/addon/net.js index 4c8027464..2c7bb6cf5 100644 --- a/src/js/addon/net.js +++ b/src/js/addon/net.js @@ -482,20 +482,24 @@ var Net = View.extend(/**@lends module:addon/net.prototype */{ * @param {String} [options.isOnlyChecked=true] - Whether the request param only contains checked rows * @param {String} [options.isOnlyModified=true] - Whether the request param only contains modified rows * @param {String} [options.isSkipConfirm=false] - Whether to show confirm dialog before sending request + * @param {String} [options.isUpdateOriginal=false] - Whether to update original data with current data */ request: function(requestType, options) { - var defaultOptions = { - url: this.api[requestType], - type: null, - hasDataParam: true, - isOnlyChecked: true, - isOnlyModified: true, - isSkipConfirm: false - }, - newOptions = $.extend(defaultOptions, options), - param = this._getRequestParam(requestType, newOptions); + var newOptions = _.extend({ + url: this.api[requestType], + type: null, + hasDataParam: true, + isOnlyChecked: true, + isOnlyModified: true, + isSkipConfirm: false, + isUpdateOriginal: false + }, options); + var param = this._getRequestParam(requestType, newOptions); if (param) { + if (newOptions.isUpdateOriginal) { + this.dataModel.setOriginalRowList(); + } this._ajax(param); } }, diff --git a/test/unit/js/addon/net.spec.js b/test/unit/js/addon/net.spec.js index b7b586e35..f251f2a59 100644 --- a/test/unit/js/addon/net.spec.js +++ b/test/unit/js/addon/net.spec.js @@ -475,6 +475,14 @@ describe('addon.net', function() { net.request('createData'); expect(net._ajax).not.toHaveBeenCalled(); }); + + it('call setOriginalRowList() if isUpdateOriginal is true', function() { + spyOn(net.dataModel, 'setOriginalRowList'); + net.request('updateData', { + isUpdateOriginal: true + }); + expect(net.dataModel.setOriginalRowList).toHaveBeenCalled(); + }); }); describe('request', function() {