Commit 73e2766b authored by Evren Kutar's avatar Evren Kutar

Merge branch 'Feature/#143/Formsets'

parents cef1f235 fc1d2fb7
...@@ -74,6 +74,8 @@ module.exports = function (grunt) { ...@@ -74,6 +74,8 @@ module.exports = function (grunt) {
{expand: true, cwd: 'app/bower_components/font-awesome/fonts/', src: '*', dest: 'dist/fonts/', flatten: true, filter: 'isFile'}, {expand: true, cwd: 'app/bower_components/font-awesome/fonts/', src: '*', dest: 'dist/fonts/', flatten: true, filter: 'isFile'},
{expand: true, cwd: 'app/img/', src: 'brand-logo.png', dest: 'dist/img/', flatten: true, filter: 'isFile'}, {expand: true, cwd: 'app/img/', src: 'brand-logo.png', dest: 'dist/img/', flatten: true, filter: 'isFile'},
{expand: true, cwd: 'app/styles/roboto/', src: '**/*', dest: 'dist/css/roboto/', flatten: false}, {expand: true, cwd: 'app/styles/roboto/', src: '**/*', dest: 'dist/css/roboto/', flatten: false},
{expand: true, cwd: 'app/styles/', src: 'jquery-ui.min.css', dest: 'dist/css/', flatten: true},
{expand: true, cwd: 'app/styles/images/', src: '*', dest: 'dist/css/images/', flatten: true},
{expand: true, cwd: 'app/bower_components/bootstrap/dist/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'} {expand: true, cwd: 'app/bower_components/jquery/dist/', src: 'jquery.min.js', dest: 'dist/bower_components/', flatten: true, filter: 'isFile'}
] ]
...@@ -100,7 +102,6 @@ module.exports = function (grunt) { ...@@ -100,7 +102,6 @@ module.exports = function (grunt) {
}, },
components: { components: {
src: [ src: [
//"app/bower_components/jquery/dist/jquery.min.js",
"app/bower_components/angular-route/angular-route.min.js", "app/bower_components/angular-route/angular-route.min.js",
"app/bower_components/angular-cookies/angular-cookies.min.js", "app/bower_components/angular-cookies/angular-cookies.min.js",
"app/bower_components/angular-resource/angular-resource.min.js", "app/bower_components/angular-resource/angular-resource.min.js",
...@@ -116,7 +117,8 @@ module.exports = function (grunt) { ...@@ -116,7 +117,8 @@ module.exports = function (grunt) {
"app/bower_components/json3/lib/json3.min.js", "app/bower_components/json3/lib/json3.min.js",
"app/bower_components/angular-loading-bar/build/loading-bar.min.js", "app/bower_components/angular-loading-bar/build/loading-bar.min.js",
"app/bower_components/metisMenu/dist/metisMenu.min.js", "app/bower_components/metisMenu/dist/metisMenu.min.js",
"app/bower_components/Chart.js/Chart.min.js" "app/bower_components/Chart.js/Chart.min.js",
"app/shared/scripts/jquery-ui.min.js",
], ],
dest: 'dist/bower_components/components.js' dest: 'dist/bower_components/components.js'
}, },
......
/* Space out content a bit */ /* Space out content a bit */
body { body {
font-family:'robotoregular'; font-family:'robotoregular';
background-color: #222d32; background-color: #f5f5f5;
overflow:hidden; overflow:hidden;
} }
::-webkit-scrollbar {
width: 5px;
height: 5px;
}
::-webkit-scrollbar-track {
background-color:#ccc;
}
::-webkit-scrollbar-thumb {
background-color:#999;
}
.form-control {
box-shadow:none;
border-radius:0;
border-color:#ececec;
}
.btn {
border:none;
}
.btn:focus, .btn:focus,
.btn:active:focus, .btn:active:focus,
.btn.active:focus, .btn.active:focus,
...@@ -39,8 +62,8 @@ a:hover { ...@@ -39,8 +62,8 @@ a:hover {
.logo img { .logo img {
width: 80%; width: 80%;
margin-left: 8%; margin-left: 8%;
margin-top: 23px; margin-top: 22px;
margin-bottom: 23px; margin-bottom: 22px;
} }
/* Everything but the jumbotron gets side spacing for mobile first views */ /* Everything but the jumbotron gets side spacing for mobile first views */
...@@ -148,13 +171,12 @@ ul.header-menu li a:hover{ ...@@ -148,13 +171,12 @@ ul.header-menu li a:hover{
} }
.sidebar .nav>li ul { .sidebar .nav>li ul {
border-bottom: 3px solid #E4E4E4;
border-left: 3px solid #A61229; border-left: 3px solid #A61229;
} }
.sidebar .nav>li ul>li a { .sidebar .nav>li ul>li a {
font-family:'robotoregular'; font-family:'robotoregular';
background-color:#f5f5f5; background-color:#fdfdfd;
} }
.nav>li>a:visited { .nav>li>a:visited {
...@@ -162,7 +184,7 @@ ul.header-menu li a:hover{ ...@@ -162,7 +184,7 @@ ul.header-menu li a:hover{
.nav>li.active>a { .nav>li.active>a {
text-decoration: none; text-decoration: none;
background-color: #f5f5f5; background-color: #fdfdfd;
color: #565656; color: #565656;
border-color:#A61229; border-color:#A61229;
} }
...@@ -309,7 +331,6 @@ select { ...@@ -309,7 +331,6 @@ select {
.sidebar { .sidebar {
background-color:#fff; background-color:#fff;
border-right: 1px solid #ccc; border-right: 1px solid #ccc;
overflow:auto;
} }
.sidebar .sidebar-nav.navbar-collapse { .sidebar .sidebar-nav.navbar-collapse {
...@@ -712,6 +733,121 @@ table.dataTable thead .sorting:after { ...@@ -712,6 +733,121 @@ table.dataTable thead .sorting:after {
margin-top: 5px; margin-top: 5px;
} }
/* PERSONNEL INFO */
.generic-profile-picture img {
width:220px;
height:220px;
}
.personnel-info-container {
width:1000px;
height:530px;
margin-left:auto;
margin-right:auto;
margin-bottom:50px;
background-color:#fff;
-webkit-box-shadow: 0 0 3px rgba(0,0,0,0.1);
-moz-box-shadow: 0 0 3px rgba(0,0,0,0.1);
box-shadow: 0 0 3px rgba(0,0,0,0.1);
background-color:#fff;
position:relative;
}
.personnel-info-left {
width:250px;
height:100%;
background-color:#fcfcfc;
padding:15px;
position:absolute;
left:0;
overflow-y: auto;
overflow-x: hidden;
border-right: 1px solid #F7F7F7;
}
.personnel-info-left ul {
padding:0;
margin-top:20px;
}
.personnel-info-left ul li {
list-style:none;
margin-bottom:15px;
position:relative;
padding-left:30px;
color:#555;
}
.personnel-info-left ul li:nth-child(1) {
padding:0;
font-family:'robotobold';
font-size:18px;
color:#333;
}
.personnel-info-left ul li:nth-child(2) {
padding:0;
font-family:'robotomedium';
font-size:17px;
color:#666;
}
.personnel-info-left ul li i.fa {
width:18px;
margin-right:15px;
font-size:18px;
position:absolute;
left:0;
text-align:center;
}
.personnel-info-right {
width:750px;
height:100%;
background-color:#fff;
padding:40px;
padding-top:15px;
position:absolute;
right:0;
overflow-y:auto;
}
.personnel-info-right h2 {
margin-top:0;
margin-bottom:20px;
font-family:'robotolight';
font-size:23px;
}
.info-block {
margin-bottom:70px;
}
.info-block:last-child {
margin-bottom:0px;
}
.info-block-body dt {
text-align:left;
font-family:'robotomedium';
font-weight:normal;
}
.info-block-body dl {
margin-bottom:10px;
color:#444;
}
.personnel-info-edit .personnel-info-left ul li {
padding-left:0;
}
/* END OF PERSONNEL INFO */
/* Responsive: Portrait tablets and up */ /* Responsive: Portrait tablets and up */
@media screen and (min-width: 768px) { @media screen and (min-width: 768px) {
/* Remove the padding we set earlier */ /* Remove the padding we set earlier */
...@@ -791,4 +927,70 @@ table.dataTable thead .sorting:after { ...@@ -791,4 +927,70 @@ table.dataTable thead .sorting:after {
border-right-width: 14px; border-right-width: 14px;
border-left-width: 0; border-left-width: 0;
} }
.brand {
text-align:center;
}
.logo img {
width:200px;
margin-left:0;
}
.manager-view-content {
overflow:inherit;
}
body {
overflow:auto;
}
}
@media (max-width: 1350px) {
.personnel-info-container {
width:700px;
}
.personnel-info-right {
width:450px;
}
}
@media (max-width: 1000px) {
.personnel-info-container {
width:500px;
height:auto;
}
.personnel-info-left {
width:100%;
position:relative;
height:auto;
border:none;
}
.personnel-info-right {
width:100%;
position:relative;
height:auto;
}
.generic-profile-picture,
.personnel-info-left ul li:nth-child(1),
.personnel-info-left ul li:nth-child(2) {
text-align:center;
}
.generic-profile-picture img {
border-radius:100%;
}
}
@media (max-width: 560px) {
.personnel-info-container {
width: 350px;
}
} }
...@@ -24,14 +24,14 @@ var app = angular.module( ...@@ -24,14 +24,14 @@ var app = angular.module(
//'ulakbus.version', //'ulakbus.version',
'schemaForm', 'schemaForm',
'gettext', 'gettext',
'templates-prod' //'templates-prod'
]). ]).
/** /**
* RESTURL is the url of rest api to talk * RESTURL is the url of rest api to talk
* Based on the environment it changes from dev to prod * Based on the environment it changes from dev to prod
*/ */
constant("RESTURL", (function () { constant("RESTURL", (function () {
return {url: "http://api.ulakbus.net/"}; return {url: "http://" + window.location.hostname + ":9001/"};
})()). })()).
/** /**
* USER_ROLES and AUTH_EVENTS are constant for auth functions * USER_ROLES and AUTH_EVENTS are constant for auth functions
......
...@@ -28,16 +28,13 @@ crud.controller('CRUDAddEditCtrl', function ($scope, $rootScope, $location, $htt ...@@ -28,16 +28,13 @@ crud.controller('CRUDAddEditCtrl', function ($scope, $rootScope, $location, $htt
} }
// get form with generator // get form with generator
$scope.loaddata = function() {
console.log('loading data');
Generator.get_form($scope); Generator.get_form($scope);
};
// todo remove timeout to load controller efficiently
//$timeout($scope.loaddata, 1000);
$scope.loaddata();
$scope.onSubmit = function (form) { $scope.onSubmit = function (form) {
$scope.$broadcast('schemaFormValidate'); $scope.$broadcast('schemaFormValidate');
debugger;
if (form.$valid) { if (form.$valid) {
Generator.submit($scope) Generator.submit($scope)
.success(function(data){ .success(function(data){
...@@ -48,6 +45,7 @@ crud.controller('CRUDAddEditCtrl', function ($scope, $rootScope, $location, $htt ...@@ -48,6 +45,7 @@ crud.controller('CRUDAddEditCtrl', function ($scope, $rootScope, $location, $htt
}); });
} }
}; };
}); });
/** /**
......
...@@ -88,7 +88,8 @@ ...@@ -88,7 +88,8 @@
<!-- end of table view --> <!-- end of table view -->
<div class="btn-group"> <div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
İşlemler <span class="caret"></span> İşlemler <span class="caret"></span>
</button> </button>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
angular.module('ulakbus.dashboard', ['ngRoute']) angular.module('ulakbus.dashboard', ['ngRoute'])
.controller('DashCtrl', function ($scope) { .controller('DashCtrl', function ($scope, $rootScope, $location) {
if(!$rootScope.loggedInUser){$location.path("/login");}
$scope.testData = "<h1>This is main Dashboard</h1>"; $scope.testData = "<h1>This is main Dashboard</h1>";
}); });
\ No newline at end of file
<div ng-app="ulakbus.personelinfo"> <div ng-app="ulakbus.personelinfo">
<div class="starter-template"> <div class="starter-template">
<!-- table view --> <div class="personnel-info-container">
<table class="table table-bordered" style="background-color:#fff;"> <div class="personnel-info-left">
<thead> <div class="generic-profile-picture">
<tr> <img src="../../img/sample-profile-pic.jpg" />
<th colspan="2"> </div>
<label> <ul>
<input type="checkbox" style="zoom:1.5; margin:5px 0 0 8px;"> <li>Gökhan Boranalp</li>
Hepsini Seç2 <li>Pozisyon</li>
</label> <li><i class="fa fa-phone"></i> (+90) 123 456 7890</li>
</th> <li><i class="fa fa-envelope"></i> samplemail@mail.com</li>
<th>First Name</th> <li><i class="fa fa-map-marker"></i> Gülbahçe Mah. İzmir Teknoloji Geliştirme Bölgesi A9 Blok 215/A IYTE Campus, URLA/IZMIR</li></li>
<th>Last Name</th>
<th>Username</th>
</tr>
</thead>
<tbody>
<tr>
<td width="60">
<label>
<input type="checkbox" style="zoom:1.5; margin:5px 0 0 8px;">
</label>
</td>
<th scope="row" style="text-align:center">1</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<td>
<label>
<input type="checkbox" style="zoom:1.5; margin:5px 0 0 8px;">
</label>
</td>
<th scope="row" style="text-align:center">2</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<td>
<label>
<input type="checkbox" style="zoom:1.5; margin:5px 0 0 8px;">
</label>
</td>
<th scope="row" style="text-align:center">3</th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
<tr>
<td width="60">
<label>
<input type="checkbox" style="zoom:1.5; margin:5px 0 0 8px;">
</label>
</td>
<th scope="row" style="text-align:center">4</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
<tr>
<td>
<label>
<input type="checkbox" style="zoom:1.5; margin:5px 0 0 8px;">
</label>
</td>
<th scope="row" style="text-align:center">5</th>
<td>Jacob</td>
<td>Thornton</td>
<td>@fat</td>
</tr>
<tr>
<td>
<label>
<input type="checkbox" style="zoom:1.5; margin:5px 0 0 8px;">
</label>
</td>
<th scope="row" style="text-align:center">6</th>
<td>Larry</td>
<td>the Bird</td>
<td>@twitter</td>
</tr>
</tbody>
</table>
<!-- end of table view -->
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
İşlemler <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="">İşlem 1</a></li>
<li><a href="">İşlem 2</a></li>
<li><a href="">İşlem 3</a></li>
<li role="separator" class="divider"></li>
<li><a href="">İşlem 4</a></li>
</ul> </ul>
</div> </div>
<!-- end of personnel-info-left -->
<div class="personnel-info-right">
<div class="info-block">
<div class="info-block-header">
<h2>Kişisel Bilgiler</h2>
</div>
<!-- end of info-block-header -->
<div class="info-block-body">
<dl class="dl-horizontal">
<dt>Ad Soyad</dt>
<dd>Gökhan Boranalp</dd>
</dl>
<dl class="dl-horizontal">
<dt>Cinsiyet</dt>
<dd>Erkek</dd>
</dl>
<dl class="dl-horizontal">
<dt>Doğum Tarihi</dt>
<dd>23/06/1970</dd>
</dl>
<dl class="dl-horizontal">
<dt>İkamet Adresi</dt>
<dd>Gülbahçe Mah. İzmir Teknoloji Geliştirme Bölgesi A9 Blok 215/A IYTE Campus, URLA/IZMIR</dd>
</dl>
</div>
<!-- end of info-block-body -->
</div>
<!-- end of info block -->
<div class="info-block">
<div class="info-block-header">
<h2>İletişim Bilgileri</h2>
</div>
<!-- end of info-block-header -->
<div class="info-block-body">
<dl class="dl-horizontal">
<dt>Ev Telefonu</dt>
<dd>-</dd>
</dl>
<dl class="dl-horizontal">
<dt>Cep Telefonu</dt>
<dd>(+90) 123 456 7890</dd>
</dl>
<dl class="dl-horizontal">
<dt>Mail Adresi</dt>
<dd>gokhan@zetaops.io</dd>
</dl>
<dl class="dl-horizontal">
<dt>Diğer Mail Adresi</dt>
<dd>-</dd>
</dl>
</div>
<!-- end of info-block-body -->
</div>
<!-- end of info block -->
</div>
<!-- personnel-info-left -->
</div>
<!-- end of personnel-info-container -->
<div class="personnel-info-container personnel-info-edit">
<div class="personnel-info-left">
<div class="generic-profile-picture">
<img src="../../img/sample-profile-pic.jpg" />
</div>
<div style="margin-top:10px; text-align:center;">
<button type="button" class="btn btn-primary">Değiştir</button>
<button type="button" class="btn btn-danger">Sil</button>
</div>
</div>
<!-- end of personnel-info-left -->
<div class="personnel-info-right">
<div class="info-block">
<div class="info-block-header">
<h2>Kişisel Bilgiler</h2>
</div>
<!-- end of info-block-header -->
<div class="info-block-body">
<dl class="dl-horizontal">
<dt>Ad Soyad</dt>
<dd><input type="text" class="form-control" placeholder="Gökhan Boranalp"></dd>
</dl>
<dl class="dl-horizontal">
<dt>Pozisyon</dt>
<dd><input type="text" class="form-control" placeholder="Pozisyon"></dd>
</dl>
<dl class="dl-horizontal">
<dt>Cinsiyet</dt>
<dd>
<select class="form-control">
<option value="male">Erkek</option>
<option value="female">Kadın</option>
</select>
</dd>
</dl>
<dl class="dl-horizontal">
<dt>Doğum Tarihi</dt>
<dd>
<input type="text" class="form-control" placeholder="Angular JS - Bootstrap Date Picker Eklenecek">
</dd>
</dl>
<dl class="dl-horizontal">
<dt>İkamet Adresi</dt>
<dd><input type="text" class="form-control" placeholder="Gülbahçe Mah. İzmir Teknoloji Geliştirme Bölgesi A9 Blok 215/A IYTE Campus, URLA/IZMIR"></dd>
</dl>
</div>
<!-- end of info-block-body -->
</div>
<!-- end of info block -->
<div class="info-block">
<div class="info-block-header">
<h2>İletişim Bilgileri</h2>
</div>
<!-- end of info-block-header -->
<div class="info-block-body">
<dl class="dl-horizontal">
<dt>Ev Telefonu</dt>
<dd><input type="text" class="form-control" placeholder=""></dd>
</dl>
<dl class="dl-horizontal">
<dt>Cep Telefonu</dt>
<dd><input type="text" class="form-control" placeholder="(+90) 123 456 7890 (Phone number mask uygulanacak)"></dd>
</dl>
<dl class="dl-horizontal">
<dt>Mail Adresi</dt>
<dd><input type="text" class="form-control" placeholder="gokhan@zetaops.io"></dd>
</dl>
<dl class="dl-horizontal">
<dt>Diğer Mail Adresi</dt>
<dd><input type="text" class="form-control" placeholder=""></dd>
</dl>
</div>
<!-- end of info-block-body -->
</div>
<!-- end of info block -->
</div>
<!-- personnel-info-left -->
</div>
<!-- end of personnel-info-container -->
<hr>
</div> </div>
</div> </div>
\ 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.
*/
'use strict';
// TODO: clean console log items
angular.module('ulakbus.pinfo', ['ngRoute'])
.controller('PCtrl', function ($scope) {
$scope.testData = "<h1>This is main Dashboard</h1>";
});
\ No newline at end of file
...@@ -13,15 +13,14 @@ ...@@ -13,15 +13,14 @@
<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" href="bower_components/angular-bootstrap/ui-bootstrap-csp.css">--> <link rel="stylesheet" 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.min.css">
<link rel="stylesheet" href="app.css"> <link rel="stylesheet" href="app.css">
<link href="styles/roboto/roboto.css" rel="stylesheet"> <link href="styles/roboto/roboto.css" rel="stylesheet">
<link href="styles/jquery-ui.min.css" rel="stylesheet">
<link rel="stylesheet" href="bower_components/metisMenu/dist/metisMenu.min.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/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/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/quantumui.min.css">-->
</head> </head>
<body> <body>
...@@ -45,23 +44,17 @@ ...@@ -45,23 +44,17 @@
<header-notification></header-notification> <header-notification></header-notification>
</nav> </nav>
<sidebar></sidebar> <sidebar ng-if="$root.loggedInUser"></sidebar>
<div class="manager-view"> <div class="manager-view">
<div class="manager-view-inner"> <div class="manager-view-inner">
<!-- manager-header --> <!-- manager-header -->
<div class="manager-view-header container-fluid"> <header-sub-menu ng-if="$root.loggedInUser"></header-sub-menu>
<ul class="breadcrumb">
<li><a href="#">Personeller</a></li>
<li><a href="#">Liste</a></li>
<li class="active">Tablo</li>
</ul>
<button type="button" class="btn btn-primary">Kaydet</button>
</div>
<!-- end of manager-header --> <!-- end of manager-header -->
<div class="manager-view-content"> <div class="manager-view-content">
<div class="row"> <div class="row">
<div class="main" ng-view> <div class="main" ng-view>
</div> </div>
</div> </div>
...@@ -71,20 +64,16 @@ ...@@ -71,20 +64,16 @@
<script src="bower_components/angular/angular.min.js"></script> <script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/jquery/dist/jquery.min.js"></script> <script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/angular-route/angular-route.min.js"></script> <script src="bower_components/angular-route/angular-route.min.js"></script>
<script src="bower_components/angular-cookies/angular-cookies.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-resource/angular-resource.min.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap.min.js"></script> <script src="bower_components/angular-bootstrap/ui-bootstrap.min.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script> <script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.min.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/objectpath/lib/ObjectPath.js"></script>
<script src="bower_components/angular-schema-form/dist/schema-form.min.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.min.js"></script> <script src="bower_components/angular-schema-form/dist/bootstrap-decorator.min.js"></script>
<!--<script src="bower_components/angular-schema-form-datepicker/bootstrap-datepicker.min.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>
...@@ -93,13 +82,12 @@ ...@@ -93,13 +82,12 @@
<script src="bower_components/angular-loading-bar/build/loading-bar.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/metisMenu/dist/metisMenu.min.js"></script>
<script src="bower_components/Chart.js/Chart.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/scripts/theme.js"></script>
<script src="shared/scripts/jquery-ui.min.js"></script>
<script src="shared/directives.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>
...@@ -114,7 +102,6 @@ ...@@ -114,7 +102,6 @@
<script src="components/staff/staff_controller.js"></script> <script src="components/staff/staff_controller.js"></script>
<script src="components/student/student_controller.js"></script> <script src="components/student/student_controller.js"></script>
<script src="components/version/version.js"></script> <script src="components/version/version.js"></script>
<!--<script src="bower_components/quantumui/dist/js/quantumui-nojq.js"></script>-->
</body> </body>
</html> </html>
...@@ -30,7 +30,34 @@ app.directive('headerNotification', function () { ...@@ -30,7 +30,34 @@ app.directive('headerNotification', function () {
return { return {
templateUrl: 'shared/templates/directives/header-notification.html', templateUrl: 'shared/templates/directives/header-notification.html',
restrict: 'E', restrict: 'E',
replace: true
}
});
app.directive('headerSubMenu', function () {
return {
templateUrl: 'shared/templates/directives/header-sub-menu.html',
restrict: 'E',
controller: "CRUDAddEditCtrl",
replace: true, replace: true,
link: function($scope){
$scope.triggerSubmit = function() {
// todo: double make it but single not solve this!
angular.element($('#submitbutton')).triggerHandler('click');
angular.element($('#submitbutton')).triggerHandler('click');
//$scope.$broadcast('schemaFormValidate');
//$scope.onSubmit(angular.element($('#submitbutton')).scope().formgenerated);
}
}
}
});
// todo: unused delete
app.directive('headerSubMenuButtons', function () {
return {
templateUrl: 'shared/templates/directives/header-sub-menu-buttons.html',
restrict: 'E',
replace: true
} }
}); });
...@@ -42,12 +69,9 @@ app.directive('sidebar', ['$location', function () { ...@@ -42,12 +69,9 @@ app.directive('sidebar', ['$location', function () {
scope: {}, scope: {},
controller: function ($scope, $http, RESTURL) { controller: function ($scope, $http, RESTURL) {
$http.post(RESTURL.url + 'crud/').success(function (data) { $http.post(RESTURL.url + 'crud/').success(function (data) {
//debugger;
$scope.menuItems = data.models; $scope.menuItems = data.models;
}); });
$scope.menuItems = 'dsadkal';
$scope.selectedMenu = 'dashboard'; $scope.selectedMenu = 'dashboard';
$scope.collapseVar = 0; $scope.collapseVar = 0;
$scope.multiCollapseVar = 0; $scope.multiCollapseVar = 0;
......
/*! jQuery UI - v1.11.4 - 2015-09-06
* http://jqueryui.com
* Includes: core.js, datepicker.js
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var a,n,r,o=t.nodeName.toLowerCase();return"area"===o?(a=t.parentNode,n=a.name,t.href&&n&&"map"===a.nodeName.toLowerCase()?(r=e("img[usemap='#"+n+"']")[0],!!r&&i(r)):!1):(/^(input|select|textarea|button|object)$/.test(o)?!t.disabled:"a"===o?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function s(e){for(var t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return i;e=e.parent()}return 0}function a(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=n(e("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function n(t){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",r)}function r(){e.datepicker._isDisabledDatepicker(h.inline?h.dpDiv.parent()[0]:h.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function o(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var i=this.css("position"),s="absolute"===i,a=t?/(auto|scroll|hidden)/:/(auto|scroll)/,n=this.parents().filter(function(){var t=e(this);return s&&"static"===t.css("position")?!1:a.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&n.length?n:e(this[0].ownerDocument||document)},uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var s=e.attr(i,"tabindex"),a=isNaN(s);return(a||s>=0)&&t(i,!a)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function s(t,i,s,n){return e.each(a,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),n&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var a="Width"===i?["Left","Right"]:["Top","Bottom"],n=i.toLowerCase(),r={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return void 0===t?r["inner"+i].call(this):this.each(function(){e(this).css(n,s(this,t)+"px")})},e.fn["outer"+i]=function(t,a){return"number"!=typeof t?r["outer"+i].call(this,t):this.each(function(){e(this).css(n,s(this,t,!0,a)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return function(i,s){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return this.css("zIndex",t);if(this.length)for(var i,s,a=e(this[0]);a.length&&a[0]!==document;){if(i=a.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(a.css("zIndex"),10),!isNaN(s)&&0!==s))return s;a=a.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var a,n=e.ui[t].prototype;for(a in s)n.plugins[a]=n.plugins[a]||[],n.plugins[a].push([i,s[a]])},call:function(e,t,i,s){var a,n=e.plugins[t];if(n&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(a=0;n.length>a;a++)e.options[n[a][0]]&&n[a][1].apply(e.element,i)}},e.extend(e.ui,{datepicker:{version:"1.11.4"}});var h;e.extend(a.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(e){return o(this._defaults,e||{}),this},_attachDatepicker:function(t,i){var s,a,n;s=t.nodeName.toLowerCase(),a="div"===s||"span"===s,t.id||(this.uuid+=1,t.id="dp"+this.uuid),n=this._newInst(e(t),a),n.settings=e.extend({},i||{}),"input"===s?this._connectDatepicker(t,n):a&&this._inlineDatepicker(t,n)},_newInst:function(t,i){var s=t[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?n(e("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(t,i){var s=e(t);i.append=e([]),i.trigger=e([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(i),e.data(t,"datepicker",i),i.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,i){var s,a,n,r=this._get(i,"appendText"),o=this._get(i,"isRTL");i.append&&i.append.remove(),r&&(i.append=e("<span class='"+this._appendClass+"'>"+r+"</span>"),t[o?"before":"after"](i.append)),t.unbind("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&t.focus(this._showDatepicker),("button"===s||"both"===s)&&(a=this._get(i,"buttonText"),n=this._get(i,"buttonImage"),i.trigger=e(this._get(i,"buttonImageOnly")?e("<img/>").addClass(this._triggerClass).attr({src:n,alt:a,title:a}):e("<button type='button'></button>").addClass(this._triggerClass).html(n?e("<img/>").attr({src:n,alt:a,title:a}):a)),t[o?"before":"after"](i.trigger),i.trigger.click(function(){return e.datepicker._datepickerShowing&&e.datepicker._lastInput===t[0]?e.datepicker._hideDatepicker():e.datepicker._datepickerShowing&&e.datepicker._lastInput!==t[0]?(e.datepicker._hideDatepicker(),e.datepicker._showDatepicker(t[0])):e.datepicker._showDatepicker(t[0]),!1}))},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t,i,s,a,n=new Date(2009,11,20),r=this._get(e,"dateFormat");r.match(/[DM]/)&&(t=function(e){for(i=0,s=0,a=0;e.length>a;a++)e[a].length>i&&(i=e[a].length,s=a);return s},n.setMonth(t(this._get(e,r.match(/MM/)?"monthNames":"monthNamesShort"))),n.setDate(t(this._get(e,r.match(/DD/)?"dayNames":"dayNamesShort"))+20-n.getDay())),e.input.attr("size",this._formatDate(e,n).length)}},_inlineDatepicker:function(t,i){var s=e(t);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),e.data(t,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(t),i.dpDiv.css("display","block"))},_dialogDatepicker:function(t,i,s,a,n){var r,h,l,u,d,c=this._dialogInst;return c||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=e("<input type='text' id='"+r+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),e("body").append(this._dialogInput),c=this._dialogInst=this._newInst(this._dialogInput,!1),c.settings={},e.data(this._dialogInput[0],"datepicker",c)),o(c.settings,a||{}),i=i&&i.constructor===Date?this._formatDate(c,i):i,this._dialogInput.val(i),this._pos=n?n.length?n:[n.pageX,n.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,u=document.documentElement.scrollLeft||document.body.scrollLeft,d=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+u,l/2-150+d]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),c.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),e.blockUI&&e.blockUI(this.dpDiv),e.data(this._dialogInput[0],"datepicker",c),this},_destroyDatepicker:function(t){var i,s=e(t),a=e.data(t,"datepicker");s.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),e.removeData(t,"datepicker"),"input"===i?(a.append.remove(),a.trigger.remove(),s.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),h===a&&(h=null))},_enableDatepicker:function(t){var i,s,a=e(t),n=e.data(t,"datepicker");a.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!1,n.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=a.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}))},_disableDatepicker:function(t){var i,s,a=e(t),n=e.data(t,"datepicker");a.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!0,n.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=a.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}),this._disabledInputs[this._disabledInputs.length]=t)},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;this._disabledInputs.length>t;t++)if(this._disabledInputs[t]===e)return!0;return!1},_getInst:function(t){try{return e.data(t,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(t,i,s){var a,n,r,h,l=this._getInst(t);return 2===arguments.length&&"string"==typeof i?"defaults"===i?e.extend({},e.datepicker._defaults):l?"all"===i?e.extend({},l.settings):this._get(l,i):null:(a=i||{},"string"==typeof i&&(a={},a[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),n=this._getDateDatepicker(t,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),o(l.settings,a),null!==r&&void 0!==a.dateFormat&&void 0===a.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==a.dateFormat&&void 0===a.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in a&&(a.disabled?this._disableDatepicker(t):this._enableDatepicker(t)),this._attachments(e(t),l),this._autoSize(l),this._setDate(l,n),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(e,t,i){this._optionDatepicker(e,t,i)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var i=this._getInst(e);i&&(this._setDate(i,t),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(e,t){var i=this._getInst(e);return i&&!i.inline&&this._setDateFromField(i,t),i?this._getDate(i):null},_doKeyDown:function(t){var i,s,a,n=e.datepicker._getInst(t.target),r=!0,o=n.dpDiv.is(".ui-datepicker-rtl");if(n._keyEvent=!0,e.datepicker._datepickerShowing)switch(t.keyCode){case 9:e.datepicker._hideDatepicker(),r=!1;break;case 13:return a=e("td."+e.datepicker._dayOverClass+":not(."+e.datepicker._currentClass+")",n.dpDiv),a[0]&&e.datepicker._selectDay(t.target,n.selectedMonth,n.selectedYear,a[0]),i=e.datepicker._get(n,"onSelect"),i?(s=e.datepicker._formatDate(n),i.apply(n.input?n.input[0]:null,[s,n])):e.datepicker._hideDatepicker(),!1;case 27:e.datepicker._hideDatepicker();break;case 33:e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(n,"stepBigMonths"):-e.datepicker._get(n,"stepMonths"),"M");break;case 34:e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(n,"stepBigMonths"):+e.datepicker._get(n,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&e.datepicker._clearDate(t.target),r=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&e.datepicker._gotoToday(t.target),r=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,o?1:-1,"D"),r=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(n,"stepBigMonths"):-e.datepicker._get(n,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,-7,"D"),r=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,o?-1:1,"D"),r=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(n,"stepBigMonths"):+e.datepicker._get(n,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,7,"D"),r=t.ctrlKey||t.metaKey;break;default:r=!1}else 36===t.keyCode&&t.ctrlKey?e.datepicker._showDatepicker(this):r=!1;r&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var i,s,a=e.datepicker._getInst(t.target);return e.datepicker._get(a,"constrainInput")?(i=e.datepicker._possibleChars(e.datepicker._get(a,"dateFormat")),s=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(t){var i,s=e.datepicker._getInst(t.target);if(s.input.val()!==s.lastVal)try{i=e.datepicker.parseDate(e.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,e.datepicker._getFormatConfig(s)),i&&(e.datepicker._setDateFromField(s),e.datepicker._updateAlternate(s),e.datepicker._updateDatepicker(s))}catch(a){}return!0},_showDatepicker:function(t){if(t=t.target||t,"input"!==t.nodeName.toLowerCase()&&(t=e("input",t.parentNode)[0]),!e.datepicker._isDisabledDatepicker(t)&&e.datepicker._lastInput!==t){var i,a,n,r,h,l,u;i=e.datepicker._getInst(t),e.datepicker._curInst&&e.datepicker._curInst!==i&&(e.datepicker._curInst.dpDiv.stop(!0,!0),i&&e.datepicker._datepickerShowing&&e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),a=e.datepicker._get(i,"beforeShow"),n=a?a.apply(t,[t,i]):{},n!==!1&&(o(i.settings,n),i.lastVal=null,e.datepicker._lastInput=t,e.datepicker._setDateFromField(i),e.datepicker._inDialog&&(t.value=""),e.datepicker._pos||(e.datepicker._pos=e.datepicker._findPos(t),e.datepicker._pos[1]+=t.offsetHeight),r=!1,e(t).parents().each(function(){return r|="fixed"===e(this).css("position"),!r}),h={left:e.datepicker._pos[0],top:e.datepicker._pos[1]},e.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),e.datepicker._updateDatepicker(i),h=e.datepicker._checkOffset(i,h,r),i.dpDiv.css({position:e.datepicker._inDialog&&e.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),i.inline||(l=e.datepicker._get(i,"showAnim"),u=e.datepicker._get(i,"duration"),i.dpDiv.css("z-index",s(e(t))+1),e.datepicker._datepickerShowing=!0,e.effects&&e.effects.effect[l]?i.dpDiv.show(l,e.datepicker._get(i,"showOptions"),u):i.dpDiv[l||"show"](l?u:null),e.datepicker._shouldFocusInput(i)&&i.input.focus(),e.datepicker._curInst=i))}},_updateDatepicker:function(t){this.maxRows=4,h=t,t.dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t);var i,s=this._getNumberOfMonths(t),a=s[1],n=17,o=t.dpDiv.find("."+this._dayOverClass+" a");o.length>0&&r.apply(o.get(0)),t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),a>1&&t.dpDiv.addClass("ui-datepicker-multi-"+a).css("width",n*a+"em"),t.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===e.datepicker._curInst&&e.datepicker._datepickerShowing&&e.datepicker._shouldFocusInput(t)&&t.input.focus(),t.yearshtml&&(i=t.yearshtml,setTimeout(function(){i===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),i=t.yearshtml=null},0))},_shouldFocusInput:function(e){return e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&!e.input.is(":focus")},_checkOffset:function(t,i,s){var a=t.dpDiv.outerWidth(),n=t.dpDiv.outerHeight(),r=t.input?t.input.outerWidth():0,o=t.input?t.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:e(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:e(document).scrollTop());return i.left-=this._get(t,"isRTL")?a-r:0,i.left-=s&&i.left===t.input.offset().left?e(document).scrollLeft():0,i.top-=s&&i.top===t.input.offset().top+o?e(document).scrollTop():0,i.left-=Math.min(i.left,i.left+a>h&&h>a?Math.abs(i.left+a-h):0),i.top-=Math.min(i.top,i.top+n>l&&l>n?Math.abs(n+o):0),i},_findPos:function(t){for(var i,s=this._getInst(t),a=this._get(s,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||e.expr.filters.hidden(t));)t=t[a?"previousSibling":"nextSibling"];return i=e(t).offset(),[i.left,i.top]},_hideDatepicker:function(t){var i,s,a,n,r=this._curInst;!r||t&&r!==e.data(t,"datepicker")||this._datepickerShowing&&(i=this._get(r,"showAnim"),s=this._get(r,"duration"),a=function(){e.datepicker._tidyDialog(r)},e.effects&&(e.effects.effect[i]||e.effects[i])?r.dpDiv.hide(i,e.datepicker._get(r,"showOptions"),s,a):r.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,a),i||a(),this._datepickerShowing=!1,n=this._get(r,"onClose"),n&&n.apply(r.input?r.input[0]:null,[r.input?r.input.val():"",r]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),e.blockUI&&(e.unblockUI(),e("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(e.datepicker._curInst){var i=e(t.target),s=e.datepicker._getInst(i[0]);(i[0].id!==e.datepicker._mainDivId&&0===i.parents("#"+e.datepicker._mainDivId).length&&!i.hasClass(e.datepicker.markerClassName)&&!i.closest("."+e.datepicker._triggerClass).length&&e.datepicker._datepickerShowing&&(!e.datepicker._inDialog||!e.blockUI)||i.hasClass(e.datepicker.markerClassName)&&e.datepicker._curInst!==s)&&e.datepicker._hideDatepicker()}},_adjustDate:function(t,i,s){var a=e(t),n=this._getInst(a[0]);this._isDisabledDatepicker(a[0])||(this._adjustInstDate(n,i+("M"===s?this._get(n,"showCurrentAtPos"):0),s),this._updateDatepicker(n))},_gotoToday:function(t){var i,s=e(t),a=this._getInst(s[0]);this._get(a,"gotoCurrent")&&a.currentDay?(a.selectedDay=a.currentDay,a.drawMonth=a.selectedMonth=a.currentMonth,a.drawYear=a.selectedYear=a.currentYear):(i=new Date,a.selectedDay=i.getDate(),a.drawMonth=a.selectedMonth=i.getMonth(),a.drawYear=a.selectedYear=i.getFullYear()),this._notifyChange(a),this._adjustDate(s)},_selectMonthYear:function(t,i,s){var a=e(t),n=this._getInst(a[0]);n["selected"+("M"===s?"Month":"Year")]=n["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(n),this._adjustDate(a)},_selectDay:function(t,i,s,a){var n,r=e(t);e(a).hasClass(this._unselectableClass)||this._isDisabledDatepicker(r[0])||(n=this._getInst(r[0]),n.selectedDay=n.currentDay=e("a",a).html(),n.selectedMonth=n.currentMonth=i,n.selectedYear=n.currentYear=s,this._selectDate(t,this._formatDate(n,n.currentDay,n.currentMonth,n.currentYear)))},_clearDate:function(t){var i=e(t);this._selectDate(i,"")},_selectDate:function(t,i){var s,a=e(t),n=this._getInst(a[0]);i=null!=i?i:this._formatDate(n),n.input&&n.input.val(i),this._updateAlternate(n),s=this._get(n,"onSelect"),s?s.apply(n.input?n.input[0]:null,[i,n]):n.input&&n.input.trigger("change"),n.inline?this._updateDatepicker(n):(this._hideDatepicker(),this._lastInput=n.input[0],"object"!=typeof n.input[0]&&n.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var i,s,a,n=this._get(t,"altField");n&&(i=this._get(t,"altFormat")||this._get(t,"dateFormat"),s=this._getDate(t),a=this.formatDate(i,s,this._getFormatConfig(t)),e(n).each(function(){e(this).val(a)}))},noWeekends:function(e){var t=e.getDay();return[t>0&&6>t,""]},iso8601Week:function(e){var t,i=new Date(e.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),t=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((t-i)/864e5)/7)+1},parseDate:function(t,i,s){if(null==t||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var a,n,r,o,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,u="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),d=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,c=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,m=-1,g=-1,v=-1,y=-1,b=!1,_=function(e){var i=t.length>a+1&&t.charAt(a+1)===e;return i&&a++,i},x=function(e){var t=_(e),s="@"===e?14:"!"===e?20:"y"===e&&t?4:"o"===e?3:2,a="y"===e?s:1,n=RegExp("^\\d{"+a+","+s+"}"),r=i.substring(h).match(n);if(!r)throw"Missing number at position "+h;return h+=r[0].length,parseInt(r[0],10)},k=function(t,s,a){var n=-1,r=e.map(_(t)?a:s,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)});if(e.each(r,function(e,t){var s=t[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(n=t[0],h+=s.length,!1):void 0}),-1!==n)return n+1;throw"Unknown name at position "+h},w=function(){if(i.charAt(h)!==t.charAt(a))throw"Unexpected literal at position "+h;h++};for(a=0;t.length>a;a++)if(b)"'"!==t.charAt(a)||_("'")?w():b=!1;else switch(t.charAt(a)){case"d":v=x("d");break;case"D":k("D",d,c);break;case"o":y=x("o");break;case"m":g=x("m");break;case"M":g=k("M",p,f);break;case"y":m=x("y");break;case"@":o=new Date(x("@")),m=o.getFullYear(),g=o.getMonth()+1,v=o.getDate();break;case"!":o=new Date((x("!")-this._ticksTo1970)/1e4),m=o.getFullYear(),g=o.getMonth()+1,v=o.getDate();break;case"'":_("'")?w():b=!0;break;default:w()}if(i.length>h&&(r=i.substr(h),!/^\s+/.test(r)))throw"Extra/unparsed characters found in date: "+r;if(-1===m?m=(new Date).getFullYear():100>m&&(m+=(new Date).getFullYear()-(new Date).getFullYear()%100+(u>=m?0:-100)),y>-1)for(g=1,v=y;;){if(n=this._getDaysInMonth(m,g-1),n>=v)break;g++,v-=n}if(o=this._daylightSavingAdjust(new Date(m,g-1,v)),o.getFullYear()!==m||o.getMonth()+1!==g||o.getDate()!==v)throw"Invalid date";return o},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(e,t,i){if(!t)return"";var s,a=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,n=(i?i.dayNames:null)||this._defaults.dayNames,r=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,o=(i?i.monthNames:null)||this._defaults.monthNames,h=function(t){var i=e.length>s+1&&e.charAt(s+1)===t;return i&&s++,i},l=function(e,t,i){var s=""+t;if(h(e))for(;i>s.length;)s="0"+s;return s},u=function(e,t,i,s){return h(e)?s[t]:i[t]},d="",c=!1;if(t)for(s=0;e.length>s;s++)if(c)"'"!==e.charAt(s)||h("'")?d+=e.charAt(s):c=!1;else switch(e.charAt(s)){case"d":d+=l("d",t.getDate(),2);break;case"D":d+=u("D",t.getDay(),a,n);break;case"o":d+=l("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":d+=l("m",t.getMonth()+1,2);break;case"M":d+=u("M",t.getMonth(),r,o);break;case"y":d+=h("y")?t.getFullYear():(10>t.getYear()%100?"0":"")+t.getYear()%100;break;case"@":d+=t.getTime();break;case"!":d+=1e4*t.getTime()+this._ticksTo1970;break;case"'":h("'")?d+="'":c=!0;break;default:d+=e.charAt(s)}return d},_possibleChars:function(e){var t,i="",s=!1,a=function(i){var s=e.length>t+1&&e.charAt(t+1)===i;return s&&t++,s};for(t=0;e.length>t;t++)if(s)"'"!==e.charAt(t)||a("'")?i+=e.charAt(t):s=!1;else switch(e.charAt(t)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":a("'")?i+="'":s=!0;break;default:i+=e.charAt(t)}return i},_get:function(e,t){return void 0!==e.settings[t]?e.settings[t]:this._defaults[t]},_setDateFromField:function(e,t){if(e.input.val()!==e.lastVal){var i=this._get(e,"dateFormat"),s=e.lastVal=e.input?e.input.val():null,a=this._getDefaultDate(e),n=a,r=this._getFormatConfig(e);try{n=this.parseDate(i,s,r)||a}catch(o){s=t?"":s}e.selectedDay=n.getDate(),e.drawMonth=e.selectedMonth=n.getMonth(),e.drawYear=e.selectedYear=n.getFullYear(),e.currentDay=s?n.getDate():0,e.currentMonth=s?n.getMonth():0,e.currentYear=s?n.getFullYear():0,this._adjustInstDate(e)}},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(t,i,s){var a=function(e){var t=new Date;return t.setDate(t.getDate()+e),t},n=function(i){try{return e.datepicker.parseDate(e.datepicker._get(t,"dateFormat"),i,e.datepicker._getFormatConfig(t))}catch(s){}for(var a=(i.toLowerCase().match(/^c/)?e.datepicker._getDate(t):null)||new Date,n=a.getFullYear(),r=a.getMonth(),o=a.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":o+=parseInt(l[1],10);break;case"w":case"W":o+=7*parseInt(l[1],10);break;case"m":case"M":r+=parseInt(l[1],10),o=Math.min(o,e.datepicker._getDaysInMonth(n,r));break;case"y":case"Y":n+=parseInt(l[1],10),o=Math.min(o,e.datepicker._getDaysInMonth(n,r))}l=h.exec(i)}return new Date(n,r,o)},r=null==i||""===i?s:"string"==typeof i?n(i):"number"==typeof i?isNaN(i)?s:a(i):new Date(i.getTime());return r=r&&"Invalid Date"==""+r?s:r,r&&(r.setHours(0),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0)),this._daylightSavingAdjust(r)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,i){var s=!t,a=e.selectedMonth,n=e.selectedYear,r=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=r.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=r.getMonth(),e.drawYear=e.selectedYear=e.currentYear=r.getFullYear(),a===e.selectedMonth&&n===e.selectedYear||i||this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(s?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&""===e.input.val()?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(t){var i=this._get(t,"stepMonths"),s="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){e.datepicker._adjustDate(s,-i,"M")},next:function(){e.datepicker._adjustDate(s,+i,"M")},hide:function(){e.datepicker._hideDatepicker()},today:function(){e.datepicker._gotoToday(s)},selectDay:function(){return e.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return e.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return e.datepicker._selectMonthYear(s,this,"Y"),!1}};e(this).bind(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t,i,s,a,n,r,o,h,l,u,d,c,p,f,m,g,v,y,b,_,x,k,w,T,D,S,M,N,C,A,I,P,H,F,z,E,j,O,L,W=new Date,R=this._daylightSavingAdjust(new Date(W.getFullYear(),W.getMonth(),W.getDate())),Y=this._get(e,"isRTL"),J=this._get(e,"showButtonPanel"),B=this._get(e,"hideIfNoPrevNext"),K=this._get(e,"navigationAsDateFormat"),V=this._getNumberOfMonths(e),q=this._get(e,"showCurrentAtPos"),U=this._get(e,"stepMonths"),G=1!==V[0]||1!==V[1],Q=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),X=this._getMinMaxDate(e,"min"),$=this._getMinMaxDate(e,"max"),Z=e.drawMonth-q,et=e.drawYear;if(0>Z&&(Z+=12,et--),$)for(t=this._daylightSavingAdjust(new Date($.getFullYear(),$.getMonth()-V[0]*V[1]+1,$.getDate())),t=X&&X>t?X:t;this._daylightSavingAdjust(new Date(et,Z,1))>t;)Z--,0>Z&&(Z=11,et--);for(e.drawMonth=Z,e.drawYear=et,i=this._get(e,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(et,Z-U,1)),this._getFormatConfig(e)):i,s=this._canAdjustMonth(e,-1,et,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":B?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",a=this._get(e,"nextText"),a=K?this.formatDate(a,this._daylightSavingAdjust(new Date(et,Z+U,1)),this._getFormatConfig(e)):a,n=this._canAdjustMonth(e,1,et,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+a+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+a+"</span></a>":B?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+a+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+a+"</span></a>",r=this._get(e,"currentText"),o=this._get(e,"gotoCurrent")&&e.currentDay?Q:R,r=K?this.formatDate(r,o,this._getFormatConfig(e)):r,h=e.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(e,"closeText")+"</button>",l=J?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(e,o)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+r+"</button>":"")+(Y?"":h)+"</div>":"",u=parseInt(this._get(e,"firstDay"),10),u=isNaN(u)?0:u,d=this._get(e,"showWeek"),c=this._get(e,"dayNames"),p=this._get(e,"dayNamesMin"),f=this._get(e,"monthNames"),m=this._get(e,"monthNamesShort"),g=this._get(e,"beforeShowDay"),v=this._get(e,"showOtherMonths"),y=this._get(e,"selectOtherMonths"),b=this._getDefaultDate(e),_="",k=0;V[0]>k;k++){for(w="",this.maxRows=4,T=0;V[1]>T;T++){if(D=this._daylightSavingAdjust(new Date(et,Z,e.selectedDay)),S=" ui-corner-all",M="",G){if(M+="<div class='ui-datepicker-group",V[1]>1)switch(T){case 0:M+=" ui-datepicker-group-first",S=" ui-corner-"+(Y?"right":"left");
break;case V[1]-1:M+=" ui-datepicker-group-last",S=" ui-corner-"+(Y?"left":"right");break;default:M+=" ui-datepicker-group-middle",S=""}M+="'>"}for(M+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+S+"'>"+(/all|left/.test(S)&&0===k?Y?n:s:"")+(/all|right/.test(S)&&0===k?Y?s:n:"")+this._generateMonthYearHeader(e,Z,et,X,$,k>0||T>0,f,m)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",N=d?"<th class='ui-datepicker-week-col'>"+this._get(e,"weekHeader")+"</th>":"",x=0;7>x;x++)C=(x+u)%7,N+="<th scope='col'"+((x+u+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+c[C]+"'>"+p[C]+"</span></th>";for(M+=N+"</tr></thead><tbody>",A=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,A)),I=(this._getFirstDayOfMonth(et,Z)-u+7)%7,P=Math.ceil((I+A)/7),H=G?this.maxRows>P?this.maxRows:P:P,this.maxRows=H,F=this._daylightSavingAdjust(new Date(et,Z,1-I)),z=0;H>z;z++){for(M+="<tr>",E=d?"<td class='ui-datepicker-week-col'>"+this._get(e,"calculateWeek")(F)+"</td>":"",x=0;7>x;x++)j=g?g.apply(e.input?e.input[0]:null,[F]):[!0,""],O=F.getMonth()!==Z,L=O&&!y||!j[0]||X&&X>F||$&&F>$,E+="<td class='"+((x+u+6)%7>=5?" ui-datepicker-week-end":"")+(O?" ui-datepicker-other-month":"")+(F.getTime()===D.getTime()&&Z===e.selectedMonth&&e._keyEvent||b.getTime()===F.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(L?" "+this._unselectableClass+" ui-state-disabled":"")+(O&&!v?"":" "+j[1]+(F.getTime()===Q.getTime()?" "+this._currentClass:"")+(F.getTime()===R.getTime()?" ui-datepicker-today":""))+"'"+(O&&!v||!j[2]?"":" title='"+j[2].replace(/'/g,"&#39;")+"'")+(L?"":" data-handler='selectDay' data-event='click' data-month='"+F.getMonth()+"' data-year='"+F.getFullYear()+"'")+">"+(O&&!v?"&#xa0;":L?"<span class='ui-state-default'>"+F.getDate()+"</span>":"<a class='ui-state-default"+(F.getTime()===R.getTime()?" ui-state-highlight":"")+(F.getTime()===Q.getTime()?" ui-state-active":"")+(O?" ui-priority-secondary":"")+"' href='#'>"+F.getDate()+"</a>")+"</td>",F.setDate(F.getDate()+1),F=this._daylightSavingAdjust(F);M+=E+"</tr>"}Z++,Z>11&&(Z=0,et++),M+="</tbody></table>"+(G?"</div>"+(V[0]>0&&T===V[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),w+=M}_+=w}return _+=l,e._keyEvent=!1,_},_generateMonthYearHeader:function(e,t,i,s,a,n,r,o){var h,l,u,d,c,p,f,m,g=this._get(e,"changeMonth"),v=this._get(e,"changeYear"),y=this._get(e,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",_="";if(n||!g)_+="<span class='ui-datepicker-month'>"+r[t]+"</span>";else{for(h=s&&s.getFullYear()===i,l=a&&a.getFullYear()===i,_+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",u=0;12>u;u++)(!h||u>=s.getMonth())&&(!l||a.getMonth()>=u)&&(_+="<option value='"+u+"'"+(u===t?" selected='selected'":"")+">"+o[u]+"</option>");_+="</select>"}if(y||(b+=_+(!n&&g&&v?"":"&#xa0;")),!e.yearshtml)if(e.yearshtml="",n||!v)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(d=this._get(e,"yearRange").split(":"),c=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?i+parseInt(e.substring(1),10):e.match(/[+\-].*/)?c+parseInt(e,10):parseInt(e,10);return isNaN(t)?c:t},f=p(d[0]),m=Math.max(f,p(d[1]||"")),f=s?Math.max(f,s.getFullYear()):f,m=a?Math.min(m,a.getFullYear()):m,e.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";m>=f;f++)e.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";e.yearshtml+="</select>",b+=e.yearshtml,e.yearshtml=null}return b+=this._get(e,"yearSuffix"),y&&(b+=(!n&&g&&v?"":"&#xa0;")+_),b+="</div>"},_adjustInstDate:function(e,t,i){var s=e.drawYear+("Y"===i?t:0),a=e.drawMonth+("M"===i?t:0),n=Math.min(e.selectedDay,this._getDaysInMonth(s,a))+("D"===i?t:0),r=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(s,a,n)));e.selectedDay=r.getDate(),e.drawMonth=e.selectedMonth=r.getMonth(),e.drawYear=e.selectedYear=r.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(e)},_restrictMinMax:function(e,t){var i=this._getMinMaxDate(e,"min"),s=this._getMinMaxDate(e,"max"),a=i&&i>t?i:t;return s&&a>s?s:a},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,i,s){var a=this._getNumberOfMonths(e),n=this._daylightSavingAdjust(new Date(i,s+(0>t?t:a[0]*a[1]),1));return 0>t&&n.setDate(this._getDaysInMonth(n.getFullYear(),n.getMonth())),this._isInRange(e,n)},_isInRange:function(e,t){var i,s,a=this._getMinMaxDate(e,"min"),n=this._getMinMaxDate(e,"max"),r=null,o=null,h=this._get(e,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),r=parseInt(i[0],10),o=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(r+=s),i[1].match(/[+\-].*/)&&(o+=s)),(!a||t.getTime()>=a.getTime())&&(!n||t.getTime()<=n.getTime())&&(!r||t.getFullYear()>=r)&&(!o||o>=t.getFullYear())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,i,s){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var a=t?"object"==typeof t?t:this._daylightSavingAdjust(new Date(s,i,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),a,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(i)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i))},e.datepicker=new a,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.11.4",e.datepicker});
\ No newline at end of file
<div class="col-md-12"> <h1>{{ schema.title }}</h1>
<h1>{{ schema.title }}</h1> <form id="formgenerated" name="formgenerated" sf-schema="schema" sf-form="form" sf-model="model"></form>
<button type="button" ng-repeat="node in listnodes" ng-click="openmodal(node)">Add <span>{{node}}</span></button> <div ng-repeat="node in listnodes">
<form name="formgenerated" sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit(formgenerated)"></form> <h3>{{ node.title }}
<span>
<a href="javascript:void(0);" add-modal-for-list-node={{node.title}}>
<i class="fa fa-plus-circle fa-fw"></i>
</a>
</span>
</h3>
<table class="table table-bordered" style="background-color:#fff;">
<thead>
<tr>
<th colspan="2">#</th>
<th ng-repeat="(key,value) in node.fields">{{ value.title }}</th>
<th>action</th>
</tr>
</thead>
<tbody>
<tr>
<td width="60">
<label>
<input type="checkbox" style="zoom:1.5; margin:5px 0 0 8px;">
</label>
</td>
<th scope="row" style="text-align:center">1</th>
<td ng-repeat="(key,value) in node.fields">{{ value.value }}</td>
<td>
<a ng-href="#/crud/{{model}}/edit/{{object.key}}">Edit</a><br>
<a ng-href="#/crud/{{model}}/{{object.key}}">Show</a>
<a ng-href="#/crud/{{model}}/{{object.key}}">Delete</a>
</td>
</tr>
</tbody>
</table>
</div> </div>
<button id="submitbutton" type="button" class="btn btn-primary" ng-click="onSubmit(formgenerated)">Kaydet</button>
<button type="button" class="btn btn-warning">Düzenle</button> <!-- todo: make it conditional -->
<button type="button" class="btn btn-danger">İptal</button> <!-- todo: turn back to previous page -->
\ No newline at end of file
<div class="form-group schema-form-{{form.type}} {{form.htmlClass}}"
ng-class="{'has-error': form.disableErrorState !== true && hasError(), 'has-success': form.disableSuccessState !== true && hasSuccess(), 'has-feedback': form.feedback !== false }">
<label class="control-label {{form.labelHtmlClass}}" ng-class="{'sr-only': !showTitle()}"
for="{{form.key.slice(-1)[0]}}">{{form.title}}</label>
<p class="input-group">
<input ng-if="!form.fieldAddonLeft && !form.fieldAddonRight"
ng-show="form.key"
step="any"
sf-changed="form"
placeholder="{{form.placeholder}}"
class="form-control {{form.fieldHtmlClass}} datepickerfield"
id="{{form.key.slice(-1)[0]}}"
ng-model-options="form.ngModelOptions"
ng-model="dt"
ng-disabled="form.readonly"
schema-validate="form"
name="{{form.key.slice(-1)[0]}}"
aria-describedby="{{form.key.slice(-1)[0] + 'Status'}}"/>
<span class="input-group-btn">
<button type="button" class="btn btn-default">
<i class="glyphicon glyphicon-calendar"></i>
</button>
</span>
</p>
<div ng-if="form.fieldAddonLeft || form.fieldAddonRight"
ng-class="{'input-group': (form.fieldAddonLeft || form.fieldAddonRight)}">
<span ng-if="form.fieldAddonLeft"
class="input-group-addon"
ng-bind-html="form.fieldAddonLeft"></span>
<input ng-show="form.key"
type="{{form.type}}"
step="any"
sf-changed="form"
placeholder="{{form.placeholder}}"
class="form-control {{form.fieldHtmlClass}}"
id="{{form.key.slice(-1)[0]}}"
ng-model-options="form.ngModelOptions"
ng-model="$$value$$"
ng-disabled="form.readonly"
schema-validate="form"
name="{{form.key.slice(-1)[0]}}"
aria-describedby="{{form.key.slice(-1)[0] + 'Status'}}">
<span ng-if="form.fieldAddonRight"
class="input-group-addon"
ng-bind-html="form.fieldAddonRight"></span>
</div>
<span ng-if="form.feedback !== false"
class="form-control-feedback"
ng-class="evalInScope(form.feedback) || {'glyphicon': true, 'glyphicon-ok': hasSuccess(), 'glyphicon-remove': hasError() }"
aria-hidden="true"></span>
<span ng-if="hasError() || hasSuccess()"
id="{{form.key.slice(-1)[0] + 'Status'}}"
class="sr-only">{{ hasSuccess() ? '(success)' : '(error)' }}</span>
<div class="help-block" sf-message="form.description"></div>
</div>
<button type="button" class="btn btn-primary" ng-click="onSubmit(formgenerated)">Kaydet</button>
<button type="button" class="btn btn-warning">Düzenle</button>
<button type="button" class="btn btn-danger">İptal</button>
\ No newline at end of file
<div class="manager-view-header container-fluid">
<ul class="breadcrumb">
<li><a href="#">Personeller</a></li>
<li><a href="#">Liste</a></li>
<li class="active">Tablo</li>
</ul>
<!--<header-sub-menu-buttons></header-sub-menu-buttons>-->
<div id="header-buttons">
<button type="button" class="btn btn-primary" ng-click="triggerSubmit()">Kaydet</button>
<button type="button" class="btn btn-warning">Düzenle</button>
<button type="button" class="btn btn-danger">İptal</button>
</div>
</div>
\ No newline at end of file
<div class="navbar-default sidebar" role="navigation"> <div class="navbar-default sidebar" role="navigation">
<div class="sidebar-nav navbar-collapse"> <div class="sidebar-nav navbar-collapse">
<div class="brand"> <div class="brand">
<a href="" class="logo"><img src="../../../img/brand-logo.png" /></a> <a href="" class="logo"><img src="/img/brand-logo.png" /></a>
</div> </div>
<ul class="nav in" id="side-menu"> <ul class="nav in" id="side-menu">
<sidebar-search></sidebar-search> <!--<sidebar-search></sidebar-search>-->
<li ui-sref-active="active"> <li ui-sref-active="active">
<a href="#/dashboard"><i class="fa fa-dashboard fa-fw"></i> Dashboard</a> <a href="#/dashboard"><i class="fa fa-dashboard fa-fw"></i> Dashboard</a>
</li> </li>
<li ng-repeat="(key, item) in menuItems" ng-class="{active: collapseVar == key}">{{dropDown}} <li ng-repeat="(key, item) in menuItems" ng-class="{active: collapseVar == key}">
<a href="" ng-click="check(key)"><i class="fa fa-wrench fa-fw"></i> {{ item }}<span <a href="" ng-click="check(key)"><i class="fa fa-wrench fa-fw"></i> {{ item }}<span
class="fa arrow"></span></a> class="fa arrow"></span></a>
<ul class="nav nav-second-level" collapse="collapseVar!={{key}}"> <ul class="nav nav-second-level" collapse="collapseVar!={{key}}">
...@@ -21,51 +21,6 @@ ...@@ -21,51 +21,6 @@
</ul> </ul>
<!-- /.nav-second-level --> <!-- /.nav-second-level -->
</li> </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> </ul>
</div> </div>
<!-- /.sidebar-collapse --> <!-- /.sidebar-collapse -->
......
<div class="modal-body"> <div class="modal-body">
<form name="linkedModelForm" sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit(linkedModelForm)"></form> <h3>{{schema.title}}</h3>
<form name="linkedModelForm" sf-schema="schema" sf-form="form" sf-model="model"></form>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary" ng-click="onSubmit(linkedModelForm)">OK</button>
<button type="button" class="btn btn-warning" ng-click="cancel()">Cancel</button>
</div> </div>
\ No newline at end of file
<div class="modal-body"> <div class="modal-body">
<h3>{{schema.title}}</h3>
<form name="listnodeform" sf-schema="schema" sf-form="form" sf-model="model"></form> <form name="listnodeform" sf-schema="schema" sf-form="form" sf-model="model"></form>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
......
/*! jQuery UI - v1.11.4 - 2015-09-06
* http://jqueryui.com
* Includes: core.css, datepicker.css, theme.css
* To view and modify this theme, visit http://jqueryui.com/themeroller/
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
\ No newline at end of file
...@@ -13,38 +13,41 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout, ...@@ -13,38 +13,41 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout,
return RESTURL.url + url; return RESTURL.url + url;
}; };
generator.generate = function (scope, forms) { generator.generate = function (scope, forms) {
if (!forms){return scope;}
// if no form in response (in case of list and single item request) return scope
if (!forms) {
return scope;
}
for (var key in forms) for (var key in forms)
scope[key] = forms[key]; scope[key] = forms[key];
scope.initialModel = angular.copy(scope.model); scope.initialModel = angular.copy(scope.model);
scope.form.push(
{
type: "submit",
title: "Save"
}
);
// if fieldset in form, make it collapsable with template // if fieldset in form, make it collapsable with template
scope.listnodeform = {}; //scope.listnodeform = {};
angular.forEach(scope.schema.properties, function(k, v){ angular.forEach(scope.schema.properties, function (k, v) {
// check if type is date and if type date found change it to string // check if type is date and if type date found change it to string
// and give it 'format':'date' property // and give it 'type':'template' property and load it with template
// todo: make datepicker work below
if (k.type == 'date') { if (k.type == 'date') {
k.type="template"; scope.form[scope.form.indexOf(v)] = {
k.templateUrl = "shared/templates/datefield.html"; "type": "template",
//scope.form[scope.form.indexOf(v)] = { "templateUrl": "shared/templates/datefield.html",
// "key": k.name, "title": k.title,
// "minDate": "1995-09-01", "key": k.name
// "maxDate": new Date(), };
// "format": "yyyy-mm-dd" scope.model[k.name] = generator.dateformatter(scope.model[k.name]);
//}
scope.model[v] = null; // seek for datepicker field and initialize datepicker
scope.$watch(angular.element($('.datepickerfield')), function(){
$('.datepickerfield').datepicker();
});
} }
debugger;
if (k.type == 'int') {k.type='number'} if (k.type == 'int') {
k.type = 'number'
}
// if type is model use foreignKey.html template to show them // if type is model use foreignKey.html template to show them
...@@ -62,9 +65,9 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout, ...@@ -62,9 +65,9 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout,
var modelscope = {"url": scope.url, "form_params": {model: k.model_name}}; var modelscope = {"url": scope.url, "form_params": {model: k.model_name}};
// get model objects from db and add to select list // get model objects from db and add to select list
generator.get_list(modelscope).then(function(res){ generator.get_list(modelscope).then(function (res) {
formitem.titleMap = []; formitem.titleMap = [];
angular.forEach(res.data.objects, function(item){ angular.forEach(res.data.objects, function (item) {
formitem.titleMap.push({ formitem.titleMap.push({
"value": item.key, "value": item.key,
"name": item.data.name ? item.data.name : item.data.username "name": item.data.name ? item.data.name : item.data.username
...@@ -75,85 +78,38 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout, ...@@ -75,85 +78,38 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout,
}); });
scope.form[scope.form.indexOf(v)] = formitem; scope.form[scope.form.indexOf(v)] = formitem;
} }
});
// catch node and listnode and edit their schema and form props if (k.type == 'ListNode') {
if ((scope.listnode && scope.listnodes[0]) || (scope.nodes && scope.nodes[0])) { scope.form.splice([scope.form.indexOf(v)], 1);
angular.forEach(scope.form, function (key, val) { scope.listnodes = scope.listnodes ? scope.listnodes : {};
if (typeof key == "object" && key.type == "fieldset") { scope.listnodes[k.title] = (k);
// change type to use shared template for form scope.model[k.title] = {};
key.type = "template";
key.templateUrl = "shared/templates/fieldset.html";
// check if fieldset in listnodes
if (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){
if(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;
} }
if (k.type == 'Node') {
scope.form.splice([scope.form.indexOf(v)], 1);
scope.nodes = scope.nodes ? scope.nodes : {};
scope.nodes[k.title] = (k);
scope.model[k.title] = {};
} }
}); });
}
scope.isCollapsed = true; scope.isCollapsed = true;
scope.object_id = scope.form_params['object_id'];
// open modal with given items and controller
scope.openmodal = function(listnode, nodeID){
var modalInstance = $modal.open({
animation: false,
templateUrl: 'shared/templates/listnodeModalContent.html',
controller: 'ListNodeModalCtrl',
size: 'lg',
resolve: {
items: function () {
if (nodeID){
scope.listnodeform[listnode].model = 1;
}
return scope.listnodeform[listnode];
}
}
});
modalInstance.result.then(function (childmodel, key) { scope.object_id = scope.form_params['object_id'];
angular.forEach(childmodel, function(v, k){
if (scope.model[k]){
scope.model[k][v.idx] = v;
} else {
scope.model[k] = {};
scope.model[k][v.idx] = v;
}
scope.$broadcast('schemaFormRedraw');
});
});
};
return generator.group(scope); return generator.group(scope);
}; };
generator.group = function (formObject) { generator.group = function (formObject) {
return formObject; return formObject;
}; };
generator.dateformatter = function(formObject){ generator.dateformatter = function (formObject) {
//angular.forEach(formObject.objects, function(k, v) { //angular.forEach(formObject.objects, function(k, v) {
// check if date string and convert to date object // check if date string and convert to date object
// todo: catch date object and convert // todo: catch date object and convert
//debugger; debugger;
//}); //});
return formObject; return Date(formObject);
}; };
generator.get_form = function (scope) { generator.get_form = function (scope) {
return $http return $http
...@@ -163,6 +119,7 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout, ...@@ -163,6 +119,7 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout,
// todo: cover all other exceptions (4xx, 5xx) // todo: cover all other exceptions (4xx, 5xx)
}); });
}; };
generator.get_list = function (scope) { generator.get_list = function (scope) {
return $http return $http
.post(generator.makeUrl(scope.url), scope.form_params) .post(generator.makeUrl(scope.url), scope.form_params)
...@@ -199,7 +156,7 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout, ...@@ -199,7 +156,7 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout,
} }
}; };
generator.submit = function ($scope) { generator.submit = function ($scope) {
debugger; // todo: diff for all submits to recognize form change. if no change returns to view with no submit
data = { data = {
"form": $scope.model, "form": $scope.model,
"cmd": $scope.form_params.cmd, "cmd": $scope.form_params.cmd,
...@@ -207,6 +164,7 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout, ...@@ -207,6 +164,7 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout,
"model": $scope.form_params.model, "model": $scope.form_params.model,
"token": $scope.token "token": $scope.token
}; };
debugger;
if ($scope.object_id) { if ($scope.object_id) {
var get_diff = FormDiff.get_diff($scope.model, $scope.initialModel); var get_diff = FormDiff.get_diff($scope.model, $scope.initialModel);
var data = { var data = {
...@@ -220,103 +178,92 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout, ...@@ -220,103 +178,92 @@ form_generator.factory('Generator', function ($http, $q, $log, $modal, $timeout,
}); });
/** /**
* ListNodeModalCtrl * ModalCtrl
* controller to use with openmodal function of Generator * controller for listnode, node and linkedmodel modal and save data of it
* @params: $scope, $modalInstance, items * @params: $scope, $modalInstance, $route, items
* @returns: return value used in openmodal's result function * @returns: returns value for modal
*/ */
form_generator.controller('ListNodeModalCtrl', function ($scope, $modalInstance, items) { form_generator.controller('ModalCtrl', function ($scope, $modalInstance, $route, items) {
for (var key in items) angular.forEach(["model", "schema", "form"], function (key) {
$scope[key] = items[key];
$scope.onSubmit = function(form){
// send form to modalinstance result function
$modalInstance.close($scope.model, $scope.form.title);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
});
form_generator.controller('LinkedModelModalCtrl', function ($scope, $modalInstance, $route, items) {
angular.forEach(["model", "schema", "form"], function(key){
$scope[key] = items[key]; $scope[key] = items[key];
}); });
$scope.onSubmit = function(){ $scope.onSubmit = function () {
// send form to modalinstance result function // send form to modalinstance result function
$modalInstance.close($scope); $modalInstance.close($scope);
$route.reload();
}; };
$scope.cancel = function () { $scope.cancel = function () {
$modalInstance.dismiss('cancel'); $modalInstance.dismiss('cancel');
$route.reload();
}; };
}); });
// todo: generic modal directive for all forms /**
//form_generator.directive('openmodal', ['Generator', function (Generator, $modal) { * modal directive for listnodes and nodes
// return { * @params: $modal, Generator
// link: function ($modal) { * @return: openmodal directive
// var modalInstance = $modal.open({ */
// animation: false,
// templateUrl: 'shared/templates/modalContent.html', // todo: use generator.openmodal instead
// controller: 'ModalInstanceCtrl', form_generator.directive('addModalForListNode', function ($modal, Generator) {
// size: 'lg', return {
// resolve: { link: function (scope, element, attributes) {
// items: function () { element.on('click', function () {
// return ""; var modalInstance = $modal.open({
// } animation: false,
// } templateUrl: 'shared/templates/listnodeModalContent.html',
// }); controller: 'ModalCtrl',
// size: 'lg',
// modalInstance.result.then(function (selectedItem) { resolve: {
// $scope.selected = selectedItem; items: function () {
// }, function () { // get node from parent scope catch with attribute
// $log.info('Modal dismissed at: ' + new Date()); var node = angular.copy(scope.$parent.$parent.listnodes[attributes['addModalForListNode']]);
// }); var items = {form: ['*'], schema: {properties: {}, title: node.title, type: "object"}, model: {}};
// } angular.forEach(node.fields, function (item) {
// } items.schema.properties[item.name] = item;
//}]); items.model[item.name] = item.value;
});
return Generator.generate(scope, items);
}
}
});
modalInstance.result.then(function (childmodel, key) {
var subfix = scope.schema.title.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
scope.$parent.model[scope.schema.title][subfix+'.idx'] = scope.model;
});
});
}
}
});
/** /**
* modal directive for linked models * modal directive for linked models
* @params: $modal, Generator
* @return: openmodal directive
*/ */
form_generator.directive('addModal', function ($modal, Generator) { form_generator.directive('addModal', function ($modal, Generator) {
return { return {
link: function (scope, element) { link: function (scope, element) {
element .on('click', function () { element.on('click', function () {
debugger;
var modalInstance = $modal.open({ var modalInstance = $modal.open({
animation: false, animation: false,
templateUrl: 'shared/templates/linkedModelModalContent.html', templateUrl: 'shared/templates/linkedModelModalContent.html',
controller: 'LinkedModelModalCtrl', controller: 'ModalCtrl',
size: 'lg', size: 'lg',
resolve: { resolve: {
items: function () { items: function () {
debugger; return Generator.get_form({
scope.url = 'crud'; url: 'crud',
scope.form_params = {'model': scope.form.title, "cmd": "add"}; form_params: {'model': scope.form.title, "cmd": "add"}
return Generator.get_form(scope); });
} }
} }
}); });
modalInstance.result.then(function (childmodel, key) { modalInstance.result.then(function (childmodel, key) {
Generator.submit(scope); Generator.submit(scope);
//angular.forEach(childmodel, function(v, k){
// if ($scope.model[k]){
// $scope.model[k][v.idx] = v;
// } else {
// $scope.model[k] = {};
// $scope.model[k][v.idx] = v;
// }
//scope.$broadcast('schemaFormRedraw');
//scope.apply();
//});
}); });
//$scope.$broadcast('schemaFormRedraw');
//$scope.$apply();
}); });
} }
} }
......
...@@ -42,6 +42,7 @@ app.config(['$httpProvider', function ($httpProvider) { ...@@ -42,6 +42,7 @@ app.config(['$httpProvider', function ($httpProvider) {
$location.reload(); $location.reload();
} }
if(rejection.status === 401) { if(rejection.status === 401) {
$rootScope.loggedInUser = response.data.is_login;
if($location.path()==="/login"){ if($location.path()==="/login"){
console.log("show errors on login form"); console.log("show errors on login form");
} else{ } else{
......
/*! ulakbus-ui 2015-09-03 */ /*! ulakbus-ui 2015-09-09 */
"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","ulakbus.crud","schemaForm","gettext","templates-prod"]).constant("RESTURL",function(){return{url:"http://api.ulakbus.net/"}}()).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"});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("/crud/:model/add",{templateUrl:"components/crud/templates/add.html",controller:"CRUDAddEditCtrl"}).when("/crud/:model/edit/:id",{templateUrl:"components/crud/templates/edit.html",controller:"CRUDAddEditCtrl"}).when("/crud/:model",{templateUrl:"components/crud/templates/list.html",controller:"CRUDListCtrl"}).when("/crud/:model/:id",{templateUrl:"components/crud/templates/show.html",controller:"CRUDShowCtrl"}).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){})}).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){if(!forms)return scope;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={},angular.forEach(scope.schema.properties,function(k,v){if("date"==k.type&&(k.type="template",k.templateUrl="shared/templates/datefield.html",scope.model[v]=null),"int"==k.type&&(k.type="number"),"model"==k.type){var formitem=scope.form[scope.form.indexOf(v)];formitem={type:"template",templateUrl:"shared/templates/foreignKey.html",title:k.model_name},k.title=k.model_name;var modelscope={url:scope.url,form_params:{model:k.model_name}};generator.get_list(modelscope).then(function(res){formitem.titleMap=[],angular.forEach(res.data.objects,function(item){formitem.titleMap.push({value:item.key,name:item.data.name?item.data.name:item.data.username})})}),scope.form[scope.form.indexOf(v)]=formitem}}),(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.dateformatter=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 generator.dateformatter(res),res})},generator.get_single_item=function(scope){return $http.post(generator.makeUrl(scope.url),scope.form_params).then(function(res){return generator.dateformatter(res),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(data={form:$scope.model,cmd:$scope.form_params.cmd,subcmd:"do_list",model:$scope.form_params.model,token:$scope.token},$scope.object_id)var get_diff=FormDiff.get_diff($scope.model,$scope.initialModel),data={object_id:$scope.object_id,form:get_diff};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")}}),form_generator.controller("LinkedModelModalCtrl",function($scope,$modalInstance,$route,items){angular.forEach(["model","schema","form"],function(key){$scope[key]=items[key]}),$scope.onSubmit=function(){$modalInstance.close($scope),$route.reload()},$scope.cancel=function(){$modalInstance.dismiss("cancel"),$route.reload()}}),form_generator.directive("addModal",function($modal,Generator){return{link:function(scope,element){element.on("click",function(){var modalInstance=$modal.open({animation:!1,templateUrl:"shared/templates/linkedModelModalContent.html",controller:"LinkedModelModalCtrl",size:"lg",resolve:{items:function(){return scope.url="crud",scope.form_params={model:scope.form.title,cmd:"add"},Generator.get_form(scope)}}});modalInstance.result.then(function(childmodel,key){Generator.submit(scope)})})}}});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,"/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("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.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,$http,RESTURL){$http.post(RESTURL.url+"crud/").success(function(data){$scope.menuItems=data.models}),$scope.menuItems="dsadkal",$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="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}});var crud=angular.module("ulakbus.crud",["ngRoute","schemaForm","formService","ui.bootstrap"]);crud.controller("CRUDAddEditCtrl",function($scope,$rootScope,$location,$http,$log,$modal,$timeout,Generator,$routeParams){$scope.url="crud",$scope.form_params={model:$routeParams.model},$routeParams.id?($scope.form_params.object_id=$routeParams.id,$scope.form_params.cmd="edit"):$scope.form_params.cmd="add",$scope.loaddata=function(){console.log("loading data"),Generator.get_form($scope)},$scope.loaddata(),$scope.onSubmit=function(form){$scope.$broadcast("schemaFormValidate"),form.$valid&&Generator.submit($scope).success(function(data){$location.path("/crud")}).error(function(data){$scope.message=data.title})}}),crud.controller("CRUDListCtrl",function($scope,$rootScope,Generator,$routeParams){$scope.url="crud",$scope.form_params={model:$routeParams.model},Generator.get_list($scope).then(function(res){var data=res.data.objects;for(var item in data)delete data[item].data.deleted,delete data[item].data.timestamp;$scope.objects=data,$scope.model=$routeParams.model})}),crud.controller("CRUDShowCtrl",function($scope,$rootScope,Generator,$routeParams){$scope.url="crud",$scope.form_params={object_id:$routeParams.id,cmd:"show",model:$routeParams.model},Generator.get_single_item($scope).then(function(res){$scope.object=res.data.object,$scope.model=$routeParams.model})}),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.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","ulakbus.crud","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"});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("/crud/:model/add",{templateUrl:"components/crud/templates/add.html",controller:"CRUDAddEditCtrl"}).when("/crud/:model/edit/:id",{templateUrl:"components/crud/templates/edit.html",controller:"CRUDAddEditCtrl"}).when("/crud/:model",{templateUrl:"components/crud/templates/list.html",controller:"CRUDListCtrl"}).when("/crud/:model/:id",{templateUrl:"components/crud/templates/show.html",controller:"CRUDShowCtrl"}).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){})}).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){if(!forms)return scope;for(var key in forms)scope[key]=forms[key];return scope.initialModel=angular.copy(scope.model),angular.forEach(scope.schema.properties,function(k,v){if("date"==k.type&&(scope.form[scope.form.indexOf(v)]={type:"template",templateUrl:"shared/templates/datefield.html",title:k.title,key:k.name},scope.model[k.name]=generator.dateformatter(scope.model[k.name]),scope.$watch(angular.element($(".datepickerfield")),function(){$(".datepickerfield").datepicker()})),"int"==k.type&&(k.type="number"),"model"==k.type){var formitem=scope.form[scope.form.indexOf(v)];formitem={type:"template",templateUrl:"shared/templates/foreignKey.html",title:k.model_name},k.title=k.model_name;var modelscope={url:scope.url,form_params:{model:k.model_name}};generator.get_list(modelscope).then(function(res){formitem.titleMap=[],angular.forEach(res.data.objects,function(item){formitem.titleMap.push({value:item.key,name:item.data.name?item.data.name:item.data.username})})}),scope.form[scope.form.indexOf(v)]=formitem}"ListNode"==k.type&&(scope.form.splice([scope.form.indexOf(v)],1),scope.listnodes=scope.listnodes?scope.listnodes:{},scope.listnodes[k.title]=k,scope.model[k.title]={}),"Node"==k.type&&(scope.form.splice([scope.form.indexOf(v)],1),scope.nodes=scope.nodes?scope.nodes:{},scope.nodes[k.title]=k,scope.model[k.title]={})}),scope.isCollapsed=!0,scope.object_id=scope.form_params.object_id,generator.group(scope)},generator.group=function(formObject){return formObject},generator.dateformatter=function(formObject){return Date(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 generator.dateformatter(res),res})},generator.get_single_item=function(scope){return $http.post(generator.makeUrl(scope.url),scope.form_params).then(function(res){return generator.dateformatter(res),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(data={form:$scope.model,cmd:$scope.form_params.cmd,subcmd:"do_list",model:$scope.form_params.model,token:$scope.token},$scope.object_id)var get_diff=FormDiff.get_diff($scope.model,$scope.initialModel),data={object_id:$scope.object_id,form:get_diff};return $http.post(generator.makeUrl($scope.url),data)},generator}),form_generator.controller("ModalCtrl",function($scope,$modalInstance,$route,items){angular.forEach(["model","schema","form"],function(key){$scope[key]=items[key]}),$scope.onSubmit=function(){$modalInstance.close($scope)},$scope.cancel=function(){$modalInstance.dismiss("cancel")}}),form_generator.directive("addModalForListNode",function($modal,Generator){return{link:function(scope,element,attributes){element.on("click",function(){var modalInstance=$modal.open({animation:!1,templateUrl:"shared/templates/listnodeModalContent.html",controller:"ModalCtrl",size:"lg",resolve:{items:function(){var node=angular.copy(scope.$parent.$parent.listnodes[attributes.addModalForListNode]),items={form:["*"],schema:{properties:{},title:node.title,type:"object"},model:{}};return angular.forEach(node.fields,function(item){items.schema.properties[item.name]=item,items.model[item.name]=item.value}),Generator.generate(scope,items)}}});modalInstance.result.then(function(childmodel,key){var subfix=scope.schema.title.replace(/([a-z])([A-Z])/g,"$1_$2").toLowerCase();scope.$parent.model[scope.schema.title][subfix+".idx"]=scope.model})})}}}),form_generator.directive("addModal",function($modal,Generator){return{link:function(scope,element){element.on("click",function(){var modalInstance=$modal.open({animation:!1,templateUrl:"shared/templates/linkedModelModalContent.html",controller:"ModalCtrl",size:"lg",resolve:{items:function(){return Generator.get_form({url:"crud",form_params:{model:scope.form.title,cmd:"add"}})}}});modalInstance.result.then(function(childmodel,key){Generator.submit(scope)})})}}});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,"/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&&($rootScope.loggedInUser=response.data.is_login,"/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("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.directive("headerNotification",function(){return{templateUrl:"shared/templates/directives/header-notification.html",restrict:"E",replace:!0}}),app.directive("headerSubMenu",function(){return{templateUrl:"shared/templates/directives/header-sub-menu.html",restrict:"E",controller:"CRUDAddEditCtrl",replace:!0,link:function($scope){$scope.triggerSubmit=function(){angular.element($("#submitbutton")).triggerHandler("click"),angular.element($("#submitbutton")).triggerHandler("click")}}}}),app.directive("headerSubMenuButtons",function(){return{templateUrl:"shared/templates/directives/header-sub-menu-buttons.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,$http,RESTURL){$http.post(RESTURL.url+"crud/").success(function(data){$scope.menuItems=data.models}),$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="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}});var crud=angular.module("ulakbus.crud",["ngRoute","schemaForm","formService","ui.bootstrap"]);crud.controller("CRUDAddEditCtrl",function($scope,$rootScope,$location,$http,$log,$modal,$timeout,Generator,$routeParams){$scope.url="crud",$scope.form_params={model:$routeParams.model},$routeParams.id?($scope.form_params.object_id=$routeParams.id,$scope.form_params.cmd="edit"):$scope.form_params.cmd="add",Generator.get_form($scope),$scope.onSubmit=function(form){$scope.$broadcast("schemaFormValidate"),form.$valid&&Generator.submit($scope).success(function(data){$location.path("/crud")}).error(function(data){$scope.message=data.title})}}),crud.controller("CRUDListCtrl",function($scope,$rootScope,Generator,$routeParams){$scope.url="crud",$scope.form_params={model:$routeParams.model},Generator.get_list($scope).then(function(res){var data=res.data.objects;for(var item in data)delete data[item].data.deleted,delete data[item].data.timestamp;$scope.objects=data,$scope.model=$routeParams.model})}),crud.controller("CRUDShowCtrl",function($scope,$rootScope,Generator,$routeParams){$scope.url="crud",$scope.form_params={object_id:$routeParams.id,cmd:"show",model:$routeParams.model},Generator.get_single_item($scope).then(function(res){$scope.object=res.data.object,$scope.model=$routeParams.model})}),angular.module("ulakbus.dashboard",["ngRoute"]).controller("DashCtrl",function($scope,$rootScope,$location){$rootScope.loggedInUser||$location.path("/login"),$scope.testData="<h1>This is main Dashboard</h1>"}),angular.module("ulakbus.pinfo",["ngRoute"]).controller("PCtrl",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.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
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -7,10 +7,33 @@ ...@@ -7,10 +7,33 @@
/* Space out content a bit */ /* Space out content a bit */
body { body {
font-family:'robotoregular'; font-family:'robotoregular';
background-color: #222d32; background-color: #f5f5f5;
overflow:hidden; overflow:hidden;
} }
::-webkit-scrollbar {
width: 5px;
height: 5px;
}
::-webkit-scrollbar-track {
background-color:#ccc;
}
::-webkit-scrollbar-thumb {
background-color:#999;
}
.form-control {
box-shadow:none;
border-radius:0;
border-color:#ececec;
}
.btn {
border:none;
}
.btn:focus, .btn:focus,
.btn:active:focus, .btn:active:focus,
.btn.active:focus, .btn.active:focus,
...@@ -45,8 +68,8 @@ a:hover { ...@@ -45,8 +68,8 @@ a:hover {
.logo img { .logo img {
width: 80%; width: 80%;
margin-left: 8%; margin-left: 8%;
margin-top: 23px; margin-top: 22px;
margin-bottom: 23px; margin-bottom: 22px;
} }
/* Everything but the jumbotron gets side spacing for mobile first views */ /* Everything but the jumbotron gets side spacing for mobile first views */
...@@ -154,13 +177,12 @@ ul.header-menu li a:hover{ ...@@ -154,13 +177,12 @@ ul.header-menu li a:hover{
} }
.sidebar .nav>li ul { .sidebar .nav>li ul {
border-bottom: 3px solid #E4E4E4;
border-left: 3px solid #A61229; border-left: 3px solid #A61229;
} }
.sidebar .nav>li ul>li a { .sidebar .nav>li ul>li a {
font-family:'robotoregular'; font-family:'robotoregular';
background-color:#f5f5f5; background-color:#fdfdfd;
} }
.nav>li>a:visited { .nav>li>a:visited {
...@@ -168,7 +190,7 @@ ul.header-menu li a:hover{ ...@@ -168,7 +190,7 @@ ul.header-menu li a:hover{
.nav>li.active>a { .nav>li.active>a {
text-decoration: none; text-decoration: none;
background-color: #f5f5f5; background-color: #fdfdfd;
color: #565656; color: #565656;
border-color:#A61229; border-color:#A61229;
} }
...@@ -315,7 +337,6 @@ select { ...@@ -315,7 +337,6 @@ select {
.sidebar { .sidebar {
background-color:#fff; background-color:#fff;
border-right: 1px solid #ccc; border-right: 1px solid #ccc;
overflow:auto;
} }
.sidebar .sidebar-nav.navbar-collapse { .sidebar .sidebar-nav.navbar-collapse {
...@@ -718,6 +739,121 @@ table.dataTable thead .sorting:after { ...@@ -718,6 +739,121 @@ table.dataTable thead .sorting:after {
margin-top: 5px; margin-top: 5px;
} }
/* PERSONNEL INFO */
.generic-profile-picture img {
width:220px;
height:220px;
}
.personnel-info-container {
width:1000px;
height:530px;
margin-left:auto;
margin-right:auto;
margin-bottom:50px;
background-color:#fff;
-webkit-box-shadow: 0 0 3px rgba(0,0,0,0.1);
-moz-box-shadow: 0 0 3px rgba(0,0,0,0.1);
box-shadow: 0 0 3px rgba(0,0,0,0.1);
background-color:#fff;
position:relative;
}
.personnel-info-left {
width:250px;
height:100%;
background-color:#fcfcfc;
padding:15px;
position:absolute;
left:0;
overflow-y: auto;
overflow-x: hidden;
border-right: 1px solid #F7F7F7;
}
.personnel-info-left ul {
padding:0;
margin-top:20px;
}
.personnel-info-left ul li {
list-style:none;
margin-bottom:15px;
position:relative;
padding-left:30px;
color:#555;
}
.personnel-info-left ul li:nth-child(1) {
padding:0;
font-family:'robotobold';
font-size:18px;
color:#333;
}
.personnel-info-left ul li:nth-child(2) {
padding:0;
font-family:'robotomedium';
font-size:17px;
color:#666;
}
.personnel-info-left ul li i.fa {
width:18px;
margin-right:15px;
font-size:18px;
position:absolute;
left:0;
text-align:center;
}
.personnel-info-right {
width:750px;
height:100%;
background-color:#fff;
padding:40px;
padding-top:15px;
position:absolute;
right:0;
overflow-y:auto;
}
.personnel-info-right h2 {
margin-top:0;
margin-bottom:20px;
font-family:'robotolight';
font-size:23px;
}
.info-block {
margin-bottom:70px;
}
.info-block:last-child {
margin-bottom:0px;
}
.info-block-body dt {
text-align:left;
font-family:'robotomedium';
font-weight:normal;
}
.info-block-body dl {
margin-bottom:10px;
color:#444;
}
.personnel-info-edit .personnel-info-left ul li {
padding-left:0;
}
/* END OF PERSONNEL INFO */
/* Responsive: Portrait tablets and up */ /* Responsive: Portrait tablets and up */
@media screen and (min-width: 768px) { @media screen and (min-width: 768px) {
/* Remove the padding we set earlier */ /* Remove the padding we set earlier */
...@@ -797,8 +933,75 @@ table.dataTable thead .sorting:after { ...@@ -797,8 +933,75 @@ table.dataTable thead .sorting:after {
border-right-width: 14px; border-right-width: 14px;
border-left-width: 0; border-left-width: 0;
} }
.brand {
text-align:center;
}
.logo img {
width:200px;
margin-left:0;
}
.manager-view-content {
overflow:inherit;
}
body {
overflow:auto;
}
}
@media (max-width: 1350px) {
.personnel-info-container {
width:700px;
}
.personnel-info-right {
width:450px;
}
} }
@media (max-width: 1000px) {
.personnel-info-container {
width:500px;
height:auto;
}
.personnel-info-left {
width:100%;
position:relative;
height:auto;
border:none;
}
.personnel-info-right {
width:100%;
position:relative;
height:auto;
}
.generic-profile-picture,
.personnel-info-left ul li:nth-child(1),
.personnel-info-left ul li:nth-child(2) {
text-align:center;
}
.generic-profile-picture img {
border-radius:100%;
}
}
@media (max-width: 560px) {
.personnel-info-container {
width: 350px;
}
}
/* /*
* metismenu - v1.1.3 * metismenu - v1.1.3
* Easy menu jQuery plugin for Twitter Bootstrap 3 * Easy menu jQuery plugin for Twitter Bootstrap 3
......
/*! jQuery UI - v1.11.4 - 2015-09-06
* http://jqueryui.com
* Includes: core.css, datepicker.css, theme.css
* To view and modify this theme, visit http://jqueryui.com/themeroller/
* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}
\ No newline at end of file
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
<link rel="stylesheet" href="css/app.css"> <link rel="stylesheet" href="css/app.css">
<link rel="stylesheet" href="css/roboto/roboto.css"> <link rel="stylesheet" href="css/roboto/roboto.css">
<link rel="stylesheet" href="css/jquery-ui.min.css">
</head> </head>
<body> <body>
...@@ -38,23 +39,17 @@ ...@@ -38,23 +39,17 @@
<header-notification></header-notification> <header-notification></header-notification>
</nav> </nav>
<sidebar></sidebar> <sidebar ng-if="$root.loggedInUser"></sidebar>
<div class="manager-view"> <div class="manager-view">
<div class="manager-view-inner"> <div class="manager-view-inner">
<!-- manager-header --> <!-- manager-header -->
<div class="manager-view-header container-fluid"> <header-sub-menu ng-if="$root.loggedInUser"></header-sub-menu>
<ul class="breadcrumb">
<li><a href="#">Personeller</a></li>
<li><a href="#">Liste</a></li>
<li class="active">Tablo</li>
</ul>
<button type="button" class="btn btn-primary">Kaydet</button>
</div>
<!-- end of manager-header --> <!-- end of manager-header -->
<div class="manager-view-content"> <div class="manager-view-content">
<div class="row"> <div class="row">
<div class="main" ng-view> <div class="main" ng-view>
</div> </div>
</div> </div>
......
angular.module('templates-prod', ['components/auth/login.html', 'components/crud/templates/add.html', 'components/crud/templates/edit.html', 'components/crud/templates/list.html', 'components/crud/templates/show.html', 'components/dashboard/dashboard.html', 'components/personelinfo/personelinfo.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/foreignKey.html', 'shared/templates/linkedModelModalContent.html', 'shared/templates/listnodeModalContent.html', 'shared/templates/modalContent.html']); angular.module('templates-prod', ['components/auth/login.html', 'components/crud/templates/add.html', 'components/crud/templates/edit.html', 'components/crud/templates/list.html', 'components/crud/templates/show.html', 'components/dashboard/dashboard.html', 'components/personelinfo/personelinfo.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/datefield.html', 'shared/templates/directives/chat.html', 'shared/templates/directives/header-notification.html', 'shared/templates/directives/header-sub-menu-buttons.html', 'shared/templates/directives/header-sub-menu.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/foreignKey.html', 'shared/templates/linkedModelModalContent.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",
...@@ -80,7 +80,7 @@ angular.module("components/dashboard/dashboard.html", []).run(["$templateCache", ...@@ -80,7 +80,7 @@ angular.module("components/dashboard/dashboard.html", []).run(["$templateCache",
$templateCache.put("components/dashboard/dashboard.html", $templateCache.put("components/dashboard/dashboard.html",
"<div ng-app=\"ulakbus.dashboard\">\n" + "<div ng-app=\"ulakbus.dashboard\">\n" +
" <div class=\"starter-template\">\n" + " <div class=\"starter-template\">\n" +
" \n" + "\n" +
" <!-- table view -->\n" + " <!-- table view -->\n" +
" <table class=\"table table-bordered\" style=\"background-color:#fff;\">\n" + " <table class=\"table table-bordered\" style=\"background-color:#fff;\">\n" +
" <thead>\n" + " <thead>\n" +
...@@ -166,9 +166,10 @@ angular.module("components/dashboard/dashboard.html", []).run(["$templateCache", ...@@ -166,9 +166,10 @@ angular.module("components/dashboard/dashboard.html", []).run(["$templateCache",
" </tbody>\n" + " </tbody>\n" +
" </table>\n" + " </table>\n" +
" <!-- end of table view -->\n" + " <!-- end of table view -->\n" +
" \n" + "\n" +
" <div class=\"btn-group\">\n" + " <div class=\"btn-group\">\n" +
" <button type=\"button\" class=\"btn btn-default dropdown-toggle\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n" + " <button type=\"button\" class=\"btn btn-default dropdown-toggle\" data-toggle=\"dropdown\" aria-haspopup=\"true\"\n" +
" aria-expanded=\"false\">\n" +
" İşlemler <span class=\"caret\"></span>\n" + " İşlemler <span class=\"caret\"></span>\n" +
" </button>\n" + " </button>\n" +
" <ul class=\"dropdown-menu\">\n" + " <ul class=\"dropdown-menu\">\n" +
...@@ -179,8 +180,8 @@ angular.module("components/dashboard/dashboard.html", []).run(["$templateCache", ...@@ -179,8 +180,8 @@ angular.module("components/dashboard/dashboard.html", []).run(["$templateCache",
" <li><a href=\"\">İşlem 4</a></li>\n" + " <li><a href=\"\">İşlem 4</a></li>\n" +
" </ul>\n" + " </ul>\n" +
" </div>\n" + " </div>\n" +
" \n" + "\n" +
" \n" + "\n" +
" <hr>\n" + " <hr>\n" +
"\n" + "\n" +
" </div>\n" + " </div>\n" +
...@@ -192,107 +193,160 @@ angular.module("components/personelinfo/personelinfo.html", []).run(["$templateC ...@@ -192,107 +193,160 @@ angular.module("components/personelinfo/personelinfo.html", []).run(["$templateC
"<div ng-app=\"ulakbus.personelinfo\">\n" + "<div ng-app=\"ulakbus.personelinfo\">\n" +
" <div class=\"starter-template\">\n" + " <div class=\"starter-template\">\n" +
" \n" + " \n" +
" <!-- table view -->\n" + " <div class=\"personnel-info-container\">\n" +
" <table class=\"table table-bordered\" style=\"background-color:#fff;\">\n" + " <div class=\"personnel-info-left\">\n" +
" <thead>\n" + " <div class=\"generic-profile-picture\">\n" +
" <tr>\n" + " <img src=\"../../img/sample-profile-pic.jpg\" />\n" +
" <th colspan=\"2\">\n" + " </div>\n" +
" <label>\n" + " <ul>\n" +
" <input type=\"checkbox\" style=\"zoom:1.5; margin:5px 0 0 8px;\">\n" + " <li>Gökhan Boranalp</li>\n" +
" Hepsini Seç2\n" + " <li>Pozisyon</li>\n" +
" </label>\n" + " <li><i class=\"fa fa-phone\"></i> (+90) 123 456 7890</li>\n" +
" </th>\n" + " <li><i class=\"fa fa-envelope\"></i> samplemail@mail.com</li>\n" +
" <th>First Name</th>\n" + " <li><i class=\"fa fa-map-marker\"></i> Gülbahçe Mah. İzmir Teknoloji Geliştirme Bölgesi A9 Blok 215/A IYTE Campus, URLA/IZMIR</li></li>\n" +
" <th>Last Name</th>\n" +
" <th>Username</th>\n" +
" </tr>\n" +
" </thead>\n" +
" <tbody>\n" +
" <tr>\n" +
" <td width=\"60\">\n" +
" <label>\n" +
" <input type=\"checkbox\" style=\"zoom:1.5; margin:5px 0 0 8px;\">\n" +
" </label>\n" +
" </td>\n" +
" <th scope=\"row\" style=\"text-align:center\">1</th>\n" +
" <td>Mark</td>\n" +
" <td>Otto</td>\n" +
" <td>@mdo</td>\n" +
" </tr>\n" +
" <tr>\n" +
" <td>\n" +
" <label>\n" +
" <input type=\"checkbox\" style=\"zoom:1.5; margin:5px 0 0 8px;\">\n" +
" </label>\n" +
" </td>\n" +
" <th scope=\"row\" style=\"text-align:center\">2</th>\n" +
" <td>Jacob</td>\n" +
" <td>Thornton</td>\n" +
" <td>@fat</td>\n" +
" </tr>\n" +
" <tr>\n" +
" <td>\n" +
" <label>\n" +
" <input type=\"checkbox\" style=\"zoom:1.5; margin:5px 0 0 8px;\">\n" +
" </label>\n" +
" </td>\n" +
" <th scope=\"row\" style=\"text-align:center\">3</th>\n" +
" <td>Larry</td>\n" +
" <td>the Bird</td>\n" +
" <td>@twitter</td>\n" +
" </tr>\n" +
" <tr>\n" +
" <td width=\"60\">\n" +
" <label>\n" +
" <input type=\"checkbox\" style=\"zoom:1.5; margin:5px 0 0 8px;\">\n" +
" </label>\n" +
" </td>\n" +
" <th scope=\"row\" style=\"text-align:center\">4</th>\n" +
" <td>Mark</td>\n" +
" <td>Otto</td>\n" +
" <td>@mdo</td>\n" +
" </tr>\n" +
" <tr>\n" +
" <td>\n" +
" <label>\n" +
" <input type=\"checkbox\" style=\"zoom:1.5; margin:5px 0 0 8px;\">\n" +
" </label>\n" +
" </td>\n" +
" <th scope=\"row\" style=\"text-align:center\">5</th>\n" +
" <td>Jacob</td>\n" +
" <td>Thornton</td>\n" +
" <td>@fat</td>\n" +
" </tr>\n" +
" <tr>\n" +
" <td>\n" +
" <label>\n" +
" <input type=\"checkbox\" style=\"zoom:1.5; margin:5px 0 0 8px;\">\n" +
" </label>\n" +
" </td>\n" +
" <th scope=\"row\" style=\"text-align:center\">6</th>\n" +
" <td>Larry</td>\n" +
" <td>the Bird</td>\n" +
" <td>@twitter</td>\n" +
" </tr>\n" +
" </tbody>\n" +
" </table>\n" +
" <!-- end of table view -->\n" +
" \n" +
" <div class=\"btn-group\">\n" +
" <button type=\"button\" class=\"btn btn-default dropdown-toggle\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n" +
" İşlemler <span class=\"caret\"></span>\n" +
" </button>\n" +
" <ul class=\"dropdown-menu\">\n" +
" <li><a href=\"\">İşlem 1</a></li>\n" +
" <li><a href=\"\">İşlem 2</a></li>\n" +
" <li><a href=\"\">İşlem 3</a></li>\n" +
" <li role=\"separator\" class=\"divider\"></li>\n" +
" <li><a href=\"\">İşlem 4</a></li>\n" +
" </ul>\n" + " </ul>\n" +
" </div>\n" + " </div>\n" +
" <!-- end of personnel-info-left -->\n" +
" <div class=\"personnel-info-right\">\n" +
" <div class=\"info-block\">\n" +
" <div class=\"info-block-header\">\n" +
" <h2>Kişisel Bilgiler</h2>\n" +
" </div>\n" +
" <!-- end of info-block-header -->\n" +
" <div class=\"info-block-body\">\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Ad Soyad</dt>\n" +
" <dd>Gökhan Boranalp</dd>\n" +
" </dl>\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Cinsiyet</dt>\n" +
" <dd>Erkek</dd>\n" +
" </dl>\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Doğum Tarihi</dt>\n" +
" <dd>23/06/1970</dd>\n" +
" </dl>\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>İkamet Adresi</dt>\n" +
" <dd>Gülbahçe Mah. İzmir Teknoloji Geliştirme Bölgesi A9 Blok 215/A IYTE Campus, URLA/IZMIR</dd>\n" +
" </dl>\n" +
" </div>\n" +
" <!-- end of info-block-body -->\n" +
" </div>\n" +
" <!-- end of info block -->\n" +
" \n" + " \n" +
" <div class=\"info-block\">\n" +
" <div class=\"info-block-header\">\n" +
" <h2>İletişim Bilgileri</h2>\n" +
" </div>\n" +
" <!-- end of info-block-header -->\n" +
" <div class=\"info-block-body\">\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Ev Telefonu</dt>\n" +
" <dd>-</dd>\n" +
" </dl>\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Cep Telefonu</dt>\n" +
" <dd>(+90) 123 456 7890</dd>\n" +
" </dl>\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Mail Adresi</dt>\n" +
" <dd>gokhan@zetaops.io</dd>\n" +
" </dl>\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Diğer Mail Adresi</dt>\n" +
" <dd>-</dd>\n" +
" </dl>\n" +
" </div>\n" +
" <!-- end of info-block-body -->\n" +
" </div>\n" +
" <!-- end of info block -->\n" +
" </div>\n" +
" <!-- personnel-info-left -->\n" +
" </div>\n" +
" <!-- end of personnel-info-container -->\n" +
" \n" + " \n" +
" <hr>\n" + " <div class=\"personnel-info-container personnel-info-edit\">\n" +
" <div class=\"personnel-info-left\">\n" +
" <div class=\"generic-profile-picture\">\n" +
" <img src=\"../../img/sample-profile-pic.jpg\" />\n" +
" </div>\n" +
" <div style=\"margin-top:10px; text-align:center;\">\n" +
" <button type=\"button\" class=\"btn btn-primary\">Değiştir</button>\n" +
" <button type=\"button\" class=\"btn btn-danger\">Sil</button>\n" +
" </div>\n" +
" </div>\n" +
" <!-- end of personnel-info-left -->\n" +
" <div class=\"personnel-info-right\">\n" +
" <div class=\"info-block\">\n" +
" <div class=\"info-block-header\">\n" +
" <h2>Kişisel Bilgiler</h2>\n" +
" </div>\n" +
" <!-- end of info-block-header -->\n" +
" <div class=\"info-block-body\">\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Ad Soyad</dt>\n" +
" <dd><input type=\"text\" class=\"form-control\" placeholder=\"Gökhan Boranalp\"></dd>\n" +
" </dl>\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Pozisyon</dt>\n" +
" <dd><input type=\"text\" class=\"form-control\" placeholder=\"Pozisyon\"></dd>\n" +
" </dl>\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Cinsiyet</dt>\n" +
" <dd>\n" +
" <select class=\"form-control\">\n" +
" <option value=\"male\">Erkek</option>\n" +
" <option value=\"female\">Kadın</option>\n" +
" </select>\n" +
" </dd>\n" +
" </dl>\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Doğum Tarihi</dt>\n" +
" <dd>\n" +
" <input type=\"text\" class=\"form-control\" placeholder=\"Angular JS - Bootstrap Date Picker Eklenecek\">\n" +
" </dd>\n" +
" </dl>\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>İkamet Adresi</dt>\n" +
" <dd><input type=\"text\" class=\"form-control\" placeholder=\"Gülbahçe Mah. İzmir Teknoloji Geliştirme Bölgesi A9 Blok 215/A IYTE Campus, URLA/IZMIR\"></dd>\n" +
" </dl>\n" +
" </div>\n" +
" <!-- end of info-block-body -->\n" +
" </div>\n" +
" <!-- end of info block -->\n" +
" \n" +
" <div class=\"info-block\">\n" +
" <div class=\"info-block-header\">\n" +
" <h2>İletişim Bilgileri</h2>\n" +
" </div>\n" +
" <!-- end of info-block-header -->\n" +
" <div class=\"info-block-body\">\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Ev Telefonu</dt>\n" +
" <dd><input type=\"text\" class=\"form-control\" placeholder=\"\"></dd>\n" +
" </dl>\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Cep Telefonu</dt>\n" +
" <dd><input type=\"text\" class=\"form-control\" placeholder=\"(+90) 123 456 7890 (Phone number mask uygulanacak)\"></dd>\n" +
" </dl>\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Mail Adresi</dt>\n" +
" <dd><input type=\"text\" class=\"form-control\" placeholder=\"gokhan@zetaops.io\"></dd>\n" +
" </dl>\n" +
" <dl class=\"dl-horizontal\">\n" +
" <dt>Diğer Mail Adresi</dt>\n" +
" <dd><input type=\"text\" class=\"form-control\" placeholder=\"\"></dd>\n" +
" </dl>\n" +
" </div>\n" +
" <!-- end of info-block-body -->\n" +
" </div>\n" +
" <!-- end of info block -->\n" +
" </div>\n" +
" <!-- personnel-info-left -->\n" +
" </div>\n" +
" <!-- end of personnel-info-container -->\n" +
"\n" +
"\n" + "\n" +
" </div>\n" + " </div>\n" +
"</div>"); "</div>");
...@@ -383,11 +437,113 @@ angular.module("components/types/types_template.html", []).run(["$templateCache" ...@@ -383,11 +437,113 @@ angular.module("components/types/types_template.html", []).run(["$templateCache"
angular.module("shared/templates/add.html", []).run(["$templateCache", function($templateCache) { angular.module("shared/templates/add.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/add.html", $templateCache.put("shared/templates/add.html",
"<div class=\"col-md-12\">\n" + "<h1>{{ schema.title }}</h1>\n" +
" <h1>{{ schema.title }}</h1>\n" + "<form id=\"formgenerated\" name=\"formgenerated\" sf-schema=\"schema\" sf-form=\"form\" sf-model=\"model\"></form>\n" +
" <button type=\"button\" ng-repeat=\"node in listnodes\" ng-click=\"openmodal(node)\">Add <span>{{node}}</span></button>\n" + "<div ng-repeat=\"node in listnodes\">\n" +
" <form name=\"formgenerated\" sf-schema=\"schema\" sf-form=\"form\" sf-model=\"model\" ng-submit=\"onSubmit(formgenerated)\"></form>\n" + " <h3>{{ node.title }}\n" +
"</div>"); " <span>\n" +
" <a href=\"javascript:void(0);\" add-modal-for-list-node={{node.title}}>\n" +
" <i class=\"fa fa-plus-circle fa-fw\"></i>\n" +
" </a>\n" +
" </span>\n" +
" </h3>\n" +
" <table class=\"table table-bordered\" style=\"background-color:#fff;\">\n" +
" <thead>\n" +
" <tr>\n" +
" <th colspan=\"2\">#</th>\n" +
" <th ng-repeat=\"(key,value) in node.fields\">{{ value.title }}</th>\n" +
" <th>action</th>\n" +
" </tr>\n" +
" </thead>\n" +
" <tbody>\n" +
" <tr>\n" +
" <td width=\"60\">\n" +
" <label>\n" +
" <input type=\"checkbox\" style=\"zoom:1.5; margin:5px 0 0 8px;\">\n" +
" </label>\n" +
" </td>\n" +
" <th scope=\"row\" style=\"text-align:center\">1</th>\n" +
" <td ng-repeat=\"(key,value) in node.fields\">{{ value.value }}</td>\n" +
" <td>\n" +
" <a ng-href=\"#/crud/{{model}}/edit/{{object.key}}\">Edit</a><br>\n" +
" <a ng-href=\"#/crud/{{model}}/{{object.key}}\">Show</a>\n" +
" <a ng-href=\"#/crud/{{model}}/{{object.key}}\">Delete</a>\n" +
" </td>\n" +
" </tr>\n" +
" </tbody>\n" +
" </table>\n" +
"</div>\n" +
"\n" +
"<button id=\"submitbutton\" type=\"button\" class=\"btn btn-primary\" ng-click=\"onSubmit(formgenerated)\">Kaydet</button>\n" +
"<button type=\"button\" class=\"btn btn-warning\">Düzenle</button> <!-- todo: make it conditional -->\n" +
"<button type=\"button\" class=\"btn btn-danger\">İptal</button> <!-- todo: turn back to previous page -->");
}]);
angular.module("shared/templates/datefield.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/datefield.html",
"<div class=\"form-group schema-form-{{form.type}} {{form.htmlClass}}\"\n" +
" ng-class=\"{'has-error': form.disableErrorState !== true && hasError(), 'has-success': form.disableSuccessState !== true && hasSuccess(), 'has-feedback': form.feedback !== false }\">\n" +
" <label class=\"control-label {{form.labelHtmlClass}}\" ng-class=\"{'sr-only': !showTitle()}\"\n" +
" for=\"{{form.key.slice(-1)[0]}}\">{{form.title}}</label>\n" +
"\n" +
" <p class=\"input-group\">\n" +
" <input ng-if=\"!form.fieldAddonLeft && !form.fieldAddonRight\"\n" +
" ng-show=\"form.key\"\n" +
" step=\"any\"\n" +
" sf-changed=\"form\"\n" +
" placeholder=\"{{form.placeholder}}\"\n" +
" class=\"form-control {{form.fieldHtmlClass}} datepickerfield\"\n" +
" id=\"{{form.key.slice(-1)[0]}}\"\n" +
" ng-model-options=\"form.ngModelOptions\"\n" +
" ng-model=\"dt\"\n" +
" ng-disabled=\"form.readonly\"\n" +
" schema-validate=\"form\"\n" +
" name=\"{{form.key.slice(-1)[0]}}\"\n" +
" aria-describedby=\"{{form.key.slice(-1)[0] + 'Status'}}\"/>\n" +
"\n" +
" <span class=\"input-group-btn\">\n" +
" <button type=\"button\" class=\"btn btn-default\">\n" +
" <i class=\"glyphicon glyphicon-calendar\"></i>\n" +
" </button>\n" +
" </span>\n" +
" </p>\n" +
"\n" +
" <div ng-if=\"form.fieldAddonLeft || form.fieldAddonRight\"\n" +
" ng-class=\"{'input-group': (form.fieldAddonLeft || form.fieldAddonRight)}\">\n" +
" <span ng-if=\"form.fieldAddonLeft\"\n" +
" class=\"input-group-addon\"\n" +
" ng-bind-html=\"form.fieldAddonLeft\"></span>\n" +
" <input ng-show=\"form.key\"\n" +
" type=\"{{form.type}}\"\n" +
" step=\"any\"\n" +
" sf-changed=\"form\"\n" +
" placeholder=\"{{form.placeholder}}\"\n" +
" class=\"form-control {{form.fieldHtmlClass}}\"\n" +
" id=\"{{form.key.slice(-1)[0]}}\"\n" +
" ng-model-options=\"form.ngModelOptions\"\n" +
" ng-model=\"$$value$$\"\n" +
" ng-disabled=\"form.readonly\"\n" +
" schema-validate=\"form\"\n" +
" name=\"{{form.key.slice(-1)[0]}}\"\n" +
" aria-describedby=\"{{form.key.slice(-1)[0] + 'Status'}}\">\n" +
"\n" +
" <span ng-if=\"form.fieldAddonRight\"\n" +
" class=\"input-group-addon\"\n" +
" ng-bind-html=\"form.fieldAddonRight\"></span>\n" +
" </div>\n" +
"\n" +
" <span ng-if=\"form.feedback !== false\"\n" +
" class=\"form-control-feedback\"\n" +
" ng-class=\"evalInScope(form.feedback) || {'glyphicon': true, 'glyphicon-ok': hasSuccess(), 'glyphicon-remove': hasError() }\"\n" +
" aria-hidden=\"true\"></span>\n" +
"\n" +
" <span ng-if=\"hasError() || hasSuccess()\"\n" +
" id=\"{{form.key.slice(-1)[0] + 'Status'}}\"\n" +
" class=\"sr-only\">{{ hasSuccess() ? '(success)' : '(error)' }}</span>\n" +
"\n" +
" <div class=\"help-block\" sf-message=\"form.description\"></div>\n" +
"</div>\n" +
"");
}]); }]);
angular.module("shared/templates/directives/chat.html", []).run(["$templateCache", function($templateCache) { angular.module("shared/templates/directives/chat.html", []).run(["$templateCache", function($templateCache) {
...@@ -726,6 +882,30 @@ angular.module("shared/templates/directives/header-notification.html", []).run([ ...@@ -726,6 +882,30 @@ angular.module("shared/templates/directives/header-notification.html", []).run([
""); "");
}]); }]);
angular.module("shared/templates/directives/header-sub-menu-buttons.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/directives/header-sub-menu-buttons.html",
"<button type=\"button\" class=\"btn btn-primary\" ng-click=\"onSubmit(formgenerated)\">Kaydet</button>\n" +
"<button type=\"button\" class=\"btn btn-warning\">Düzenle</button>\n" +
"<button type=\"button\" class=\"btn btn-danger\">İptal</button>");
}]);
angular.module("shared/templates/directives/header-sub-menu.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/directives/header-sub-menu.html",
"<div class=\"manager-view-header container-fluid\">\n" +
" <ul class=\"breadcrumb\">\n" +
" <li><a href=\"#\">Personeller</a></li>\n" +
" <li><a href=\"#\">Liste</a></li>\n" +
" <li class=\"active\">Tablo</li>\n" +
" </ul>\n" +
" <!--<header-sub-menu-buttons></header-sub-menu-buttons>-->\n" +
" <div id=\"header-buttons\">\n" +
" <button type=\"button\" class=\"btn btn-primary\" ng-click=\"triggerSubmit()\">Kaydet</button>\n" +
" <button type=\"button\" class=\"btn btn-warning\">Düzenle</button>\n" +
" <button type=\"button\" class=\"btn btn-danger\">İptal</button>\n" +
" </div>\n" +
"</div>");
}]);
angular.module("shared/templates/directives/notifications.html", []).run(["$templateCache", function($templateCache) { angular.module("shared/templates/directives/notifications.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/directives/notifications.html", $templateCache.put("shared/templates/directives/notifications.html",
"<div class=\"panel-body\">\n" + "<div class=\"panel-body\">\n" +
...@@ -791,14 +971,14 @@ angular.module("shared/templates/directives/sidebar.html", []).run(["$templateCa ...@@ -791,14 +971,14 @@ angular.module("shared/templates/directives/sidebar.html", []).run(["$templateCa
"<div class=\"navbar-default sidebar\" role=\"navigation\">\n" + "<div class=\"navbar-default sidebar\" role=\"navigation\">\n" +
" <div class=\"sidebar-nav navbar-collapse\">\n" + " <div class=\"sidebar-nav navbar-collapse\">\n" +
" <div class=\"brand\">\n" + " <div class=\"brand\">\n" +
" <a href=\"\" class=\"logo\"><img src=\"../../../img/brand-logo.png\" /></a>\n" + " <a href=\"\" class=\"logo\"><img src=\"/img/brand-logo.png\" /></a>\n" +
" </div>\n" + " </div>\n" +
" <ul class=\"nav in\" id=\"side-menu\">\n" + " <ul class=\"nav in\" id=\"side-menu\">\n" +
" <sidebar-search></sidebar-search>\n" + " <!--<sidebar-search></sidebar-search>-->\n" +
" <li ui-sref-active=\"active\">\n" + " <li ui-sref-active=\"active\">\n" +
" <a href=\"#/dashboard\"><i class=\"fa fa-dashboard fa-fw\"></i> Dashboard</a>\n" + " <a href=\"#/dashboard\"><i class=\"fa fa-dashboard fa-fw\"></i> Dashboard</a>\n" +
" </li>\n" + " </li>\n" +
" <li ng-repeat=\"(key, item) in menuItems\" ng-class=\"{active: collapseVar == key}\">{{dropDown}}\n" + " <li ng-repeat=\"(key, item) in menuItems\" ng-class=\"{active: collapseVar == key}\">\n" +
" <a href=\"\" ng-click=\"check(key)\"><i class=\"fa fa-wrench fa-fw\"></i> {{ item }}<span\n" + " <a href=\"\" ng-click=\"check(key)\"><i class=\"fa fa-wrench fa-fw\"></i> {{ item }}<span\n" +
" class=\"fa arrow\"></span></a>\n" + " class=\"fa arrow\"></span></a>\n" +
" <ul class=\"nav nav-second-level\" collapse=\"collapseVar!={{key}}\">\n" + " <ul class=\"nav nav-second-level\" collapse=\"collapseVar!={{key}}\">\n" +
...@@ -811,51 +991,6 @@ angular.module("shared/templates/directives/sidebar.html", []).run(["$templateCa ...@@ -811,51 +991,6 @@ angular.module("shared/templates/directives/sidebar.html", []).run(["$templateCa
" </ul>\n" + " </ul>\n" +
" <!-- /.nav-second-level -->\n" + " <!-- /.nav-second-level -->\n" +
" </li>\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" + " </ul>\n" +
" </div>\n" + " </div>\n" +
" <!-- /.sidebar-collapse -->\n" + " <!-- /.sidebar-collapse -->\n" +
...@@ -1044,13 +1179,19 @@ angular.module("shared/templates/foreignKey.html", []).run(["$templateCache", fu ...@@ -1044,13 +1179,19 @@ angular.module("shared/templates/foreignKey.html", []).run(["$templateCache", fu
angular.module("shared/templates/linkedModelModalContent.html", []).run(["$templateCache", function($templateCache) { angular.module("shared/templates/linkedModelModalContent.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/linkedModelModalContent.html", $templateCache.put("shared/templates/linkedModelModalContent.html",
"<div class=\"modal-body\">\n" + "<div class=\"modal-body\">\n" +
" <form name=\"linkedModelForm\" sf-schema=\"schema\" sf-form=\"form\" sf-model=\"model\" ng-submit=\"onSubmit(linkedModelForm)\"></form>\n" + " <h3>{{schema.title}}</h3>\n" +
" <form name=\"linkedModelForm\" 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(linkedModelForm)\">OK</button>\n" +
" <button type=\"button\" class=\"btn btn-warning\" ng-click=\"cancel()\">Cancel</button>\n" +
"</div>"); "</div>");
}]); }]);
angular.module("shared/templates/listnodeModalContent.html", []).run(["$templateCache", function($templateCache) { angular.module("shared/templates/listnodeModalContent.html", []).run(["$templateCache", function($templateCache) {
$templateCache.put("shared/templates/listnodeModalContent.html", $templateCache.put("shared/templates/listnodeModalContent.html",
"<div class=\"modal-body\">\n" + "<div class=\"modal-body\">\n" +
" <h3>{{schema.title}}</h3>\n" +
" <form name=\"listnodeform\" sf-schema=\"schema\" sf-form=\"form\" sf-model=\"model\"></form>\n" + " <form name=\"listnodeform\" sf-schema=\"schema\" sf-form=\"form\" sf-model=\"model\"></form>\n" +
"</div>\n" + "</div>\n" +
"<div class=\"modal-footer\">\n" + "<div class=\"modal-footer\">\n" +
......
...@@ -14,20 +14,20 @@ ...@@ -14,20 +14,20 @@
<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" href="bower_components/angular-bootstrap/ui-bootstrap-csp.css">--> <link rel="stylesheet" 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.min.css">
<link rel="stylesheet" href="app.css"> <link rel="stylesheet" href="app.css">
<link href="styles/roboto/roboto.css" rel="stylesheet"> <link href="styles/roboto/roboto.css" rel="stylesheet">
<link href="styles/jquery-ui.min.css" rel="stylesheet">
<link rel="stylesheet" href="bower_components/metisMenu/dist/metisMenu.min.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/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/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/quantumui.min.css">-->
<!-- @endif --> <!-- @endif -->
<!-- @if NODE_ENV == 'PRODUCTION' --> <!-- @if NODE_ENV == 'PRODUCTION' -->
<link rel="stylesheet" href="css/app.css"> <link rel="stylesheet" href="css/app.css">
<link rel="stylesheet" href="css/roboto/roboto.css"> <link rel="stylesheet" href="css/roboto/roboto.css">
<link rel="stylesheet" href="css/jquery-ui.min.css">
<!-- @endif --> <!-- @endif -->
</head> </head>
<body> <body>
...@@ -51,23 +51,17 @@ ...@@ -51,23 +51,17 @@
<header-notification></header-notification> <header-notification></header-notification>
</nav> </nav>
<sidebar></sidebar> <sidebar ng-if="$root.loggedInUser"></sidebar>
<div class="manager-view"> <div class="manager-view">
<div class="manager-view-inner"> <div class="manager-view-inner">
<!-- manager-header --> <!-- manager-header -->
<div class="manager-view-header container-fluid"> <header-sub-menu ng-if="$root.loggedInUser"></header-sub-menu>
<ul class="breadcrumb">
<li><a href="#">Personeller</a></li>
<li><a href="#">Liste</a></li>
<li class="active">Tablo</li>
</ul>
<button type="button" class="btn btn-primary">Kaydet</button>
</div>
<!-- end of manager-header --> <!-- end of manager-header -->
<div class="manager-view-content"> <div class="manager-view-content">
<div class="row"> <div class="row">
<div class="main" ng-view> <div class="main" ng-view>
</div> </div>
</div> </div>
...@@ -78,20 +72,16 @@ ...@@ -78,20 +72,16 @@
<!-- @if NODE_ENV == 'DEVELOPMENT' --> <!-- @if NODE_ENV == 'DEVELOPMENT' -->
<script src="bower_components/angular/angular.min.js"></script> <script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/jquery/dist/jquery.min.js"></script> <script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/angular-route/angular-route.min.js"></script> <script src="bower_components/angular-route/angular-route.min.js"></script>
<script src="bower_components/angular-cookies/angular-cookies.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-resource/angular-resource.min.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap.min.js"></script> <script src="bower_components/angular-bootstrap/ui-bootstrap.min.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script> <script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.min.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/objectpath/lib/ObjectPath.js"></script>
<script src="bower_components/angular-schema-form/dist/schema-form.min.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.min.js"></script> <script src="bower_components/angular-schema-form/dist/bootstrap-decorator.min.js"></script>
<!--<script src="bower_components/angular-schema-form-datepicker/bootstrap-datepicker.min.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>
...@@ -100,13 +90,12 @@ ...@@ -100,13 +90,12 @@
<script src="bower_components/angular-loading-bar/build/loading-bar.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/metisMenu/dist/metisMenu.min.js"></script>
<script src="bower_components/Chart.js/Chart.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/scripts/theme.js"></script>
<script src="shared/scripts/jquery-ui.min.js"></script>
<script src="shared/directives.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>
...@@ -121,7 +110,6 @@ ...@@ -121,7 +110,6 @@
<script src="components/staff/staff_controller.js"></script> <script src="components/staff/staff_controller.js"></script>
<script src="components/student/student_controller.js"></script> <script src="components/student/student_controller.js"></script>
<script src="components/version/version.js"></script> <script src="components/version/version.js"></script>
<!--<script src="bower_components/quantumui/dist/js/quantumui-nojq.js"></script>-->
<!-- @endif --> <!-- @endif -->
<!-- @if NODE_ENV == 'PRODUCTION' --> <!-- @if NODE_ENV == 'PRODUCTION' -->
......
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