Commit 8d888bbc authored by Evren Kutar's avatar Evren Kutar

Merge branch 'Feature267'

parents 50da9759 3ea98227
...@@ -56,7 +56,7 @@ module.exports = function (grunt) { ...@@ -56,7 +56,7 @@ module.exports = function (grunt) {
} }
}, },
prod: { prod: {
src: ['app/components/**/*.html'], src: ['app/components/**/*.html', 'app/shared/templates/**/*.html'],
dest: 'dist/templates.js' dest: 'dist/templates.js'
}, },
prod_branch: { prod_branch: {
...@@ -64,71 +64,120 @@ module.exports = function (grunt) { ...@@ -64,71 +64,120 @@ module.exports = function (grunt) {
dest: 'dist/<%= grunt.branchname %>/templates.js' dest: 'dist/<%= grunt.branchname %>/templates.js'
} }
}, },
copy: {
prod: {
files: [
{expand: true, cwd: 'app/bower_components/font-awesome/fonts/', src: '*', dest: 'dist/fonts/', flatten: true, filter: 'isFile'},
{expand: true, cwd: 'app/bower_components/bootstrap/dist/fonts/', src: '*', dest: 'dist/fonts/', flatten: true, filter: 'isFile'},
{expand: true, cwd: 'app/bower_components/jquery/dist/', src: 'jquery.min.js', dest: 'dist/bower_components/', flatten: true, filter: 'isFile'}
]
}
},
concat: { concat: {
options: { options: {
separator: '\n\n' separator: '\n\n'
}, },
js: { js: {
src: [ src: [
'app/app.js', 'app/app_routes.js', 'app/zetalib/**/*service.js', 'app/zetalib/general.js', 'app/zetalib/interceptors.js', 'app/components/**/*controller.js', 'app/components/**/*service.js'], 'app/app.js',
'app/app_routes.js',
'app/zetalib/**/*service.js',
'app/zetalib/general.js',
'app/zetalib/interceptors.js',
'app/shared/scripts/theme.js',
'app/shared/directives.js',
'app/components/**/*controller.js',
'app/components/**/*service.js'
],
dest: 'dist/app.js' dest: 'dist/app.js'
}, },
components: { components: {
src: [ src: [
'app/bower_components/angular/angular.js', //"app/bower_components/jquery/dist/jquery.min.js",
'app/bower_components/angular-route/angular-route.js', "app/bower_components/angular-route/angular-route.min.js",
'app/bower_components/angular-cookies/angular-cookies.js', "app/bower_components/angular-cookies/angular-cookies.min.js",
'app/bower_components/angular-resource/angular-resource.js', "app/bower_components/angular-resource/angular-resource.min.js",
'app/bower_components/angular-bootstrap/ui-bootstrap.js', "app/bower_components/angular-bootstrap/ui-bootstrap.min.js",
'app/bower_components/angular-bootstrap/ui-bootstrap-tpls.js', "app/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js",
'app/bower_components/angular-sanitize/angular-sanitize.js', "app/bower_components/angular-sanitize/angular-sanitize.min.js",
'app/bower_components/tv4/tv4.js', "app/bower_components/tv4/tv4.js",
'app/bower_components/objectpath/lib/ObjectPath.js', "app/bower_components/objectpath/lib/ObjectPath.js",
'app/bower_components/angular-schema-form/dist/schema-form.js', "app/bower_components/angular-schema-form/dist/schema-form.min.js",
'app/bower_components/angular-schema-form/dist/bootstrap-decorator.js', "app/bower_components/angular-schema-form/dist/bootstrap-decorator.min.js",
'app/bower_components/angular-schema-form-datepicker/bootstrap-datepicker.js', "app/bower_components/angular-schema-form-datepicker/bootstrap-datepicker.min.js",
'app/bower_components/angular-gettext/dist/angular-gettext.js' "app/bower_components/angular-gettext/dist/angular-gettext.min.js",
"app/bower_components/json3/lib/json3.min.js",
"app/bower_components/angular-loading-bar/build/loading-bar.min.js",
"app/bower_components/metisMenu/dist/metisMenu.min.js",
"app/bower_components/Chart.js/Chart.min.js"
], ],
dest: 'dist/bower_components/components.js' dest: 'dist/bower_components/components.js'
}, },
css: { css: {
src: ['app/bower_components/**/**/*.css', 'app/app.css'], files: {
dest: 'dist/app.css' 'dist/css/app.css': [
"app/bower_components/bootstrap/dist/css/bootstrap.min.css",
"app/app.css",
"app/bower_components/metisMenu/dist/metisMenu.min.css",
"app/bower_components/angular-loading-bar/build/loading-bar.min.css",
"app/bower_components/font-awesome/css/font-awesome.min.css"
]
}
}, },
js_branch: { js_branch: {
src: [ src: [
'app/app.js', 'app/app_routes.js', 'app/zetalib/**/*service.js', 'app/zetalib/general.js', 'app/zetalib/interceptors.js', 'app/components/**/*controller.js', 'app/components/**/*service.js'], 'app/app.js',
'app/app_routes.js',
'app/zetalib/**/*service.js',
'app/zetalib/general.js',
'app/zetalib/interceptors.js',
'app/shared/scripts/theme.js',
'app/shared/directives.js',
'app/components/**/*controller.js',
'app/components/**/*service.js'
],
dest: 'dist/<%= grunt.branchname %>/app.js' dest: 'dist/<%= grunt.branchname %>/app.js'
}, },
components_branch: { components_branch: {
src: [ src: [
'app/bower_components/angular/angular.js', //"app/bower_components/jquery/dist/jquery.min.js",
'app/bower_components/angular-route/angular-route.js', "app/bower_components/angular-route/angular-route.min.js",
'app/bower_components/angular-cookies/angular-cookies.js', "app/bower_components/angular-cookies/angular-cookies.min.js",
'app/bower_components/angular-resource/angular-resource.js', "app/bower_components/angular-resource/angular-resource.min.js",
'app/bower_components/angular-bootstrap/ui-bootstrap.js', "app/bower_components/angular-bootstrap/ui-bootstrap.min.js",
'app/bower_components/angular-bootstrap/ui-bootstrap-tpls.js', "app/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js",
'app/bower_components/angular-sanitize/angular-sanitize.js', "app/bower_components/angular-sanitize/angular-sanitize.min.js",
'app/bower_components/tv4/tv4.js', "app/bower_components/tv4/tv4.js",
'app/bower_components/objectpath/lib/ObjectPath.js', "app/bower_components/objectpath/lib/ObjectPath.js",
'app/bower_components/angular-schema-form/dist/schema-form.js', "app/bower_components/angular-schema-form/dist/schema-form.min.js",
'app/bower_components/angular-schema-form/dist/bootstrap-decorator.js', "app/bower_components/angular-schema-form/dist/bootstrap-decorator.min.js",
'app/bower_components/angular-schema-form-datepicker/bootstrap-datepicker.js', "app/bower_components/angular-schema-form-datepicker/bootstrap-datepicker.min.js",
'app/bower_components/angular-gettext/dist/angular-gettext.js' "app/bower_components/angular-gettext/dist/angular-gettext.min.js",
"app/bower_components/json3/lib/json3.min.js",
"app/bower_components/angular-loading-bar/build/loading-bar.min.js",
"app/bower_components/metisMenu/dist/metisMenu.min.js",
"app/bower_components/Chart.js/Chart.min.js"
], ],
dest: 'dist/<%= grunt.branchname %>/bower_components/components.js' dest: 'dist/<%= grunt.branchname %>/bower_components/components.js'
}, },
css_branch: { css_branch: {
src: ['app/bower_components/**/**/*.css', 'app/app.css'], src: [
dest: 'dist/<%= grunt.branchname %>/app.css' "app/bower_components/bootstrap/dist/css/bootstrap.min.css",
"app/app.css",
"app/bower_components/metisMenu/dist/metisMenu.min.css",
"app/bower_components/angular-loading-bar/build/loading-bar.min.css",
"app/bower_components/font-awesome/css/font-awesome.min.css"
],
dest: 'dist/<%= grunt.branchname %>/css/app.css'
} }
}, },
watch: { watch: {
dev: { dev: {
files: ['app/**/*.js', 'app/components/**/*.html'], files: ['app/**/*.js', 'app/components/**/*.html', 'index.html'],
tasks: ['karma:unit', 'html2js:dist', 'concat:dist'], tasks: ['env:dev', 'preprocess:dev', 'karma:unit'],
options: { options: {
atBegin: true atBegin: false
} }
}, },
min: { min: {
...@@ -164,26 +213,13 @@ module.exports = function (grunt) { ...@@ -164,26 +213,13 @@ module.exports = function (grunt) {
} }
}, },
env: { env: {
options: {},
options: {
/* Shared Options Hash */
//globalOption : 'foo'
},
dev: { dev: {
NODE_ENV: 'DEVELOPMENT' NODE_ENV: 'DEVELOPMENT'
}, },
prod: { prod: {
NODE_ENV: 'PRODUCTION' NODE_ENV: 'PRODUCTION'
} }
}, },
connect: { connect: {
server: { server: {
...@@ -193,7 +229,7 @@ module.exports = function (grunt) { ...@@ -193,7 +229,7 @@ module.exports = function (grunt) {
} }
} }
}, },
preprocess : { preprocess: {
dev: { dev: {
src: 'index.html', src: 'index.html',
dest: 'app/index.html' dest: 'app/index.html'
...@@ -229,6 +265,7 @@ module.exports = function (grunt) { ...@@ -229,6 +265,7 @@ module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-html2js'); grunt.loadNpmTasks('grunt-html2js');
grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-watch');
...@@ -238,7 +275,7 @@ module.exports = function (grunt) { ...@@ -238,7 +275,7 @@ module.exports = function (grunt) {
grunt.loadNpmTasks('grunt-preprocess'); grunt.loadNpmTasks('grunt-preprocess');
grunt.loadNpmTasks('grunt-env'); grunt.loadNpmTasks('grunt-env');
grunt.registerTask('dev', ['bower', 'env:dev', 'preprocess:dev', 'connect:server', 'watch:dev']); grunt.registerTask('dev', ['env:dev', 'preprocess:dev', 'connect:server', 'watch:dev']);
grunt.registerTask('test', ['bower', 'karma:continuous']); grunt.registerTask('test', ['bower', 'karma:continuous']);
grunt.registerTask('i18n', ['nggettext_extract', 'nggettext_compile']); grunt.registerTask('i18n', ['nggettext_extract', 'nggettext_compile']);
grunt.registerTask('default', [ grunt.registerTask('default', [
...@@ -247,12 +284,14 @@ module.exports = function (grunt) { ...@@ -247,12 +284,14 @@ module.exports = function (grunt) {
'concat:js', 'concat:js',
'concat:css', 'concat:css',
'concat:components', 'concat:components',
'copy:prod',
'env:prod', 'env:prod',
'preprocess:prod', 'preprocess:prod',
'html2js:prod', 'html2js:prod',
'uglify:dist' 'uglify:dist'
]); ]);
grunt.registerTask('branch', '',function(){ grunt.registerTask('branch', '', function () {
// get branch name
var branch = require('git-branch'); var branch = require('git-branch');
grunt.branchname = branch.sync(); grunt.branchname = branch.sync();
grunt.task.run([ grunt.task.run([
...@@ -261,6 +300,7 @@ module.exports = function (grunt) { ...@@ -261,6 +300,7 @@ module.exports = function (grunt) {
'concat:js_branch', 'concat:js_branch',
'concat:css_branch', 'concat:css_branch',
'concat:components_branch', 'concat:components_branch',
'copy:prod',
'env:prod', 'env:prod',
'preprocess:prod_branch', 'preprocess:prod_branch',
'html2js:prod_branch', 'html2js:prod_branch',
......
/* /*/!**/
* Base structure /** Base structure*/
*/ /**!/*/
/*/!* Move down content because we have a fixed navbar that is 50px tall *!/*/
/*body {*/
/*padding-top: 50px;*/
/*}*/
/*/!**/
/** Global add-ons*/
/**!/*/
/*.sub-header {*/
/*padding-bottom: 10px;*/
/*border-bottom: 1px solid #eee;*/
/*}*/
/*/!**/
/** Top navigation*/
/** Hide default border to remove 1px line.*/
/**!/*/
/*.navbar-fixed-top {*/
/*border: 0;*/
/*}*/
/*/!**/
/** Sidebar*/
/**!/*/
/*/!* Hide for mobile, show later *!/*/
/*.sidebar {*/
/*display: none;*/
/*}*/
/*@media (min-width: 768px) {*/
/*.sidebar {*/
/*position: fixed;*/
/*top: 51px;*/
/*bottom: 0;*/
/*left: 0;*/
/*z-index: 1000;*/
/*display: block;*/
/*padding: 20px;*/
/*overflow-x: hidden;*/
/*overflow-y: auto; /!* Scrollable contents if viewport is shorter than content. *!/*/
/*background-color: #f5f5f5;*/
/*border-right: 1px solid #eee;*/
/*}*/
/*}*/
/* Move down content because we have a fixed navbar that is 50px tall */ /*/!* Sidebar navigation *!/*/
/*.nav-sidebar {*/
/*margin-right: -21px; /!* 20px padding + 1px border *!/*/
/*margin-bottom: 20px;*/
/*margin-left: -20px;*/
/*}*/
/*.nav-sidebar > li > a {*/
/*padding-right: 20px;*/
/*padding-left: 20px;*/
/*}*/
/*.nav-sidebar > .active > a,*/
/*.nav-sidebar > .active > a:hover,*/
/*.nav-sidebar > .active > a:focus {*/
/*color: #fff;*/
/*background-color: #428bca;*/
/*}*/
/*/!**/
/** Main content*/
/**!/*/
/*.main {*/
/*padding: 20px;*/
/*}*/
/*@media (min-width: 768px) {*/
/*.main {*/
/*padding-right: 40px;*/
/*padding-left: 40px;*/
/*}*/
/*}*/
/*.main .page-header {*/
/*margin-top: 0;*/
/*}*/
/*/!**/
/** Placeholder dashboard ideas*/
/**!/*/
/*.placeholders {*/
/*margin-bottom: 30px;*/
/*text-align: center;*/
/*}*/
/*.placeholders h4 {*/
/*margin-bottom: 0;*/
/*}*/
/*.placeholder {*/
/*margin-bottom: 20px;*/
/*}*/
/*.placeholder img {*/
/*display: inline-block;*/
/*border-radius: 50%;*/
/*}*/
/* Space out content a bit */
body { body {
padding-top: 50px; padding-bottom: 20px;
} }
/* Everything but the jumbotron gets side spacing for mobile first views */
.header,
.marketing,
.footer {
padding-left: 15px;
padding-right: 15px;
}
/* /* Custom page header */
* Global add-ons .header {
*/ border-bottom: 1px solid #e5e5e5;
}
.sub-header { /* Make the masthead heading the same height as the navigation */
padding-bottom: 10px; .header h3 {
border-bottom: 1px solid #eee; margin-top: 0;
margin-bottom: 0;
line-height: 40px;
padding-bottom: 19px;
} }
/* /* Custom page footer */
* Top navigation .footer {
* Hide default border to remove 1px line. padding-top: 19px;
*/ color: #777;
.navbar-fixed-top { border-top: 1px solid #e5e5e5;
border: 0; }
/* Customize container */
@media (min-width: 768px) {
.container {
max-width: 730px;
}
}
.container-narrow > hr {
margin: 30px 0;
}
/* Main marketing message and sign up button */
.jumbotron {
text-align: center;
border-bottom: 1px solid #e5e5e5;
}
.jumbotron .btn {
font-size: 21px;
padding: 14px 24px;
}
/* Supporting marketing content */
.marketing {
margin: 40px 0;
} }
/* .marketing p + h4 {
* Sidebar margin-top: 28px;
}
/* Responsive: Portrait tablets and up */
@media screen and (min-width: 768px) {
/* Remove the padding we set earlier */
.header,
.marketing,
.footer {
padding-left: 0;
padding-right: 0;
}
/* Space out the masthead */
.header {
margin-bottom: 30px;
}
/* Remove the bottom border on the jumbotron for visual effect */
.jumbotron {
border-bottom: 0;
}
}
.nav > li.active > a {
text-decoration: none;
background-color: #eee;
}
/*!
* Start Bootstrap - SB Admin 2 Bootstrap Admin Theme (http://startbootstrap.com)
* Code licensed under the Apache License v2.0.
* For details, see http://www.apache.org/licenses/LICENSE-2.0.
*/ */
/* Hide for mobile, show later */ body {
.sidebar { background-color: #f8f8f8;
display: none; }
#wrapper {
width: 100%;
}
#page-wrapper {
padding: 0 15px;
min-height: 568px;
background-color: #fff;
} }
@media (min-width: 768px) { @media (min-width: 768px) {
.sidebar { #page-wrapper {
position: fixed; position: inherit;
top: 51px; margin: 0 0 0 250px;
bottom: 0; padding: 0 30px;
left: 0; border-left: 1px solid #e7e7e7;
z-index: 1000; }
}
.navbar-top-links {
margin-right: 0;
}
.navbar-top-links li {
display: inline-block;
}
.navbar-top-links li:last-child {
margin-right: 15px;
}
.navbar-top-links li a {
padding: 15px;
min-height: 50px;
}
.navbar-top-links .dropdown-menu li {
display: block; display: block;
padding: 20px;
overflow-x: hidden;
overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
background-color: #f5f5f5;
border-right: 1px solid #eee;
}
} }
/* Sidebar navigation */ .navbar-top-links .dropdown-menu li:last-child {
.nav-sidebar { margin-right: 0;
margin-right: -21px; /* 20px padding + 1px border */
margin-bottom: 20px;
margin-left: -20px;
} }
.nav-sidebar > li > a {
padding-right: 20px; .navbar-top-links .dropdown-menu li a {
padding-left: 20px; padding: 3px 20px;
min-height: 0;
} }
.nav-sidebar > .active > a,
.nav-sidebar > .active > a:hover, .navbar-top-links .dropdown-menu li a div {
.nav-sidebar > .active > a:focus { white-space: normal;
color: #fff;
background-color: #428bca;
} }
.navbar-top-links .dropdown-messages,
.navbar-top-links .dropdown-tasks,
.navbar-top-links .dropdown-alerts {
width: 310px;
min-width: 0;
}
/* .navbar-top-links .dropdown-messages {
* Main content margin-left: 5px;
*/ }
.navbar-top-links .dropdown-tasks {
margin-left: -59px;
}
.navbar-top-links .dropdown-alerts {
margin-left: -123px;
}
.navbar-top-links .dropdown-user {
right: 0;
left: auto;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.sidebar .sidebar-search {
padding: 15px;
}
.sidebar ul li {
border-bottom: 1px solid #e7e7e7;
}
.sidebar ul li a.active {
background-color: #eee;
}
.sidebar .arrow {
float: right;
}
.sidebar .fa.arrow:before {
content: "\f104";
}
.sidebar .active > a > .fa.arrow:before {
content: "\f107";
}
.sidebar .nav-second-level li,
.sidebar .nav-third-level li {
border-bottom: 0 !important;
}
.sidebar .nav-second-level li a {
padding-left: 37px;
}
.main { .sidebar .nav-third-level li a {
padding: 20px; padding-left: 52px;
} }
@media (min-width: 768px) { @media (min-width: 768px) {
.main { .sidebar {
padding-right: 40px; z-index: 1;
padding-left: 40px; position: absolute;
} width: 250px;
margin-top: 51px;
}
.navbar-top-links .dropdown-messages,
.navbar-top-links .dropdown-tasks,
.navbar-top-links .dropdown-alerts {
margin-left: auto;
}
} }
.main .page-header {
margin-top: 0; .btn-outline {
color: inherit;
background-color: transparent;
transition: all .5s;
} }
.btn-primary.btn-outline {
color: #428bca;
}
/* .btn-success.btn-outline {
* Placeholder dashboard ideas color: #5cb85c;
*/ }
.btn-info.btn-outline {
color: #5bc0de;
}
.btn-warning.btn-outline {
color: #f0ad4e;
}
.btn-danger.btn-outline {
color: #d9534f;
}
.btn-primary.btn-outline:hover,
.btn-success.btn-outline:hover,
.btn-info.btn-outline:hover,
.btn-warning.btn-outline:hover,
.btn-danger.btn-outline:hover {
color: #fff;
}
.chat {
margin: 0;
padding: 0;
list-style: none;
}
.chat li {
margin-bottom: 10px;
padding-bottom: 5px;
border-bottom: 1px dotted #999;
}
.chat li.left .chat-body {
margin-left: 60px;
}
.chat li.right .chat-body {
margin-right: 60px;
}
.chat li .chat-body p {
margin: 0;
}
.panel .slidedown .glyphicon,
.chat .glyphicon {
margin-right: 5px;
}
.chat-panel .panel-body {
height: 350px;
overflow-y: scroll;
}
.login-panel {
margin-top: 25%;
}
.placeholders { .flot-chart {
margin-bottom: 30px; display: block;
text-align: center; height: 400px;
}
.flot-chart-content {
width: 100%;
height: 100%;
} }
.placeholders h4 {
margin-bottom: 0; .dataTables_wrapper {
position: relative;
clear: both;
} }
.placeholder {
margin-bottom: 20px; table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
background: 0 0;
}
table.dataTable thead .sorting_asc:after {
content: "\f0de";
float: right;
font-family: fontawesome;
} }
.placeholder img {
display: inline-block; table.dataTable thead .sorting_desc:after {
border-radius: 50%; content: "\f0dd";
float: right;
font-family: fontawesome;
}
table.dataTable thead .sorting:after {
content: "\f0dc";
float: right;
font-family: fontawesome;
color: rgba(50, 50, 50, .5);
}
.btn-circle {
width: 30px;
height: 30px;
padding: 6px 0;
border-radius: 15px;
text-align: center;
font-size: 12px;
line-height: 1.428571429;
}
.btn-circle.btn-lg {
width: 50px;
height: 50px;
padding: 10px 16px;
border-radius: 25px;
font-size: 18px;
line-height: 1.33;
}
.btn-circle.btn-xl {
width: 70px;
height: 70px;
padding: 10px 16px;
border-radius: 35px;
font-size: 24px;
line-height: 1.33;
}
.show-grid [class^=col-] {
padding-top: 10px;
padding-bottom: 10px;
border: 1px solid #ddd;
background-color: #eee !important;
}
.show-grid {
margin: 15px 0;
}
.huge {
font-size: 40px;
}
.panel-green {
border-color: #5cb85c;
}
.panel-green .panel-heading {
border-color: #5cb85c;
color: #fff;
background-color: #5cb85c;
}
.panel-green a {
color: #5cb85c;
}
.panel-green a:hover {
color: #3d8b3d;
}
.panel-red {
border-color: #d9534f;
}
.panel-red .panel-heading {
border-color: #d9534f;
color: #fff;
background-color: #d9534f;
}
.panel-red a {
color: #d9534f;
}
.panel-red a:hover {
color: #b52b27;
}
.panel-yellow {
border-color: #f0ad4e;
}
.panel-yellow .panel-heading {
border-color: #f0ad4e;
color: #fff;
background-color: #f0ad4e;
}
.panel-yellow a {
color: #f0ad4e;
}
.panel-yellow a:hover {
color: #df8a13;
} }
.timeline {
position: relative;
padding: 20px 0 20px;
list-style: none;
}
.timeline:before {
content: " ";
position: absolute;
top: 0;
bottom: 0;
left: 50%;
width: 3px;
margin-left: -1.5px;
background-color: #eeeeee;
}
.timeline > li {
position: relative;
margin-bottom: 20px;
}
.timeline > li:before,
.timeline > li:after {
content: " ";
display: table;
}
.timeline > li:after {
clear: both;
}
.timeline > li:before,
.timeline > li:after {
content: " ";
display: table;
}
.timeline > li:after {
clear: both;
}
.timeline > li > .timeline-panel {
float: left;
position: relative;
width: 46%;
padding: 20px;
border: 1px solid #d4d4d4;
border-radius: 2px;
-webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175);
box-shadow: 0 1px 6px rgba(0, 0, 0, 0.175);
}
.timeline > li > .timeline-panel:before {
content: " ";
display: inline-block;
position: absolute;
top: 26px;
right: -15px;
border-top: 15px solid transparent;
border-right: 0 solid #ccc;
border-bottom: 15px solid transparent;
border-left: 15px solid #ccc;
}
.timeline > li > .timeline-panel:after {
content: " ";
display: inline-block;
position: absolute;
top: 27px;
right: -14px;
border-top: 14px solid transparent;
border-right: 0 solid #fff;
border-bottom: 14px solid transparent;
border-left: 14px solid #fff;
}
.timeline > li > .timeline-badge {
z-index: 100;
position: absolute;
top: 16px;
left: 50%;
width: 50px;
height: 50px;
margin-left: -25px;
border-radius: 50% 50% 50% 50%;
text-align: center;
font-size: 1.4em;
line-height: 50px;
color: #fff;
background-color: #999999;
}
.timeline > li.timeline-inverted > .timeline-panel {
float: right;
}
.timeline > li.timeline-inverted > .timeline-panel:before {
right: auto;
left: -15px;
border-right-width: 15px;
border-left-width: 0;
}
.timeline > li.timeline-inverted > .timeline-panel:after {
right: auto;
left: -14px;
border-right-width: 14px;
border-left-width: 0;
}
.timeline-badge.primary {
background-color: #2e6da4 !important;
}
.timeline-badge.success {
background-color: #3f903f !important;
}
.timeline-badge.warning {
background-color: #f0ad4e !important;
}
.timeline-badge.danger {
background-color: #d9534f !important;
}
.timeline-badge.info {
background-color: #5bc0de !important;
}
.timeline-title {
margin-top: 0;
color: inherit;
}
.timeline-body > p,
.timeline-body > ul {
margin-bottom: 0;
}
.timeline-body > p + p {
margin-top: 5px;
}
@media (max-width: 767px) {
ul.timeline:before {
left: 40px;
}
ul.timeline > li > .timeline-panel {
width: calc(100% - 90px);
width: -moz-calc(100% - 90px);
width: -webkit-calc(100% - 90px);
}
ul.timeline > li > .timeline-badge {
top: 16px;
left: 15px;
margin-left: 0;
}
ul.timeline > li > .timeline-panel {
float: right;
}
ul.timeline > li > .timeline-panel:before {
right: auto;
left: -15px;
border-right-width: 15px;
border-left-width: 0;
}
ul.timeline > li > .timeline-panel:after {
right: auto;
left: -14px;
border-right-width: 14px;
border-left-width: 0;
}
}
\ No newline at end of file
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
var app = angular.module( var app = angular.module(
'ulakbus', [ 'ulakbus', [
'ui.bootstrap',
'angular-loading-bar',
'ngRoute', 'ngRoute',
'ngSanitize', 'ngSanitize',
'ngCookies', 'ngCookies',
......
<div ng-app="ulakbus.auth"> <div ng-app="ulakbus.auth" class="container">
<div class="col-md-6"> <div class="row">
<h1>Ulakbüs Login Form</h1> <div class="col-md-4 col-md-offset-4">
<span class="label label-warning">{{message}}</span> <div class="login-panel panel panel-default">
<form name="loginForm" sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit(loginForm)"></form> <div class="panel-heading">
<h3 class="panel-title">Sign In</h3>
</div>
<div class="panel-body">
<span class="label label-warning">{{message}}</span>
<form name="loginForm" sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit(loginForm)"></form>
</div>
</div>
</div>
</div> </div>
</div> </div>
\ No newline at end of file
...@@ -13,55 +13,38 @@ ...@@ -13,55 +13,38 @@
<title>ULAKBUS</title> <title>ULAKBUS</title>
<meta name="description" content=""> <meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" <!--<link rel="stylesheet" href="bower_components/angular-bootstrap/ui-bootstrap-csp.css">-->
href="bower_components/angular-bootstrap/ui-bootstrap-csp.css"> <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet"
href="bower_components/bootstrap/dist/css/bootstrap.css">
<link rel="stylesheet" href="app.css"> <link rel="stylesheet" href="app.css">
<link rel="stylesheet" href="bower_components/metisMenu/dist/metisMenu.min.css">
<link rel="stylesheet" href="bower_components/angular-loading-bar/build/loading-bar.min.css">
<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css" type="text/css">
<!--<link rel="stylesheet" href="bower_components/quantumui/dist/css/addon/effect-light.min.css">--> <!--<link rel="stylesheet" href="bower_components/quantumui/dist/css/addon/effect-light.min.css">-->
<!--<link rel="stylesheet" href="bower_components/quantumui/dist/css/quantumui.min.css">--> <!--<link rel="stylesheet" href="bower_components/quantumui/dist/css/quantumui.min.css">-->
<!--<script src="bower_components/html5-boilerplate/js/vendor/modernizr-2.6.2.min.js"></script>-->
</head> </head>
<body> <body>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid"> <nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
<div class="navbar-header"> <div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#navbar" <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span>
<span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> </button>
</button> <a class="navbar-brand" href="index.html">ULAKBUS</a>
<a class="navbar-brand" href="#">ULAKBUS</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="#/dashboard" translate>Dashboard</a></li>
<li><a href="#/login"translate>Login</a></li>
<li><a href="javascript:void(0);" logout translate>Logout</a></li>
</ul>
<form class="navbar-form navbar-right">
<input type="text" class="form-control" placeholder="Search...">
</form>
</div>
</div> </div>
<!-- /.navbar-header -->
<header-notification></header-notification>
<sidebar></sidebar>
</nav> </nav>
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-sm-3 col-md-2 sidebar">
<ul class="nav nav-sidebar">
<!--<li active-link="active"><a href="#/students">Students</a></li>-->
<!--<li active-link="active"><a href="#/student/add">New Student</a></li>-->
<li active-link="active"><a href="#/staffs" translate>Staffs
</a></li>
<li active-link="active"><a href="#/staff/add" translate>New Staff</a>
</li>
<!--<li active-link="active"><a href="#/input_types">Types</a></li>-->
</ul>
</div>
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main" <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main"
ng-view> ng-view>
...@@ -74,32 +57,37 @@ ...@@ -74,32 +57,37 @@
<div>UlakbusUI app: v<span app-version></span></div> <div>UlakbusUI app: v<span app-version></span></div>
</div> </div>
</div> </div>
<script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<!-- In production use: <script src="bower_components/angular-route/angular-route.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/x.x.x/angular.min.js"></script> <script src="bower_components/angular-cookies/angular-cookies.min.js"></script>
--> <script src="bower_components/angular-resource/angular-resource.min.js"></script>
<script src="bower_components/angular/angular.js"></script> <script src="bower_components/angular-bootstrap/ui-bootstrap.min.js"></script>
<!--<script src="bower_components/oclazyload/dist/ocLazyLoad.js"></script>--> <script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="bower_components/angular-cookies/angular-cookies.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script> <script src="bower_components/angular-sanitize/angular-sanitize.min.js"></script>
<script src="bower_components/tv4/tv4.js"></script> <script src="bower_components/tv4/tv4.js"></script>
<script src="bower_components/objectpath/lib/ObjectPath.js"></script> <script src="bower_components/objectpath/lib/ObjectPath.js"></script>
<script src="bower_components/angular-schema-form/dist/schema-form.js"></script> <script src="bower_components/angular-schema-form/dist/schema-form.min.js"></script>
<script src="bower_components/angular-schema-form/dist/bootstrap-decorator.js"></script> <script src="bower_components/angular-schema-form/dist/bootstrap-decorator.min.js"></script>
<!--<script type="text/javascript"--> <script src="bower_components/angular-schema-form-datepicker/bootstrap-datepicker.min.js"></script>
<!--src="bower_components/angular-schema-form-datepicker/"></script>-->
<script src="bower_components/angular-schema-form-datepicker/bootstrap-datepicker.js"></script>
<script src="bower_components/angular-gettext/dist/angular-gettext.min.js"></script> <script src="bower_components/angular-gettext/dist/angular-gettext.min.js"></script>
<!-- TODO: check all js and remove unused -->
<script src="bower_components/json3/lib/json3.min.js"></script>
<script src="bower_components/angular-loading-bar/build/loading-bar.min.js"></script>
<script src="bower_components/metisMenu/dist/metisMenu.min.js"></script>
<script src="bower_components/Chart.js/Chart.min.js"></script>
<script src="shared/translations.js"></script> <script src="shared/translations.js"></script>
<script src="tmp/templates.js"></script>
<script src="app.js"></script> <script src="app.js"></script>
<script src="app_routes.js"></script> <script src="app_routes.js"></script>
<script src="shared/scripts/theme.js"></script>
<script src="shared/directives.js"></script>
<script src="zetalib/interceptors.js"></script> <script src="zetalib/interceptors.js"></script>
<script src="zetalib/general.js"></script> <script src="zetalib/general.js"></script>
<script src="zetalib/forms/form_service.js"></script> <script src="zetalib/forms/form_service.js"></script>
......
/**
* Copyright (C) 2015 ZetaOps Inc.
*
* This file is licensed under the GNU General Public License v3
* (GPLv3). See LICENSE.txt for details.
*/
app.directive('headerNotification',function(){
return {
templateUrl:'shared/templates/directives/header-notification.html',
restrict: 'E',
replace: true,
}
});
app.directive('sidebar',['$location',function() {
return {
templateUrl:'shared/templates/directives/sidebar.html',
restrict: 'E',
replace: true,
scope: {
},
controller:function($scope){
$scope.selectedMenu = 'dashboard';
$scope.collapseVar = 0;
$scope.multiCollapseVar = 0;
$scope.check = function(x){
if(x==$scope.collapseVar)
$scope.collapseVar = 0;
else
$scope.collapseVar = x;
};
$scope.multiCheck = function(y){
if(y==$scope.multiCollapseVar)
$scope.multiCollapseVar = 0;
else
$scope.multiCollapseVar = y;
};
}
}
}]);
app.directive('stats',function() {
return {
templateUrl:'shared/templates/directives/stats.html',
restrict:'E',
replace:true,
scope: {
'model': '=',
'comments': '@',
'number': '@',
'name': '@',
'colour': '@',
'details':'@',
'type':'@',
'goto':'@'
}
}
});
app.directive('notifications',function(){
return {
templateUrl:'shared/templates/directives/notifications.html',
restrict: 'E',
replace: true,
}
});
app.directive('sidebarSearch',function() {
return {
templateUrl:'shared/templates/directives/sidebar-search.html',
restrict: 'E',
replace: true,
scope: {
},
controller:function($scope){
$scope.selectedMenu = 'home';
}
}
});
app.directive('timeline',function() {
return {
templateUrl:'shared/templates/directives/timeline.html',
restrict: 'E',
replace: true,
}
});
app.directive('chat',function(){
return {
templateUrl:'shared/templates/directives/chat.html',
restrict: 'E',
replace: true,
}
});
\ No newline at end of file
/**
* Copyright (C) 2015 ZetaOps Inc.
*
* This file is licensed under the GNU General Public License v3
* (GPLv3). See LICENSE.txt for details.
*/
$(function() {
$('#side-menu').metisMenu();
});
//Loads the correct sidebar on window load,
//collapses the sidebar on window resize.
// Sets the min-height of #page-wrapper to window size
$(function() {
$(window).bind("load resize", function() {
topOffset = 50;
width = (this.window.innerWidth > 0) ? this.window.innerWidth : this.screen.width;
if (width < 768) {
$('div.navbar-collapse').addClass('collapse');
topOffset = 100; // 2-row-menu
} else {
$('div.navbar-collapse').removeClass('collapse');
}
height = ((this.window.innerHeight > 0) ? this.window.innerHeight : this.screen.height) - 1;
height = height - topOffset;
if (height < 1) height = 1;
if (height > topOffset) {
$("#page-wrapper").css("min-height", (height) + "px");
}
});
var url = window.location;
var element = $('ul.nav a').filter(function() {
return this.href == url || url.href.indexOf(this.href) == 0;
}).addClass('active').parent().parent().addClass('in').parent();
if (element.is('li')) {
element.addClass('active');
}
});
<div class="chat-panel panel panel-default">
<div class="panel-heading">
<i class="fa fa-comments fa-fw"></i>
Chat
<div class="btn-group pull-right">
<button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-chevron-down"></i>
</button>
<ul class="dropdown-menu slidedown">
<li>
<a href="#">
<i class="fa fa-refresh fa-fw"></i> Refresh
</a>
</li>
<li>
<a href="#">
<i class="fa fa-check-circle fa-fw"></i> Available
</a>
</li>
<li>
<a href="#">
<i class="fa fa-times fa-fw"></i> Busy
</a>
</li>
<li>
<a href="#">
<i class="fa fa-clock-o fa-fw"></i> Away
</a>
</li>
<li class="divider"></li>
<li>
<a href="#">
<i class="fa fa-sign-out fa-fw"></i> Sign Out
</a>
</li>
</ul>
</div>
</div>
<!-- /.panel-heading -->
<div class="panel-body">
<ul class="chat">
<li class="left clearfix">
<span class="chat-img pull-left">
<img src="http://placehold.it/50/55C1E7/fff" alt="User Avatar" class="img-circle">
</span>
<div class="chat-body clearfix">
<div class="header">
<strong class="primary-font">Jack Sparrow</strong>
<small class="pull-right text-muted">
<i class="fa fa-clock-o fa-fw"></i> 12 mins ago
</small>
</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales.
</p>
</div>
</li>
<li class="right clearfix">
<span class="chat-img pull-right">
<img src="http://placehold.it/50/FA6F57/fff" alt="User Avatar" class="img-circle">
</span>
<div class="chat-body clearfix">
<div class="header">
<small class=" text-muted">
<i class="fa fa-clock-o fa-fw"></i> 13 mins ago</small>
<strong class="pull-right primary-font">Bhaumik Patel</strong>
</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales.
</p>
</div>
</li>
<li class="left clearfix">
<span class="chat-img pull-left">
<img src="http://placehold.it/50/55C1E7/fff" alt="User Avatar" class="img-circle">
</span>
<div class="chat-body clearfix">
<div class="header">
<strong class="primary-font">Jack Sparrow</strong>
<small class="pull-right text-muted">
<i class="fa fa-clock-o fa-fw"></i> 14 mins ago</small>
</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales.
</p>
</div>
</li>
<li class="right clearfix">
<span class="chat-img pull-right">
<img src="http://placehold.it/50/FA6F57/fff" alt="User Avatar" class="img-circle">
</span>
<div class="chat-body clearfix">
<div class="header">
<small class=" text-muted">
<i class="fa fa-clock-o fa-fw"></i> 15 mins ago</small>
<strong class="pull-right primary-font">Bhaumik Patel</strong>
</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales.
</p>
</div>
</li>
</ul>
</div>
<!-- /.panel-body -->
<div class="panel-footer">
<div class="input-group">
<input id="btn-input" type="text" class="form-control input-sm" placeholder="Type your message here...">
<span class="input-group-btn">
<button class="btn btn-warning btn-sm" id="btn-chat">
Send
</button>
</span>
</div>
</div>
<!-- /.panel-footer -->
</div>
\ No newline at end of file
<ul class="nav navbar-top-links navbar-right">
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-envelope fa-fw"></i> <i class="fa fa-caret-down"></i>
</a>
<ul class="dropdown-menu dropdown-messages">
<li>
<a href="#">
<div>
<strong>John Smith</strong>
<span class="pull-right text-muted">
<em>Yesterday</em>
</span>
</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend...</div>
</a>
</li>
<li class="divider"></li>
<li>
<a href="#">
<div>
<strong>John Smith</strong>
<span class="pull-right text-muted">
<em>Yesterday</em>
</span>
</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend...</div>
</a>
</li>
<li class="divider"></li>
<li>
<a href="#">
<div>
<strong>John Smith</strong>
<span class="pull-right text-muted">
<em>Yesterday</em>
</span>
</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend...</div>
</a>
</li>
<li class="divider"></li>
<li>
<a class="text-center" href="#">
<strong>Read All Messages</strong>
<i class="fa fa-angle-right"></i>
</a>
</li>
</ul>
<!-- /.dropdown-messages -->
</li>
<!-- /.dropdown -->
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-tasks fa-fw"></i> <i class="fa fa-caret-down"></i>
</a>
<ul class="dropdown-menu dropdown-tasks">
<li>
<a href="#">
<div>
<p>
<strong>Task 1</strong>
<span class="pull-right text-muted">40% Complete</span>
</p>
<div class="progress progress-striped active">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 40%">
<span class="sr-only">40% Complete (success)</span>
</div>
</div>
</div>
</a>
</li>
<li class="divider"></li>
<li>
<a href="#">
<div>
<p>
<strong>Task 2</strong>
<span class="pull-right text-muted">20% Complete</span>
</p>
<div class="progress progress-striped active">
<div class="progress-bar progress-bar-info" role="progressbar" aria-valuenow="20" aria-valuemin="0" aria-valuemax="100" style="width: 20%">
<span class="sr-only">20% Complete</span>
</div>
</div>
</div>
</a>
</li>
<li class="divider"></li>
<li>
<a href="#">
<div>
<p>
<strong>Task 3</strong>
<span class="pull-right text-muted">60% Complete</span>
</p>
<div class="progress progress-striped active">
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: 60%">
<span class="sr-only">60% Complete (warning)</span>
</div>
</div>
</div>
</a>
</li>
<li class="divider"></li>
<li>
<a href="#">
<div>
<p>
<strong>Task 4</strong>
<span class="pull-right text-muted">80% Complete</span>
</p>
<div class="progress progress-striped active">
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%">
<span class="sr-only">80% Complete (danger)</span>
</div>
</div>
</div>
</a>
</li>
<li class="divider"></li>
<li>
<a class="text-center" href="#">
<strong>See All Tasks</strong>
<i class="fa fa-angle-right"></i>
</a>
</li>
</ul>
<!-- /.dropdown-tasks -->
</li>
<!-- /.dropdown -->
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-bell fa-fw"></i> <i class="fa fa-caret-down"></i>
</a>
<ul class="dropdown-menu dropdown-alerts">
<li>
<a href="#">
<div>
<i class="fa fa-comment fa-fw"></i> New Comment
<span class="pull-right text-muted small">4 minutes ago</span>
</div>
</a>
</li>
<li class="divider"></li>
<li>
<a href="#">
<div>
<i class="fa fa-twitter fa-fw"></i> 3 New Followers
<span class="pull-right text-muted small">12 minutes ago</span>
</div>
</a>
</li>
<li class="divider"></li>
<li>
<a href="#">
<div>
<i class="fa fa-envelope fa-fw"></i> Message Sent
<span class="pull-right text-muted small">4 minutes ago</span>
</div>
</a>
</li>
<li class="divider"></li>
<li>
<a href="#">
<div>
<i class="fa fa-tasks fa-fw"></i> New Task
<span class="pull-right text-muted small">4 minutes ago</span>
</div>
</a>
</li>
<li class="divider"></li>
<li>
<a href="#">
<div>
<i class="fa fa-upload fa-fw"></i> Server Rebooted
<span class="pull-right text-muted small">4 minutes ago</span>
</div>
</a>
</li>
<li class="divider"></li>
<li>
<a class="text-center" href="#">
<strong>See All Alerts</strong>
<i class="fa fa-angle-right"></i>
</a>
</li>
</ul>
<!-- /.dropdown-alerts -->
</li>
<!-- /.dropdown -->
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-user fa-fw"></i> <i class="fa fa-caret-down"></i>
</a>
<ul class="dropdown-menu dropdown-user">
<li><a href="#"><i class="fa fa-user fa-fw"></i> User Profile</a>
</li>
<li><a href="#"><i class="fa fa-gear fa-fw"></i> Settings</a>
</li>
<li><a href="http://www.strapui.com/"><i class="fa fa-eye fa-fw"></i> Premium Angular Themes</a></li>
<li class="divider"></li>
<li><a ui-sref="login"><i class="fa fa-sign-out fa-fw"></i> Logout</a>
</li>
</ul>
<!-- /.dropdown-user -->
</li>
<!-- /.dropdown -->
</ul>
<div class="panel-body">
<div class="list-group">
<a href="#" class="list-group-item">
<i class="fa fa-comment fa-fw"></i> New Comment
<span class="pull-right text-muted small"><em>4 minutes ago</em>
</span>
</a>
<a href="#" class="list-group-item">
<i class="fa fa-twitter fa-fw"></i> 3 New Followers
<span class="pull-right text-muted small"><em>12 minutes ago</em>
</span>
</a>
<a href="#" class="list-group-item">
<i class="fa fa-envelope fa-fw"></i> Message Sent
<span class="pull-right text-muted small"><em>27 minutes ago</em>
</span>
</a>
<a href="#" class="list-group-item">
<i class="fa fa-tasks fa-fw"></i> New Task
<span class="pull-right text-muted small"><em>43 minutes ago</em>
</span>
</a>
<a href="#" class="list-group-item">
<i class="fa fa-upload fa-fw"></i> Server Rebooted
<span class="pull-right text-muted small"><em>11:32 AM</em>
</span>
</a>
<a href="#" class="list-group-item">
<i class="fa fa-bolt fa-fw"></i> Server Crashed!
<span class="pull-right text-muted small"><em>11:13 AM</em>
</span>
</a>
<a href="#" class="list-group-item">
<i class="fa fa-warning fa-fw"></i> Server Not Responding
<span class="pull-right text-muted small"><em>10:57 AM</em>
</span>
</a>
<a href="#" class="list-group-item">
<i class="fa fa-shopping-cart fa-fw"></i> New Order Placed
<span class="pull-right text-muted small"><em>9:49 AM</em>
</span>
</a>
<a href="#" class="list-group-item">
<i class="fa fa-money fa-fw"></i> Payment Received
<span class="pull-right text-muted small"><em>Yesterday</em>
</span>
</a>
</div>
<!-- /.list-group -->
<a href="#" class="btn btn-default btn-block">View All Alerts</a>
</div>
\ No newline at end of file
<li class="sidebar-search">
<div class="input-group custom-search-form">
<input type="text" class="form-control" placeholder="Search...">
<span class="input-group-btn">
<button class="btn btn-default" type="button">
<i class="fa fa-search"></i>
</button>
</span>
</div>
</li>
\ No newline at end of file
<div class="navbar-default sidebar" role="navigation">
<div class="sidebar-nav navbar-collapse">
<ul class="nav in" id="side-menu">
<sidebar-search></sidebar-search>
<li ui-sref-active="active">
<a ui-sref="dashboard.home"><i class="fa fa-dashboard fa-fw"></i> Dashboard</a>
</li>
<li ui-sref-active="active"><a href="#/staffs" translate>Staffs</a></li>
<li ui-sref-active="active"><a href="#/staff/add" translate>New Staff</a></li>
<!--<li ui-sref-active="active">-->
<!--<a ui-sref="dashboard.chart"><i class="fa fa-bar-chart-o fa-fw"></i> Charts<span></span></a>-->
<!--</li>-->
<!--<li ui-sref-active="active">-->
<!--<a ui-sref="dashboard.table"><i class="fa fa-table fa-fw"></i> Tables</a>-->
<!--</li>-->
<!--<li ui-sref-active="active">-->
<!--<a ui-sref="dashboard.form"><i class="fa fa-edit fa-fw"></i> Forms</a>-->
<!--</li>-->
<!--<li ng-class="{active: collapseVar==1}">{{dropDown}}-->
<!--<a href="" ng-click="check(1)"><i class="fa fa-wrench fa-fw"></i> UI Elements<span-->
<!--class="fa arrow"></span></a>-->
<!--<ul class="nav nav-second-level" collapse="collapseVar!=1">-->
<!--<li ui-sref-active="active">-->
<!--<a ui-sref="dashboard.panels-wells">Panels and Wells</a>-->
<!--</li>-->
<!--<li ui-sref-active="active">-->
<!--<a ui-sref="dashboard.buttons">Buttons</a>-->
<!--</li>-->
<!--<li ui-sref-active="active">-->
<!--<a ui-sref="dashboard.notifications">Notifications</a>-->
<!--</li>-->
<!--<li ui-sref-active="active">-->
<!--<a ui-sref="dashboard.typography">Typography</a>-->
<!--</li>-->
<!--<li ui-sref-active="active">-->
<!--<a ui-sref="dashboard.icons"> Icons</a>-->
<!--</li>-->
<!--<li ui-sref-active="active">-->
<!--<a ui-sref="dashboard.grid">Grid</a>-->
<!--</li>-->
<!--</ul>-->
<!--&lt;!&ndash; /.nav-second-level &ndash;&gt;-->
<!--</li>-->
<!--<li ng-class="{active: collapseVar==2}">-->
<!--<a href="" ng-click="check(2)"><i class="fa fa-sitemap fa-fw"></i> Multi-Level Dropdown<span-->
<!--class="fa arrow"></span></a>-->
<!--<ul class="nav nav-second-level" collapse="collapseVar!=2">-->
<!--<li>-->
<!--<a href="">Second Level Item</a>-->
<!--</li>-->
<!--<li>-->
<!--<a href="">Second Level Item</a>-->
<!--</li>-->
<!--<li ng-init="third=!third" ng-class="{active: multiCollapseVar==3}">-->
<!--<a href="" ng-click="multiCheck(3)">Third Level <span class="fa arrow"></span></a>-->
<!--<ul class="nav nav-third-level" collapse="multiCollapseVar!=3">-->
<!--<li>-->
<!--<a href="">Third Level Item</a>-->
<!--</li>-->
<!--<li>-->
<!--<a href="">Third Level Item</a>-->
<!--</li>-->
<!--<li>-->
<!--<a href="">Third Level Item</a>-->
<!--</li>-->
<!--<li>-->
<!--<a href="">Third Level Item</a>-->
<!--</li>-->
<!--</ul>-->
<!--&lt;!&ndash; /.nav-third-level &ndash;&gt;-->
<!--</li>-->
<!--</ul>-->
<!--&lt;!&ndash; /.nav-second-level &ndash;&gt;-->
<!--</li>-->
<!--<li ng-class="{active:collapseVar==4}">-->
<!--<a href="" ng-click="check(4)"><i class="fa fa-files-o fa-fw"></i> Sample Pages<span-->
<!--class="fa arrow"></span></a>-->
<!--<ul class="nav nav-second-level" collapse="collapseVar!=4">-->
<!--<li ng-class="{active: selectedMenu=='blank'}">-->
<!--<a ui-sref="dashboard.blank" ng-click="selectedMenu='blank'">Blank Page</a>-->
<!--</li>-->
<!--<li>-->
<!--<a ui-sref="login">Login Page</a>-->
<!--</li>-->
<!--</ul>-->
<!--&lt;!&ndash; /.nav-second-level &ndash;&gt;-->
<!--</li>-->
</ul>
</div>
<!-- /.sidebar-collapse -->
</div>
<div class="col-lg-3 col-md-6">
<div class="panel panel-{{colour}}">
<div class="panel-heading">
<div class="row">
<div class="col-xs-3">
<i class="fa fa-{{type}} fa-5x"></i>
</div>
<div class="col-xs-9 text-right">
<div class="huge">{{number}}</div>
<div>{{comments}}</div>
</div>
</div>
</div>
<a ui-sref="{{goto}}">
<div class="panel-footer">
<span class="pull-left">View Details</span>
<span class="pull-right"><i class="fa fa-arrow-circle-right"></i></span>
<div class="clearfix"></div>
</div>
</a>
</div>
</div>
\ No newline at end of file
<div class="panel-body">
<ul class="timeline">
<li>
<div class="timeline-badge"><i class="fa fa-check"></i>
</div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4 class="timeline-title">Lorem ipsum dolor</h4>
<p><small class="text-muted"><i class="fa fa-clock-o"></i> 11 hours ago via Twitter</small>
</p>
</div>
<div class="timeline-body">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Libero laboriosam dolor perspiciatis omnis exercitationem. Beatae, officia pariatur? Est cum veniam excepturi. Maiores praesentium, porro voluptas suscipit facere rem dicta, debitis.</p>
</div>
</div>
</li>
<li class="timeline-inverted">
<div class="timeline-badge warning"><i class="fa fa-credit-card"></i>
</div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4 class="timeline-title">Lorem ipsum dolor</h4>
</div>
<div class="timeline-body">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem dolorem quibusdam, tenetur commodi provident cumque magni voluptatem libero, quis rerum. Fugiat esse debitis optio, tempore. Animi officiis alias, officia repellendus.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laudantium maiores odit qui est tempora eos, nostrum provident explicabo dignissimos debitis vel! Adipisci eius voluptates, ad aut recusandae minus eaque facere.</p>
</div>
</div>
</li>
<li>
<div class="timeline-badge danger"><i class="fa fa-bomb"></i>
</div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4 class="timeline-title">Lorem ipsum dolor</h4>
</div>
<div class="timeline-body">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellendus numquam facilis enim eaque, tenetur nam id qui vel velit similique nihil iure molestias aliquam, voluptatem totam quaerat, magni commodi quisquam.</p>
</div>
</div>
</li>
<li class="timeline-inverted">
<div class="timeline-panel">
<div class="timeline-heading">
<h4 class="timeline-title">Lorem ipsum dolor</h4>
</div>
<div class="timeline-body">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptates est quaerat asperiores sapiente, eligendi, nihil. Itaque quos, alias sapiente rerum quas odit! Aperiam officiis quidem delectus libero, omnis ut debitis!</p>
</div>
</div>
</li>
<li>
<div class="timeline-badge info"><i class="fa fa-save"></i>
</div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4 class="timeline-title">Lorem ipsum dolor</h4>
</div>
<div class="timeline-body">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis minus modi quam ipsum alias at est molestiae excepturi delectus nesciunt, quibusdam debitis amet, beatae consequuntur impedit nulla qui! Laborum, atque.</p>
<hr>
<div class="btn-group">
<button type="button" class="btn btn-primary btn-sm dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-gear"></i> <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="#">Action</a>
</li>
<li><a href="#">Another action</a>
</li>
<li><a href="#">Something else here</a>
</li>
<li class="divider"></li>
<li><a href="#">Separated link</a>
</li>
</ul>
</div>
</div>
</div>
</li>
<li>
<div class="timeline-panel">
<div class="timeline-heading">
<h4 class="timeline-title">Lorem ipsum dolor</h4>
</div>
<div class="timeline-body">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sequi fuga odio quibusdam. Iure expedita, incidunt unde quis nam! Quod, quisquam. Officia quam qui adipisci quas consequuntur nostrum sequi. Consequuntur, commodi.</p>
</div>
</div>
</li>
<li class="timeline-inverted">
<div class="timeline-badge success"><i class="fa fa-graduation-cap"></i>
</div>
<div class="timeline-panel">
<div class="timeline-heading">
<h4 class="timeline-title">Lorem ipsum dolor</h4>
</div>
<div class="timeline-body">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deserunt obcaecati, quaerat tempore officia voluptas debitis consectetur culpa amet, accusamus dolorum fugiat, animi dicta aperiam, enim incidunt quisquam maxime neque eaque.</p>
</div>
</div>
</li>
</ul>
</div>
\ No newline at end of file
...@@ -7,18 +7,24 @@ ...@@ -7,18 +7,24 @@
"private": false, "private": false,
"dependencies": { "dependencies": {
"angular": "1.3.x", "angular": "1.3.x",
"json3": "~3.3.2",
"es5-shim": "~4.1.10",
"angular-mocks": "1.3.x", "angular-mocks": "1.3.x",
"angular-route": "1.3.x", "angular-route": "1.3.x",
"angular-resource": "1.3.x", "angular-resource": "1.3.x",
"angular-cookies": "1.3.x", "angular-cookies": "1.3.x",
"angular-bootstrap": "0.13.1", "angular-bootstrap": "0.13.1",
"bootstrap": "3.3.4", "font-awesome": "4.3.0",
"angular-schema-form": "0.8.3", "angular-schema-form": "0.8.3",
"angular-schema-form-datepicker": "0.4.0", "angular-schema-form-datepicker": "0.4.0",
"oclazyload": "1.0.1", "angular-loading-bar": "~0.7.0",
"angular-ui-router": "~0.2.15",
"angular-toggle-switch": "~1.2.1",
"metisMenu": "~1.1.3",
"angular-chart.js": "~0.5.2",
"angular-gettext": "2.1.0" "angular-gettext": "2.1.0"
}, },
"resolutions": { "resolutions": {
"angular": "1.3.17" "angular": "1.3.18"
} }
} }
This source diff could not be displayed because it is too large. You can view the blob instead.
/*! ulakbus-ui 2015-08-19 */ /*! ulakbus-ui 2015-08-26 */
"use strict";var app=angular.module("ulakbus",["ngRoute","ngSanitize","ngCookies","general","formService","ulakbus.dashboard","ulakbus.auth","ulakbus.staff","ulakbus.student","schemaForm","gettext"]).constant("RESTURL",function(){return{url:"http://"+window.location.hostname+":9001/"}}()).constant("USER_ROLES",{all:"*",admin:"admin",student:"student",staff:"staff",dean:"dean"}).constant("AUTH_EVENTS",{loginSuccess:"auth-login-success",loginFailed:"auth-login-failed",logoutSuccess:"auth-logout-success",sessionTimeout:"auth-session-timeout",notAuthenticated:"auth-not-authenticated",notAuthorized:"auth-not-authorized"}).directive("activeLink",["$location",function($location){return{restrict:"A",link:function($scope,$element,$attrs){var clazz=$attrs.activeLink,path=$location.path();path=path,$scope.location=$location,$scope.$watch("location.path()",function(newPath){path===newPath?$element.addClass(clazz):$element.removeClass(clazz)})}}}]).directive("logout",function($http,$location){return{link:function($scope,$element,$rootScope){$element.on("click",function(){$http.post("http://"+window.location.hostname+":9001/logout",{}).then(function(){$rootScope.loggedInUser=!1,console.log($rootScope.loggedInUser),$location.path("/login"),$scope.$apply()})})}}});app.config(["$routeProvider",function($routeProvider){$routeProvider.when("/login",{templateUrl:"components/auth/login.html",controller:"LoginCtrl"}).when("/dashboard",{templateUrl:"components/dashboard/dashboard.html",controller:"DashCtrl"}).when("/student/add",{templateUrl:"components/student/student_add_template.html",controller:"StudentAddEditCtrl"}).when("/student/edit/:id",{templateUrl:"components/student/student_add_template.html",controller:"StudentAddEditCtrl"}).when("/students",{templateUrl:"components/student/student_list_template.html",controller:"StudentListCtrl"}).when("/student/:id",{templateUrl:"components/student/student_list_template.html",controller:"StudentShowCtrl"}).when("/staff/add",{templateUrl:"components/staff/templates/add.html",controller:"StaffAddEditCtrl"}).when("/staff/edit/:id",{templateUrl:"components/staff/templates/edit.html",controller:"StaffAddEditCtrl"}).when("/staffs",{templateUrl:"components/staff/templates/list.html",controller:"StaffListCtrl"}).when("/staff/:id",{templateUrl:"components/staff/templates/show.html",controller:"StaffShowCtrl"}).otherwise({redirectTo:"/dashboard"})}]).run(function($rootScope,$location,$cookies){$rootScope.loggedInUser?$rootScope.loggedInUser:!1,$rootScope.$on("$routeChangeStart",function(event,next,current){null==$rootScope.loggedInUser&&("login/login.html"===next.templateUrl||$location.path("/login"))})}).config(["$httpProvider",function($httpProvider){$httpProvider.defaults.withCredentials=!0}]).run(function(gettextCatalog){gettextCatalog.setCurrentLanguage("tr"),gettextCatalog.debug=!0});var form_generator=angular.module("formService",["general","ui.bootstrap"]);form_generator.factory("Generator",function($http,$q,$log,$modal,$timeout,RESTURL,FormDiff){var generator={};return generator.makeUrl=function(url){return RESTURL.url+url},generator.generate=function(scope,forms){for(var key in forms)scope[key]=forms[key];return scope.initialModel=angular.copy(scope.model),scope.form.push({type:"submit",title:"Save"}),scope.listnodeform={},(scope.listnode&&scope.listnodes[0]||scope.nodes&&scope.nodes[0])&&angular.forEach(scope.form,function(key,val){"object"==typeof key&&"fieldset"==key.type&&(key.type="template",key.templateUrl="shared/templates/fieldset.html",scope.listnodes.indexOf(key.title)>=0&&(scope.listnodeform[key.title]={},scope.listnodeform[key.title].schema={title:angular.copy(key.title),type:"object",properties:{},required:[]},angular.forEach(scope.schema.properties,function(k,v){angular.forEach(key.items,function(item){item.key==v&&(scope.listnodeform[key.title].schema.properties[v]=angular.copy(k))})}),key.setType="ListNode",scope.listnodeform[key.title].form=[angular.copy(key)],scope.listnodeform[key.title].model={},key.type="list",delete key.templateUrl,delete key.items))}),scope.isCollapsed=!0,scope.object_id=scope.form_params.object_id,scope.openmodal=function(listnode,nodeID){var modalInstance=$modal.open({animation:!1,templateUrl:"shared/templates/listnodeModalContent.html",controller:"ListNodeModalCtrl",size:"lg",resolve:{items:function(){return nodeID&&(scope.listnodeform[listnode].model=1),scope.listnodeform[listnode]}}});modalInstance.result.then(function(childmodel,key){angular.forEach(childmodel,function(v,k){scope.model[k]?scope.model[k][v.idx]=v:(scope.model[k]={},scope.model[k][v.idx]=v),scope.$broadcast("schemaFormRedraw")})})},generator.group(scope)},generator.group=function(formObject){return formObject},generator.get_form=function(scope){return $http.post(generator.makeUrl(scope.url),scope.form_params).then(function(res){return generator.generate(scope,res.data.forms)})},generator.get_list=function(scope){return $http.post(generator.makeUrl(scope.url),scope.form_params).then(function(res){return res})},generator.get_single_item=function(scope){return $http.post(generator.makeUrl(scope.url),scope.form_params).then(function(res){return res})},generator.isValidEmail=function(email){var re=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;return re.test(email)},generator.asyncValidators={emailNotValid:function(value){var deferred=$q.defer();return $timeout(function(){generator.isValidEmail(value)?deferred.resolve():deferred.reject()},500),deferred.promise}},generator.submit=function($scope){if($scope.object_id)var get_diff=FormDiff.get_diff($scope.model,$scope.initialModel),data={object_id:$scope.object_id,form:get_diff,cmd:"do"};else data={form:$scope.model,cmd:"do"};return $http.post(generator.makeUrl($scope.url),data)},generator}),form_generator.controller("ListNodeModalCtrl",function($scope,$modalInstance,items){for(var key in items)$scope[key]=items[key];$scope.onSubmit=function(form){$modalInstance.close($scope.model,$scope.form.title)},$scope.cancel=function(){$modalInstance.dismiss("cancel")}});var general=angular.module("general",[]);general.factory("FormDiff",function(){var formDiff={};return formDiff.get_diff=function(obj1,obj2){var result={};for(key in obj1)obj2[key]!=obj1[key]&&(result[key]=obj1[key]),"array"==typeof obj2[key]&&"array"==typeof obj1[key]&&(result[key]=arguments.callee(obj1[key],obj2[key])),"object"==typeof obj2[key]&&"object"==typeof obj1[key]&&(result[key]=arguments.callee(obj1[key],obj2[key]));return result},formDiff}),app.config(["$httpProvider",function($httpProvider){$httpProvider.interceptors.push(function($q,$rootScope,$location){return{request:function(config){return"POST"==config.method&&(config.headers["Content-Type"]="text/plain"),config},response:function(response){return response.data.is_login===!0&&($rootScope.loggedInUser=response.data.is_login,$location.replace(),"/login"===$location.path()&&$location.path("/dashboard")),response.data.screen&&$location.path(response.data.screen),response},responseError:function(rejection){return 400===rejection.status&&$location.reload(),401===rejection.status&&("/login"===$location.path()?console.log("show errors on login form"):$location.path("/login")),$q.reject(rejection)}}})}]);var auth=angular.module("ulakbus.auth",["ngRoute","schemaForm","ngCookies","general"]);auth.controller("LoginCtrl",function($scope,$q,$timeout,$routeParams,Generator,LoginService){$scope.url="simple_login",$scope.form_params={},$scope.form_params.clear_wf=1,Generator.get_form($scope).then(function(data){$scope.form=["*",{key:"password",type:"password"},{type:"submit",title:"Save"}]}),$scope.onSubmit=function(form){$scope.$broadcast("schemaFormValidate"),form.$valid?LoginService.login($scope.url,$scope.model).error(function(data){$scope.message=data.title}):console.log("not valid")}}),auth.factory("LoginService",function($http,$rootScope,$location,$log,$cookies,$window,Session,RESTURL){var loginService={};return loginService.login=function(url,credentials){return credentials={login_crd:credentials,cmd:"do"},$http.post(RESTURL.url+url,credentials).success(function(data,status,headers,config){$rootScope.loggedInUser=!0}).error(function(data,status,headers,config){return data})},loginService.logout=function(){console.log("logout"),$http.post(RESTURL.url+"logout",{}).then(function(){$rootScope.loggedInUser=!1,$location.path("/login")}),console.log("loggedout")},loginService.isAuthenticated=function(){return!!Session.userId},loginService.isAuthorized=function(authorizedRoles){return angular.isArray(authorizedRoles)||(authorizedRoles=[authorizedRoles]),loginService.isAuthenticated()&&-1!==loginService.indexOf(Session.userRole)},loginService.isValidEmail=function(email){var re=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;return re.test(email)},loginService}),auth.service("Session",function(){this.create=function(sessionId,userId,userRole){this.id=sessionId,this.userId=userId,this.userRole=userRole},this.destroy=function(){this.id=null,this.userId=null,this.userRole=null}}),angular.module("ulakbus.dashboard",["ngRoute"]).controller("DashCtrl",function($scope){$scope.testData="<h1>This is main Dashboard</h1>"});var staff=angular.module("ulakbus.staff",["ngRoute","schemaForm","formService","ui.bootstrap"]);staff.controller("StaffAddEditCtrl",function($scope,$rootScope,$location,$http,$log,$modal,Generator,$routeParams){$scope.url="personel_duzenle_basitlestirilmis",$scope.form_params={},$routeParams.id?($scope.form_params.object_id=$routeParams.id,$scope.form_params.cmd="edit_object"):$scope.form_params.cmd="add_object",$scope.form_params.clear_wf=1,Generator.get_form($scope),$scope.onSubmit=function(form){$scope.$broadcast("schemaFormValidate"),form.$valid&&Generator.submit($scope).success(function(data){$location.path("/staffs")}).error(function(data){$scope.message=data.title})}}),staff.controller("StaffListCtrl",function($scope,$rootScope,Generator){$scope.url="personel_duzenle_basitlestirilmis",$scope.form_params={clear_wf:1},Generator.get_list($scope).then(function(res){var data=res.data.employees;for(var item in data)delete data[item].data.deleted,delete data[item].data.timestamp;$scope.staffs=data})}),staff.controller("StaffShowCtrl",function($scope,$rootScope,Generator,$routeParams){$scope.url="personel_duzenle_basitlestirilmis",$scope.form_params={object_id:$routeParams.id,clear_wf:1},Generator.get_single_item($scope).then(function(res){$scope.staff=res.data.employees[0].data})});var student=angular.module("ulakbus.student",["ngRoute","schemaForm","formService","general"]);student.controller("StudentAddEditCtrl",function($scope,$http,$log,Generator,$routeParams){Generator.get_form("add_student",$routeParams).then(function(d){$scope.schema=d.schema,$scope.form=d.form,$scope.model=d.model?d.model:{},$scope.initialModel=angular.copy(d.model),$scope.form[0].$asyncValidators=Generator.asyncValidators,$scope.form.push({type:"submit",title:"Save"})}),$scope.onSubmit=function(form){$scope.$broadcast("schemaFormValidate"),form.$valid&&Generator.submit("add_staff",$scope)}}),student.controller("StudentListCtrl",function($scope,$http){$http.get("http://127.0.0.1:3000/api/list_student").then(function(res){$scope.students=res.data})});var staff=angular.module("ulakbus.types",["ngRoute","schemaForm","formService"]);staff.controller("TypeCtrl",function($scope,$http,$log,Generator,$routeParams){Generator.get_form("input_types",$routeParams).then(function(d){$scope.congressFilter="Choice",$scope.schema=d.schema,$scope.form=d.form,$scope.model={},$scope.form[0].$asyncValidators=Generator.asyncValidators,$scope.form.push({type:"submit",title:"Save"})}),$scope.onSubmit=function(form){$scope.$broadcast("schemaFormValidate"),form.$valid&&$log.info($scope)}}),auth.factory("LoginService",function($http,$rootScope,$location,$log,$cookies,$window,Session,RESTURL){var loginService={};return loginService.login=function(url,credentials){return credentials={login_crd:credentials,cmd:"do"},$http.post(RESTURL.url+url,credentials).success(function(data,status,headers,config){$rootScope.loggedInUser=!0}).error(function(data,status,headers,config){return data})},loginService.logout=function(){console.log("logout"),$http.post(RESTURL.url+"logout",{}).then(function(){$rootScope.loggedInUser=!1,$location.path("/login")}),console.log("loggedout")},loginService.isAuthenticated=function(){return!!Session.userId},loginService.isAuthorized=function(authorizedRoles){return angular.isArray(authorizedRoles)||(authorizedRoles=[authorizedRoles]),loginService.isAuthenticated()&&-1!==loginService.indexOf(Session.userRole)},loginService.isValidEmail=function(email){var re=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;return re.test(email)},loginService}),auth.service("Session",function(){this.create=function(sessionId,userId,userRole){this.id=sessionId,this.userId=userId,this.userRole=userRole},this.destroy=function(){this.id=null,this.userId=null,this.userRole=null}}); "use strict";var app=angular.module("ulakbus",["ui.bootstrap","angular-loading-bar","ngRoute","ngSanitize","ngCookies","general","formService","ulakbus.dashboard","ulakbus.auth","ulakbus.staff","ulakbus.student","schemaForm","gettext","templates-prod"]).constant("RESTURL",function(){return{url:"http://"+window.location.hostname+":9001/"}}()).constant("USER_ROLES",{all:"*",admin:"admin",student:"student",staff:"staff",dean:"dean"}).constant("AUTH_EVENTS",{loginSuccess:"auth-login-success",loginFailed:"auth-login-failed",logoutSuccess:"auth-logout-success",sessionTimeout:"auth-session-timeout",notAuthenticated:"auth-not-authenticated",notAuthorized:"auth-not-authorized"}).directive("activeLink",["$location",function($location){return{restrict:"A",link:function($scope,$element,$attrs){var clazz=$attrs.activeLink,path=$location.path();path=path,$scope.location=$location,$scope.$watch("location.path()",function(newPath){path===newPath?$element.addClass(clazz):$element.removeClass(clazz)})}}}]).directive("logout",function($http,$location){return{link:function($scope,$element,$rootScope){$element.on("click",function(){$http.post("http://"+window.location.hostname+":9001/logout",{}).then(function(){$rootScope.loggedInUser=!1,console.log($rootScope.loggedInUser),$location.path("/login"),$scope.$apply()})})}}});app.config(["$routeProvider",function($routeProvider){$routeProvider.when("/login",{templateUrl:"components/auth/login.html",controller:"LoginCtrl"}).when("/dashboard",{templateUrl:"components/dashboard/dashboard.html",controller:"DashCtrl"}).when("/student/add",{templateUrl:"components/student/student_add_template.html",controller:"StudentAddEditCtrl"}).when("/student/edit/:id",{templateUrl:"components/student/student_add_template.html",controller:"StudentAddEditCtrl"}).when("/students",{templateUrl:"components/student/student_list_template.html",controller:"StudentListCtrl"}).when("/student/:id",{templateUrl:"components/student/student_list_template.html",controller:"StudentShowCtrl"}).when("/staff/add",{templateUrl:"components/staff/templates/add.html",controller:"StaffAddEditCtrl"}).when("/staff/edit/:id",{templateUrl:"components/staff/templates/edit.html",controller:"StaffAddEditCtrl"}).when("/staffs",{templateUrl:"components/staff/templates/list.html",controller:"StaffListCtrl"}).when("/staff/:id",{templateUrl:"components/staff/templates/show.html",controller:"StaffShowCtrl"}).otherwise({redirectTo:"/dashboard"})}]).run(function($rootScope,$location,$cookies){$rootScope.loggedInUser?$rootScope.loggedInUser:!1,$rootScope.$on("$routeChangeStart",function(event,next,current){null==$rootScope.loggedInUser&&("login/login.html"===next.templateUrl||$location.path("/login"))})}).config(["$httpProvider",function($httpProvider){$httpProvider.defaults.withCredentials=!0}]).run(function(gettextCatalog){gettextCatalog.setCurrentLanguage("tr"),gettextCatalog.debug=!0});var form_generator=angular.module("formService",["general","ui.bootstrap"]);form_generator.factory("Generator",function($http,$q,$log,$modal,$timeout,RESTURL,FormDiff){var generator={};return generator.makeUrl=function(url){return RESTURL.url+url},generator.generate=function(scope,forms){for(var key in forms)scope[key]=forms[key];return scope.initialModel=angular.copy(scope.model),scope.form.push({type:"submit",title:"Save"}),scope.listnodeform={},(scope.listnode&&scope.listnodes[0]||scope.nodes&&scope.nodes[0])&&angular.forEach(scope.form,function(key,val){"object"==typeof key&&"fieldset"==key.type&&(key.type="template",key.templateUrl="shared/templates/fieldset.html",scope.listnodes.indexOf(key.title)>=0&&(scope.listnodeform[key.title]={},scope.listnodeform[key.title].schema={title:angular.copy(key.title),type:"object",properties:{},required:[]},angular.forEach(scope.schema.properties,function(k,v){angular.forEach(key.items,function(item){item.key==v&&(scope.listnodeform[key.title].schema.properties[v]=angular.copy(k))})}),key.setType="ListNode",scope.listnodeform[key.title].form=[angular.copy(key)],scope.listnodeform[key.title].model={},key.type="list",delete key.templateUrl,delete key.items))}),scope.isCollapsed=!0,scope.object_id=scope.form_params.object_id,scope.openmodal=function(listnode,nodeID){var modalInstance=$modal.open({animation:!1,templateUrl:"shared/templates/listnodeModalContent.html",controller:"ListNodeModalCtrl",size:"lg",resolve:{items:function(){return nodeID&&(scope.listnodeform[listnode].model=1),scope.listnodeform[listnode]}}});modalInstance.result.then(function(childmodel,key){angular.forEach(childmodel,function(v,k){scope.model[k]?scope.model[k][v.idx]=v:(scope.model[k]={},scope.model[k][v.idx]=v),scope.$broadcast("schemaFormRedraw")})})},generator.group(scope)},generator.group=function(formObject){return formObject},generator.get_form=function(scope){return $http.post(generator.makeUrl(scope.url),scope.form_params).then(function(res){return generator.generate(scope,res.data.forms)})},generator.get_list=function(scope){return $http.post(generator.makeUrl(scope.url),scope.form_params).then(function(res){return res})},generator.get_single_item=function(scope){return $http.post(generator.makeUrl(scope.url),scope.form_params).then(function(res){return res})},generator.isValidEmail=function(email){var re=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;return re.test(email)},generator.asyncValidators={emailNotValid:function(value){var deferred=$q.defer();return $timeout(function(){generator.isValidEmail(value)?deferred.resolve():deferred.reject()},500),deferred.promise}},generator.submit=function($scope){if($scope.object_id)var get_diff=FormDiff.get_diff($scope.model,$scope.initialModel),data={object_id:$scope.object_id,form:get_diff,cmd:"do"};else data={form:$scope.model,cmd:"do"};return $http.post(generator.makeUrl($scope.url),data)},generator}),form_generator.controller("ListNodeModalCtrl",function($scope,$modalInstance,items){for(var key in items)$scope[key]=items[key];$scope.onSubmit=function(form){$modalInstance.close($scope.model,$scope.form.title)},$scope.cancel=function(){$modalInstance.dismiss("cancel")}});var general=angular.module("general",[]);general.factory("FormDiff",function(){var formDiff={};return formDiff.get_diff=function(obj1,obj2){var result={};for(key in obj1)obj2[key]!=obj1[key]&&(result[key]=obj1[key]),"array"==typeof obj2[key]&&"array"==typeof obj1[key]&&(result[key]=arguments.callee(obj1[key],obj2[key])),"object"==typeof obj2[key]&&"object"==typeof obj1[key]&&(result[key]=arguments.callee(obj1[key],obj2[key]));return result},formDiff}),app.config(["$httpProvider",function($httpProvider){$httpProvider.interceptors.push(function($q,$rootScope,$location){return{request:function(config){return"POST"==config.method&&(config.headers["Content-Type"]="text/plain"),config},response:function(response){return response.data.is_login===!0&&($rootScope.loggedInUser=response.data.is_login,$location.replace(),"/login"===$location.path()&&$location.path("/dashboard")),response.data.screen&&$location.path(response.data.screen),response},responseError:function(rejection){return 400===rejection.status&&$location.reload(),401===rejection.status&&("/login"===$location.path()?console.log("show errors on login form"):$location.path("/login")),$q.reject(rejection)}}})}]),$(function(){$("#side-menu").metisMenu()}),$(function(){$(window).bind("load resize",function(){topOffset=50,width=this.window.innerWidth>0?this.window.innerWidth:this.screen.width,width<768?($("div.navbar-collapse").addClass("collapse"),topOffset=100):$("div.navbar-collapse").removeClass("collapse"),height=(this.window.innerHeight>0?this.window.innerHeight:this.screen.height)-1,height-=topOffset,height<1&&(height=1),height>topOffset&&$("#page-wrapper").css("min-height",height+"px")});var url=window.location,element=$("ul.nav a").filter(function(){return this.href==url||0==url.href.indexOf(this.href)}).addClass("active").parent().parent().addClass("in").parent();element.is("li")&&element.addClass("active")}),app.directive("headerNotification",function(){return{templateUrl:"shared/templates/directives/header-notification.html",restrict:"E",replace:!0}}),app.directive("sidebar",["$location",function(){return{templateUrl:"shared/templates/directives/sidebar.html",restrict:"E",replace:!0,scope:{},controller:function($scope){$scope.selectedMenu="dashboard",$scope.collapseVar=0,$scope.multiCollapseVar=0,$scope.check=function(x){x==$scope.collapseVar?$scope.collapseVar=0:$scope.collapseVar=x},$scope.multiCheck=function(y){y==$scope.multiCollapseVar?$scope.multiCollapseVar=0:$scope.multiCollapseVar=y}}}}]),app.directive("stats",function(){return{templateUrl:"shared/templates/directives/stats.html",restrict:"E",replace:!0,scope:{model:"=",comments:"@",number:"@",name:"@",colour:"@",details:"@",type:"@","goto":"@"}}}),app.directive("notifications",function(){return{templateUrl:"shared/templates/directives/notifications.html",restrict:"E",replace:!0}}),app.directive("sidebarSearch",function(){return{templateUrl:"shared/templates/directives/sidebar-search.html",restrict:"E",replace:!0,scope:{},controller:function($scope){$scope.selectedMenu="home"}}}),app.directive("timeline",function(){return{templateUrl:"shared/templates/directives/timeline.html",restrict:"E",replace:!0}}),app.directive("chat",function(){return{templateUrl:"shared/templates/directives/chat.html",restrict:"E",replace:!0}});var auth=angular.module("ulakbus.auth",["ngRoute","schemaForm","ngCookies","general"]);auth.controller("LoginCtrl",function($scope,$q,$timeout,$routeParams,Generator,LoginService){$scope.url="simple_login",$scope.form_params={},$scope.form_params.clear_wf=1,Generator.get_form($scope).then(function(data){$scope.form=["*",{key:"password",type:"password"},{type:"submit",title:"Save"}]}),$scope.onSubmit=function(form){$scope.$broadcast("schemaFormValidate"),form.$valid?LoginService.login($scope.url,$scope.model).error(function(data){$scope.message=data.title}):console.log("not valid")}}),auth.factory("LoginService",function($http,$rootScope,$location,$log,$cookies,$window,Session,RESTURL){var loginService={};return loginService.login=function(url,credentials){return credentials={login_crd:credentials,cmd:"do"},$http.post(RESTURL.url+url,credentials).success(function(data,status,headers,config){$rootScope.loggedInUser=!0}).error(function(data,status,headers,config){return data})},loginService.logout=function(){console.log("logout"),$http.post(RESTURL.url+"logout",{}).then(function(){$rootScope.loggedInUser=!1,$location.path("/login")}),console.log("loggedout")},loginService.isAuthenticated=function(){return!!Session.userId},loginService.isAuthorized=function(authorizedRoles){return angular.isArray(authorizedRoles)||(authorizedRoles=[authorizedRoles]),loginService.isAuthenticated()&&-1!==loginService.indexOf(Session.userRole)},loginService.isValidEmail=function(email){var re=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;return re.test(email)},loginService}),auth.service("Session",function(){this.create=function(sessionId,userId,userRole){this.id=sessionId,this.userId=userId,this.userRole=userRole},this.destroy=function(){this.id=null,this.userId=null,this.userRole=null}}),angular.module("ulakbus.dashboard",["ngRoute"]).controller("DashCtrl",function($scope){$scope.testData="<h1>This is main Dashboard</h1>"});var staff=angular.module("ulakbus.staff",["ngRoute","schemaForm","formService","ui.bootstrap"]);staff.controller("StaffAddEditCtrl",function($scope,$rootScope,$location,$http,$log,$modal,Generator,$routeParams){$scope.url="personel_duzenle_basitlestirilmis",$scope.form_params={},$routeParams.id?($scope.form_params.object_id=$routeParams.id,$scope.form_params.cmd="edit_object"):$scope.form_params.cmd="add_object",$scope.form_params.clear_wf=1,Generator.get_form($scope),$scope.onSubmit=function(form){$scope.$broadcast("schemaFormValidate"),form.$valid&&Generator.submit($scope).success(function(data){$location.path("/staffs")}).error(function(data){$scope.message=data.title})}}),staff.controller("StaffListCtrl",function($scope,$rootScope,Generator){$scope.url="personel_duzenle_basitlestirilmis",$scope.form_params={clear_wf:1},Generator.get_list($scope).then(function(res){var data=res.data.employees;for(var item in data)delete data[item].data.deleted,delete data[item].data.timestamp;$scope.staffs=data})}),staff.controller("StaffShowCtrl",function($scope,$rootScope,Generator,$routeParams){$scope.url="personel_duzenle_basitlestirilmis",$scope.form_params={object_id:$routeParams.id,clear_wf:1},Generator.get_single_item($scope).then(function(res){$scope.staff=res.data.employees[0].data})});var student=angular.module("ulakbus.student",["ngRoute","schemaForm","formService","general"]);student.controller("StudentAddEditCtrl",function($scope,$http,$log,Generator,$routeParams){Generator.get_form("add_student",$routeParams).then(function(d){$scope.schema=d.schema,$scope.form=d.form,$scope.model=d.model?d.model:{},$scope.initialModel=angular.copy(d.model),$scope.form[0].$asyncValidators=Generator.asyncValidators,$scope.form.push({type:"submit",title:"Save"})}),$scope.onSubmit=function(form){$scope.$broadcast("schemaFormValidate"),form.$valid&&Generator.submit("add_staff",$scope)}}),student.controller("StudentListCtrl",function($scope,$http){$http.get("http://127.0.0.1:3000/api/list_student").then(function(res){$scope.students=res.data})});var staff=angular.module("ulakbus.types",["ngRoute","schemaForm","formService"]);staff.controller("TypeCtrl",function($scope,$http,$log,Generator,$routeParams){Generator.get_form("input_types",$routeParams).then(function(d){$scope.congressFilter="Choice",$scope.schema=d.schema,$scope.form=d.form,$scope.model={},$scope.form[0].$asyncValidators=Generator.asyncValidators,$scope.form.push({type:"submit",title:"Save"})}),$scope.onSubmit=function(form){$scope.$broadcast("schemaFormValidate"),form.$valid&&$log.info($scope)}}),auth.factory("LoginService",function($http,$rootScope,$location,$log,$cookies,$window,Session,RESTURL){var loginService={};return loginService.login=function(url,credentials){return credentials={login_crd:credentials,cmd:"do"},$http.post(RESTURL.url+url,credentials).success(function(data,status,headers,config){$rootScope.loggedInUser=!0}).error(function(data,status,headers,config){return data})},loginService.logout=function(){console.log("logout"),$http.post(RESTURL.url+"logout",{}).then(function(){$rootScope.loggedInUser=!1,$location.path("/login")}),console.log("loggedout")},loginService.isAuthenticated=function(){return!!Session.userId},loginService.isAuthorized=function(authorizedRoles){return angular.isArray(authorizedRoles)||(authorizedRoles=[authorizedRoles]),loginService.isAuthenticated()&&-1!==loginService.indexOf(Session.userRole)},loginService.isValidEmail=function(email){var re=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;return re.test(email)},loginService}),auth.service("Session",function(){this.create=function(sessionId,userId,userRole){this.id=sessionId,this.userId=userId,this.userRole=userRole},this.destroy=function(){this.id=null,this.userId=null,this.userRole=null}});
\ No newline at end of file \ No newline at end of file
...@@ -14,48 +14,30 @@ ...@@ -14,48 +14,30 @@
<meta name="description" content=""> <meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="app.css"> <link rel="stylesheet" href="css/app.css">
<!--<script src="bower_components/html5-boilerplate/js/vendor/modernizr-2.6.2.min.js"></script>-->
</head> </head>
<body> <body>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid"> <nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
<div class="navbar-header"> <div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#navbar" <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span>
<span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> </button>
</button> <a class="navbar-brand" href="index.html">ULAKBUS</a>
<a class="navbar-brand" href="#">ULAKBUS</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="#/dashboard" translate>Dashboard</a></li>
<li><a href="#/login"translate>Login</a></li>
<li><a href="javascript:void(0);" logout translate>Logout</a></li>
</ul>
<form class="navbar-form navbar-right">
<input type="text" class="form-control" placeholder="Search...">
</form>
</div>
</div> </div>
<!-- /.navbar-header -->
<header-notification></header-notification>
<sidebar></sidebar>
</nav> </nav>
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-sm-3 col-md-2 sidebar">
<ul class="nav nav-sidebar">
<!--<li active-link="active"><a href="#/students">Students</a></li>-->
<!--<li active-link="active"><a href="#/student/add">New Student</a></li>-->
<li active-link="active"><a href="#/staffs" translate>Staffs
</a></li>
<li active-link="active"><a href="#/staff/add" translate>New Staff</a>
</li>
<!--<li active-link="active"><a href="#/input_types">Types</a></li>-->
</ul>
</div>
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main" <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main"
ng-view> ng-view>
...@@ -69,10 +51,8 @@ ...@@ -69,10 +51,8 @@
</div> </div>
</div> </div>
<!-- In production use: <script src="bower_components/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/x.x.x/angular.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.17/angular.min.js"></script>
-->
<script src="bower_components/components.js"></script> <script src="bower_components/components.js"></script>
<script src="shared/translations.js"></script> <script src="shared/translations.js"></script>
<script src="templates.js"></script> <script src="templates.js"></script>
......
angular.module('templates-prod', ['components/auth/login.html', 'components/dashboard/dashboard.html', 'components/staff/templates/add.html', 'components/staff/templates/edit.html', 'components/staff/templates/list.html', 'components/staff/templates/show.html', 'components/student/student_add_template.html', 'components/student/student_list_template.html', 'components/types/types_template.html']); angular.module('templates-prod', ['components/auth/login.html', 'components/dashboard/dashboard.html', 'components/staff/templates/add.html', 'components/staff/templates/edit.html', 'components/staff/templates/list.html', 'components/staff/templates/show.html', 'components/student/student_add_template.html', 'components/student/student_list_template.html', 'components/types/types_template.html', 'shared/templates/add.html', 'shared/templates/directives/chat.html', 'shared/templates/directives/header-notification.html', 'shared/templates/directives/notifications.html', 'shared/templates/directives/sidebar-search.html', 'shared/templates/directives/sidebar.html', 'shared/templates/directives/stats.html', 'shared/templates/directives/timeline.html', 'shared/templates/fieldset.html', 'shared/templates/listnodeModalContent.html', 'shared/templates/modalContent.html']);
angular.module("components/auth/login.html", []).run(["$templateCache", function($templateCache) { angular.module("components/auth/login.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("components/auth/login.html", $templateCache.put("components/auth/login.html",
"<div ng-app=\"ulakbus.auth\">\n" + "<div ng-app=\"ulakbus.auth\" class=\"container\">\n" +
" <div class=\"col-md-6\">\n" + " <div class=\"row\">\n" +
" <h1>Ulakbüs Login Form</h1>\n" + " <div class=\"col-md-4 col-md-offset-4\">\n" +
" <span class=\"label label-warning\">{{message}}</span>\n" + " <div class=\"login-panel panel panel-default\">\n" +
" <form name=\"loginForm\" sf-schema=\"schema\" sf-form=\"form\" sf-model=\"model\" ng-submit=\"onSubmit(loginForm)\"></form>\n" + " <div class=\"panel-heading\">\n" +
" <h3 class=\"panel-title\">Sign In</h3>\n" +
" </div>\n" +
" <div class=\"panel-body\">\n" +
" <span class=\"label label-warning\">{{message}}</span>\n" +
" <form name=\"loginForm\" sf-schema=\"schema\" sf-form=\"form\" sf-model=\"model\" ng-submit=\"onSubmit(loginForm)\"></form>\n" +
" </div>\n" +
" </div>\n" +
" </div>\n" +
" </div>\n" + " </div>\n" +
"</div>"); "</div>");
}]); }]);
...@@ -103,3 +111,683 @@ angular.module("components/types/types_template.html", []).run(["$templateCache" ...@@ -103,3 +111,683 @@ angular.module("components/types/types_template.html", []).run(["$templateCache"
" </div>\n" + " </div>\n" +
"</div>"); "</div>");
}]); }]);
angular.module("shared/templates/add.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/add.html",
"<div class=\"col-md-12\">\n" +
" <h1>{{ schema.title }}</h1>\n" +
" <button type=\"button\" ng-repeat=\"node in listnodes\" ng-click=\"openmodal(node)\">Add <span>{{node}}</span></button>\n" +
" <form name=\"formgenerated\" sf-schema=\"schema\" sf-form=\"form\" sf-model=\"model\" ng-submit=\"onSubmit(formgenerated)\"></form>\n" +
"</div>");
}]);
angular.module("shared/templates/directives/chat.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/directives/chat.html",
"<div class=\"chat-panel panel panel-default\">\n" +
" <div class=\"panel-heading\">\n" +
" <i class=\"fa fa-comments fa-fw\"></i>\n" +
" Chat\n" +
" <div class=\"btn-group pull-right\">\n" +
" <button type=\"button\" class=\"btn btn-default btn-xs dropdown-toggle\" data-toggle=\"dropdown\">\n" +
" <i class=\"fa fa-chevron-down\"></i>\n" +
" </button>\n" +
" <ul class=\"dropdown-menu slidedown\">\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <i class=\"fa fa-refresh fa-fw\"></i> Refresh\n" +
" </a>\n" +
" </li>\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <i class=\"fa fa-check-circle fa-fw\"></i> Available\n" +
" </a>\n" +
" </li>\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <i class=\"fa fa-times fa-fw\"></i> Busy\n" +
" </a>\n" +
" </li>\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <i class=\"fa fa-clock-o fa-fw\"></i> Away\n" +
" </a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <i class=\"fa fa-sign-out fa-fw\"></i> Sign Out\n" +
" </a>\n" +
" </li>\n" +
" </ul>\n" +
" </div>\n" +
" </div>\n" +
" <!-- /.panel-heading -->\n" +
" <div class=\"panel-body\">\n" +
" <ul class=\"chat\">\n" +
" <li class=\"left clearfix\">\n" +
" <span class=\"chat-img pull-left\">\n" +
" <img src=\"http://placehold.it/50/55C1E7/fff\" alt=\"User Avatar\" class=\"img-circle\">\n" +
" </span>\n" +
" <div class=\"chat-body clearfix\">\n" +
" <div class=\"header\">\n" +
" <strong class=\"primary-font\">Jack Sparrow</strong>\n" +
" <small class=\"pull-right text-muted\">\n" +
" <i class=\"fa fa-clock-o fa-fw\"></i> 12 mins ago\n" +
" </small>\n" +
" </div>\n" +
" <p>\n" +
" Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales.\n" +
" </p>\n" +
" </div>\n" +
" </li>\n" +
" <li class=\"right clearfix\">\n" +
" <span class=\"chat-img pull-right\">\n" +
" <img src=\"http://placehold.it/50/FA6F57/fff\" alt=\"User Avatar\" class=\"img-circle\">\n" +
" </span>\n" +
" <div class=\"chat-body clearfix\">\n" +
" <div class=\"header\">\n" +
" <small class=\" text-muted\">\n" +
" <i class=\"fa fa-clock-o fa-fw\"></i> 13 mins ago</small>\n" +
" <strong class=\"pull-right primary-font\">Bhaumik Patel</strong>\n" +
" </div>\n" +
" <p>\n" +
" Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales.\n" +
" </p>\n" +
" </div>\n" +
" </li>\n" +
" <li class=\"left clearfix\">\n" +
" <span class=\"chat-img pull-left\">\n" +
" <img src=\"http://placehold.it/50/55C1E7/fff\" alt=\"User Avatar\" class=\"img-circle\">\n" +
" </span>\n" +
" <div class=\"chat-body clearfix\">\n" +
" <div class=\"header\">\n" +
" <strong class=\"primary-font\">Jack Sparrow</strong>\n" +
" <small class=\"pull-right text-muted\">\n" +
" <i class=\"fa fa-clock-o fa-fw\"></i> 14 mins ago</small>\n" +
" </div>\n" +
" <p>\n" +
" Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales.\n" +
" </p>\n" +
" </div>\n" +
" </li>\n" +
" <li class=\"right clearfix\">\n" +
" <span class=\"chat-img pull-right\">\n" +
" <img src=\"http://placehold.it/50/FA6F57/fff\" alt=\"User Avatar\" class=\"img-circle\">\n" +
" </span>\n" +
" <div class=\"chat-body clearfix\">\n" +
" <div class=\"header\">\n" +
" <small class=\" text-muted\">\n" +
" <i class=\"fa fa-clock-o fa-fw\"></i> 15 mins ago</small>\n" +
" <strong class=\"pull-right primary-font\">Bhaumik Patel</strong>\n" +
" </div>\n" +
" <p>\n" +
" Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur bibendum ornare dolor, quis ullamcorper ligula sodales.\n" +
" </p>\n" +
" </div>\n" +
" </li>\n" +
" </ul>\n" +
" </div>\n" +
" <!-- /.panel-body -->\n" +
" <div class=\"panel-footer\">\n" +
" <div class=\"input-group\">\n" +
" <input id=\"btn-input\" type=\"text\" class=\"form-control input-sm\" placeholder=\"Type your message here...\">\n" +
" <span class=\"input-group-btn\">\n" +
" <button class=\"btn btn-warning btn-sm\" id=\"btn-chat\">\n" +
" Send\n" +
" </button>\n" +
" </span>\n" +
" </div>\n" +
" </div>\n" +
" <!-- /.panel-footer -->\n" +
"</div>");
}]);
angular.module("shared/templates/directives/header-notification.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/directives/header-notification.html",
"<ul class=\"nav navbar-top-links navbar-right\">\n" +
" <li class=\"dropdown\">\n" +
" <a class=\"dropdown-toggle\" data-toggle=\"dropdown\">\n" +
" <i class=\"fa fa-envelope fa-fw\"></i> <i class=\"fa fa-caret-down\"></i>\n" +
" </a>\n" +
" <ul class=\"dropdown-menu dropdown-messages\">\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <div>\n" +
" <strong>John Smith</strong>\n" +
" <span class=\"pull-right text-muted\">\n" +
" <em>Yesterday</em>\n" +
" </span>\n" +
" </div>\n" +
" <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend...</div>\n" +
" </a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <div>\n" +
" <strong>John Smith</strong>\n" +
" <span class=\"pull-right text-muted\">\n" +
" <em>Yesterday</em>\n" +
" </span>\n" +
" </div>\n" +
" <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend...</div>\n" +
" </a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <div>\n" +
" <strong>John Smith</strong>\n" +
" <span class=\"pull-right text-muted\">\n" +
" <em>Yesterday</em>\n" +
" </span>\n" +
" </div>\n" +
" <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend...</div>\n" +
" </a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li>\n" +
" <a class=\"text-center\" href=\"#\">\n" +
" <strong>Read All Messages</strong>\n" +
" <i class=\"fa fa-angle-right\"></i>\n" +
" </a>\n" +
" </li>\n" +
" </ul>\n" +
" <!-- /.dropdown-messages -->\n" +
" </li>\n" +
" <!-- /.dropdown -->\n" +
" <li class=\"dropdown\">\n" +
" <a class=\"dropdown-toggle\" data-toggle=\"dropdown\">\n" +
" <i class=\"fa fa-tasks fa-fw\"></i> <i class=\"fa fa-caret-down\"></i>\n" +
" </a>\n" +
" <ul class=\"dropdown-menu dropdown-tasks\">\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <div>\n" +
" <p>\n" +
" <strong>Task 1</strong>\n" +
" <span class=\"pull-right text-muted\">40% Complete</span>\n" +
" </p>\n" +
" <div class=\"progress progress-striped active\">\n" +
" <div class=\"progress-bar progress-bar-success\" role=\"progressbar\" aria-valuenow=\"40\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 40%\">\n" +
" <span class=\"sr-only\">40% Complete (success)</span>\n" +
" </div>\n" +
" </div>\n" +
" </div>\n" +
" </a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <div>\n" +
" <p>\n" +
" <strong>Task 2</strong>\n" +
" <span class=\"pull-right text-muted\">20% Complete</span>\n" +
" </p>\n" +
" <div class=\"progress progress-striped active\">\n" +
" <div class=\"progress-bar progress-bar-info\" role=\"progressbar\" aria-valuenow=\"20\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 20%\">\n" +
" <span class=\"sr-only\">20% Complete</span>\n" +
" </div>\n" +
" </div>\n" +
" </div>\n" +
" </a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <div>\n" +
" <p>\n" +
" <strong>Task 3</strong>\n" +
" <span class=\"pull-right text-muted\">60% Complete</span>\n" +
" </p>\n" +
" <div class=\"progress progress-striped active\">\n" +
" <div class=\"progress-bar progress-bar-warning\" role=\"progressbar\" aria-valuenow=\"60\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 60%\">\n" +
" <span class=\"sr-only\">60% Complete (warning)</span>\n" +
" </div>\n" +
" </div>\n" +
" </div>\n" +
" </a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <div>\n" +
" <p>\n" +
" <strong>Task 4</strong>\n" +
" <span class=\"pull-right text-muted\">80% Complete</span>\n" +
" </p>\n" +
" <div class=\"progress progress-striped active\">\n" +
" <div class=\"progress-bar progress-bar-danger\" role=\"progressbar\" aria-valuenow=\"80\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: 80%\">\n" +
" <span class=\"sr-only\">80% Complete (danger)</span>\n" +
" </div>\n" +
" </div>\n" +
" </div>\n" +
" </a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li>\n" +
" <a class=\"text-center\" href=\"#\">\n" +
" <strong>See All Tasks</strong>\n" +
" <i class=\"fa fa-angle-right\"></i>\n" +
" </a>\n" +
" </li>\n" +
" </ul>\n" +
" <!-- /.dropdown-tasks -->\n" +
" </li>\n" +
" <!-- /.dropdown -->\n" +
" <li class=\"dropdown\">\n" +
" <a class=\"dropdown-toggle\" data-toggle=\"dropdown\">\n" +
" <i class=\"fa fa-bell fa-fw\"></i> <i class=\"fa fa-caret-down\"></i>\n" +
" </a>\n" +
" <ul class=\"dropdown-menu dropdown-alerts\">\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <div>\n" +
" <i class=\"fa fa-comment fa-fw\"></i> New Comment\n" +
" <span class=\"pull-right text-muted small\">4 minutes ago</span>\n" +
" </div>\n" +
" </a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <div>\n" +
" <i class=\"fa fa-twitter fa-fw\"></i> 3 New Followers\n" +
" <span class=\"pull-right text-muted small\">12 minutes ago</span>\n" +
" </div>\n" +
" </a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <div>\n" +
" <i class=\"fa fa-envelope fa-fw\"></i> Message Sent\n" +
" <span class=\"pull-right text-muted small\">4 minutes ago</span>\n" +
" </div>\n" +
" </a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <div>\n" +
" <i class=\"fa fa-tasks fa-fw\"></i> New Task\n" +
" <span class=\"pull-right text-muted small\">4 minutes ago</span>\n" +
" </div>\n" +
" </a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li>\n" +
" <a href=\"#\">\n" +
" <div>\n" +
" <i class=\"fa fa-upload fa-fw\"></i> Server Rebooted\n" +
" <span class=\"pull-right text-muted small\">4 minutes ago</span>\n" +
" </div>\n" +
" </a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li>\n" +
" <a class=\"text-center\" href=\"#\">\n" +
" <strong>See All Alerts</strong>\n" +
" <i class=\"fa fa-angle-right\"></i>\n" +
" </a>\n" +
" </li>\n" +
" </ul>\n" +
" <!-- /.dropdown-alerts -->\n" +
" </li>\n" +
" <!-- /.dropdown -->\n" +
" <li class=\"dropdown\">\n" +
" <a class=\"dropdown-toggle\" data-toggle=\"dropdown\">\n" +
" <i class=\"fa fa-user fa-fw\"></i> <i class=\"fa fa-caret-down\"></i>\n" +
" </a>\n" +
" <ul class=\"dropdown-menu dropdown-user\">\n" +
" <li><a href=\"#\"><i class=\"fa fa-user fa-fw\"></i> User Profile</a>\n" +
" </li>\n" +
" <li><a href=\"#\"><i class=\"fa fa-gear fa-fw\"></i> Settings</a>\n" +
" </li>\n" +
" <li><a href=\"http://www.strapui.com/\"><i class=\"fa fa-eye fa-fw\"></i> Premium Angular Themes</a></li>\n" +
" <li class=\"divider\"></li>\n" +
" <li><a ui-sref=\"login\"><i class=\"fa fa-sign-out fa-fw\"></i> Logout</a>\n" +
" </li>\n" +
" </ul>\n" +
" <!-- /.dropdown-user -->\n" +
" </li>\n" +
" <!-- /.dropdown -->\n" +
"</ul>\n" +
"\n" +
"");
}]);
angular.module("shared/templates/directives/notifications.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/directives/notifications.html",
"<div class=\"panel-body\">\n" +
" <div class=\"list-group\">\n" +
" <a href=\"#\" class=\"list-group-item\">\n" +
" <i class=\"fa fa-comment fa-fw\"></i> New Comment\n" +
" <span class=\"pull-right text-muted small\"><em>4 minutes ago</em>\n" +
" </span>\n" +
" </a>\n" +
" <a href=\"#\" class=\"list-group-item\">\n" +
" <i class=\"fa fa-twitter fa-fw\"></i> 3 New Followers\n" +
" <span class=\"pull-right text-muted small\"><em>12 minutes ago</em>\n" +
" </span>\n" +
" </a>\n" +
" <a href=\"#\" class=\"list-group-item\">\n" +
" <i class=\"fa fa-envelope fa-fw\"></i> Message Sent\n" +
" <span class=\"pull-right text-muted small\"><em>27 minutes ago</em>\n" +
" </span>\n" +
" </a>\n" +
" <a href=\"#\" class=\"list-group-item\">\n" +
" <i class=\"fa fa-tasks fa-fw\"></i> New Task\n" +
" <span class=\"pull-right text-muted small\"><em>43 minutes ago</em>\n" +
" </span>\n" +
" </a>\n" +
" <a href=\"#\" class=\"list-group-item\">\n" +
" <i class=\"fa fa-upload fa-fw\"></i> Server Rebooted\n" +
" <span class=\"pull-right text-muted small\"><em>11:32 AM</em>\n" +
" </span>\n" +
" </a>\n" +
" <a href=\"#\" class=\"list-group-item\">\n" +
" <i class=\"fa fa-bolt fa-fw\"></i> Server Crashed!\n" +
" <span class=\"pull-right text-muted small\"><em>11:13 AM</em>\n" +
" </span>\n" +
" </a>\n" +
" <a href=\"#\" class=\"list-group-item\">\n" +
" <i class=\"fa fa-warning fa-fw\"></i> Server Not Responding\n" +
" <span class=\"pull-right text-muted small\"><em>10:57 AM</em>\n" +
" </span>\n" +
" </a>\n" +
" <a href=\"#\" class=\"list-group-item\">\n" +
" <i class=\"fa fa-shopping-cart fa-fw\"></i> New Order Placed\n" +
" <span class=\"pull-right text-muted small\"><em>9:49 AM</em>\n" +
" </span>\n" +
" </a>\n" +
" <a href=\"#\" class=\"list-group-item\">\n" +
" <i class=\"fa fa-money fa-fw\"></i> Payment Received\n" +
" <span class=\"pull-right text-muted small\"><em>Yesterday</em>\n" +
" </span>\n" +
" </a>\n" +
" </div>\n" +
" <!-- /.list-group -->\n" +
" <a href=\"#\" class=\"btn btn-default btn-block\">View All Alerts</a>\n" +
"</div>");
}]);
angular.module("shared/templates/directives/sidebar-search.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/directives/sidebar-search.html",
"<li class=\"sidebar-search\">\n" +
" <div class=\"input-group custom-search-form\">\n" +
" <input type=\"text\" class=\"form-control\" placeholder=\"Search...\">\n" +
" <span class=\"input-group-btn\">\n" +
" <button class=\"btn btn-default\" type=\"button\">\n" +
" <i class=\"fa fa-search\"></i>\n" +
" </button>\n" +
" </span>\n" +
" </div>\n" +
"</li>");
}]);
angular.module("shared/templates/directives/sidebar.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/directives/sidebar.html",
"<div class=\"navbar-default sidebar\" role=\"navigation\">\n" +
" <div class=\"sidebar-nav navbar-collapse\">\n" +
" <ul class=\"nav in\" id=\"side-menu\">\n" +
" <sidebar-search></sidebar-search>\n" +
" <li ui-sref-active=\"active\">\n" +
" <a ui-sref=\"dashboard.home\"><i class=\"fa fa-dashboard fa-fw\"></i> Dashboard</a>\n" +
" </li>\n" +
" <li ui-sref-active=\"active\"><a href=\"#/staffs\" translate>Staffs</a></li>\n" +
" <li ui-sref-active=\"active\"><a href=\"#/staff/add\" translate>New Staff</a></li>\n" +
" <!--<li ui-sref-active=\"active\">-->\n" +
"\n" +
" <!--<a ui-sref=\"dashboard.chart\"><i class=\"fa fa-bar-chart-o fa-fw\"></i> Charts<span></span></a>-->\n" +
"\n" +
" <!--</li>-->\n" +
" <!--<li ui-sref-active=\"active\">-->\n" +
" <!--<a ui-sref=\"dashboard.table\"><i class=\"fa fa-table fa-fw\"></i> Tables</a>-->\n" +
" <!--</li>-->\n" +
" <!--<li ui-sref-active=\"active\">-->\n" +
" <!--<a ui-sref=\"dashboard.form\"><i class=\"fa fa-edit fa-fw\"></i> Forms</a>-->\n" +
" <!--</li>-->\n" +
" <!--<li ng-class=\"{active: collapseVar==1}\">{{dropDown}}-->\n" +
" <!--<a href=\"\" ng-click=\"check(1)\"><i class=\"fa fa-wrench fa-fw\"></i> UI Elements<span-->\n" +
" <!--class=\"fa arrow\"></span></a>-->\n" +
" <!--<ul class=\"nav nav-second-level\" collapse=\"collapseVar!=1\">-->\n" +
" <!--<li ui-sref-active=\"active\">-->\n" +
" <!--<a ui-sref=\"dashboard.panels-wells\">Panels and Wells</a>-->\n" +
" <!--</li>-->\n" +
" <!--<li ui-sref-active=\"active\">-->\n" +
" <!--<a ui-sref=\"dashboard.buttons\">Buttons</a>-->\n" +
" <!--</li>-->\n" +
" <!--<li ui-sref-active=\"active\">-->\n" +
" <!--<a ui-sref=\"dashboard.notifications\">Notifications</a>-->\n" +
" <!--</li>-->\n" +
" <!--<li ui-sref-active=\"active\">-->\n" +
" <!--<a ui-sref=\"dashboard.typography\">Typography</a>-->\n" +
" <!--</li>-->\n" +
" <!--<li ui-sref-active=\"active\">-->\n" +
" <!--<a ui-sref=\"dashboard.icons\"> Icons</a>-->\n" +
" <!--</li>-->\n" +
" <!--<li ui-sref-active=\"active\">-->\n" +
" <!--<a ui-sref=\"dashboard.grid\">Grid</a>-->\n" +
" <!--</li>-->\n" +
" <!--</ul>-->\n" +
" <!--&lt;!&ndash; /.nav-second-level &ndash;&gt;-->\n" +
" <!--</li>-->\n" +
" <!--<li ng-class=\"{active: collapseVar==2}\">-->\n" +
" <!--<a href=\"\" ng-click=\"check(2)\"><i class=\"fa fa-sitemap fa-fw\"></i> Multi-Level Dropdown<span-->\n" +
" <!--class=\"fa arrow\"></span></a>-->\n" +
" <!--<ul class=\"nav nav-second-level\" collapse=\"collapseVar!=2\">-->\n" +
" <!--<li>-->\n" +
" <!--<a href=\"\">Second Level Item</a>-->\n" +
" <!--</li>-->\n" +
" <!--<li>-->\n" +
" <!--<a href=\"\">Second Level Item</a>-->\n" +
" <!--</li>-->\n" +
" <!--<li ng-init=\"third=!third\" ng-class=\"{active: multiCollapseVar==3}\">-->\n" +
" <!--<a href=\"\" ng-click=\"multiCheck(3)\">Third Level <span class=\"fa arrow\"></span></a>-->\n" +
" <!--<ul class=\"nav nav-third-level\" collapse=\"multiCollapseVar!=3\">-->\n" +
" <!--<li>-->\n" +
" <!--<a href=\"\">Third Level Item</a>-->\n" +
" <!--</li>-->\n" +
" <!--<li>-->\n" +
" <!--<a href=\"\">Third Level Item</a>-->\n" +
" <!--</li>-->\n" +
" <!--<li>-->\n" +
" <!--<a href=\"\">Third Level Item</a>-->\n" +
" <!--</li>-->\n" +
" <!--<li>-->\n" +
" <!--<a href=\"\">Third Level Item</a>-->\n" +
" <!--</li>-->\n" +
"\n" +
" <!--</ul>-->\n" +
" <!--&lt;!&ndash; /.nav-third-level &ndash;&gt;-->\n" +
" <!--</li>-->\n" +
" <!--</ul>-->\n" +
" <!--&lt;!&ndash; /.nav-second-level &ndash;&gt;-->\n" +
" <!--</li>-->\n" +
" <!--<li ng-class=\"{active:collapseVar==4}\">-->\n" +
" <!--<a href=\"\" ng-click=\"check(4)\"><i class=\"fa fa-files-o fa-fw\"></i> Sample Pages<span-->\n" +
" <!--class=\"fa arrow\"></span></a>-->\n" +
" <!--<ul class=\"nav nav-second-level\" collapse=\"collapseVar!=4\">-->\n" +
" <!--<li ng-class=\"{active: selectedMenu=='blank'}\">-->\n" +
" <!--<a ui-sref=\"dashboard.blank\" ng-click=\"selectedMenu='blank'\">Blank Page</a>-->\n" +
" <!--</li>-->\n" +
" <!--<li>-->\n" +
" <!--<a ui-sref=\"login\">Login Page</a>-->\n" +
" <!--</li>-->\n" +
" <!--</ul>-->\n" +
" <!--&lt;!&ndash; /.nav-second-level &ndash;&gt;-->\n" +
" <!--</li>-->\n" +
" </ul>\n" +
" </div>\n" +
" <!-- /.sidebar-collapse -->\n" +
"</div> \n" +
"\n" +
"\n" +
"\n" +
"");
}]);
angular.module("shared/templates/directives/stats.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/directives/stats.html",
"<div class=\"col-lg-3 col-md-6\">\n" +
" <div class=\"panel panel-{{colour}}\">\n" +
" <div class=\"panel-heading\">\n" +
" <div class=\"row\">\n" +
" <div class=\"col-xs-3\">\n" +
" <i class=\"fa fa-{{type}} fa-5x\"></i>\n" +
" </div>\n" +
" <div class=\"col-xs-9 text-right\">\n" +
" <div class=\"huge\">{{number}}</div>\n" +
" <div>{{comments}}</div>\n" +
" </div>\n" +
" </div>\n" +
" </div>\n" +
" <a ui-sref=\"{{goto}}\">\n" +
" <div class=\"panel-footer\">\n" +
" <span class=\"pull-left\">View Details</span>\n" +
" <span class=\"pull-right\"><i class=\"fa fa-arrow-circle-right\"></i></span>\n" +
" <div class=\"clearfix\"></div>\n" +
" </div>\n" +
" </a>\n" +
" </div>\n" +
"</div>");
}]);
angular.module("shared/templates/directives/timeline.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/directives/timeline.html",
"<div class=\"panel-body\">\n" +
" <ul class=\"timeline\">\n" +
" <li>\n" +
" <div class=\"timeline-badge\"><i class=\"fa fa-check\"></i>\n" +
" </div>\n" +
" <div class=\"timeline-panel\">\n" +
" <div class=\"timeline-heading\">\n" +
" <h4 class=\"timeline-title\">Lorem ipsum dolor</h4>\n" +
" <p><small class=\"text-muted\"><i class=\"fa fa-clock-o\"></i> 11 hours ago via Twitter</small>\n" +
" </p>\n" +
" </div>\n" +
" <div class=\"timeline-body\">\n" +
" <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Libero laboriosam dolor perspiciatis omnis exercitationem. Beatae, officia pariatur? Est cum veniam excepturi. Maiores praesentium, porro voluptas suscipit facere rem dicta, debitis.</p>\n" +
" </div>\n" +
" </div>\n" +
" </li>\n" +
" <li class=\"timeline-inverted\">\n" +
" <div class=\"timeline-badge warning\"><i class=\"fa fa-credit-card\"></i>\n" +
" </div>\n" +
" <div class=\"timeline-panel\">\n" +
" <div class=\"timeline-heading\">\n" +
" <h4 class=\"timeline-title\">Lorem ipsum dolor</h4>\n" +
" </div>\n" +
" <div class=\"timeline-body\">\n" +
" <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem dolorem quibusdam, tenetur commodi provident cumque magni voluptatem libero, quis rerum. Fugiat esse debitis optio, tempore. Animi officiis alias, officia repellendus.</p>\n" +
" <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laudantium maiores odit qui est tempora eos, nostrum provident explicabo dignissimos debitis vel! Adipisci eius voluptates, ad aut recusandae minus eaque facere.</p>\n" +
" </div>\n" +
" </div>\n" +
" </li>\n" +
" <li>\n" +
" <div class=\"timeline-badge danger\"><i class=\"fa fa-bomb\"></i>\n" +
" </div>\n" +
" <div class=\"timeline-panel\">\n" +
" <div class=\"timeline-heading\">\n" +
" <h4 class=\"timeline-title\">Lorem ipsum dolor</h4>\n" +
" </div>\n" +
" <div class=\"timeline-body\">\n" +
" <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellendus numquam facilis enim eaque, tenetur nam id qui vel velit similique nihil iure molestias aliquam, voluptatem totam quaerat, magni commodi quisquam.</p>\n" +
" </div>\n" +
" </div>\n" +
" </li>\n" +
" <li class=\"timeline-inverted\">\n" +
" <div class=\"timeline-panel\">\n" +
" <div class=\"timeline-heading\">\n" +
" <h4 class=\"timeline-title\">Lorem ipsum dolor</h4>\n" +
" </div>\n" +
" <div class=\"timeline-body\">\n" +
" <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptates est quaerat asperiores sapiente, eligendi, nihil. Itaque quos, alias sapiente rerum quas odit! Aperiam officiis quidem delectus libero, omnis ut debitis!</p>\n" +
" </div>\n" +
" </div>\n" +
" </li>\n" +
" <li>\n" +
" <div class=\"timeline-badge info\"><i class=\"fa fa-save\"></i>\n" +
" </div>\n" +
" <div class=\"timeline-panel\">\n" +
" <div class=\"timeline-heading\">\n" +
" <h4 class=\"timeline-title\">Lorem ipsum dolor</h4>\n" +
" </div>\n" +
" <div class=\"timeline-body\">\n" +
" <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis minus modi quam ipsum alias at est molestiae excepturi delectus nesciunt, quibusdam debitis amet, beatae consequuntur impedit nulla qui! Laborum, atque.</p>\n" +
" <hr>\n" +
" <div class=\"btn-group\">\n" +
" <button type=\"button\" class=\"btn btn-primary btn-sm dropdown-toggle\" data-toggle=\"dropdown\">\n" +
" <i class=\"fa fa-gear\"></i> <span class=\"caret\"></span>\n" +
" </button>\n" +
" <ul class=\"dropdown-menu\" role=\"menu\">\n" +
" <li><a href=\"#\">Action</a>\n" +
" </li>\n" +
" <li><a href=\"#\">Another action</a>\n" +
" </li>\n" +
" <li><a href=\"#\">Something else here</a>\n" +
" </li>\n" +
" <li class=\"divider\"></li>\n" +
" <li><a href=\"#\">Separated link</a>\n" +
" </li>\n" +
" </ul>\n" +
" </div>\n" +
" </div>\n" +
" </div>\n" +
" </li>\n" +
" <li>\n" +
" <div class=\"timeline-panel\">\n" +
" <div class=\"timeline-heading\">\n" +
" <h4 class=\"timeline-title\">Lorem ipsum dolor</h4>\n" +
" </div>\n" +
" <div class=\"timeline-body\">\n" +
" <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sequi fuga odio quibusdam. Iure expedita, incidunt unde quis nam! Quod, quisquam. Officia quam qui adipisci quas consequuntur nostrum sequi. Consequuntur, commodi.</p>\n" +
" </div>\n" +
" </div>\n" +
" </li>\n" +
" <li class=\"timeline-inverted\">\n" +
" <div class=\"timeline-badge success\"><i class=\"fa fa-graduation-cap\"></i>\n" +
" </div>\n" +
" <div class=\"timeline-panel\">\n" +
" <div class=\"timeline-heading\">\n" +
" <h4 class=\"timeline-title\">Lorem ipsum dolor</h4>\n" +
" </div>\n" +
" <div class=\"timeline-body\">\n" +
" <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deserunt obcaecati, quaerat tempore officia voluptas debitis consectetur culpa amet, accusamus dolorum fugiat, animi dicta aperiam, enim incidunt quisquam maxime neque eaque.</p>\n" +
" </div>\n" +
" </div>\n" +
" </li>\n" +
" </ul>\n" +
"</div>");
}]);
angular.module("shared/templates/fieldset.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/fieldset.html",
"<fieldset ng-disabled=\"form.readonly\" class=\"schema-form-fieldset {{form.htmlClass}}\">\n" +
" <legend ng-class=\"{'sr-only': !showTitle() }\">\n" +
" <span ng-click=\"isCollapsed = !isCollapsed\">{{ form.title }}</span>\n" +
" </legend>\n" +
" <div collapse=\"isCollapsed\" name=\"{{form.title}}\">\n" +
" <div class=\"help-block\" ng-show=\"form.description\" ng-bind-html=\"form.description\"></div>\n" +
" <sf-decorator class=\"col-md-4\" ng-repeat=\"item in form.items\" ng-if=\"item.name!='idx'\" form=\"item\"></sf-decorator>\n" +
" </div>\n" +
"</fieldset>\n" +
"");
}]);
angular.module("shared/templates/listnodeModalContent.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/listnodeModalContent.html",
"<div class=\"modal-body\">\n" +
" <form name=\"listnodeform\" sf-schema=\"schema\" sf-form=\"form\" sf-model=\"model\"></form>\n" +
"</div>\n" +
"<div class=\"modal-footer\">\n" +
" <button type=\"submit\" class=\"btn btn-primary\" ng-click=\"onSubmit(listnodeform)\">OK</button>\n" +
" <button type=\"button\" class=\"btn btn-warning\" ng-click=\"cancel()\">Cancel</button>\n" +
"</div>");
}]);
angular.module("shared/templates/modalContent.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/modalContent.html",
"");
}]);
...@@ -14,59 +14,42 @@ ...@@ -14,59 +14,42 @@
<meta name="description" content=""> <meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<!-- @if NODE_ENV == 'DEVELOPMENT' --> <!-- @if NODE_ENV == 'DEVELOPMENT' -->
<link rel="stylesheet" <!--<link rel="stylesheet" href="bower_components/angular-bootstrap/ui-bootstrap-csp.css">-->
href="bower_components/angular-bootstrap/ui-bootstrap-csp.css"> <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet"
href="bower_components/bootstrap/dist/css/bootstrap.css">
<link rel="stylesheet" href="app.css"> <link rel="stylesheet" href="app.css">
<link rel="stylesheet" href="bower_components/metisMenu/dist/metisMenu.min.css">
<link rel="stylesheet" href="bower_components/angular-loading-bar/build/loading-bar.min.css">
<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css" type="text/css">
<!--<link rel="stylesheet" href="bower_components/quantumui/dist/css/addon/effect-light.min.css">--> <!--<link rel="stylesheet" href="bower_components/quantumui/dist/css/addon/effect-light.min.css">-->
<!--<link rel="stylesheet" href="bower_components/quantumui/dist/css/quantumui.min.css">--> <!--<link rel="stylesheet" href="bower_components/quantumui/dist/css/quantumui.min.css">-->
<!-- @endif --> <!-- @endif -->
<!-- @if NODE_ENV == 'PRODUCTION' --> <!-- @if NODE_ENV == 'PRODUCTION' -->
<link rel="stylesheet" href="app.css"> <link rel="stylesheet" href="css/app.css">
<!-- @endif --> <!-- @endif -->
<!--<script src="bower_components/html5-boilerplate/js/vendor/modernizr-2.6.2.min.js"></script>-->
</head> </head>
<body> <body>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid"> <nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
<div class="navbar-header"> <div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#navbar" <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span>
<span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> </button>
</button> <a class="navbar-brand" href="index.html">ULAKBUS</a>
<a class="navbar-brand" href="#">ULAKBUS</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="#/dashboard" translate>Dashboard</a></li>
<li><a href="#/login"translate>Login</a></li>
<li><a href="javascript:void(0);" logout translate>Logout</a></li>
</ul>
<form class="navbar-form navbar-right">
<input type="text" class="form-control" placeholder="Search...">
</form>
</div>
</div> </div>
<!-- /.navbar-header -->
<header-notification></header-notification>
<sidebar></sidebar>
</nav> </nav>
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-sm-3 col-md-2 sidebar">
<ul class="nav nav-sidebar">
<!--<li active-link="active"><a href="#/students">Students</a></li>-->
<!--<li active-link="active"><a href="#/student/add">New Student</a></li>-->
<li active-link="active"><a href="#/staffs" translate>Staffs
</a></li>
<li active-link="active"><a href="#/staff/add" translate>New Staff</a>
</li>
<!--<li active-link="active"><a href="#/input_types">Types</a></li>-->
</ul>
</div>
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main" <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main"
ng-view> ng-view>
...@@ -79,34 +62,38 @@ ...@@ -79,34 +62,38 @@
<div>UlakbusUI app: v<span app-version></span></div> <div>UlakbusUI app: v<span app-version></span></div>
</div> </div>
</div> </div>
<!-- In production use:
<script src="//ajax.googleapis.com/ajax/libs/angularjs/x.x.x/angular.min.js"></script>
-->
<!-- @if NODE_ENV == 'DEVELOPMENT' --> <!-- @if NODE_ENV == 'DEVELOPMENT' -->
<script src="bower_components/angular/angular.js"></script> <script src="bower_components/angular/angular.min.js"></script>
<!--<script src="bower_components/oclazyload/dist/ocLazyLoad.js"></script>--> <script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script> <script src="bower_components/angular-route/angular-route.min.js"></script>
<script src="bower_components/angular-cookies/angular-cookies.js"></script> <script src="bower_components/angular-cookies/angular-cookies.min.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script> <script src="bower_components/angular-resource/angular-resource.min.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap.js"></script> <script src="bower_components/angular-bootstrap/ui-bootstrap.min.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script> <script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script> <script src="bower_components/angular-sanitize/angular-sanitize.min.js"></script>
<script src="bower_components/tv4/tv4.js"></script> <script src="bower_components/tv4/tv4.js"></script>
<script src="bower_components/objectpath/lib/ObjectPath.js"></script> <script src="bower_components/objectpath/lib/ObjectPath.js"></script>
<script src="bower_components/angular-schema-form/dist/schema-form.js"></script> <script src="bower_components/angular-schema-form/dist/schema-form.min.js"></script>
<script src="bower_components/angular-schema-form/dist/bootstrap-decorator.js"></script> <script src="bower_components/angular-schema-form/dist/bootstrap-decorator.min.js"></script>
<!--<script type="text/javascript"--> <script src="bower_components/angular-schema-form-datepicker/bootstrap-datepicker.min.js"></script>
<!--src="bower_components/angular-schema-form-datepicker/"></script>-->
<script src="bower_components/angular-schema-form-datepicker/bootstrap-datepicker.js"></script>
<script src="bower_components/angular-gettext/dist/angular-gettext.min.js"></script> <script src="bower_components/angular-gettext/dist/angular-gettext.min.js"></script>
<!-- TODO: check all js and remove unused -->
<script src="bower_components/json3/lib/json3.min.js"></script>
<script src="bower_components/angular-loading-bar/build/loading-bar.min.js"></script>
<script src="bower_components/metisMenu/dist/metisMenu.min.js"></script>
<script src="bower_components/Chart.js/Chart.min.js"></script>
<script src="shared/translations.js"></script> <script src="shared/translations.js"></script>
<script src="../tmp/templates.js"></script> <script src="tmp/templates.js"></script>
<script src="app.js"></script> <script src="app.js"></script>
<script src="app_routes.js"></script> <script src="app_routes.js"></script>
<script src="shared/scripts/theme.js"></script>
<script src="shared/directives.js"></script>
<script src="zetalib/interceptors.js"></script> <script src="zetalib/interceptors.js"></script>
<script src="zetalib/general.js"></script> <script src="zetalib/general.js"></script>
<script src="zetalib/forms/form_service.js"></script> <script src="zetalib/forms/form_service.js"></script>
...@@ -122,6 +109,8 @@ ...@@ -122,6 +109,8 @@
<!-- @endif --> <!-- @endif -->
<!-- @if NODE_ENV == 'PRODUCTION' --> <!-- @if NODE_ENV == 'PRODUCTION' -->
<script src="bower_components/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.17/angular.min.js"></script>
<script src="bower_components/components.js"></script> <script src="bower_components/components.js"></script>
<script src="shared/translations.js"></script> <script src="shared/translations.js"></script>
<script src="templates.js"></script> <script src="templates.js"></script>
......
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