template.svc.js 2.72 KB
// web service proxy for standard account
webservices.factory('templateService', ['$log', '$http', '$q', 'apiConfig', 'httpCacheService','$timeout','$rootScope','$interval',
    function ($log, $http, $q, apiConfig, httpCacheService, $timeout, $rootScope, $interval) {
    'use strict';
    var getTemplateJson = function (templateID) {
        //return $http.get('/template/getTemplateJson?templateID=' + templateID, apiConfig.create());
        var result = httpCacheService.get('/template/getTemplateJson?templateID=' + templateID);
        if (result.finishedCache) {
            return result;
        } else {
            return $http.get('/template/getTemplateJson?templateID=' + templateID, apiConfig.create());
        }
    };
       
    var initSpreadExcel = function (id, ssjsondata) {
      
        var deferred = $q.defer();
        var promise = deferred.promise;

        var spread = new GcSpread.Sheets.Spread(document.getElementById(id));
        spread.showVerticalScrollbar(true);
        spread.showHorizontalScrollbar(true);
        spread.scrollbarMaxAlign(true);
        spread.scrollbarShowMax(true);
        spread.tabNavigationVisible(true);
        spread.newTabVisible(false);
        spread.tabEditable(false);
        spread.tabStripVisible(false);
        spread.newTabVisible(false);
        spread.allowUndo(false);
        spread.allowUserResize(false);
        spread.canUserDragDrop(false);
        spread.canUserDragFill(false);
        spread.canUserEditFormula(false);

        spread.isPaintSuspended(true);
        spread.fromJSON(JSON.parse(ssjsondata));
        spread.isPaintSuspended(false);

        var sheet = spread.getActiveSheet();
        if (sheet != null) {
            sheet.setRowHeaderVisible(true);
            sheet.setColumnHeaderVisible(true);
            sheet.setGridlineOptions({ showVerticalGridline: false, showHorizontalGridline: false
        });
        }
                 
        deferred.resolve(spread);
        return promise;
    };

    var renderSpreadExcelSimple = function (id, templateID) {
        var deferred = $q.defer();
        var promise = deferred.promise;
        var spreadSheet;

        getTemplateJson(templateID).success(function (result) { 
            spreadSheet = initSpreadExcel(id, result.data === undefined ? result : result.data);

            deferred.resolve(spreadSheet);
        });
  
        return promise;
    };

    var setRowColName = function (id, rowCellInfo) {
        return $http.post('/template/rowColName/' + id, rowCellInfo, apiConfig.create());
    };

    return {
        getTemplateJson: getTemplateJson,
        renderSpreadExcelSimple: renderSpreadExcelSimple,
        initSpreadExcel: initSpreadExcel,
        setRowColName: setRowColName
    };
}]);