123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- /* Adapter for jTable (http://jtable.org) to ASP.NET Boilerplate (http://aspnetboilerplate.com)
- * by Halil ibrahim Kalkan (http://halilibrahimkalkan.com).
- */
- (function ($) {
- if (!$ || !$.hik || !$.hik.jtable) {
- return;
- }
- //Reference to base object members
- var base = {
- _create: $.hik.jtable.prototype._create
- };
- //Extending jTable to adapt ASP.NET Boilerplate
- $.extend(true, $.hik.jtable.prototype, {
- //Override _create function to change actions according to Abp system
- _create: function () {
- var self = this;
- base._create.apply(self, arguments);
- if (self.options.actions.listAction) {
- self._adaptListActionforAbp();
- }
- if (self.options.actions.createAction) {
- self._adaptCreateActionforAbp();
- }
- if (self.options.actions.updateAction) {
- self._adaptUpdateActionforAbp();
- }
- if (self.options.actions.deleteAction) {
- self._adaptDeleteActionforAbp();
- }
- },
- //LIST ACTION ADAPTER
- _adaptListActionforAbp: function () {
- var self = this;
- var originalListAction = self.options.actions.listAction;
- self.options.actions.listAction = function (postData, jtParams) {
- return $.Deferred(function ($dfd) {
- var input = $.extend({}, postData, {
- skipCount: jtParams.jtStartIndex,
- maxResultCount: jtParams.jtPageSize,
- sorting: jtParams.jtSorting
- });
- originalListAction.method(input)
- .done(function (result) {
- $dfd.resolve({
- "Result": "OK",
- "Records": result.items || result[originalListAction.recordsField] || result,
- "TotalRecordCount": result.totalCount || result.length,
- originalResult: result
- });
- })
- .fail(function (error) {
- self._handlerForFailOnAbpRequest($dfd, error);
- });
- });
- };
- },
- //CREATE ACTION ADAPTER
- _adaptCreateActionforAbp: function () {
- var self = this;
- var originalCreateAction = self.options.actions.createAction;
- self.options.actions.createAction = function (postData) {
- return $.Deferred(function ($dfd) {
- var input = $.extend({}, postData);
- originalCreateAction.method(input)
- .done(function (result) {
- $dfd.resolve({
- "Result": "OK",
- "Record": originalCreateAction.recordField ? result[originalCreateAction.recordField] : result,
- originalResult: result
- });
- })
- .fail(function (error) {
- self._handlerForFailOnAbpRequest($dfd, error);
- });
- });
- };
- },
- //UPDATE ACTION ADAPTER
- _adaptUpdateActionforAbp: function () {
- var self = this;
- var originalUpdateAction = self.options.actions.updateAction;
- self.options.actions.updateAction = function (postData) {
- return $.Deferred(function ($dfd) {
- var input = $.extend({}, postData);
- originalUpdateAction.method(input)
- .done(function (result) {
- var jtableResult = {
- "Result": "OK",
- originalResult: result
- };
- if (originalUpdateAction.returnsRecord) {
- if (originalUpdateAction.recordField) {
- jtableResult.Record = result[originalUpdateAction.recordField];
- } else {
- jtableResult.Record = result;
- }
- }
- $dfd.resolve(jtableResult);
- })
- .fail(function (error) {
- self._handlerForFailOnAbpRequest($dfd, error);
- });
- });
- };
- },
- //DELETE ACTION ADAPTER
- _adaptDeleteActionforAbp: function () {
- var self = this;
- var originalDeleteAction = self.options.actions.deleteAction;
- self.options.actions.deleteAction = function (postData) {
- return $.Deferred(function ($dfd) {
- var input = $.extend({}, postData);
- originalDeleteAction.method(input)
- .done(function (result) {
- $dfd.resolve({
- "Result": "OK",
- originalResult: result
- });
- })
- .fail(function (error) {
- self._handlerForFailOnAbpRequest($dfd, error);
- });
- });
- };
- },
- _handlerForFailOnAbpRequest: function ($dfd, error) {
- if (error && error.message) {
- $dfd.resolve({
- Result: "ERROR",
- Message: error.message
- });
- } else {
- $dfd.reject(error);
- }
- },
- //Disable showing error messages
- _showError: function (message) {
- //do nothing since Abp handles error messages!
- }
- });
- //Overriding some defaults
- $.extend(true, $.hik.jtable.prototype.options, {
- pageList: "minimal"
- });
- })(jQuery);
|