Commit 440bd2ae by Hemanth Yamijala

ATLAS-802 New look UI to show Business Catalog functionalities (kevalbhatt18 via yhemanth)

parent a05107a0
...@@ -19,18 +19,13 @@ ...@@ -19,18 +19,13 @@
'use strict'; 'use strict';
var git = require('git-rev'); var git = require('git-rev');
var LIVERELOAD_PORT = 3010;
var lrSnippet = require('connect-livereload')({ port: LIVERELOAD_PORT });
var mountFolder = function(connect, dir) {
return connect.static(require('path').resolve(dir));
};
module.exports = function(grunt) { module.exports = function(grunt) {
var classPathSep = (process.platform === "win32") ? ';' : ':', var classPathSep = (process.platform === "win32") ? ';' : ':',
gitHash = '', gitHash = '',
pkg = grunt.file.readJSON('package.json'), pkg = grunt.file.readJSON('package.json'),
distPath = 'dist', distPath = 'dist',
publicPath = 'public', publicPath = 'public',
libPath = distPath + '/js/libs', libPath = distPath + '/js/libs',
isDashboardDirectory = grunt.file.isDir('public'), isDashboardDirectory = grunt.file.isDir('public'),
modulesPath = 'public/'; modulesPath = 'public/';
if (!isDashboardDirectory) { if (!isDashboardDirectory) {
...@@ -42,20 +37,17 @@ module.exports = function(grunt) { ...@@ -42,20 +37,17 @@ module.exports = function(grunt) {
grunt.initConfig({ grunt.initConfig({
watch: { watch: {
options: {
livereload: 35729
},
js: { js: {
files: ['public/**/*.js'], files: ['public/**/*.js'],
tasks: ['shell'] tasks: ['copy:dist']
}, },
html: { html: {
files: ['public/**/*.html'], files: ['public/**/*.html'],
tasks: ['copy:dist'] tasks: ['copy:dist']
}, },
css: { css: {
files: ['public/**/*.css'], files: ['public/**/*.scss', 'public/**/*.css'],
tasks: ['copy:dist'] tasks: ['sass', 'copy:dist']
}, },
image: { image: {
files: ['public/**/*.{ico,gif,png}'], files: ['public/**/*.{ico,gif,png}'],
...@@ -66,10 +58,7 @@ module.exports = function(grunt) { ...@@ -66,10 +58,7 @@ module.exports = function(grunt) {
server: { server: {
options: { options: {
port: 9999, port: 9999,
base: 'public', base: distPath,
keepalive: true,
//logger: 'dev',
//debug: true,
// change this to '0.0.0.0' to access the server from outside // change this to '0.0.0.0' to access the server from outside
hostname: '0.0.0.0', hostname: '0.0.0.0',
middleware: function(connect, options, defaultMiddleware) { middleware: function(connect, options, defaultMiddleware) {
...@@ -93,55 +82,6 @@ module.exports = function(grunt) { ...@@ -93,55 +82,6 @@ module.exports = function(grunt) {
//xforward: false //xforward: false
}], }],
}, },
livereload: {
options: {
middleware: function(connect) {
return [
require('grunt-connect-proxy/lib/utils').proxyRequest,
mountFolder(connect, 'public')
];
}
}
},
dist: {
options: {
middleware: function(connect) {
return [
mountFolder(connect, publicPath)
];
}
}
}
},
concurrent: {
tasks: ['watch', 'connect'],
options: {
logConcurrentOutput: true
}
},
dist: distPath + '/js/app.min.js',
modules: grunt.file.expand(
modulesPath + 'js/app.js',
modulesPath + 'js/config.js',
modulesPath + 'js/routes.js',
modulesPath + 'js/init.js'
).join(' '),
shell: {
min: {
command: ''
/*command: 'java ' +
'-cp ' + distPath + '/lib/closure-compiler/compiler.jar' + classPathSep +
'' + distPath + '/lib/ng-closure-runner/ngcompiler.jar ' +
'org.angularjs.closurerunner.NgClosureRunner ' +
'--compilation_level SIMPLE_OPTIMIZATIONS ' +
//'--formatting PRETTY_PRINT ' +
'--language_in ECMASCRIPT5_STRICT ' +
'--angular_pass ' +
'--manage_closure_dependencies ' +
'--js <%= modules %> ' +
'--js_output_file <%= dist %>'
*/
}
}, },
devUpdate: { devUpdate: {
main: { main: {
...@@ -186,7 +126,9 @@ module.exports = function(grunt) { ...@@ -186,7 +126,9 @@ module.exports = function(grunt) {
'd3': 'd3/d3.min.js', 'd3': 'd3/d3.min.js',
'd3/': 'd3-tip/index.js', 'd3/': 'd3-tip/index.js',
'noty/js': 'noty/js/noty/packaged/jquery.noty.packaged.min.js', 'noty/js': 'noty/js/noty/packaged/jquery.noty.packaged.min.js',
'dagre-d3': 'dagre-d3/dist/dagre-d3.min.js' 'dagre-d3': 'dagre-d3/dist/dagre-d3.min.js',
'jstree': 'jstree/dist/jstree.min.js',
'select2': 'select2/dist/js/select2.min.js'
} }
}, },
css: { css: {
...@@ -202,16 +144,23 @@ module.exports = function(grunt) { ...@@ -202,16 +144,23 @@ module.exports = function(grunt) {
'backgrid-paginator/css': 'backgrid-paginator/backgrid-paginator.css', 'backgrid-paginator/css': 'backgrid-paginator/backgrid-paginator.css',
'backgrid-sizeable-columns/css': 'backgrid-sizeable-columns/backgrid-sizeable-columns.css', 'backgrid-sizeable-columns/css': 'backgrid-sizeable-columns/backgrid-sizeable-columns.css',
'jquery-asBreadcrumbs/css': 'jquery-asBreadcrumbs/css/asBreadcrumbs.css', 'jquery-asBreadcrumbs/css': 'jquery-asBreadcrumbs/css/asBreadcrumbs.css',
'noty/css': 'noty/js/noty/packaged/jquery.noty.packaged.min.js' 'select2/css': 'select2/dist/css/select2.min.css'
} }
} }
}, },
sass: {
dist: {
files: {
'dist/css/style.css': 'dist/css/scss/style.scss'
}
}
},
copy: { copy: {
dist: { dist: {
expand: true, expand: true,
cwd: modulesPath, cwd: modulesPath,
src: ['**', 'js/**/*.js', '!modules/**/*.js'], src: ['**', '!**/*.sass'],
dest: distPath dest: distPath
} }
}, },
...@@ -225,6 +174,7 @@ module.exports = function(grunt) { ...@@ -225,6 +174,7 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-connect-proxy'); grunt.loadNpmTasks('grunt-connect-proxy');
grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-npmcopy'); grunt.loadNpmTasks('grunt-npmcopy');
...@@ -243,17 +193,19 @@ module.exports = function(grunt) { ...@@ -243,17 +193,19 @@ module.exports = function(grunt) {
'npmcopy:js', 'npmcopy:js',
'npmcopy:css', 'npmcopy:css',
'copy:dist', 'copy:dist',
'sass',
'configureProxies:server', 'configureProxies:server',
'connect:server', 'connect:server',
'concurrent', /* 'concurrent',*/
'watch', 'watch',
'connect:livereload' /*'connect:livereload'*/
]); ]);
grunt.registerTask('build', [ grunt.registerTask('build', [
'npmcopy:js', 'npmcopy:js',
'npmcopy:css', 'npmcopy:css',
'copy:dist' 'copy:dist',
'sass'
]); ]);
grunt.registerTask('minify', 'Minify the all js', function() { grunt.registerTask('minify', 'Minify the all js', function() {
......
...@@ -34,9 +34,11 @@ ...@@ -34,9 +34,11 @@
"jquery": "^2.2.2", "jquery": "^2.2.2",
"jquery-asBreadcrumbs": "git+https://github.com/amazingSurge/jquery-asBreadcrumbs.git", "jquery-asBreadcrumbs": "git+https://github.com/amazingSurge/jquery-asBreadcrumbs.git",
"jquery-ui": "^1.10.4", "jquery-ui": "^1.10.4",
"jstree": "^3.3.0",
"noty": "^2.3.8", "noty": "^2.3.8",
"requirejs": "^2.1.16", "requirejs": "^2.1.16",
"requirejs-text": "^2.0.12", "requirejs-text": "^2.0.12",
"select2": "^4.0.2",
"underscore": "^1.8.3" "underscore": "^1.8.3"
}, },
"devDependencies": { "devDependencies": {
...@@ -57,6 +59,7 @@ ...@@ -57,6 +59,7 @@
"grunt-nginx": "~0.2.2", "grunt-nginx": "~0.2.2",
"grunt-nodemon": "^0.4.0", "grunt-nodemon": "^0.4.0",
"grunt-npmcopy": "^0.1.0", "grunt-npmcopy": "^0.1.0",
"grunt-sass": "^1.1.0",
"grunt-shell": "^1.1.1", "grunt-shell": "^1.1.1",
"load-grunt-tasks": "^3.1.0", "load-grunt-tasks": "^3.1.0",
"proxit": "~0.6.4" "proxit": "~0.6.4"
......
...@@ -21,10 +21,10 @@ ...@@ -21,10 +21,10 @@
#sidebar-wrapper { #sidebar-wrapper {
z-index: 1000; z-index: 1000;
position: fixed; position: fixed;
left: 300px; left: 350px;
width: 0; width: 0;
height: 100%; height: 100%;
margin-left: -300px; margin-left: -350px;
overflow-y: auto; overflow-y: auto;
background: #323544; background: #323544;
-webkit-transition: all 0.5s ease; -webkit-transition: all 0.5s ease;
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
} }
#wrapper.toggled #sidebar-wrapper { #wrapper.toggled #sidebar-wrapper {
width: 300px;} width: 350px;}
#page-content-wrapper { #page-content-wrapper {
width: 100%; width: 100%;
...@@ -43,51 +43,40 @@ ...@@ -43,51 +43,40 @@
#wrapper.toggled #page-content-wrapper { #wrapper.toggled #page-content-wrapper {
position: absolute; position: absolute;
margin-right: -300px; margin-right: -350px;
} }
/* Sidebar Styles */ /* Sidebar Styles */
.sidebar-nav {
.sidebar-nav, .sidebar-components {
margin: 0; margin: 0;
padding: 0; padding: 0;
list-style: none; list-style: none;
} }
.sidebar-nav li { .sidebar-nav > li {
line-height: 50px; line-height: 50px;
padding: 0 20px; padding: 0 20px;
border-bottom: 1px #1c1e2a solid; border-bottom: 1px #1c1e2a solid;
} }
.sidebar-components li { .sidebar-nav > li a {
line-height: 40px;
padding: 0 20px;
}
.sidebar-components li:hover {
background-color: #1d1f2b;
}
.sidebar-nav li a ,
.sidebar-components li a {
display: block; display: block;
text-decoration: none; text-decoration: none;
color: #fff; color: #fff;
} }
.sidebar-nav li a:hover { .sidebar-nav > li a:hover {
text-decoration: none; text-decoration: none;
color: #fff; color: #fff;
} }
.sidebar-nav li a:active, .sidebar-nav > li a:active,
.sidebar-nav li a:focus { .sidebar-nav > li a:focus {
text-decoration: none; text-decoration: none;
} }
.sidebar-nav > .sidebar-brand { .sidebar-nav > .sidebar-brand {
font-size: 18px; font-size: 18px;
line-height: 35px; line-height: 60px;
padding: 10px;
} }
.sidebar-nav > .sidebar-brand a { .sidebar-nav > .sidebar-brand a {
...@@ -100,18 +89,7 @@ ...@@ -100,18 +89,7 @@
background: none; background: none;
} }
/* Extended Eleemnts */ /* Extended Elements */
.sidebar-actions a {
display: inline-block !important;
margin-right: 20px;
color: #359f89 !important;
}
.sidebar-actions a i {
color: #fff;
}
.sidebar-actions a:hover {
background-color: transparent;
}
.sidebar-input .input-group { .sidebar-input .input-group {
margin: 10px 0px; margin: 10px 0px;
} }
...@@ -131,24 +109,10 @@ ...@@ -131,24 +109,10 @@
.sidebar-input .form-control:focus + .input-group-addon { .sidebar-input .form-control:focus + .input-group-addon {
border-color: #66afe9; border-color: #66afe9;
} }
.sidebar-item:hover,
.sidebar-item.active {
background-color: #1d1f2b;
}
.component-badge {
float: right;
margin-top: 8px;
padding: 0px 10px 2px 10px;
background-color: #4990e2;
color: #fff;
font-size: 12px;
line-height: 22px;
border-radius: 12px;
}
@media(min-width:768px) { @media(min-width:768px) {
#wrapper { #wrapper {
padding-left: 300px; padding-left: 350px;
} }
#wrapper.toggled { #wrapper.toggled {
...@@ -156,7 +120,7 @@ ...@@ -156,7 +120,7 @@
} }
#sidebar-wrapper { #sidebar-wrapper {
width: 300px; } width: 350px; }
#wrapper.toggled #sidebar-wrapper { #wrapper.toggled #sidebar-wrapper {
width: 0; width: 0;
......
/*
* 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.
*/
body {
font-family: 'Raleway', sans-serif;
background-color: #E6E6E6;
/* color: #686868;*/
}
a {
color: #359f89;
}
header {
background-color: #fff;
border-bottom: 1px #e7e8ed solid;
}
textarea:focus,
button:focus {
outline: none !important;
}
textarea {
resize: none;
}
/* Bootstrap Extended */
.form-control:focus {
box-shadow: none;
}
.breadcrumb {
padding: 8px 25px;
background-color: transparent;
margin-bottom: 0px;
font-weight: 600;
line-height: 44px;
}
.breadcrumb>li+li:before {
padding: 0 10px;
font-family: FontAwesome;
color: #686868;
content: "\f105";
}
.well {
background-color: #f6f7fa;
border: 1px solid #e8e9ef;
}
/* Header */
.main-search .form-control {
border: none;
border-left: 1px #e7e8ed solid;
border-radius: 0px;
box-shadow: none;
height: 60px;
font-size: 18px;
font-style: italic;
-webkit-font-smoothing: antialiased;
}
.main-search .input-group-addon {
font-size: 20px;
color: #b5b9bc;
background: none;
border: none;
}
.page-title {
background-color: #fff;
padding: 50px;
}
.page-title h1 {
margin-top: 0px;
margin-bottom: 20px;
font-weight: 600;
-webkit-font-smoothing: antialiased;
}
.page-title h1 small {
position: relative;
bottom: 5px;
margin-left: 15px;
padding-left: 15px;
border-left: 1px #e8e9ef solid;
color: #b4b7bc;
font-size: 40%;
font-weight: 600;
text-transform: uppercase;
}
.page-title .sub-title {
margin-bottom: 40px;
}
/* Atlas Specific */
.atlast-tabbable {
margin: 50px 0px;
}
.atlast-tabbable .nav-tabs {
border-bottom: 1px solid #e8e9ee;
}
.atlast-tabbable .nav-tabs>li>a {
padding: 15px 30px;
text-transform: uppercase;
letter-spacing: 1px;
border-radius: 2px 2px 0 0;
}
.atlast-tabbable .nav-tabs>li.active>a,
.atlast-tabbable .nav-tabs>li.active>a:focus,
.atlast-tabbable .nav-tabs>li.active>a:hover {
border: 1px solid #e8e9ee;
border-bottom-color: transparent;
}
.atlast-tabbable .tab-content {
background-color: #fff;
padding: 35px;
border: 1px solid #e8e9ee;
border-top: none;
}
.btn-atlas {
padding: 10px 20px;
background-color: #fff;
color: #37bb9b;
border: 1px #37bb9b solid;
border-radius: 4px;
-webkit-transition: all .3s ease;
-moz-transition: all .3s ease;
transition: all .3s ease;
}
.btn-atlas:hover {
background-color: #37bb9b;
color: #fff;
}
.btn-tag {
color: #4a90e2;
border: 1px #4a90e2 solid;
background-color: #fff;
border-radius: 4px;
-webkit-transition: all .3s ease;
-moz-transition: all .3s ease;
transition: all .3s ease;
}
.btn-tag:hover {
color: #fff;
background-color: #4a90e2;
}
.breadcrumb > li {
display: inline-block;
}
.breadcrumb-dropdown + li:before,
.breadcrumb-ellipsis + li:before {
display: none;
}
.breadcrumb-menu {
display: none
}
.sidebar-item.active i {
display: block !important;
}
.arrowPosition {
left: -75px;
}
.dropdown-menu>li>a {
color: #359f89;
padding: 6px 20px;
}
...@@ -652,4 +652,4 @@ ...@@ -652,4 +652,4 @@
<glyph unicode="&#xf29e;" horiz-adv-x="1792" /> <glyph unicode="&#xf29e;" horiz-adv-x="1792" />
<glyph unicode="&#xf500;" horiz-adv-x="1792" /> <glyph unicode="&#xf500;" horiz-adv-x="1792" />
</font> </font>
</defs></svg> </defs></svg>
\ No newline at end of file \ No newline at end of file
...@@ -285,4 +285,4 @@ ...@@ -285,4 +285,4 @@
<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" /> <glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" /> <glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
</font> </font>
</defs></svg> </defs></svg>
\ No newline at end of file \ No newline at end of file
/**
* 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.
*/
#old header a.mainLogo {
color: #FFF;
font-size: 16px;
line-height: 40px;
padding: 2px 5px 0 15px;
text-shadow: 0 1px 0 #555;
}
#old footer.navbar-bottom {
background-color: #fafafa;
border-top: solid 4px #444;
position: absolute;
bottom: 0px;
width: 100%;
height: 60px;
}
#old .footer {
padding: 7px;
}
#old .tab a {
color: #000;
}
#old .backgrid th {
text-align: left;
}
#old .backgrid a,
#old table a {
color: #428bca;
}
.backgrid th {
text-transform: capitalize;
}
#old .fa-refresh {
color: #333;
}
#old .tagList a {
display: inline-block;
text-transform: capitalize;
background: #ADD8E6 !important;
color: #333 !important;
padding: 3px 6px;
margin: 0px 3px 3px 0px;
cursor: pointer;
float: left;
}
#old .tagList a i.fa[data-id="delete"] {
margin-left: 5px;
}
#old .scrollTagList .list-group-item {
word-break: break-all;
}
/*
#old .tagList a {
max-width: 100px;
display: list-item;
overflow: hidden;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
white-space: nowrap;
text-transform: capitalize;
float: left;
background: #ADD8E6 !important;
color: #000 !important;
margin: 4px !important;
padding-left: 7px !important;
padding-right: 7px !important;
cursor: pointer;
}*/
#new footer {
display: none;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:focus,
.nav-tabs > li.active > a:hover {
border-width: 0;
}
.nav-tabs > li > a {
border: none;
color: #666;
}
.nav-tabs > li.active > a,
.nav-tabs > li > a:hover {
border: none;
color: #359f89 !important;
}
.nav-tabs > li > a:after {
content: "";
background: #359f89;
height: 2px;
position: absolute;
width: 100%;
left: 0px;
top: -1px;
transition: all 250ms ease 0s;
transform: scale(0);
}
.nav-tabs > li > a:hover:after {
background: #359f89;
}
.nav-tabs > li.active > a:after,
.nav-tabs > li:hover > a:after {
transform: scale(1);
}
.tab-nav > li > a:after {
background: #21527d none repeat scroll 0% 0%;
color: #fff;
}
.tab-pane {
padding: 15px 0;
}
.sidebar-nav .dropdown-menu li {
border-bottom: none;
color: #323544;
}
.sidebar-nav .dropdown-menu li a:hover,
.sidebar-nav .dropdown-menu li a {
color: #323544;
}
.sidebar-nav .dropdown-menu li:hover {
background: #E4E4E4;
}
.sidebar-nav .dropdown-menu:after {
position: absolute;
top: -6px;
left: 10px;
display: inline-block;
border-right: 6px solid transparent;
border-bottom: 6px solid #ffffff;
border-left: 6px solid transparent;
content: '';
}
.breadcrumb-ellipsis {
color: #359f89;
cursor: pointer;
display: none !important;
}
.breadcrumb>li:last-child a {
color: #b4b7bc;
}
.atlas-tag .select2-selection__choice {
padding: 3px 6px !important;
background-color: #4a90e2 !important;
color: #fff !important;
font-size: 12px;
text-transform: uppercase;
border-radius: 4px;
}
.atlas-tag .select2-selection__choice__remove {
font-size: 17px;
line-height: 14px;
margin: 0px 6px !important;
color: #fff !important;
float: right;
}
.breadcrumb-dropdown .popover.bottom {
margin-top: 35px;
}
/* breadcrumb.scss */
.breadcrumb {
padding: 8px 25px;
background-color: transparent;
margin-bottom: 0;
font-weight: 600;
line-height: 44px;
> li {
display: inline-block;
+ li:before {
padding: 0 10px;
font-family: $font_2;
color: $color_ironside_gray_approx;
content: "\f105";
}
}
}
.breadcrumb-menu,
.breadcrumb-dropdown + li:before,
.breadcrumb-ellipsis + li:before {
display: none;
}
.dropdown .fa-ellipsis-h {
position: relative;
top: 4px;
}
.breadcrumb-ellipsis {
color: #359f89;
cursor: pointer;
display: none !important;
}
.breadcrumb-dropdown .popover.bottom {
margin-top: 45px;
}
.breadcrumb>li:last-child a {
color: #b4b7bc;
}
/* business-catlog.scss */
.main-search {
.form-control {
border: none;
border-left: 1px $color_mystic_approx solid;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 0;
//Instead of the line below you could use @include box-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
box-shadow: none;
height: 60px;
font-size: 18px;
font-style: italic;
}
.input-group-addon {
font-size: 20px;
color: $color_bombay_approx;
background: none;
border: none;
}
}
.page-title {
background-color: $white;
padding: 50px;
h1 {
margin-top: 0;
margin-bottom: 20px;
font-weight: 600;
small {
position: relative;
bottom: 5px;
margin-left: 15px;
padding-left: 15px;
border-left: 1px $color_mystic_approx solid;
color: $color_bombay_approx;
font-size: 40%;
font-weight: 600;
text-transform: uppercase;
}
}
.sub-title {
margin-bottom: 40px;
}
}
.arrowPosition {
left: -75px;
}
.sidebar-item.active i {
display: block !important;
}
.dropdown-menu > li > a {
color: $color_jungle_green_approx;
padding: 6px 20px;
}
.branchListParent {
.parentActive {
background: none;
}
.fa {
line-height: 40px;
}
}
ul[data-id=branchList] {
.fa {
line-height: 40px;
}
li {
padding-left: 50px;
}
}
.branchChildDiv {
padding-left: 15px;
}
.branchListParentInput {
padding-bottom: 18px;
display: list-item;
.form-control {
border-right: none;
//Instead of the line below you could use @include box-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
box-shadow: none;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 4px;
}
.input-group-addon {
background-color: $white;
}
}
.listTerm{
padding-bottom:5px;
}
\ No newline at end of file
/* form.scss */
.form-control {
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
background-color: $color_white_lilac_approx;
border: 1px $color_mystic_approx solid;
&:focus {
border-color: $color_bali_hai_approx;
outline: 0;
//Instead of the line below you could use @include box-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
box-shadow: inset 0 1px 1px $black_7_5, 0 0 2px $color_bali_hai_approx;
}
}
.sidebar-wrapper .form-control {
background-color: $white;
border: 1px $white solid;
}
.well {
background-color: $color_whisper_approx;
border: 1px solid $color_mystic_approx;
}
textarea {
resize: none;
&:focus {
outline: none !important;
}
}
button:focus {
outline: none !important;
}
.btn {
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 0;
}
.btn-primary {
color: $white;
background-color: $color_blue_bayoux_approx;
border-color: $color_blue_bayoux_approx;
&:hover {
color: $white;
background-color: $color_pickled_bluewood_approx;
border-color: $color_pickled_bluewood_approx;
}
}
.btn-success {
color: $white;
background-color: $color_jungle_green_approx;
border-color: $color_jungle_green_approx;
&:hover {
color: $white;
background-color: $color_jungle_green_approx;
border-color: $color_jungle_green_approx;
}
}
.btn-info {
color: $white;
background-color: $color_picton_blue_approx;
border-color: $color_picton_blue_approx;
&:hover {
color: $white;
background-color: $color_curious_blue_approx;
border-color: $color_curious_blue_approx;
}
}
.btn-warning {
color: $white;
background-color: $color_yellow_sea_approx;
border-color: $color_yellow_sea_approx;
&:hover {
color: $white;
background-color: $color_gamboge_approx;
border-color: $color_gamboge_approx;
}
}
.btn-danger {
color: $white;
background-color: $color_trinidad_approx;
border-color: $color_trinidad_approx;
&:hover {
color: $white;
background-color: $color_grenadier_approx;
border-color: $color_grenadier_approx;
}
}
.btn-atlas {
padding: 10px 20px;
background-color: $color_keppel_approx;
color: $white;
border: 1px $color_keppel_approx solid;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 4px;
//Instead of the line below you could use @include transition($transition-1, $transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10)
transition: all .3s ease;
margin:2px;
&.cancel {
background-color: $transparent;
color: $color_keppel_approx;
&:hover {
color: $color_keppel_approx;
background-color: $transparent;
}
&:focus {
background-color: $transparent;
color: $color_keppel_approx;
}
}
&:focus {
background-color: $color_keppel_approx;
color: $white;
}
&:hover {
color: $white;
}
}
.btn-tag {
color: $color_havelock_blue_approx;
border: 1px $color_havelock_blue_approx solid;
background-color: $white;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 4px;
//Instead of the line below you could use @include transition($transition-1, $transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10)
transition: all .3s ease;
&:hover {
color: $white;
background-color: $color_havelock_blue_approx;
}
}
.btn-taxanomyBack {
background-color: $transparent;
color: $color_keppel_approx;
margin-bottom: 10px;
&:hover {
color: $color_keppel_approx;
}
&:focus {
background-color: $transparent;
color: $color_keppel_approx;
}
}
.input-spacing {
padding-bottom: 10px!important;
}
.input-group-btn .glyphicon {
top: 2px;
}
.pagination > .active {
> a {
background-color: $color_curious_blue_approx;
border-color: $color_curious_blue_approx;
&:focus {
background-color: $color_curious_blue_approx;
border-color: $color_curious_blue_approx;
}
&:hover {
background-color: $color_curious_blue_approx;
border-color: $color_curious_blue_approx;
}
}
> span {
background-color: $color_curious_blue_approx;
border-color: $color_curious_blue_approx;
&:focus {
background-color: $color_curious_blue_approx;
border-color: $color_curious_blue_approx;
}
&:hover {
background-color: $color_curious_blue_approx;
border-color: $color_curious_blue_approx;
}
}
}
/* graph.scss */
/* .graph-bg svg {
background-image: linear-gradient(to right, $black -10px, rgba(0, 0, 0, 0) 1px), linear-gradient($black -10px, $color_cararra_approx 1px);
background-size: 10px 10px;
position: relative;
} */
.node {
cursor: pointer;
circle {
fill: $white;
stroke: $steel_blue;
stroke-width: 1.5px;
}
text {
font-size: 10px;
font-family: $font_1;
}
rect {
stroke: $color_mountain_mist_approx;
fill: $white;
stroke-width: 1.5px;
}
.label {
fill: $color_suva_gray_approx;
}
}
.overlay {}
.link {
fill: none;
stroke: $color_celeste_approx;
stroke-width: 1.5px;
}
.d3-tip {
line-height: 1;
font-weight: bold;
padding: 12px;
background: $black_80;
color: $white;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 2px;
&:after {
//Instead of the line below you could use @include box-sizing($bs)
box-sizing: border-box;
display: inline;
font-size: 10px;
width: 100%;
line-height: 1;
color: $black_80;
content: "\25BC";
position: absolute;
text-align: center;
}
&.n:after {
margin: -1px 0 0;
top: 100%;
left: 0;
}
}
g.type-TK > rect {
fill: $color_bright_turquoise_approx;
}
.edgePath path {
stroke: $black;
}
.zoomButtonGroup {
position: absolute;
top: 4px;
right: 5px;
}
/* loader.scss */
.fa-spin-custom {
animation: spin 1000ms infinite linear;
}
.glyphicon-spin {
animation: spin 1000ms infinite linear;
}
@-webkit-keyframes spin {
0% {
//Instead of the line below you could use @include transform($scale, $rotate, $transx, $transy, $skewx, $skewy, $originx, $originy)
transform: rotate(0deg);
}
100% {
//Instead of the line below you could use @include transform($scale, $rotate, $transx, $transy, $skewx, $skewy, $originx, $originy)
transform: rotate(359deg);
}
}
@keyframes spin {
0% {
//Instead of the line below you could use @include transform($scale, $rotate, $transx, $transy, $skewx, $skewy, $originx, $originy)
transform: rotate(0deg);
}
100% {
//Instead of the line below you could use @include transform($scale, $rotate, $transx, $transy, $skewx, $skewy, $originx, $originy)
transform: rotate(359deg);
}
}
.loader {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
text-align: center;
z-index: 9;
background: $white_80 $url_0 no-repeat center center;
}
.fontLoader {
top: 50%;
left: 50%;
position: absolute;
display: none;
}
.initialLoading {
display: block;
position: absolute;
margin-top: 30%;
right: 50%;
height: 60px;
}
/* login.scss */
//colors
.errorBox {
position: absolute;
right: 36px;
display: none;
top: 26px;
width: 251px;
.alert {
//Instead of the line below you could use @include box-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
box-shadow: 4px 3px 8px -2px $gray;
}
}
.close {
padding: 6px;
font-size: 15px;
}
.login-pane {
margin-top: 50px;
margin-top: 35%;
background: $color_tuna_approx;
color: $color_gallery_approx;
padding: 15px;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 5px;
h2 {
margin-bottom: 40px;
}
.input-group {
margin: 20px 0;
}
.form-control {
background-color: transparent;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 0;
border-left: none;
color: $color_gallery_approx;
&:focus {
border-color: $color_celeste_approx;
+ .input-group-addon {
border-color: $color_cornflower_blue_approx;
}
}
}
.input-group-addon {
background-color: transparent;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 0;
border-right: none;
color: $color_celeste_approx;
}
.btn-atlas {
padding: 10px 20px;
background-color: $color_keppel_approx;
color: $white;
border: 1px $color_keppel_approx solid;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 4px;
//Instead of the line below you could use @include transition($transition-1, $transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10)
transition: all .3s ease;
}
}
button:focus {
outline: none !important;
}
.form-control:focus {
//Instead of the line below you could use @include box-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
box-shadow: none;
}
/* main.scss */
//common color
$white: #fff;
$action_gray:#ccc;
$color_keppel_approx: #37bb9b;
$color_gallery_approx: #eee;
$gray: #808080;
$color_tuna_approx: #323544;
$color_celeste_approx: #ccc;
$color_cornflower_blue_approx: #66afe9;
$color_mystic_approx: #e8e9ee;
$color_jungle_green_approx: #38BB9B;
$color_froly_approx: #ee6e73;
$color_manatee_approx: #9398a0;
$black: #000;
$color_havelock_blue_approx: #4a90e2;
$color_ironside_gray_approx: #686868;
$color_mercury_approx: #e6e6e6;
$color_whisper_approx: #f6f7fa;
$color_bombay_approx: #b5b9bc;
$red: red;
//theme color
//colors
$color_white_lilac_approx: #f6f7fb;
$color_puerto_rico_approx: #3dd4af;
$color_star_dust_approx: #9a9a9a;
$color_mirage_approx: #1c1e2a;
$concrete: #f2f2f2;
//fonts
$font_0: Raleway;
$font_1: sans-serif;
$font_2: FontAwesome;
//fonts
/* $font_0: PT Sans;
$font_1: sans-serif;
$font_2: Helvetica Neue; */
$font_3: Helvetica;
$font_4: Arial;
$font_5: sans-serf;
//old - style color
$color_bali_hai_approx: #8fa5b1;
$transparent:transparent;
$black_7_5: rgba(0, 0, 0, .075);
$color_hoki_approx: #698797;
$color_curious_blue_approx: #1ba9e2;
$color_blue_bayoux_approx: #44697d;
$color_pickled_bluewood_approx: #334f5e;
$color_picton_blue_approx: #3cb5e6;
$color_yellow_sea_approx: #f5a700;
$color_gamboge_approx: #de9800;
$color_trinidad_approx: #e14f00;
$color_grenadier_approx: #c74600;
$color_athens_gray_approx: #e9ecf2;
$color_green_house_approx: #26530c;
$color_dark_grey_approx:#333;
$black_10: rgba(0, 0, 0, 0.1);
$color_cararra_approx: #ececec;
$black_30: rgba(0, 0, 0, 0.3);
$color_pizazz_approx: #ff8e00;
$black_25: rgba(0, 0, 0, 0.25);
$color_cape_cod_approx: #414141;
$color_apple_blossom_approx: #a94442;
$color_mine_shaft_approx: #333;
$white_80: rgba(255, 255, 255, 0.8);
$color_alto_approx: #dadada;
$color_fuscous_gray_approx: #545454;
$black_65: rgba(0, 0, 0, 0.65);
$white_25: rgba(255, 255, 255, 0.25);
$color_fern_approx: #65bd63;
$color_opal_approx: #a7cec6;
$white_50: rgba(255, 255, 255, 0.5);
$black_20: rgba(0, 0, 0, 0.2);
$color_pelorous_approx: #3aa2d0;
$color_laser_approx: #c4bb61;
$color_zombie_approx: #e0dd94;
$steel_blue: steelblue;
$black_80: rgba(0, 0, 0, 0.8);
$color_bright_turquoise_approx: #00ffd0;
$color_mountain_mist_approx: #999;
$color_suva_gray_approx: #868686;
// $tag_color:#9599a0;
$tag_color:#4A90E2;
//urls
$url_0: url(../img/loading.gif);
.card {
background: $white none repeat scroll 0 0;
//Instead of the line below you could use @include box-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
box-shadow: 0 1px 3px $black_30;
margin-bottom: 30px;
}
body {
font-family: $font_0, $font_1;
color: $color_ironside_gray_approx;
}
.gray-bg {
background-color: $color_white_lilac_approx;
}
header {
background-color: $white;
border-bottom: 1px $color_mystic_approx solid;
}
a {
color: $color_jungle_green_approx;
&:focus {
color: $color_puerto_rico_approx;
text-decoration: none;
outline: none;
}
&:hover {
color: $color_puerto_rico_approx;
text-decoration: none;
}
}
hr {
border-top: 1px solid #1c1e2a
}
ul {
list-style: none;
}
.close {
font-size: 2em;
}
#sideNav-wrapper {
color: $white;
}
.contentLoading {
position: absolute;
background: rgba(247, 247, 247, 0.24);
top: 0;
right: 0;
left: 0;
z-index: 99;
bottom: 0;
display: none;
}
/* nav.scss */
.navbar-atlas {
background-color: $color_tuna_approx;
//Instead of the line below you could use @include box-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
box-shadow: inset 0 0 0 $black_10, 0 1px 10px $black_10;
.navbar-brand {
color: $white;
}
.nav > li > a {
color: $white;
padding-top: 18px;
padding-bottom: 18px;
font-size: 100%;
&:focus {
background-color: transparent;
}
&:hover {
background-color: transparent;
}
}
}
.navbar-toggle .icon-bar {
background-color: $white;
}
.navbar-fixed-top + .wrapper {
margin-top: 90px;
padding-bottom: 90px;
}
.navbar-brand {
font-size: 30px;
height: auto;
}
.navbar-form {
width: 30%;
padding: 0;
.form-control {
width: 100%;
padding: 6px 0;
background-color: transparent;
color: $white;
border: none;
//Instead of the line below you could use @include box-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
box-shadow: 0 2px $white;
}
}
/* old-style.scss */
//@extend-elements
//original selectors
//.inputs button.addAttr, .inputs button.saveAttr
%extend_1 {
height: 40px;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 4px;
border: 1px solid $white;
color: $white;
//Instead of the line below you could use @include text-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
text-shadow: 0 -1px 0 $black_25;
font-weight: bold;
}
.row-margin-bottom {
margin-bottom: 15px;
}
.list-group-item {
&:first-child {
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 0;
}
&:last-child {
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 0;
}
}
.h160 {
height: 160px !important;
}
.subContent {
width: 500px;
margin: 30px;
}
.headerDroupDown {
border-left: 1px solid $white;
font-size: 11px;
padding-left: 15px;
margin-left: 15px;
}
/* .switch {
float: left;
margin-top: 4px;
position: absolute;
z-index: 99;
top: 0;
left: 20px;
height: 26px;
width: 120px;
background: $color_alto_approx;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 3px;
//Instead of the line below you could use @include box-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
box-shadow: inset 0 1px 3px $color_fuscous_gray_approx, 0 1px $white;
} */
/* .switch-label {
position: relative;
z-index: 2;
float: left;
width: 58px;
line-height: 26px;
font-size: 11px;
text-align: center;
cursor: pointer;
&:active {
font-weight: bold;
}
}
.switch-label-off {
padding-left: 2px;
}
.switch-label-on {
padding-right: 2px;
}
.switch-input {
display: none;
&:checked + {
&.switch-label {
font-weight: bold;
color: $black_65;
//Instead of the line below you could use @include text-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
text-shadow: 0 1px $white_25;
//Instead of the line below you could use @include transition($transition-1, $transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10)
transition: 0.15s ease-out;
}
&.switch-label-on ~ .switch-selection {
left: 60px;
}
}
}
.switch-selection {
display: block;
position: absolute;
z-index: 1;
top: 2px;
left: 2px;
width: 58px;
height: 22px;
background: $color_fern_approx;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 3px;
background-image: linear-gradient(to bottom, $color_opal_approx, $color_jungle_green_approx);
background-image: linear-gradient(to bottom, $color_opal_approx, $color_jungle_green_approx);
//Instead of the line below you could use @include box-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
box-shadow: inset 0 1px $white_50, 0 0 2px $black_20;
//Instead of the line below you could use @include transition($transition-1, $transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10)
transition: left 0.15s ease-out;
} */
.scrollTagList {
height: 330px;
overflow-y: auto;
margin-bottom: 0;
i.fa {
margin-right: 5px;
}
}
.menuItem {
padding: 10px;
color: $color_havelock_blue_approx;
cursor: pointer;
}
.tagging {
display: inline-block;
}
.crossClearText {
line-height: 20px !important;
}
text {
font-weight: 300;
font-family: $font_2, $font_3, $font_4, $font_5;
font-size: 14px;
}
.switch-blue .switch-selection {
background: $color_pelorous_approx;
background-image: linear-gradient(to bottom, $color_picton_blue_approx, $color_pelorous_approx);
}
.switch-yellow .switch-selection {
background: $color_laser_approx;
background-image: linear-gradient(to bottom, $color_zombie_approx, $color_laser_approx);
}
/* override.scss */
.tabs li.tab.active {
border-bottom: 2px solid $color_keppel_approx;
a {
color: $color_keppel_approx;
}
}
.modal-header {
padding: 8px 15px;
border-bottom: 1px solid #DEDEDE;
}
.modal-title {
font-weight: 600;
-webkit-font-smoothing: antialiased;
}
.modal-footer {
padding: 15px;
text-align: right;
border: none;
}
.modal-body {
position: relative;
padding: 15px;
}
.cancel {
float: left;
}
.switch.pull-left {
margin-right: 8px;
}
.modal-content {
border-radius: 10px;
}
.table-quickMenu {
border: 1px #ddd solid;
overflow: visible !important;
}
.table-quickMenu>thead>tr>th {
border-bottom-width: 0px;
padding: 24px 8px;
background-color: transparent;
text-align: left;
}
.backgrid-paginator ul > li > a:hover,
.backgrid-paginator ul > .active > a,
.backgrid-paginator ul > .active > span {
background-color: #2EBC9A !important;
color: #fff !important;
&:hover {
background-color: none;
}
}
.backgrid-paginator ul {
display: inline-block;
padding-left: 0;
margin: 20px 0;
border-radius: 4px;
border: 1px #DDDDDD solid;
}
/* panel.scss */
.panel {
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 0;
}
.panel-primary {
border-color: $color_hoki_approx;
> .panel-heading {
color: $white;
background-color: $color_hoki_approx;
border-color: $color_hoki_approx;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 0;
}
}
.appForm {
.panel-body {
padding-bottom: 0;
}
.panel-footer {
margin-bottom: 0;
}
}
//colors
$color_celeste_approx: #1D1F2B;
.switch {
position: relative;
display: inline-block;
width: 50px;
height: 22px;
margin-left: 8px;
input {
display: none;
}
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: $color_celeste_approx;
//Instead of the line below you could use @include transition($transition-1, $transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10)
transition: .4s;
&:before {
position: absolute;
content: "";
height: 16px;
width: 16px;
left: 4px;
bottom: 3px;
background-color: $color_jungle_green_approx;
//Instead of the line below you could use @include transition($transition-1, $transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10)
transition: .4s;
}
&.round {
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 34px;
&:before {
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 50%;
}
}
}
input {
&:checked + .slider {
background-color: $color_celeste_approx;
&:before {
//Instead of the line below you could use @include transform($scale, $rotate, $transx, $transy, $skewx, $skewy, $originx, $originy)
transform: translateX(26px);
}
}
&:focus + .slider {
//Instead of the line below you could use @include box-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
box-shadow: 0 0 1px $color_celeste_approx;
}
}
.advanceSearchBtn {
float: right;
}
.advanceSearchTagInput {
margin-bottom: 20px;
}
.advanceSearchTermInput {
margin-bottom: 20px;
}
.clearAdvanceSearch {
display: inline-block;
float: left;
margin-top: 10px;
cursor: pointer
}
/*
* 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.
*/
@import "main.scss";
@import "tab.scss";
@import "form.scss";
@import "nav.scss";
@import "panel.scss";
@import "loader.scss";
@import "graph.scss";
@import "breadcrumb.scss";
//@import "login.scss";
@import "business-catlog.scss";
@import "old-style.scss";
@import "theme.scss";
@import "tree.scss";
@import "tag.scss";
@import "search.scss";
@import "override.scss";
/* tab.scss */
.atlast-tabbable {
margin: 50px 0;
.nav-tabs {
border-bottom: 1px solid $color_mystic_approx;
> li {
> a {
padding: 15px 30px;
text-transform: uppercase;
letter-spacing: 1px;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 2px 2px 0 0;
}
&.active > a {
border: 1px solid $color_mystic_approx;
border-bottom-color: transparent;
&:focus {
border: 1px solid $color_mystic_approx;
border-bottom-color: transparent;
}
&:hover {
border: 1px solid $color_mystic_approx;
border-bottom-color: transparent;
}
}
}
}
.tab-content {
background-color: $white;
padding: 35px;
border: 1px solid $color_mystic_approx;
border-top: none;
}
}
ul.tabs li.tab {
padding: 0;
}
.tagsList .atlast-tabbable {
margin: 0;
.tab-content {
padding: 10px 22px;
}
.nav-tabs > li > a {
padding: 10px 20px;
}
}
// NEW theme style
.tabs {
position: relative;
height: 42px;
width: 100%;
white-space: nowrap;
padding: 0;
transition: color 0.28s ease;
.indicator {
position: absolute;
bottom: 0;
height: 2px;
background-color: $color_keppel_approx;
will-change: left, right;
}
li.tab {
display: block;
float: left;
text-align: center;
line-height: 42px;
height: 42px;
padding: 0 20px;
margin: 0;
text-transform: uppercase;
letter-spacing: 0.8px;
border-bottom: 1px solid $color_mirage_approx;
a {
font-size: 12px;
font-weight: 600;
color: $white;
display: block;
text-decoration: none;
width: 100%;
height: 100%;
//Instead of the line below you could use @include transition($transition-1, $transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10)
transition: color 0.28s ease;
/* color: $color_manatee_approx; */
/* &:hover {
color: $color_keppel_approx;
}
&.active {
color: $color_keppel_approx;
} */
}
}
}
.tab-pane {
padding: 25px;
}
.atlast-tabbable {
margin: 50px 0;
.nav-tabs {
border-bottom: 1px solid $color_mystic_approx;
> li {
> a {
padding: 15px 30px;
text-transform: uppercase;
letter-spacing: 1px;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 2px 2px 0 0;
}
&.active > a {
border: 1px solid $color_mystic_approx;
border-bottom-color: transparent;
&:focus {
border: 1px solid $color_mystic_approx;
border-bottom-color: transparent;
}
&:hover {
border: 1px solid $color_mystic_approx;
border-bottom-color: transparent;
}
}
}
}
.tab-content {
background-color: $white;
padding: 35px;
border: 1px solid $color_mystic_approx;
border-top: none;
}
}
//tag.scss
/* Tree View */
.tag-tree {
padding: 0;
overflow: auto;
li {
list-style: none;
cursor: pointer;
&.parent-node {
position: relative;
margin-top: 10px;
/* margin-bottom: 5px; */
border-radius: 4px;
&:hover {
background-color: $color_star_dust_approx;
}
&.active {
background-color: $color_jungle_green_approx;
border: none;
.tools {
display: block
}
}
> ul > li {
line-height: 30px;
margin-left: -20px;
text-indent: 20px;
&:hover {
background-color: $color_keppel_approx;
}
&.selected {
background-color: $color_keppel_approx;
}
}
.tools {
display: none;
position: absolute;
right: 0;
padding: 5px 10px;
}
}
a {
display: block;
color: #f2f2f2;
white-space: nowrap;
padding: 5px 10px;
text-overflow: ellipsis;
max-width: 91%;
overflow: hidden;
}
}
ul {
padding-left: 20px;
li {}
}
.tagAsset {
display: none;
}
}
.input-group.attributes .form-control {
height: 40px;
box-shadow: none;
border-right: none;
}
.input-group.attributes .input-group-addon {
background-color: $color_white_lilac_approx;
border: 1px $color_mystic_approx solid;
border-radius: 0px;
border-left: none;
}
.input-group.attributes .input-group-addon i.fa {
cursor: pointer;
}
.input-group.attributes .form-control:focus + .input-group-addon {
border-color: $color_bali_hai_approx;
}
.tagList {
margin-top: 10px;
}
.select2-container {
width: 100% !important;
/*margin:15px 0px;*/
}
.tagListSelect {
margin: 15px 0px;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
background-color: #fff;
color: #9599a0;
}
.select2-container--default .select2-search--inline .select2-search__field {
color: #555;
}
.inputTag {
display: inline-block;
padding: 5px 10px;
border: 1px $tag_color solid;
color: $tag_color;
font-size: 12px;
text-transform: uppercase;
border-radius: 4px;
margin-right: 3px;
margin-bottom: 3px;
float: left;
cursor: pointer;
background-color: $white;
i.fa {
position: relative;
right: -5px;
cursor: pointer;
}
&:hover {
color: $white;
background-color: $tag_color;
}
}
.addTagBase {
padding: 4px 8px;
border: 1px solid $action_gray;
color: $action_gray;
border-radius: 4px;
cursor: pointer;
&:hover {
color: $color_dark_grey_approx;
background-color: $color_mercury_approx;
}
}
.noTags {
font-size: 24px;
font-weight: bold;
text-align: center;
}
.addTag-dropdown {
display: inline-block;
float: left;
}
.addTagText {
font-size: 12px;
font-weight: 600;
}
.addTagPlus {
font-size: 12px;
font-weight: 600;
}
.inputSearchTag {
max-width: 200px;
}
.appendList {
max-height: 200px;
overflow: auto;
max-width: 200px;
overflow-x: hidden;
div {
padding: 3px;
}
}
.editbutton {
padding: 4px 8px;
border: 1px solid $color_celeste_approx;
color: $action_gray;
border-radius: 4px;
}
.inputAttribute {
display: inline-block;
padding: 5px 10px;
border: 1px $action_gray solid;
color: $action_gray;
font-size: 12px;
text-transform: uppercase;
border-radius: 4px;
margin-right: 3px;
margin-bottom: 3px;
float: left;
cursor: pointer;
background-color: $white;
i.fa {
position: relative;
right: -5px;
cursor: pointer;
}
&:hover {
color: $white;
background-color: $action_gray;
}
}
/* theme.scss */
.user-dropdown {
display: inline-block;
padding: 20px;
color: $color_ironside_gray_approx;
.user-circle {
padding: 8px 10px;
border: 1px solid $color_ironside_gray_approx;
border-radius: 20px;
margin: 0px 4px;
}
}
.main-search {
.form-control {
border: none;
border-left: 1px $color_mystic_approx solid;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 0;
//Instead of the line below you could use @include box-shadow($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10)
box-shadow: none;
height: 60px;
font-size: 18px;
font-style: italic;
}
.input-group-addon {
font-size: 20px;
color: $color_bombay_approx;
background: none;
border: none;
}
}
.page-title {
background-color: $white;
padding: 50px;
h1 {
margin-top: 0;
margin-bottom: 20px;
font-weight: 600;
text-overflow: ellipsis;
max-width: 91%;
overflow: hidden;
small {
position: relative;
bottom: 5px;
margin-left: 15px;
padding-left: 15px;
border-left: 1px $color_mystic_approx solid;
color: $color_bombay_approx;
font-size: 40%;
font-weight: 600;
text-transform: uppercase;
}
}
.sub-title {
margin-bottom: 40px;
}
}
.atlas-tag {
padding: 6px 12px;
background-color: $color_havelock_blue_approx;
color: $white;
font-size: 12px;
text-transform: uppercase;
//Instead of the line below you could use @include border-radius($radius, $vertical-radius)
border-radius: 4px;
i.fa {
position: relative;
right: -5px;
cursor: pointer;
}
}
.white-bg {
background-color: $white;
padding: 30px 0;
}
.comment-input {
background-color: $color_white_lilac_approx;
padding: 20px;
font-size: 16px;
margin-bottom: 20px;
}
.comment-box {
padding: 25px 0;
margin-top: 25px;
border-top: 1px $color_mystic_approx solid;
.comment {
margin-bottom: 25px;
}
.author {
color: $color_keppel_approx;
margin-bottom: 0;
}
.date {
color: $color_star_dust_approx;
}
}
.backButton {
display: block;
margin: 13px 13px;
&:hover {
color: $color_jungle_green_approx;
}
&:active {
color: $color_jungle_green_approx;
}
}
/* tree.scss */
/* .fuelux {
margin-top: 10px;
.tree {
padding-left: 0;
position: relative;
list-style: none;
ul {
padding-left: 0;
margin-top: 0;
margin-bottom: 0;
list-style: none;
}
li {
margin: 0;
margin-top: 5px;
margin-bottom: 5px;
}
.tree-loader {
margin-left: 45px;
}
.tree-branch {
.tree-branch-header {
color: $white;
position: relative;
white-space: nowrap;
padding: 4px 0;
.tree-branch-name {
white-space: nowrap;
background-color: transparent;
border: 0;
&:hover {
color: $white;
}
}
.glyphicon-menu-right {
font-size: 10px;
padding-right: 5px;
padding-left: 7px;
&:before {
position: relative;
top: -2px;
}
}
label {
font-weight: normal;
padding-left: 3px;
margin-bottom: 0;
cursor: pointer;
}
}
.tree-branch-children {
margin-left: 25px;
}
}
.tree-item {
white-space: nowrap;
position: relative;
cursor: pointer;
padding: 4px 0;
.tree-item-name {
color: $white;
white-space: nowrap;
background-color: transparent;
border: 0;
&:hover {
color: $white;
}
}
&.tree-selected {
background-color: $color_keppel_approx;
&:before {
content: "";
position: absolute;
background-color: $color_keppel_approx;
height: 33px;
top: 0;
left: -100%;
right: -100%;
z-index: -1;
}
}
label {
font-weight: normal;
padding-left: 7px;
margin-bottom: 0;
cursor: pointer;
}
}
*:focus {
outline: none;
}
button:focus {
color: $white;
}
.tree-open > .tree-branch-header .glyphicon-menu-right {
//Instead of the line below you could use @include transform($scale, $rotate, $transx, $transy, $skewx, $skewy, $originx, $originy)
transform: rotate(90deg);
position: relative;
}
[data-children=false] > .tree-branch-header .icon-caret:before {
content: '\00a0';
}
.tree-branch[haschildren='false'] .icon-caret {
visibility: hidden;
}
.tree-branch[data-has-children='false'] .icon-caret {
visibility: hidden;
}
.icon-caret:hover + .tree-branch-name {
color: $white;
}
&.tree-folder-select .tree-branch {
.icon-folder {
visibility: hidden;
}
.icon-caret {
background-color: transparent;
border: 0;
&:hover {
cursor: pointer;
color: $white;
}
}
> .tree-branch-name {
padding: 1px 5px 0;
&.tree-selected {
background-color: $color_gallery_approx;
}
}
&.tree-selected > .tree-branch-header {
background-color: $color_keppel_approx;
&:before {
content: "";
position: absolute;
background-color: $color_keppel_approx;
height: 33px;
top: 0;
left: -100%;
right: -100%;
z-index: -1;
}
.tree-branch-name:hover {
background-color: $color_keppel_approx;
}
> .action-icons {
visibility: visible;
}
}
}
}
.action-icons {
visibility: hidden;
float: right;
a {
display: inline-block;
margin-left: 4px;
color: $white;
}
}
} */
.jstree-container-ul {
padding-left: 0px;
position: relative;
list-style: none;
.jstree-node {
white-space: nowrap;
position: relative;
cursor: pointer;
padding: 4px 0;
margin: 0;
margin-top: 5px;
margin-bottom: 5px;
}
ul {
list-style: none;
padding: 0;
text-indent: 30px;
}
li a {
// color: $white;
display: block;
}
// .jstree-node[aria-selected="true"]:before {
// content: "";
// position: absolute;
// height: 33px;
// background: $color_jungle_green_approx;
// top: 0px;
// left: -100%;
// right: -100%;
// z-index: -1;
// }
}
.taxonomyTree {
padding: 0;
position: relative;
li {
position: relative;
border-radius: 4px;
margin-top: 5px;
&.parent {
width: 100%;
a {
max-width: 93%;
}
}
&.parentChiled {
ul {
padding-left: 9%;
}
li {
&.children {
width: 91%;
}
a {
max-width: 92%;
}
}
}
&.children {
&:hover {
background-color: $color_star_dust_approx;
}
}
&.active {
background-color: $color_jungle_green_approx !important;
border: none;
.tools {
display: block;
.fa {
cursor: pointer;
padding: 0px 3px;
}
}
}
a {
display: block;
color: $concrete;
white-space: nowrap;
padding: 5px 18px;
text-overflow: ellipsis;
overflow: hidden;
cursor: pointer;
}
.tools {
background: $color_jungle_green_approx;
display: none;
position: absolute;
right: 3px;
padding: 5px 10px;
}
}
}
.termPopoverList {
color: #666;
padding: 0px 5px;
margin-bottom: 0px;
a {
color: #666;
padding: 5px;
}
}
.termPopover {
cursor: pointer;
}
.termMoveDiv {
width: 550px;
height: 200px;
margin: 10px;
}
.tagPopoverList {
color: #666;
padding: 0px 5px;
margin-bottom: 0px;
a {
color: #666;
padding: 5px;
}
}
...@@ -37,41 +37,28 @@ ...@@ -37,41 +37,28 @@
<link rel="stylesheet" href="js/libs/backgrid-paginator/css/backgrid-paginator.css"> <link rel="stylesheet" href="js/libs/backgrid-paginator/css/backgrid-paginator.css">
<link rel="stylesheet" href="js/libs/backgrid-orderable-columns/css/backgrid-orderable-columns.css"> <link rel="stylesheet" href="js/libs/backgrid-orderable-columns/css/backgrid-orderable-columns.css">
<link rel="stylesheet" href="js/libs/backgrid-sizeable-columns/css/backgrid-sizeable-columns.css"> <link rel="stylesheet" href="js/libs/backgrid-sizeable-columns/css/backgrid-sizeable-columns.css">
<link rel="stylesheet" href="js/libs/select2/css/select2.min.css">
<link rel="stylesheet" href="js/libs/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="js/libs/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="js/libs/jquery-asBreadcrumbs/css/asBreadcrumbs.css"> <link rel="stylesheet" href="js/libs/jquery-asBreadcrumbs/css/asBreadcrumbs.css">
<link href='https://fonts.googleapis.com/css?family=Raleway:400,400italic,600,600italic,700,700italic' rel='stylesheet' type='text/css'>
<link href="css/bootstrap-sidebar.css" rel="stylesheet"> <link href="css/bootstrap-sidebar.css" rel="stylesheet">
<link href="css/font-awesome.min.css" rel="stylesheet"> <link href="css/font-awesome.min.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet"> <link href="css/style.css" rel="stylesheet">
<link href="css/business-catlog.css" rel="stylesheet">
<link href="css/override.css" rel="stylesheet">
</head> </head>
<body> <body>
<div id="new"> <div id="wrapper">
<div id="wrapper"> <div id="sidebar-wrapper" class="sidebar-wrapper">
<div id="sidebar-wrapper"> <div id="sideNav-wrapper"></div>
<div id="sideNav-wrapper"></div>
</div>
<div id="page-content-wrapper">
<header id="new-header" class="clearfix"></header>
<div id="new-page-wrapper"> </div>
</div>
</div> </div>
</div> <div id="page-content-wrapper" class="page-content-wrapper">
<div id='old'> <header id="new-header" class="clearfix"></header>
<!--Header Begin--> <div id="new-page-wrapper">
<header id="header" class="navbar-fixed-top navbar-top navbar-atlas"> </header> <div>
<!--Header End--> <img class="initialLoading" src="../img/ring.gif">
<div class="container wrapper">
<div class="">
<div id="page-wrapper">
<div>
<img class="initialLoading" src="../img/ring.gif">
</div>
</div> </div>
</div> </div>
</div> </div>
<div id="footer"></div>
</div> </div>
<!-- build:js scripts/main.js --> <!-- build:js scripts/main.js -->
<script data-main="js/main" src="js/libs/requirejs/require.js"></script> <script data-main="js/main" src="js/libs/requirejs/require.js"></script>
......
...@@ -35,6 +35,26 @@ define(['require', ...@@ -35,6 +35,26 @@ define(['require',
initialize: function() {}, initialize: function() {},
bindErrorEvents: function() { bindErrorEvents: function() {
this.bind("error", Utils.defaultErrorHandler); this.bind("error", Utils.defaultErrorHandler);
},
bindLoader: function(element) {
this.bind('request', function(model, ajaxObj, collectionObj) {
this.ajaxStart(collectionObj.$el);
}, this);
this.bind('sync', function(model, ajaxObj, collectionObj) {
this.ajaxComplete(collectionObj.$el);
}, this);
},
ajaxStart: function(element) {
//start spinner
if (element) {
element.prepend("<div class='loading'></div>");
}
},
ajaxComplete: function(element) {
if (element) {
element.find('loading').remove();
}
}, },
/** /**
* state required for the PageableCollection * state required for the PageableCollection
......
/**
* 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.
*/
define(['require',
'utils/Globals',
'collection/BaseCollection',
'models/VCatalog',
], function(require, Globals, BaseCollection, VCatalog) {
'use strict';
var VCatalogList = BaseCollection.extend(
//Prototypal attributes
{
url: Globals.baseURL + '/api/atlas/v1/taxonomies',
model: VCatalog,
initialize: function() {
this.modelName = 'VCatalog';
this.modelAttrName = '';
this.bindErrorEvents();
this.bindLoader();
},
fetch: function(options) {
//Call Backbone's fetch
return Backbone.Collection.prototype.fetch.call(this, options);
},
parseRecords: function(resp, options) {
try {
/* var arr = [];
arr.push({
taxonomies: resp
});*/
return resp;
} catch (e) {
console.log(e);
}
},
},
//Static Class Members
{
/**
* Table Cols to be passed to Backgrid
* UI has to use this as base and extend this.
*
*/
tableCols: {}
}
);
return VCatalogList;
});
...@@ -25,7 +25,7 @@ define(['require', ...@@ -25,7 +25,7 @@ define(['require',
var VLineageList = BaseCollection.extend( var VLineageList = BaseCollection.extend(
//Prototypal attributes //Prototypal attributes
{ {
url: Globals.baseURL + 'api/atlas/lineage/hive/table/assetName/outputs/graph', url: Globals.baseURL + 'api/atlas/lineage/assetName/outputs/graph',
model: VLineage, model: VLineage,
......
...@@ -25,7 +25,7 @@ define(['require', ...@@ -25,7 +25,7 @@ define(['require',
var VSchemaList = BaseCollection.extend( var VSchemaList = BaseCollection.extend(
//Prototypal attributes //Prototypal attributes
{ {
url: Globals.baseURL + '/api/atlas/lineage/hive/table/log_fact_daily_mv/schema', url: Globals.baseURL,
model: VSchema, model: VSchema,
initialize: function() { initialize: function() {
this.modelName = 'VSchema'; this.modelName = 'VSchema';
......
...@@ -94,6 +94,9 @@ require.config({ ...@@ -94,6 +94,9 @@ require.config({
dagreD3: { dagreD3: {
deps: ['d3'], deps: ['d3'],
exports: 'dagreD3' exports: 'dagreD3'
},
tree: {
deps: ['jquery']
} }
}, },
...@@ -121,7 +124,9 @@ require.config({ ...@@ -121,7 +124,9 @@ require.config({
'json2': 'require-handlebars-plugin/js/json2', 'json2': 'require-handlebars-plugin/js/json2',
'hbs': 'require-handlebars-plugin/js/hbs', 'hbs': 'require-handlebars-plugin/js/hbs',
'i18nprecompile': 'require-handlebars-plugin/js/i18nprecompile', 'i18nprecompile': 'require-handlebars-plugin/js/i18nprecompile',
'dagreD3': 'libs/dagre-d3/dagre-d3.min' 'dagreD3': 'libs/dagre-d3/dagre-d3.min',
'tree': 'libs/jstree/jstree.min',
'select2': 'libs/select2/select2.min',
}, },
/** /**
...@@ -137,7 +142,8 @@ require(['App', ...@@ -137,7 +142,8 @@ require(['App',
'router/Router', 'router/Router',
'utils/Overrides', 'utils/Overrides',
'bootstrap', 'bootstrap',
'd3' 'd3',
'select2'
], function(App, Router) { ], function(App, Router) {
App.appRouter = new Router(); App.appRouter = new Router();
App.start(); App.start();
......
/**
* 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.
*/
define(['require',
'utils/Globals',
'models/BaseModel'
], function(require, Globals, VBaseModel) {
'use strict';
var VCatalog = VBaseModel.extend({
urlRoot: Globals.baseURL + '/api/atlas/v1/taxonomies/taxonomy1',
defaults: {},
serverSchema: {},
idAttribute: 'id',
initialize: function() {
this.modelName = 'VCatalog';
this.bindErrorEvents();
},
toString: function() {
return this.get('name');
},
}, {});
return VCatalog;
});
...@@ -22,7 +22,7 @@ define(['require', ...@@ -22,7 +22,7 @@ define(['require',
], function(require, Globals, VBaseModel) { ], function(require, Globals, VBaseModel) {
'use strict'; 'use strict';
var VSchema = VBaseModel.extend({ var VSchema = VBaseModel.extend({
urlRoot: Globals.baseURL + '/api/atlas/lineage/log_fact_daily_mv/schema', urlRoot: Globals.baseURL,
defaults: {}, defaults: {},
......
/*
* 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.
*/
//Define indexOf for IE
if (!Array.indexOf) {
Array.prototype.indexOf = function(obj, start) {
for ( var i = (start || 0); i < this.length; i++) {
if (this[i] == obj) {
return i;
}
}
return -1;
};
}
function doLogin() {
var userName = $('#username').val().trim();
var passwd = $('#password').val().trim();
if (userName === '' || passwd === '') {
$('#errorBox').show();
$('#signInLoading').hide();
$('#signIn').removeAttr('disabled');
$('#errorBox .errorMsg').text("The username or password you entered is blank..");
return false;
}
var baseUrl = getBaseUrl();
if (baseUrl.lastIndexOf('/') != (baseUrl.length - 1)) {
if (baseUrl) {
baseUrl = baseUrl + '/';
} else {
baseUrl = '/';
}
}
var url = baseUrl + 'j_spring_security_check';
$.ajax({
data : {
j_username : userName,
j_password : passwd
},
url : url,
type : 'POST',
headers : {
"cache-control" : "no-cache"
},
success : function() {
if(location.hash.length > 2)
window.location.replace('index.html'+location.hash);
else
window.location.replace('index.html');
},
error : function(jqXHR, textStatus, err ) {
$('#signIn').removeAttr('disabled');
$('#signInLoading').css("visibility", "hidden");
if(jqXHR.status && jqXHR.status == 412){
$('#errorBox').hide();
$('#errorBoxUnsynced').show();
} else {
var resp = JSON.parse(jqXHR.responseText);
if(resp.msgDesc.startsWith("Username not found") || resp.msgDesc.startsWith("Wrong password")){
$('#errorBox .errorMsg').text("Invalid User credentials. Please try again.");
}else if(resp.msgDesc.startsWith("User role credentials is not set properly")){
$('#errorBox .errorMsg').text("User role or credentials is not set properly");
}else{
$('#errorBox .errorMsg').text("Error while authentication");
}
$('#errorBox').show();
$('#errorBoxUnsynced').hide();
}
}
});
}
function getBaseUrl(){
if(!window.location.origin){
window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
}
return window.location.origin
+ window.location.pathname.substring(window.location.pathname
.indexOf('/', 2) + 1, 0);
}
$(function() {
// register handlers
$('#signIn').on('click', function() {
$('#signIn').attr('disabled',true);
$('#signInLoading').css("visibility", "visible");
doLogin();
return false;
});
$('#loginForm').each(function() {
$('input').keypress(function(e) {
// Enter pressed?
if (e.which == 10 || e.which == 13) {
doLogin();
}
});
});
$('#loginForm li[class^=control-group] > input').on('change',function(e){
if(e.target.value === ''){
$(e.target).parent().addClass('error');
}else{
$(e.target).parent().removeClass('error');
}
});
});
<!--
* 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.
-->
<div id="r_auditTableLayoutView"></div>
<!--
* 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.
-->
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Key</th>
<th>Value</th>
</tr>
</thead>
<tbody data-id="auditValue">
</tbody>
</table>
<!--
* 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.
-->
<form name="tagDefinitionform" class="css-form">
<!-- <h4 style="margin-bottom:30px">Add Term</h4> -->
<div class="form-group">
<input class="form-control" data-id="termName" placeholder="Add subterm">
</div>
<div class="form-group">
<textarea class="form-control" data-id="termDetail" placeholder="Description"></textarea>
</div>
</form>
<!--
* 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.
-->
<div class="fontLoader">
<i class="fa fa-refresh fa-spin-custom"></i>
</div>
<div class="hide">
<div class="page-title clearfix">
<h1><span data-id="title"></span><!-- <button style="display:none" data-id="editButton" class="btn btn-default pull-right editbutton" id="editText"><i class="fa fa-pencil"></i></button> --></h1>
<p class="sub-title" data-id="description">Description</p>
<div data-id="editBox" style="margin-bottom:10px;">
<textarea class="well well-sm col-sm-12" data-id="descriptionTextArea"></textarea>
<div class="clearfix" align="right">
<button class="btn-atlas" data-id="cancelButton">Cancel</button>
<button class="btn-atlas" data-id="publishButton">Publish</button>
</div>
</div>
</div>
<div class="container-fluid gray-bg">
<div class="row">
<div class="col-sm-10 col-sm-offset-1">
<div class="atlast-tabbable">
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="tab active"><a href="#tab-details" aria-controls="tab-details" role="tab" data-toggle="tab">Properties</a></li>
<!-- <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Acceptable Use</a></li> -->
</ul>
<div class="tab-content">
<div id="tab-details" role="tabpanel" class="tab-pane active">
<p data-id="createDate"></p>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-10 col-sm-offset-1">
<div class="atlast-tabbable">
<div class="panel panel-default lineageLayout" style="display:none">
<div id="r_lineageLayoutView"></div>
</div>
</div>
</div>
</div>
</div>
<!-- <div class="row">
<div class="col-sm-10 col-sm-offset-1">
<h2>Comments</h2>
<textarea class="form-control comment-input" rows="5" placeholder="Add a Comment"></textarea>
<button class="btn-atlas">Comment</button>
<div class="comment-box">
<p class="comment">There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.</p>
<p class="author">Micheal Surmac</p>
<p class="date">December 16, 2016 11:03:23 AM</p>
</div>
<div class="comment-box">
<p class="comment">Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.</p>
<p class="author">Paula Schmidt</p>
<p class="date">May 3, 2015 9:16:12 AM</p>
</div>
</div>
</div> -->
</div>
<!--
* 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.
-->
<ol class="breadcrumb col-md-6">
</ol>
<header class="clearfix">
<div class="btn-group pull-right">
<a href="javascript:void(0);" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="user-dropdown">Hello Micheal <i class="fa fa-user user-circle"></i></a>
<ul class="dropdown-menu">
<!-- <li><a href="#">Edit Profile</a></li>
<li><a href="#">Change Password</a></li> -->
<li class="aboutAtlas"><a href="javascript:void(0)">About</a></li>
<li><a target="_blank" href="https://cwiki.apache.org/confluence/display/ATLAS/Atlas+Home">Help</a></li>
<li role="separator" class="divider"></li>
<li><a href="logout.html">Logout</a></li>
</ul>
</div>
</header>
<!--
* 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.
-->
<div class="row">
<button class="btn btn-taxanomyBack btn-atlas" data-id="backTaxanomy"><i class="fa fa-chevron-left"></i> Back</button>
</div>
<div class="">
<ul class="taxonomyTree">
<div class="contentLoading"></div>
<li class="children parent" data-id="Parent"></li>
<li class="chileds parentChiled">
<ul data-id="chiledList">
</ul>
</li>
</ul>
</div>
...@@ -14,10 +14,6 @@ ...@@ -14,10 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
--> -->
<div class="form-group"> <div class="form-control termMoveDiv">
<label class="col-sm-2 control-label">Attribute name</label> <div id="tree"></div>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" id="attributeId" placeholder="Attribute name" required="">
<button class="remove" id="close"><i class="fa fa-times"></i></button>
</div>
</div> </div>
<!--
* 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.
-->
<ul class="sidebar-nav">
<li class="sidebar-brand">
<a href="index.html"><i class="fa fa-globe"></i> Apache Atlas</a>
</li>
<ul class="tabs" style="width: 100%;" role="tablist">
<li role="presentation" class="tab col-sm-4 active"><a href="#tab-tag" aria-controls="tab-tag" data-name="tab-tag" role="tab" data-toggle="tab">Tags</a></li>
<li role="presentation" class="tab col-sm-4"><a href="#tab-taxonomy" aria-controls="tab-taxonomy" data-name="tab-taxonomy" role="tab" data-toggle="tab" class="">Taxonomy</a></li>
<li role="presentation" class="tab col-sm-4"><a href="#tab-search" aria-controls="tab-search" data-name="tab-search" role="tab" data-toggle="tab" class=""><i class="fa fa-search"></i> Search</a></li>
</ul>
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="tab-tag">
<div id="r_tagLayoutView"></div>
</div>
<div role="tabpanel" class="tab-pane" id="tab-taxonomy">
<div id="r_businessCatalogLayoutView"></div>
</div>
<div role="tabpanel" class="tab-pane" id="tab-search">
<div id="r_searchLayoutView"></div>
</div>
</div>
...@@ -18,10 +18,10 @@ ...@@ -18,10 +18,10 @@
<div class="col-md-4"> <div class="col-md-4">
<img src="img/ApacheAtlasLogo.png" class="img-responsive"> <img src="img/ApacheAtlasLogo.png" class="img-responsive">
<div class="col-md-8 subContent"> <div class="col-md-8 subContent">
<h2 class="title-bold">Apache Atlas</h2>
<p class="ng-binding"><b>Version : </b> 0.7-incubating-SNAPSHOT-ra2cc01c4342ace7f7a3e3e254d7ede781f990318</p> <p class="ng-binding"><b>Version : </b> 0.7-incubating-SNAPSHOT-ra2cc01c4342ace7f7a3e3e254d7ede781f990318</p>
<br> <br>
<p class="text-info">Get involved!</p> <p class="text-info">Get involved!</p>
<p class="text-info"><a href="http://apache.org/licenses/LICENSE-2.0" target="_blank">Licensed under the Apache License Version 2.0</a></p> <p class="text-info"><a href="http://apache.org/licenses/LICENSE-2.0" target="_blank">Licensed under the Apache License Version 2.0</a></p>
</div> </div>
</div> </div>
</div>
...@@ -20,21 +20,21 @@ ...@@ -20,21 +20,21 @@
<div class="modal-header"> <div class="modal-header">
<a class="close">&times;</a> <a class="close">&times;</a>
<h4 class="modal-title"> <h4 class="modal-title">
{{#if titleHtml}} {{#if titleHtml}}
{{{tt title}}} {{{tt title}}}
{{else}} {{else}}
{{tt title}} {{tt title}}
{{/if}} {{/if}}
</h4> </h4>
</div> </div>
{{/if}} {{#if contentWithFooter}} {{else}} {{/if}} {{#if contentWithFooter}} {{else}}
<div class="modal-body">{{content}}</div> <div class="modal-body">{{content}}</div>
{{#if showFooter}} {{#if showFooter}}
<div class="modal-footer"> <div class="modal-footer">
<button class="btn ok btn-success">{{tt okText}}</button>
{{#if allowCancel}} {{#if cancelText}} {{#if allowCancel}} {{#if cancelText}}
<button class="btn btn-default cancel">{{tt cancelText}}</button> <button class="btn btn-atlas cancel">{{tt cancelText}}</button>
{{/if}} {{/if}} {{/if}} {{/if}}
<button class="btn btn-atlas ok">{{tt okText}}</button>
</div> </div>
{{/if}} {{/if}} {{/if}} {{/if}}
</div> </div>
......
...@@ -14,32 +14,81 @@ ...@@ -14,32 +14,81 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
--> -->
<div class="col-sm-12"> <div class="page-title clearfix">
<a href="javascript:void(0);" class="backButton" data-id="backButton" title="Back To Result"><i class="fa fa-chevron-left fa-2x"></i></a> <div class="row">
<div class="panel panel-default lineageLayout" style="display:none"> <a href="javascript:void(0);" class="backButton" data-id="backButton"><i class="fa fa-chevron-left"> Back To Result</i></a>
<div id="r_lineageLayoutView"></div>
</div> </div>
<div class="panel panel-default"> <h1><span data-id="title"></span><!-- <small>Bookmark</small> <button data-id="editButton" class="btn btn-default pull-right editbutton" id="editText"><i class="fa fa-pencil"></i></button> --></h1>
<div class="panel-body"> <div data-id="editBox" style="margin-bottom:10px;">
<p class="name"></p> <textarea class="well well-sm col-sm-12" data-id="descriptionTextArea"></textarea>
<p class="description"></p> <div class="clearfix" align="right">
<hr> <button class="btn-atlas" data-id="cancelButton">Cancel</button>
<ul class="nav nav-tabs" role="tablist"> <button class="btn-atlas" data-id="publishButton">Publish</button>
<li role="presentation" class="tab active"><a href="#tab-details" aria-controls="tab-details" role="tab" data-toggle="tab">Details</a></li> </div>
<li role="presentation" class="tab schemaTable" style="display:none"><a href="#tab-schema" aria-controls="tab-schema" role="tab" data-toggle="tab">Schema</a></li> </div>
<li role="presentation" class="tab "><a href="#tab-tags" aria-controls="tab-tags" role="tab" data-toggle="tab">Tags</a></li> <div data-id="inputTagging">
</ul> <div class="dropdown addTag-dropdown" data-id="addTagListBtn">
<div class="tab-content"> <div class=" addTagBase dropdown-toggle" data-id="addTagBtn" data-toggle="dropdown">
<div id="tab-details" role="tabpanel" class="tab-pane active"> <div class="addTagText" data-id="addTagtext" style="display: block">ADD TAG &nbsp; <i class="fa fa-plus"></i></div>
<div id="r_entityDetailTableLayoutView"></div> <div class="addTagPlus" data-id="addTagPlus" style="display: none"><i class="fa fa-plus"></i></div>
</div>
<!-- <div class="dropdown-menu menuItem" data-id="addTagCollection">
<div data-id="searchTag" class="searchTag row-margin-bottom">
<input placeholder="Search" type=search class="inputSearchTag form-control"></input>
</div> </div>
<div id="tab-schema" class="tab-pane"> <div class="appendList" data-id="appendList"></div>
<div id="r_schemaTableLayoutView"></div> </div> -->
</div>
</div>
</div>
<div class="container-fluid gray-bg">
<div class="row">
<div class="col-sm-10 col-sm-offset-1">
<div class="atlast-tabbable">
<div class="panel panel-default lineageLayout" style="display:none">
<div id="r_lineageLayoutView"></div>
</div> </div>
<div id="tab-tags" class="tab-pane"> </div>
<div id="r_tagTableLayoutView"></div> </div>
</div>
<div class="row">
<div class="col-sm-10 col-sm-offset-1">
<div class="atlast-tabbable">
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="tab active"><a href="#tab-details" aria-controls="tab-details" role="tab" data-toggle="tab">Properties</a></li>
<!-- <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Acceptable Use</a></li> -->
<li role="presentation"><a href="#tab-tagTable" aria-controls="tab-tagTable" role="tab" data-toggle="tab">Tag Attribute</a></li>
<li role="presentation" class="tab schemaTable" style="display:none"><a href="#tab-schema" aria-controls="tab-schema" role="tab" data-toggle="tab">Schema</a></li>
</ul>
<div class="tab-content">
<div id="tab-details" role="tabpanel" class="tab-pane active">
<div id="r_entityDetailTableLayoutView"></div>
</div>
<div id="tab-tagTable" role="tabpanel" class="tab-pane">
<div id="r_tagTableLayoutView"></div>
</div>
<div id="tab-schema" role="tabpanel" class="tab-pane">
<div id="r_schemaTableLayoutView"></div>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div>
<!-- div class="col-sm-10 col-sm-offset-1">
<h2>Comments</h2>
<textarea class="form-control comment-input" rows="5" placeholder="Add a Comment"></textarea>
<button class="btn-atlas">Comment</button>
<div class="comment-box">
<p class="comment">There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.</p>
<p class="author">Micheal Surmac</p>
<p class="date">December 16, 2016 11:03:23 AM</p>
</div>
<div class="comment-box">
<p class="comment">Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.</p>
<p class="author">Paula Schmidt</p>
<p class="date">May 3, 2015 9:16:12 AM</p>
</div>
</div> -->
</div>
...@@ -14,9 +14,9 @@ ...@@ -14,9 +14,9 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
--> -->
<div class="panel-heading"> <!-- <div class="panel-heading">
<h3 class="panel-title">Lineage</h3> <h3 class="panel-title">Lineage</h3>
</div> </div> -->
<div class="fontLoader"> <div class="fontLoader">
<i class="fa fa-refresh fa-spin-custom"></i> <i class="fa fa-refresh fa-spin-custom"></i>
</div> </div>
......
<!--
* 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.
-->
<div class="container-fluid">
<div class="row">
<div class="col-sm-10 col-sm-offset-1">
<div class="atlast-tabbable">
<div id="r_searchResultLayoutView"></div>
</div>
</div>
</div>
</div>
...@@ -15,19 +15,32 @@ ...@@ -15,19 +15,32 @@
* limitations under the License. * limitations under the License.
--> -->
<div class="row row-margin-bottom"> <div class="row row-margin-bottom">
<div class="col-sm-12"> <div class="col-sm-12" style="margin:15px 0px;">
<div class="switch" style="float: left;"> <div class="row">
<input type="radio" class="switch-input" name="queryType" value="fulltext" id="fulltext_toggle" checked=""> <div class="col-md-12">
<label for="fulltext_toggle" class="switch-label switch-label-off">Text</label> <span class="pull-left">Text</span>
<input type="radio" class="switch-input" name="queryType" value="dsl" id="dsl_toggle"> <label class="switch pull-left">
<label for="dsl_toggle" class="switch-label switch-label-on">DSL</label> <input type="checkbox" name="queryType" value="text">
<span class="switch-selection"></span> <div class="slider round"></div>
</label>
<span class="pull-left">DSL</span>
</div>
</div> </div>
<div class="input-group"> </div>
<input style="padding-left: 132px;" type="text" class="form-control" data-id="searchInput" placeholder="Search using a query string: e.g. sales_fact"> <div class="col-sm-12">
<span class="input-group-btn"> <div class="form-group">
<button class="btn btn-success" data-id="searchButton" type="button"><i class="fa fa-search"></i></button> <input type="text" class="form-control" data-id="searchInput" placeholder="Search using a query string: e.g. sales_fact">
</span>
</div> </div>
<!-- <div data-id="advanceSearchContainer">
<div class="form-group">
<select type="text" class="col-md-12 form-control tagListSelect" data-id="tagListInput" multiple></select>
</div>
<div class="form-group">
<select type="text" class="col-md-12 form-control" data-id="termListInput" multiple></select>
</div>
</div> -->
<div class="clearAdvanceSearch" data-id="clearSearch">Clear</div>
<button class="btn btn-atlas advanceSearchBtn" data-id="searchBtn">Search</button>
</div> </div>
</div> </div>
<div id="searchResult"></div>
...@@ -15,18 +15,8 @@ ...@@ -15,18 +15,8 @@
* limitations under the License. * limitations under the License.
--> -->
<div class="row"> <div class="row">
<div class="col-sm-3"> <div class="fontLoader">
<div id="r_tagLayoutView"></div> <i class="fa fa-refresh fa-spin-custom"></i>
</div>
<div class="col-sm-9">
<div class="panel panel-default">
<div class="panel-body">
<div id="r_searchLayoutView"></div>
<div class="fontLoader">
<i class="fa fa-refresh fa-spin-custom"></i>
</div>
<div id="r_entityTableLayoutView" class="entityTable"></div>
</div>
</div>
</div> </div>
<div id="r_entityTableLayoutView" class=""></div>
</div> </div>
...@@ -14,40 +14,16 @@ ...@@ -14,40 +14,16 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
--> -->
<div class="container"> <header class="clearfix">
<div class="row"> <div class="btn-group pull-right">
<div class="navbar-header"> <a href="javascript:void(0);" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="user-dropdown"><i class="fa fa-user user-circle "></i></a>
<ul class="sidebar-nav"> <ul class="dropdown-menu">
<li class="sidebar-brand clearfix"> <!-- <li><a href="#">Edit Profile</a></li>
<a class="pull-left" href="#!/"><i class="fa fa-globe"></i><strong> Atlas</strong></a> <li><a href="#">Change Password</a></li> -->
<div class="dropdown headerDroupDown pull-left"> <li class="aboutAtlas"><a href="javascript:void(0)">About</a></li>
<a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown"> <li><a target="_blank" href="https://cwiki.apache.org/confluence/display/ATLAS/Atlas+Home">Help</a></li>
{{#ifCond urlType "==" "assetPage"}} <li role="separator" class="divider"></li>
Assets <li><a href="logout.html"> <i class="fa fa-sign-out"></i> Logout</a></li>
{{else}} </ul>
{{#ifCond urlType "==" "createTags"}}
Tag Definition
{{else}}
Asset Details
{{/ifCond}}
{{/ifCond}}
<span class="caret"></span></a>
<ul class="dropdown-menu">
{{#ifCond urlType "==" "assetPage"}}
<li><a href="#!/dashboard/createTags">Tag Definition</a></li>
{{else}} {{#ifCond urlType "==" "createTags"}}
<li><a href="#!/dashboard/assetPage">Assets</a></li>
{{else}}
<li><a href="#!/dashboard/assetPage">Assets</a></li>
<li><a href="#!/dashboard/createTags">Tag Definition</a></li>
{{/ifCond}} {{/ifCond}}
<li><a target="_blank" href="https://cwiki.apache.org/confluence/display/ATLAS/Atlas+Home">Help</a></li>
<li class="aboutAtlas"><a href="javascript:void(0)">About</a></li>
<li><a href="logout.html">Logout</a></li>
</ul>
</div>
</li>
</ul>
</div>
</div> </div>
</div> </header>
<!--
* 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.
-->
<div class="row row-margin-bottom">
<div class="col-sm-12">
<div class="form-group">
<input type="text" class="form-control" name="name" data-id="attributeId" placeholder="Attribute name" required="" value={{name}}>
</div>
</div>
</div>
<!--
* 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.
-->
<div class="page-title clearfix">
<h1><span data-id="title"></span>
<!-- <small>8 Asset</small><button data-id="editButton" class="hide btn btn-default pull-right editbutton" data-id="editText"><i class="fa fa-pencil"></i></button>--></h1>
<div data-id="showAttribute">
</div>
<div class="dropdown addTag-dropdown" data-id="addTagListBtn">
<div class=" addTagBase dropdown-toggle" data-id="addTagBtn" data-toggle="dropdown">
<div class="addTagText" data-id="addTagtext" style="display: block">ADD Attribute &nbsp; <i class="fa fa-plus"></i></div>
<div class="addTagPlus" data-id="addTagPlus" style="display: none"><i class="fa fa-plus"></i></div>
</div>
</div>
<div data-id="editBox" style="margin-bottom:10px; display:none">
</div>
</div>
<!--
* 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.
-->
<div id="r_TagAttributeDetailLayoutView">
</div>
<div class="container-fluid gray-bg">
<div class="row">
<div class="col-sm-10 col-sm-offset-1">
<div class="atlast-tabbable">
<div id="r_searchResultLayoutView"></div>
</div>
</div>
</div>
</div>
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
* limitations under the License. * limitations under the License.
--> -->
<div> <div>
<button class="add-tag btn btn-success pull-right" data-id="addTag" style="margin-bottom:10px">Add Tag</button> <!-- <button class="add-tag btn btn-success pull-right" data-id="addTag" style="margin-bottom:10px">Add Tag</button> -->
</div> </div>
<table class="table table-bordered table-striped"> <table class="table table-bordered table-striped">
<thead> <thead>
......
...@@ -14,27 +14,8 @@ ...@@ -14,27 +14,8 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
--> -->
<div class="tagsList"> <div class="clearfix"><a href="javascript:void(0)" data-id="createTag"><i class="fa fa-plus"></i> Create Tag</a></div>
<div class="atlast-tabbable"> <hr>
<ul class="nav nav-tabs" role="tablist"> <input type="text" class="form-control" data-id="offlineSearchTag" placeholder="Search Tags...">
<li role="presentation" class="tab active"><a href="#tab-tags" role="tab" data-toggle="tab">Tags</a></li> <ul class="tag-tree" data-id="tagsParent">
<li role="presentation" class="tab"><a href="#tab-types" role="tab" data-toggle="tab">Type</a></li> </ul>
<div class="pull-right" data-id="referesh"><a href="javascript:void(0)"><i class="fa fa-refresh"></i></a></div>
<div class="indicator" style="right: 116px; left: 0px;"></div>
</ul>
<div class="tab-content">
<div id="tab-tags" role="tabpanel" class="tab-pane active">
<div class="row-margin-bottom">
<input data-id="searchTag" data-type="listTag" placeholder="Search for Tags…" class="form-control">
</div>
<div class="list-group scrollTagList" data-id="listTag"> </div>
</div>
<div id="tab-types" role="tabpanel" class="tab-pane">
<div class="row-margin-bottom ">
<input data-id="searchTag" data-type="listType" placeholder="Search for Types…" class="form-control">
</div>
<div class="list-group scrollTagList" data-id="listType"> </div>
</div>
</div>
</div>
</div>
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
--> -->
<div class="modalHeight"> <div class="row">
<form name="tagDefinitionform" class="css-form"> <div name="tagDefinitionform" class="css-form">
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-4">Tag definition</label> <label class="control-label col-sm-4">Tag definition</label>
<div class="col-sm-8 input-spacing"> <div class="col-sm-8 input-spacing">
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
</select> </select>
</div> </div>
</div> </div>
</form> </div>
</div> </div>
<div class="form-group modalHeight" data-id="tagAttribute" style="display:none"> <div class="row form-group modalHeight" data-id="tagAttribute" style="display:none">
</div> </div>
...@@ -14,52 +14,11 @@ ...@@ -14,52 +14,11 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
--> -->
<div class="row"> <form name="tagDefinitionform" class="css-form">
<div class="appForm col-lg-12"> <!-- <h4 style="margin-bottom:30px"></h4> -->
<div class="panel panel-default"> <div class="form-group">
<div class="panel-heading"> <input class="form-control" data-id="tagName" placeholder="Create tag">
<h4>Tag Definition</h4></div> </input>
<div class="panel-body inputs"> <select class="form-control tagList" data-id="parentTag" multiple></select>
<form data-name="tagForm" class="form-horizontal" novalidate="" role="form">
<fieldset>
<div class="form-group hide">
<label for="category" class="col-sm-2 control-label">Category</label>
<div class="col-sm-10">
<select class="form-control" data-id="category" name="category" required="">
</select>
</div>
</div>
<div class="form-group">
<label for="typeName" class="col-sm-2 control-label">Tag Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="typeName" data-id="typeName" placeholder="Tag Name" required="">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Parent Tag</label>
<div class="col-sm-5 mrt-8">
<select class="form-control h160" data-id="parentTag" name="ParentTag" multiple>
</select>
</div>
<div class="mtop3">
<a href="javascript:void(0)" class="pull-left fa fa-refresh" title="Refreh parent tag list" data-id="refreshBtn">
</a>
</div>
</div>
<div data-id="addAttributeDiv"></div>
<div class="form-group text-right">
<div class="col-sm-offset-2 col-sm-10">
<button type="default" class="btn btn-default addAttr" disabled="true" data-id="addAttrBtn"><i class="fa fa-plus"></i> Add Attribute</button>
</div>
</div>
<div class="form-group panel-footer">
<div class="col-sm-12 text-right padding0">
<button class="btn btn-primary saveAttr" type="button" disabled="true" data-id="saveButton">Save</button>
</div>
</div>
</fieldset>
</form>
</div>
</div>
</div> </div>
</div> </form>
...@@ -21,7 +21,7 @@ define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Mod ...@@ -21,7 +21,7 @@ define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Mod
var CommonViewFunction = {}; var CommonViewFunction = {};
CommonViewFunction.deleteTagModel = function(tagName) { CommonViewFunction.deleteTagModel = function(tagName) {
var msg = "<b>Tag: - </b>"; var msg = "<b>Tag:</b>";
if (tagName) { if (tagName) {
msg = "<b>Tag: " + tagName + "</b>"; msg = "<b>Tag: " + tagName + "</b>";
} }
...@@ -50,8 +50,7 @@ define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Mod ...@@ -50,8 +50,7 @@ define(['require', 'utils/Utils', 'modules/Modal'], function(require, Utils, Mod
}, },
error: function(error, data, status) { error: function(error, data, status) {
var message = "Tag " + options.tagName + " could not be deleted"; var message = "Tag " + options.tagName + " could not be deleted";
if (error && error.responseText) { if (data.error) {
var data = JSON.parse(error.responseText);
message = data.error; message = data.error;
} }
Utils.notifyError({ Utils.notifyError({
......
...@@ -26,6 +26,12 @@ define(['require'], function(require) { ...@@ -26,6 +26,12 @@ define(['require'], function(require) {
Globals.settings.PAGE_SIZE = 25; Globals.settings.PAGE_SIZE = 25;
Globals.saveApplicationState = { Globals.saveApplicationState = {
mainPageState: {}, mainPageState: {},
tabState: {
stateChanged: false,
tagUrl: "#!/tag",
taxonomyUrl: "#!/taxonomy",
searchUrl: "#!/search"
},
detailPageState: {} detailPageState: {}
}; };
......
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
define(['require', 'backgrid', 'asBreadcrumbs'], function(require) { define(['require', 'backgrid', 'asBreadcrumbs'], function(require) {
'use strict'; 'use strict';
$.asBreadcrumbs.prototype.generateChildrenInfo = function() { $.asBreadcrumbs.prototype.generateChildrenInfo = function() {
var self = this; var self = this;
this.$children.each(function() { this.$children.each(function() {
......
...@@ -16,10 +16,11 @@ ...@@ -16,10 +16,11 @@
* limitations under the License. * limitations under the License.
*/ */
define(['require', 'utils/Globals'], function(require, Globals) { define(['require', 'utils/Globals'], function(require, Globals) {
'use strict'; 'use strict';
var Utils = {}; var Utils = {};
var prevNetworkErrorTime = 0;
require(['noty'], function() { require(['noty'], function() {
$.extend($.noty.defaults, { $.extend($.noty.defaults, {
timeout: 5000, timeout: 5000,
...@@ -74,11 +75,22 @@ ...@@ -74,11 +75,22 @@
}); });
}; };
Utils.defaultErrorHandler = function(model, error) { Utils.defaultErrorHandler = function(model, error) {
/*require(['views/common/ErrorView', 'App'], function(vError, App) {*/
if (error.status == 401) { if (error.status == 401) {
window.location = '/login.jsp' window.location = 'login.jsp'
} else if (error.status == 419) { } else if (error.status == 419) {
window.location = '/login.jsp' window.location = 'login.jsp'
} else if (error.status == "0") {
var diffTime = (new Date().getTime() - prevNetworkErrorTime);
if (diffTime > 3000) {
prevNetworkErrorTime = new Date().getTime();
Utils.notifyError({
content: "Network Connection Failure : " +
"It seems you are not connected to the internet. Please check your internet connection and try again"
});
}
} }
/*});*/
}; };
...@@ -133,23 +145,12 @@ ...@@ -133,23 +145,12 @@
} }
} }
}; };
Utils.getQueryParams = function(qs) {
qs = qs.split('+').join(' ');
var params = {},
tokens,
re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
}
return params;
};
Utils.setUrl = function(options) { Utils.setUrl = function(options) {
if (options) { if (options) {
if (options.mergeBrowserUrl) { if (options.mergeBrowserUrl) {
var hashUrl = window.location.hash.split("?"); var param = Utils.getUrlState.getQueryParams();
if (hashUrl.length > 1) { if (param) {
var param = Utils.getQueryParams(hashUrl[1]);
options.urlParams = _.extend(param, options.urlParams); options.urlParams = _.extend(param, options.urlParams);
} }
} }
...@@ -161,8 +162,68 @@ ...@@ -161,8 +162,68 @@
urlParams = urlParams.slice(0, -1); urlParams = urlParams.slice(0, -1);
options.url += urlParams; options.url += urlParams;
} }
if (options.updateTabState) {
_.extend(Globals.saveApplicationState.tabState, options.updateTabState());
}
Backbone.history.navigate(options.url, { trigger: options.trigger != undefined ? options.trigger : true }); Backbone.history.navigate(options.url, { trigger: options.trigger != undefined ? options.trigger : true });
} }
}; };
Utils.getUrlState = {
getQueryUrl: function() {
var hashValue = window.location.hash;
return {
firstValue: hashValue.split('/')[1],
hash: hashValue,
queyParams: hashValue.split("?"),
lastValue: hashValue.split('/')[hashValue.split('/').length - 1]
}
},
isInitial: function() {
return this.getQueryUrl().firstValue == undefined ? true : false;
},
isTagTab: function() {
return this.getQueryUrl().firstValue == "tag" ? true : false;
},
isTaxonomyTab: function() {
return this.getQueryUrl().firstValue == "taxonomy" ? true : false;
},
isSearchTab: function() {
return this.getQueryUrl().firstValue == "search" ? true : false;
},
getLastValue: function() {
return this.getQueryUrl().lastValue;
},
getFirstValue: function() {
return this.getQueryUrl().firstValue;
},
getQueryParams: function() {
var qs = this.getQueryUrl().queyParams[1];
if (typeof qs == "string") {
qs = qs.split('+').join(' ');
var params = {},
tokens,
re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
}
return params;
}
},
getKeyValue: function(key) {
var paramsObj = this.getQueryParams();
if (key.length) {
var values = [];
_.each(key, function(objKey) {
var obj = {};
obj[objKey] = paramsObj[objKey]
values.push(obj);
return values;
})
} else {
return paramsObj[key];
}
}
}
return Utils; return Utils;
}); });
\ No newline at end of file
/**
* 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.
*/
define(['require',
'backbone',
'hbs!tmpl/audit/AuditTableLayoutView_tmpl',
'collection/VEntityList',
'moment'
], function(require, Backbone, AuditTableLayoutView_tmpl, VEntityList, moment) {
'use strict';
var AuditTableLayoutView = Backbone.Marionette.LayoutView.extend(
/** @lends AuditTableLayoutView */
{
_viewName: 'AuditTableLayoutView',
template: AuditTableLayoutView_tmpl,
/** Layout sub regions */
regions: {
RAuditTableLayoutView: "#r_auditTableLayoutView",
},
/** ui selector cache */
ui: {
auditValue: "[data-id='auditValue']",
auditCreate: "[data-id='auditCreate']",
},
/** ui events hash */
events: function() {
var events = {};
events["click " + this.ui.auditCreate] = "onClickAuditCreate";
return events;
},
/**
* intialize a new AuditTableLayoutView Layout
* @constructs
*/
initialize: function(options) {
_.extend(this, _.pick(options, 'globalVent', 'guid'));
this.entityCollection = new VEntityList();
this.entityCollection.url = "/api/atlas/entities/" + this.guid + "/audit";
this.entityCollection.modelAttrName = "events";
//this.collectionObject = entityCollection;
this.entityModel = new this.entityCollection.model();
this.commonTableOptions = {
collection: this.entityCollection,
includeFilter: false,
includePagination: false,
includePageSize: false,
includeFooterRecords: true,
gridOpts: {
className: "table table-striped table-condensed backgrid table-quickMenu",
emptyText: 'No records found!'
},
filterOpts: {},
paginatorOpts: {}
};
},
bindEvents: function() {
this.listenTo(this.entityCollection, "reset", function(value) {
this.renderTableLayoutView();
}, this);
},
onRender: function() {
this.entityCollection.fetch({ reset: true });
this.bindEvents();
this.renderTableLayoutView();
},
renderTableLayoutView: function() {
var that = this;
require(['utils/TableLayout'], function(TableLayout) {
var cols = new Backgrid.Columns(that.getAuditTableColumns());
that.RAuditTableLayoutView.show(new TableLayout(_.extend({}, that.commonTableOptions, {
globalVent: that.globalVent,
columns: cols,
gridOpts: {
className: "table table-bordered table-hover table-condensed backgrid table-quickMenu",
},
})));
});
},
getAuditTableColumns: function() {
var that = this;
return this.entityCollection.constructor.getTableCols({
user: {
label: "User",
cell: "html",
editable: false,
sortable: false,
},
timestamp: {
label: "Timestamp",
cell: "time",
editable: false,
sortable: false,
formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
fromRaw: function(rawValue, model) {
return moment(rawValue).format("YYYY-MM-DD HH:mm:ss,SSS");
}
})
},
action: {
label: "Action",
cell: "html",
editable: false,
sortable: false
},
tool: {
label: "Tool",
cell: "html",
editable: false,
sortable: false,
formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
fromRaw: function(rawValue, model) {
return '<div class="label label-success auditCreateBtn" data-id="auditCreate">Create</div>';
}
})
},
}, this.entityCollection);
},
onClickAuditCreate: function(e) {
var that = this;
require([
'modules/Modal',
'views/audit/CreateAuditTableLayoutView',
], function(Modal, CreateAuditTableLayoutView) {
var view = new CreateAuditTableLayoutView({ guid: that.guid });
var modal = new Modal({
title: 'Create',
content: view,
okCloses: true,
showFooter: true,
}).open();
});
}
});
return AuditTableLayoutView;
});
/**
* 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.
*/
define(['require',
'backbone',
'hbs!tmpl/audit/CreateAuditTableLayoutView_tmpl',
'collection/VEntityList'
], function(require, Backbone, CreateAuditTableLayoutViewTmpl, VEntityList) {
'use strict';
var CreateAuditTableLayoutView = Backbone.Marionette.LayoutView.extend(
/** @lends CreateAuditTableLayoutView */
{
_viewName: 'CreateAuditTableLayoutView',
template: CreateAuditTableLayoutViewTmpl,
/** Layout sub regions */
regions: {},
/** ui selector cache */
ui: {
auditValue: "[data-id='auditValue']",
auditCreate: "[data-id='auditCreate']",
},
/** ui events hash */
events: function() {
var events = {};
events["click " + this.ui.auditCreate] = "onClickAuditCreate";
return events;
},
/**
* intialize a new AuditTableLayoutView Layout
* @constructs
*/
initialize: function(options) {
_.extend(this, _.pick(options, 'globalVent', 'guid'));
this.entityCollection = new VEntityList();
this.entityCollection.url = "/api/atlas/entities/" + this.guid + "/audit";
this.entityCollection.modelAttrName = "events";
this.entityModel = new this.entityCollection.model();
},
bindEvents: function() {
this.listenTo(this.entityCollection, "reset", function(value) {
this.auditTableGenerate();
}, this);
},
onRender: function() {
this.entityCollection.fetch({ reset: true });
this.bindEvents();
},
auditTableGenerate: function() {
var that = this,
table = "";
var collectionObject = this.entityCollection.models[0].toJSON();
var appendedString = "{" + collectionObject.details + "}";
var auditData = appendedString.split('"')[0].split(':')[0].split("{")[1];
var detailsObject = JSON.parse(appendedString.replace("{" + auditData + ":", '{"' + auditData + '":'))[auditData];
//Append string for JSON parse
var valueObject = detailsObject.values;
_.keys(valueObject).map(function(key) {
var keyValue = valueObject[key];
if (_.isArray(keyValue)) {
var subLink = "";
for (var i = 0; i < keyValue.length; i++) {
var inputOutputField = keyValue[i];
if (_.isObject(inputOutputField.id)) {
id = inputOutputField.id.id;
} else {
id = inputOutputField.id;
}
that.fetchInputOutputValue(id);
//var coma = (i = 0) ? ('') : (',');
subLink += '<div data-id="' + id + '"></div>';
}
table += '<tr><td>' + key + '</td><td>' + subLink + '</td></tr>';
} else if (_.isObject(keyValue)) {
var id = "";
if (_.isObject(keyValue.id)) {
id = keyValue.id.id;
} else {
id = keyValue.id;
}
that.fetchInputOutputValue(id);
table += '<tr><td>' + key + '</td><td><div data-id="' + id + '"></div></td></tr>';
} else {
if (key == "createTime" || key == "lastAccessTime" || key == "retention") {
table += '<tr><td>' + key + '</td><td>' + new Date(valueObject[key]) + '</td></tr>';
} else {
table += '<tr><td>' + key + '</td><td>' + valueObject[key] + '</td></tr>';
}
}
});
that.ui.auditValue.append(table);
},
fetchInputOutputValue: function(id) {
var that = this;
this.entityModel.getEntity(id, {
beforeSend: function() {},
success: function(data) {
var value = "";
if (data.definition.values.name) {
value = data.definition.values.name;
} else {
value = data.GUID;
}
that.$('td div[data-id="' + data.GUID + '"]').html('<a href="#!/detailPage/' + data.GUID + '">' + value + '</a>');
},
error: function(error, data, status) {},
complete: function() {}
});
}
});
return CreateAuditTableLayoutView;
});
/**
* 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.
*/
define(['require',
'backbone',
'hbs!tmpl/business_catalog/AddTermView_tmpl',
'utils/Utils',
'collection/VCatalogList'
], function(require, Backbone, AddTermViewTmpl, Utils, VCatalogList) {
'use strict';
var AddTermLayoutView = Backbone.Marionette.LayoutView.extend(
/** @lends AddTermView */
{
_viewName: 'AddTermLayoutView',
template: AddTermViewTmpl,
/** Layout sub regions */
regions: {},
/** ui selector cache */
ui: {
termName: '[data-id="termName"]',
termDetail: '[data-id="termDetail"]'
},
/** ui events hash */
events: function() {
var events = {};
return events;
},
/**
* intialize a new BusinessCatalogLayoutView Layout
* @constructs
*/
initialize: function(options) {
_.extend(this, _.pick(options, 'url', 'model'));
},
bindEvents: function() {},
onRender: function() {}
});
return AddTermLayoutView;
});
/**
* 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.
*/
define(['require',
'backbone',
'hbs!tmpl/business_catalog/BusinessCatalogDetailLayoutView_tmpl',
'utils/Utils',
'collection/VCatalogList',
'models/VEntity',
], function(require, Backbone, BusinessCatalogDetailLayoutViewTmpl, Utils, VCatalogList, VEntity) {
'use strict';
var BusinessCatalogDetailLayoutView = Backbone.Marionette.LayoutView.extend(
/** @lends BusinessCatalogDetailLayoutView */
{
_viewName: 'BusinessCatalogDetailLayoutView',
template: BusinessCatalogDetailLayoutViewTmpl,
/** Layout sub regions */
regions: {
REntityDetailTableLayoutView: "#r_entityDetailTableLayoutView",
RSchemaTableLayoutView: "#r_schemaTableLayoutView",
RTagTableLayoutView: "#r_tagTableLayoutView",
RLineageLayoutView: "#r_lineageLayoutView",
},
/** ui selector cache */
ui: {
title: '[data-id="title"]',
editButton: '[data-id="editButton"]',
cancelButton: '[data-id="cancelButton"]',
publishButton: '[data-id="publishButton"]',
description: '[data-id="description"]',
descriptionTextArea: '[data-id="descriptionTextArea"]',
editBox: '[data-id="editBox"]',
createDate: '[data-id="createDate"]',
updateDate: '[data-id="updateDate"]',
createdUser: '[data-id="createdUser"]',
addTagBtn: '[data-id="addTagBtn"]',
appendList: '[data-id="appendList"]',
inputTagging: '[data-id="inputTagging"]',
deleteTag: '[data-id="deleteTag"]',
addTagtext: '[data-id="addTagtext"]',
addTagPlus: '[data-id="addTagPlus"]',
searchTag: '[data-id="searchTag"] input',
addTagListBtn: '[data-id="addTagListBtn"]'
},
/** ui events hash */
events: function() {
var events = {};
events["click " + this.ui.editButton] = function() {
this.ui.editButton.hide();
this.ui.description.hide();
this.ui.editBox.show();
this.ui.descriptionTextArea.focus();
if (this.ui.description.text().length) {
this.ui.descriptionTextArea.val(this.ui.description.text());
}
};
events["click " + this.ui.cancelButton] = 'onCancelButtonClick';
return events;
},
/**
* intialize a new BusinessCatalogDetailLayoutView Layout
* @constructs
*/
initialize: function(options) {
_.extend(this, _.pick(options, 'globalVent', 'url', 'collection'));
this.bindEvents();
},
bindEvents: function() {
var that = this;
this.listenTo(this.collection, 'error', function(model, response) {
this.$('.fontLoader').hide();
if (response && response.responseJSON && response.responseJSON.message) {
Utils.notifyError({
content: response.responseJSON.message
});
}
}, this);
this.listenTo(this.collection, 'reset', function() {
this.$('.fontLoader').hide();
this.$('.hide').removeClass('hide');
this.model = this.collection.first();
var name = this.model.get('name'),
description = this.model.get('description'),
createdDate = this.model.get('creation_time');
if (name) {
this.ui.title.show();
this.ui.title.html('<span>' + name + '</span>');
} else {
this.ui.title.hide();
}
if (description) {
this.ui.description.show();
this.ui.description.html('<span>' + description + '</span>');
} else {
this.ui.description.hide();
}
if (createdDate) {
this.ui.createDate.html('<strong> Date Created: </strong> ' + new Date(createdDate));
}
}, this);
},
onRender: function() {
var that = this;
this.$('.fontLoader').show();
this.ui.editBox.hide();
},
fetchCollection: function() {
this.$('.fontLoader').show();
this.collection.fetch({ reset: true });
},
onCancelButtonClick: function() {
this.ui.description.show();
this.ui.editButton.show();
this.ui.editBox.hide();
},
addTagCollectionList: function(obj, searchString) {
var list = "",
that = this;
_.each(obj, function(model) {
var tags = model.get("tags");
if (!_.contains(that.tagElement, tags)) {
if (searchString) {
if (tags.search(new RegExp(searchString, "i")) != -1) {
list += '<div><span>' + tags + '</span></div>';
return;
}
} else {
list += '<div><span>' + tags + '</span></div>';
}
}
});
if (list.length <= 0) {
list += '<div><span>' + "No more tags" + '</span></div>';
}
this.ui.appendList.html(list);
},
addTagToTerms: function(tagObject) {
var tagData = "";
_.each(tagObject, function(val) {
tagData += '<span class="inputTag">' + val + '<i class="fa fa-close" data-id="deleteTag"></i></span>';
});
this.$('.addTag-dropdown').before(tagData);
},
saveTagFromList: function(ref) {
var that = this;
this.entityModel = new VEntity();
var tagName = ref.text();
var json = {
"jsonClass": "org.apache.atlas.typesystem.json.InstanceSerialization$_Struct",
"typeName": tagName,
"values": {}
};
this.entityModel.saveEntity(this.id, {
data: JSON.stringify(json),
beforeSend: function() {},
success: function(data) {
that.collection.fetch({ reset: true });
},
error: function(error, data, status) {
if (error && error.responseText) {
var data = JSON.parse(error.responseText);
}
},
complete: function() {}
});
},
offlineSearchTag: function(e) {
this.addTagCollectionList(this.tagCollection.fullCollection.models, $(e.currentTarget).val());
},
onClickAddTagBtn: function() {
this.ui.searchTag.val("");
this.offlineSearchTag(this.ui.searchTag[0]);
}
});
return BusinessCatalogDetailLayoutView;
});
/**
* 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.
*/
define(['require',
'hbs!tmpl/business_catalog/BusinessCatalogHeader'
], function(require, tmpl) {
'use strict';
var BusinessCatalogHeader = Marionette.LayoutView.extend({
template: tmpl,
templateHelpers: function() {},
regions: {},
events: {},
initialize: function(options) {
_.extend(this, _.pick(options, 'globalVent', 'url', 'collection'));
this.value = [];
},
/**
* After Page Render createBrudCrum called.
* @return {[type]} [description]
*/
render: function() {
$(this.el).html(this.template());
var that = this;
if (this.url) {
var t = [];
var splitURL = this.url.split("api/atlas/v1/taxonomies/");
if (splitURL.length > 1) {
var x = splitURL[1].split("/terms/");
}
var href = "";
for (var v in x) {
if (v == 0) {
href = x[v];
t.push({
value: x[v],
href: href
});
} else {
href += "/terms/" + x[v];
t.push({
value: x[v],
href: href
})
};
}
this.value = t;
}
this.listenTo(this.collection, 'reset', function() {
setTimeout(function() {
that.createBrudCrum();
}, 0);
}, this);
return this;
},
createBrudCrum: function() {
var li = "",
value = this.value,
that = this;
_.each(value, function(object) {
li += '<li><a href="/#!/taxonomy/detailCatalog/api/atlas/v1/taxonomies/' + object.href + '">' + object.value + '</a></li>';
});
this.$('.breadcrumb').html(li);
//this.$(".breadcrumb").asBreadcrumbs("destroy");
this.$('.breadcrumb').asBreadcrumbs({
namespace: 'breadcrumb',
overflow: "left",
dropicon: "fa fa-ellipsis-h",
dropdown: function() {
return '<div class=\"dropdown\">' +
'<a href=\"javascript:void(0);\" class=\"' + this.namespace + '-toggle\" data-toggle=\"dropdown\"><i class=\"' + this.dropicon + '\"</i></a>' +
'<ul class=\"' + this.namespace + '-menu dropdown-menu popover bottom arrowPosition \" ><div class="arrow"></div></ul>' +
'</div>';
},
dropdownContent: function(a) {
return '<li><a href="' + a.find('a').attr('href') + '" class="dropdown-item">' + a.text() + "</a></li>";
}
});
}
});
return BusinessCatalogHeader;
});
/**
* 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.
*/
define(['require',
'backbone',
'hbs!tmpl/business_catalog/MoveTermLayoutView_tmpl',
'utils/Utils',
'tree'
], function(require, Backbone, MoveTermLayoutViewTmpl, Utils) {
'use strict';
var MoveTermLayoutView = Backbone.Marionette.LayoutView.extend(
/** @lends BusinessCatalogLayoutView */
{
_viewName: 'MoveTermLayoutView',
template: MoveTermLayoutViewTmpl,
/** Layout sub regions */
regions: {},
/** ui selector cache */
ui: {
moveTree: '[data-id="moveTree"]'
},
/** ui events hash */
events: function() {
var events = {};
return events;
},
/**
* intialize a new BusinessCatalogLayoutView Layout
* @constructs
*/
initialize: function(options) {
_.extend(this, _.pick(options, 'taxanomyCollection'));
// $('#using_json_2').jstree({
// });
},
bindEvents: function() {},
onRender: function() {
this.taxanomyCollectionList();
},
taxanomyCollectionList: function() {
// var data = [];
// _.each(this.taxanomyCollection.models, function(val, obj) {
// var obj = {};
// obj['text'] = val.get('name');
// //obj['a_attr'] = { 'href': '#!/detailPage/' + val.get('$id$').id }
// obj['children'] = [];
// data.push(obj)
// });
// this.$('#tree').jstree({
// 'core': {
// 'data': data
// }
// });
}
});
return MoveTermLayoutView;
});
/**
* 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.
*/
define(['require',
'hbs!tmpl/business_catalog/SideNavLayoutView_tmpl',
'utils/Utils',
'utils/Globals',
], function(require, tmpl, Utils, Globals) {
'use strict';
var SideNavLayoutView = Marionette.LayoutView.extend({
template: tmpl,
regions: {
RBusinessCatalogLayoutView: "#r_businessCatalogLayoutView",
RTagLayoutView: "#r_tagLayoutView",
RSearchLayoutView: "#r_searchLayoutView",
},
ui: {
tabs: '.tabs li a',
},
events: function() {
var events = {},
that = this;
events["click " + this.ui.tabs] = function(e) {
var urlString = "",
elementName = $(e.currentTarget).data();
var tabStateUrls = Globals.saveApplicationState.tabState;
if (elementName.name == "tab-tag") {
urlString = tabStateUrls.tagUrl; //'#!/tag';
} else if (elementName.name == "tab-taxonomy") {
urlString = tabStateUrls.taxonomyUrl; // '#!/taxonomy';
} else if (elementName.name == "tab-search") {
urlString = tabStateUrls.searchUrl; // '#!/search';
}
Utils.setUrl({
url: urlString,
mergeBrowserUrl: false,
trigger: true,
updateTabState: function() {
return { stateChanged: true };
},
});
};
return events;
},
initialize: function(options) {
_.extend(this, _.pick(options, 'globalVent', 'url', 'value', 'tag', 'selectFirst'));
},
onRender: function() {
this.bindEvent();
this.renderTagLayoutView();
this.renderSearchLayoutView();
this.rendeBusinessCatalogLayoutView();
this.selectTab();
},
bindEvent: function() {},
rendeBusinessCatalogLayoutView: function() {
var that = this;
require(['views/business_catalog/BusinessCatalogLayoutView'], function(BusinessCatalogLayoutView) {
that.RBusinessCatalogLayoutView.show(new BusinessCatalogLayoutView({
globalVent: that.globalVent,
url: that.url
}));
});
},
renderTagLayoutView: function() {
var that = this;
require(['views/tag/TagLayoutView'], function(TagLayoutView) {
that.RTagLayoutView.show(new TagLayoutView({
globalVent: that.globalVent,
searchCollection: that.searchCollection,
tag: that.tag
}));
});
},
renderSearchLayoutView: function() {
var that = this;
require(['views/search/SearchLayoutView'], function(SearchLayoutView) {
that.RSearchLayoutView.show(new SearchLayoutView({
globalVent: that.globalVent,
vent: that.vent,
value: that.value
}));
});
},
selectTab: function() {
if (Utils.getUrlState.isTagTab()) {
this.$('.tabs').find('li a[aria-controls="tab-tag"]').parents('li').addClass('active').siblings().removeClass('active');
this.$('.tab-content').find('div#tab-tag').addClass('active').siblings().removeClass('active');
} else if (Utils.getUrlState.isTaxonomyTab()) {
this.$('.tabs').find('li a[aria-controls="tab-taxonomy"]').parents('li').addClass('active').siblings().removeClass('active');
this.$('.tab-content').find('div#tab-taxonomy').addClass('active').siblings().removeClass('active');
} else if (Utils.getUrlState.isSearchTab()) {
this.$('.tabs').find('li a[aria-controls="tab-search"]').parents('li').addClass('active').siblings().removeClass('active');
this.$('.tab-content').find('div#tab-search').addClass('active').siblings().removeClass('active');
}
},
});
return SideNavLayoutView;
});
...@@ -109,7 +109,6 @@ define(['require', ...@@ -109,7 +109,6 @@ define(['require',
table += '<tr><td>' + key + '</td><td></td></tr>'; table += '<tr><td>' + key + '</td><td></td></tr>';
} }
} }
} else { } else {
if (key == "createTime" || key == "lastAccessTime" || key == "retention") { if (key == "createTime" || key == "lastAccessTime" || key == "retention") {
table += '<tr><td>' + key + '</td><td>' + new Date(valueObject[key]) + '</td></tr>'; table += '<tr><td>' + key + '</td><td>' + new Date(valueObject[key]) + '</td></tr>';
...@@ -133,7 +132,7 @@ define(['require', ...@@ -133,7 +132,7 @@ define(['require',
value = data.GUID; value = data.GUID;
} }
that.$('td div[data-id="' + data.GUID + '"]').html('<a href="#!/dashboard/detailPage/' + data.GUID + '">' + value + '</a>'); that.$('td div[data-id="' + data.GUID + '"]').html('<a href="#!/detailPage/' + data.GUID + '">' + value + '</a>');
}, },
error: function(error, data, status) {}, error: function(error, data, status) {},
complete: function() {} complete: function() {}
......
...@@ -21,9 +21,10 @@ define(['require', ...@@ -21,9 +21,10 @@ define(['require',
'hbs!tmpl/graph/LineageLayoutView_tmpl', 'hbs!tmpl/graph/LineageLayoutView_tmpl',
'collection/VLineageList', 'collection/VLineageList',
'models/VEntity', 'models/VEntity',
'utils/Utils',
'dagreD3', 'dagreD3',
'd3-tip' 'd3-tip'
], function(require, Backbone, LineageLayoutViewtmpl, VLineageList, VEntity, dagreD3, d3Tip) { ], function(require, Backbone, LineageLayoutViewtmpl, VLineageList, VEntity, Utils, dagreD3, d3Tip) {
'use strict'; 'use strict';
var LineageLayoutView = Backbone.Marionette.LayoutView.extend( var LineageLayoutView = Backbone.Marionette.LayoutView.extend(
...@@ -52,12 +53,12 @@ define(['require', ...@@ -52,12 +53,12 @@ define(['require',
* @constructs * @constructs
*/ */
initialize: function(options) { initialize: function(options) {
_.extend(this, _.pick(options, 'globalVent', 'assetName', 'guid')); _.extend(this, _.pick(options, 'globalVent', 'guid'));
this.inputCollection = new VLineageList(); this.inputCollection = new VLineageList();
this.outputCollection = new VLineageList(); this.outputCollection = new VLineageList();
this.entityModel = new VEntity(); this.entityModel = new VEntity();
this.inputCollection.url = "/api/atlas/lineage/" + this.assetName + "/inputs/graph"; this.inputCollection.url = "/api/atlas/lineage/" + this.guid + "/inputs/graph";
this.outputCollection.url = "/api/atlas/lineage/" + this.assetName + "/outputs/graph"; this.outputCollection.url = "/api/atlas/lineage/" + this.guid + "/outputs/graph";
this.bindEvents(); this.bindEvents();
this.fetchGraphData(); this.fetchGraphData();
this.data = {}; this.data = {};
...@@ -280,7 +281,7 @@ define(['require', ...@@ -280,7 +281,7 @@ define(['require',
svgGroup = svg.append("g"); svgGroup = svg.append("g");
var zoom = d3.behavior.zoom() var zoom = d3.behavior.zoom()
.scaleExtent([0.5, 6]) .scaleExtent([0.5, 6])
.on("zoom", zoomed) .on("zoom", zoomed);
function zoomed() { function zoomed() {
svgGroup.attr("transform", svgGroup.attr("transform",
...@@ -359,13 +360,19 @@ define(['require', ...@@ -359,13 +360,19 @@ define(['require',
}) })
.on('dblclick', function(d) { .on('dblclick', function(d) {
tooltip.hide(d); tooltip.hide(d);
Backbone.history.navigate("#!/dashboard/detailPage/" + d, { trigger: true }); //var urlForTab = window.location.hash.split('/')[1];
Utils.setUrl({
url: '#!/detailPage/' + d,
mergeBrowserUrl: false,
trigger: true
});
}) })
.on('mouseout', function(d) { .on('mouseout', function(d) {
tooltip.hide(d); tooltip.hide(d);
}); });
// Center the graph // Center the graph
var initialScale = 1.5; var initialScale = 1.2;
zoom.translate([(this.$('svg').width() - this.g.graph().width * initialScale) / 2, (this.$('svg').height() - this.g.graph().height * initialScale) / 2]) zoom.translate([(this.$('svg').width() - this.g.graph().width * initialScale) / 2, (this.$('svg').height() - this.g.graph().height * initialScale) / 2])
.scale(initialScale) .scale(initialScale)
.event(svg); .event(svg);
......
...@@ -54,10 +54,7 @@ define(['require', ...@@ -54,10 +54,7 @@ define(['require',
} else { } else {
var value = e.currentTarget.text; var value = e.currentTarget.text;
Utils.setUrl({ Utils.setUrl({
url: '#!/dashboard/assetPage', url: '#!/tag/tagAttribute/' + value,
urlParams: {
query: value
},
mergeBrowserUrl: false, mergeBrowserUrl: false,
trigger: true trigger: true
}); });
...@@ -70,9 +67,9 @@ define(['require', ...@@ -70,9 +67,9 @@ define(['require',
* @constructs * @constructs
*/ */
initialize: function(options) { initialize: function(options) {
_.extend(this, _.pick(options, 'globalVent', 'name', 'vent')); _.extend(this, _.pick(options, 'globalVent', 'guid', 'vent'));
this.schemaCollection = new VSchemaList([], {}); this.schemaCollection = new VSchemaList([], {});
this.schemaCollection.url = "/api/atlas/lineage/" + this.name + "/schema"; this.schemaCollection.url = "/api/atlas/lineage/" + this.guid + "/schema";
this.commonTableOptions = { this.commonTableOptions = {
collection: this.schemaCollection, collection: this.schemaCollection,
includeFilter: false, includeFilter: false,
...@@ -115,6 +112,7 @@ define(['require', ...@@ -115,6 +112,7 @@ define(['require',
}); });
}, },
getSchemaTableColumns: function() { getSchemaTableColumns: function() {
var that = this;
return this.schemaCollection.constructor.getTableCols({ return this.schemaCollection.constructor.getTableCols({
name: { name: {
label: "Name", label: "Name",
...@@ -123,7 +121,7 @@ define(['require', ...@@ -123,7 +121,7 @@ define(['require',
sortable: false, sortable: false,
formatter: _.extend({}, Backgrid.CellFormatter.prototype, { formatter: _.extend({}, Backgrid.CellFormatter.prototype, {
fromRaw: function(rawValue, model) { fromRaw: function(rawValue, model) {
return '<div><a href="#!/dashboard/detailPage/' + model.get('$id$').id + '">' + rawValue + '</a></div>'; return '<div><a href="#!/detailPage/' + model.get('$id$').id + '">' + rawValue + '</a></div>';
} }
}) })
}, },
...@@ -133,7 +131,7 @@ define(['require', ...@@ -133,7 +131,7 @@ define(['require',
editable: false, editable: false,
sortable: false sortable: false
}, },
dataType: { type: {
label: "DataType", label: "DataType",
cell: "html", cell: "html",
editable: false, editable: false,
...@@ -149,9 +147,9 @@ define(['require', ...@@ -149,9 +147,9 @@ define(['require',
var traits = model.get('$traits$'); var traits = model.get('$traits$');
var atags = ""; var atags = "";
_.keys(model.get('$traits$')).map(function(key) { _.keys(model.get('$traits$')).map(function(key) {
atags += '<a data-id="tagClick">' + traits[key].$typeName$ + '<i class="fa fa-times" data-id="delete" data-name="' + traits[key].$typeName$ + '" data-guid="' + model.get('$id$').id + '" ></i></a>'; atags += '<a class="inputTag" data-id="tagClick">' + traits[key].$typeName$ + '<i class="fa fa-times" data-id="delete" data-name="' + traits[key].$typeName$ + '" data-guid="' + model.get('$id$').id + '" ></i></a>';
}); });
return '<div class="tagList">' + atags + '<a data-id="addTag" data-guid="' + model.get('$id$').id + '"><i class="fa fa-plus"></i></a></div>'; return '<div class="tagList">' + atags + '<a href="javascript:void(0);" class="inputTag" data-id="addTag" data-guid="' + model.get('$id$').id + '"><i style="right:0" class="fa fa-plus"></i></a></div>';
} }
}) })
} }
...@@ -159,18 +157,21 @@ define(['require', ...@@ -159,18 +157,21 @@ define(['require',
}, },
onClickSchemaTag: function(e) { onClickSchemaTag: function(e) {
var that = this; var that = this;
require(['views/tag/addTagModalView'], function(addTagModalView) { require(['views/tag/addTagModalView'], function(AddTagModalView) {
var view = new addTagModalView({ var view = new AddTagModalView({
vent: that.vent, vent: that.vent,
guid: that.$(e.currentTarget).data("guid"), guid: that.$(e.currentTarget).data("guid"),
modalCollection: that.schemaCollection modalCollection: that.schemaCollection
}); });
// view.saveTagData = function() {
//override saveTagData function
// }
}); });
}, },
onClickTagCross: function(e) { onClickTagCross: function(e) {
var tagName = $(e.target).data("name"); var tagName = $(e.target).data("name"),
var that = this; that = this,
var modal = CommonViewFunction.deleteTagModel(tagName); modal = CommonViewFunction.deleteTagModel(tagName);
modal.on('ok', function() { modal.on('ok', function() {
that.deleteTagData(e); that.deleteTagData(e);
}); });
...@@ -180,14 +181,12 @@ define(['require', ...@@ -180,14 +181,12 @@ define(['require',
}, },
deleteTagData: function(e) { deleteTagData: function(e) {
var that = this, var that = this,
tagName = $(e.target).data("name"); tagName = $(e.target).data("name"),
var guid = $(e.target).data("guid"); guid = $(e.target).data("guid");
require(['utils/CommonViewFunction'], function(CommonViewFunction) { CommonViewFunction.deleteTag({
CommonViewFunction.deleteTag({ 'tagName': tagName,
'tagName': tagName, 'guid': guid,
'guid': guid, 'collection': that.tagCollection
'collection': that.schemaCollection
});
}); });
} }
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment