detailsController.js 4.91 KB
Newer Older
1
/*
Shwetha GS committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
18
'use strict';
Shwetha GS committed
19

20 21
angular.module('dgc.details').controller('detailsController', ['$window', '$scope', '$state', '$stateParams', 'detailsResource', 'schemaResource',
    function($window, $scope, $state, $stateParams, detailsResource, schemaResource) {
22

23
        $scope.tableName = false;
24
        $scope.isTable = false;
25
        $scope.isLineage = false;
26

27
        detailsResource.get({
28
            id: $stateParams.id
29

30
        }, function(data) {
31

32
            $scope.tableName = data.values.name;
33
            $scope.onActivate('io');
34
            $scope.isTags = (typeof data.traits !== 'undefined' && typeof data.traits === 'object') ? true : false;
35

36 37
            if (data && data.values) {
                var getName = function(aaa, attr) {
38
                    detailsResource.get({
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
                        id: attr.id
                    }, function(data1) {
                        if (data1.values && data1.values.name) {
                            attr.name = data1.values.name;
                        }
                    });
                };

                for (var aaa in data.values) {
                    if (typeof data.values[aaa] === 'object' && data.values[aaa] !== null && data.values[aaa].id && typeof data.values[aaa].id === 'string') {
                        data.values[aaa].name = data.values[aaa].id;
                        getName(aaa, data.values[aaa]);
                    }
                    if (typeof data.values[aaa] === 'object' && data.values[aaa] !== null && data.values[aaa].id && typeof data.values[aaa].id === 'object') {
                        data.values[aaa].id.name = data.values[aaa].id.id;
                        getName(aaa, data.values[aaa].id);
                    }
                    if (typeof data.values[aaa] === 'object' && angular.isArray(data.values[aaa]) === true) {
                        var arrObj = data.values[aaa];
58 59
                        for (var a = 0; a < arrObj.length; a++) {
                            if (typeof arrObj[a].id === 'string') {
60 61 62
                                arrObj[a].name = arrObj[a].id;
                                getName(arrObj[a], arrObj[a]);
                            }
63
                        }
64 65 66
                    }
                }
            }
67

68
            $scope.details = data;
69
            if (data && data.values && data.values.name && data.values.name !== "") {
70
                schemaResource.get({
71 72 73 74 75 76 77
                    tableName: data.values.name
                }, function(data1) {
                    if (data1.results) {
                        $scope.schema = data1.results.rows;
                        $scope.isSchema = (data1.results.rows && data1.results.rows.length > 0) ? true : false;
                        for (var t = 0; t < data1.results.rows.length; t++) {
                            if (data1.results.rows[t].$id$) {
78
                                $scope.isTraitId = true;
79 80
                            }
                            if (data1.results.rows[t].type) {
81 82 83
                                $scope.isHiveSchema = true;
                            }
                            if ($scope.isTraitId && $scope.isHiveSchema) {
84 85
                                break;
                            }
86
                        }
87 88 89
                    }
                });
            }
90
        });
Vishal Kadam committed
91

92 93 94
        $scope.$on('show_lineage', function() {
            $scope.isLineage = true;
        });
95

96
        $scope.isNumber = angular.isNumber;
97
        $scope.isObject = angular.isObject;
98
        $scope.isString = angular.isString;
99
        $scope.isArray = angular.isArray;
100 101 102
        $scope.onActivate = function tabActivate(tabname) {
            $scope.$broadcast('render-lineage', {
                type: tabname,
103
                tableName: $scope.tableName,
104
                guid: $stateParams.id
105 106
            });
        };
107

108 109 110 111 112 113
        $scope.openAddTagHome = function(traitId) {
            $state.go('addTagDetails', {
                tId: traitId
            });
        };

114
        $scope.goDetails = function(id) {
115 116 117 118 119
            $state.go("details", {
                id: id
            });
        };

120 121 122
        $scope.goBack = function() {
            $window.history.back();
        };
Shwetha GS committed
123
    }
124
]);