| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 | BWA.UserInfo = {    IsCenter: ko.observable(false),    IsLogin: ko.observable(false),    SiteId: ko.observable(),    UserId: ko.observable(),    Name: ko.observable(),    CompanyId: ko.observable(),    CompanyName: ko.observable(),    DepartmentId: ko.observable(),    DepartmentName: ko.observable(),    UserGroupName: ko.observable(), // 2016 07 27    PositionId: ko.observable(),    PositionName: ko.observable(),    BusinessFieldId: ko.observable(),    BusinessFieldName: ko.observable(), // 변경될 수 있으니 프로필 같은 곳으로 가면 갱신하자     MenuPermissions: ko.observableArray(),    // hcLee 2018 02 23    chartInfo: ko.observableArray(),};(function() {    'use strict';    var PERMISSION_SEARCH = 1,        PERMISSION_MODIFICATION = 2,        PERMISSION_DEPEND_BUSINESS_FIELD = 4    ;    var userInfo = BWA.UserInfo;    function handleHasPermissionFunc(permissionIndex) {                return function(menuViewId) {            if (this.isAdmin()) {                // Admin 계정은 업무분야와 상관없다.                if (permissionIndex === PERMISSION_DEPEND_BUSINESS_FIELD) {                    return false;                }                return true;            }            var menus = this.MenuPermissions();            return _.some(menus, function(x) {                var hasPermission = (x.MenuId === menuViewId) && ((x.MenuPermission & permissionIndex) > 0);//                console.log('{0} : {1}, {2}, {3}'.formati(x.MenuId, menuViewId, x.MenuPermission, ((x.MenuPermission & permissionIndex) > 0)));                return hasPermission;            });        }.bind(userInfo);    }        userInfo.hasPermissionOfSearch = handleHasPermissionFunc(PERMISSION_SEARCH);    userInfo.hasPermissionOfModification = handleHasPermissionFunc(PERMISSION_MODIFICATION);    userInfo.isDependBusinessField = handleHasPermissionFunc(PERMISSION_DEPEND_BUSINESS_FIELD);    userInfo.isAdmin = function() {        return this.UserId() === 'admin';    }.bind(userInfo);    // hcLee 2018 02 23    userInfo.GetChartInfo = function (ftype, chartid) {        /*        _.each(this.chartInfo(), function (chart) {            if (chart.FacilityTypeId() == ftype && chart.ChartId() == chartid) return chart;        });        return null;*/        var chartinfos = this.chartInfo();        for (var n = 0; n < chartinfos.length; n++) {            if (chartinfos[n].FacilityTypeId() == ftype && chartinfos[n].ChartId() == chartid) return chartinfos[n];        }        return null;    }.bind(userInfo);    // hcLee 2018 02 26    userInfo.GetChartInfo_Title = function (ftype, chartid) {        /*        _.each(this.chartInfo(), function (chart) {            if (chart.FacilityTypeId() == ftype && chart.ChartId() == chartid) return chart.Title();        });        return '';*/        var chartinfos = this.chartInfo();        for (var n = 0; n < chartinfos.length; n++) {            if (chartinfos[n].FacilityTypeId() == ftype && chartinfos[n].ChartId() == chartid) return chartinfos[n].Title();        }        return '';    }.bind(userInfo);    // hcLee 2018 02 27    userInfo.GetChartInfo_Count = function (ftype) {        var chartCount = 0;        var chartinfos = this.chartInfo();        for (var n = 0; n < maxLength; n++) {            if (chartinfos[n].FacilityTypeId() == ftype)                chartCount++;        }        return chartCount;    }.bind(userInfo);    userInfo.GetCharts = function (ftype) {        var chartinfos = this.chartInfo();        var charts = [];        for (var n = 0; n < chartinfos.length; n++) {            if (chartinfos[n].FacilityTypeId() == ftype)                charts.push(chartinfos[n]);            // hcLee 2018 04 23            if (charts.length >= 17) return charts;        }        return charts;    }.bind(userInfo);    userInfo.logout = function() {        this.IsCenter(false);        this.IsLogin(false);        this.SiteId(undefined);        this.UserId(undefined);        this.Name(undefined);        this.CompanyId(undefined);        this.CompanyName(undefined);        this.BusinessFieldId(undefined);        this.BusinessFieldName(undefined);        this.DepartmentId(undefined);        this.DepartmentName(undefined);        this.UserGroupName(undefined);        this.PositionId(undefined);        this.PositionName(undefined);        this.MenuPermissions(undefined);        // hcLee 2018 02 23        this.chartInfo(undefined);    }.bind(userInfo);})();
 |