Merge branch 'master' of bitbucket.org:pensare/dbois
# Conflicts: # application/views/pages/login/login_view.php # public/js/lib/modules/login/loginModule.js # public/js/lib/modules/specials/notifyModule.js
This commit is contained in:
@@ -30,3 +30,5 @@ user_guide_src/cilexer/pycilexer.egg-info/*
|
||||
/tests/tests/
|
||||
/tests/results/
|
||||
/resources
|
||||
/.env
|
||||
/themeforest
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
defined( 'BASEPATH' ) OR exit( 'No direct script access allowed' );
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
@@ -58,7 +58,7 @@ $autoload['packages'] = array();
|
||||
|
|
||||
| $autoload['libraries'] = array('user_agent' => 'ua');
|
||||
*/
|
||||
$autoload['libraries'] = array();
|
||||
$autoload['libraries'] = array('database', 'session');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
@@ -132,4 +132,4 @@ $autoload['language'] = array();
|
||||
|
|
||||
| $autoload['model'] = array('first_model' => 'first');
|
||||
*/
|
||||
$autoload['model'] = array();
|
||||
$autoload['model'] = ['beheer/User'];
|
||||
|
||||
@@ -377,10 +377,10 @@ $config['encryption_key'] = '';
|
||||
| except for 'cookie_prefix' and 'cookie_httponly', which are ignored here.
|
||||
|
|
||||
*/
|
||||
$config['sess_driver'] = 'files';
|
||||
$config['sess_driver'] = 'database';
|
||||
$config['sess_cookie_name'] = 'ci_session';
|
||||
$config['sess_expiration'] = 7200;
|
||||
$config['sess_save_path'] = NULL;
|
||||
$config['sess_save_path'] = 'ci_sessions';
|
||||
$config['sess_match_ip'] = FALSE;
|
||||
$config['sess_time_to_update'] = 300;
|
||||
$config['sess_regenerate_destroy'] = FALSE;
|
||||
|
||||
@@ -75,10 +75,10 @@ $query_builder = TRUE;
|
||||
|
||||
$db['default'] = array(
|
||||
'dsn' => '',
|
||||
'hostname' => 'localhost',
|
||||
'username' => '',
|
||||
'password' => '',
|
||||
'database' => '',
|
||||
'hostname' => getenv('DB_HOST'),
|
||||
'username' => getenv('DB_USER'),
|
||||
'password' => getenv('DB_PASS'),
|
||||
'database' => getenv('DB_NAME'),
|
||||
'dbdriver' => 'mysqli',
|
||||
'dbprefix' => '',
|
||||
'pconnect' => FALSE,
|
||||
|
||||
@@ -12,6 +12,8 @@ class Login extends MY_Controller {
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->load->library( 'beheer/CreateUserSession' );
|
||||
}
|
||||
|
||||
public function index()
|
||||
@@ -23,7 +25,11 @@ class Login extends MY_Controller {
|
||||
|
||||
if ( ! $user ) return $this->json( FALSE );
|
||||
|
||||
$this->checkPassword( $user, $password );
|
||||
$passwordCheck = $this->checkPassword( $user, $password );
|
||||
|
||||
if ( $passwordCheck === TRUE ) $this->createusersession->handle( $user );
|
||||
|
||||
$this->json( $passwordCheck );
|
||||
}
|
||||
|
||||
private function checkPassword( $user, $password )
|
||||
@@ -32,7 +38,7 @@ class Login extends MY_Controller {
|
||||
|
||||
$saltedPassword = $this->User->saltedPasswordRecipe( $password, $user->salt );
|
||||
|
||||
if( $saltedPassword == $user->password ) return TRUE;
|
||||
if ( $saltedPassword == $user->password ) return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ class Main extends MY_Controller {
|
||||
|
||||
public function index()
|
||||
{
|
||||
if( $this->authenticated == FALSE ) return $this->showLoginPage();
|
||||
if( AUTHENTICATED == FALSE ) return $this->showLoginPage();
|
||||
|
||||
$this->load->view('main_view');
|
||||
}
|
||||
@@ -14,17 +14,23 @@ class MY_Controller extends CI_Controller {
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->load->library( 'beheer/RetrieveUserSession' );
|
||||
|
||||
$this->handle();
|
||||
}
|
||||
|
||||
private function handle()
|
||||
{
|
||||
|
||||
$this->retrieveusersession->handle();
|
||||
}
|
||||
|
||||
function clean_input( $post )
|
||||
{
|
||||
return str_replace( 'null', '', $this->db->escape_str( $this->input->post( $post ), TRUE ) );
|
||||
$value = $this->input->input_stream( $post, TRUE );
|
||||
|
||||
$denulledValue = str_replace( 'null', '', $value);
|
||||
|
||||
return $denulledValue;
|
||||
}
|
||||
|
||||
public function json($data)
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Pensare Software.
|
||||
* User: Theo Weijmer
|
||||
* Date: 19/12/2017
|
||||
* Time: 16:52
|
||||
*/
|
||||
|
||||
class CreateUserSession {
|
||||
|
||||
private $ci;
|
||||
private $user;
|
||||
private $sessionArray;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->ci =& get_instance();
|
||||
}
|
||||
|
||||
public function handle( $user )
|
||||
{
|
||||
$this->setUser( $user );
|
||||
|
||||
$this->setSessionArray();
|
||||
|
||||
$this->createSession();
|
||||
}
|
||||
|
||||
private function setUser( $user )
|
||||
{
|
||||
$this->user = $user;
|
||||
}
|
||||
|
||||
private function setSessionArray()
|
||||
{
|
||||
$this->sessionArray = [
|
||||
'userID' => $this->user->id,
|
||||
'role' => $this->user->role
|
||||
];
|
||||
}
|
||||
|
||||
private function createSession()
|
||||
{
|
||||
$this->ci->session->set_userdata( $this->sessionArray );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Pensare Software.
|
||||
* User: Theo Weijmer
|
||||
* Date: 19/12/2017
|
||||
* Time: 17:13
|
||||
*/
|
||||
|
||||
class RetrieveUserSession {
|
||||
|
||||
private $ci;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->ci =& get_instance();
|
||||
}
|
||||
|
||||
public function handle()
|
||||
{
|
||||
$this->setUserID();
|
||||
|
||||
$this->setRole();
|
||||
|
||||
$this->setAuthenticated();
|
||||
}
|
||||
|
||||
private function setUserID()
|
||||
{
|
||||
define( 'USERID', $this->ci->session->userID );
|
||||
}
|
||||
|
||||
private function setRole()
|
||||
{
|
||||
define( 'ROLE', $this->ci->session->role );
|
||||
}
|
||||
|
||||
private function setAuthenticated()
|
||||
{
|
||||
define( 'AUTHENTICATED', USERID ? TRUE : FALSE );
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by Pensare Software.
|
||||
* User: Theo Weijmer
|
||||
* Date: 15/12/2017
|
||||
* Time: 19:37
|
||||
*/
|
||||
|
||||
class User extends MY_Model {
|
||||
|
||||
protected $tablename = "users";
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function getUserByUsername( $username )
|
||||
{
|
||||
$user = $this->get( [
|
||||
'UCASE(username)' => strtoupper( $username )], FALSE, TRUE);
|
||||
|
||||
return $user;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
<!doctype html>
|
||||
<html class="no-js css-menubar" lang="en">
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimal-ui">
|
||||
<meta name="description" content="bootstrap admin template">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>** De Beleidsonderzoeker **</title>
|
||||
|
||||
<?php $this->load->view('partials/_css'); ?>
|
||||
|
||||
<?php $this->load->view('partials/_fonts'); ?>
|
||||
<script src="../../global/vendor/breakpoints/breakpoints.js"></script>
|
||||
<script>
|
||||
Breakpoints();
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="animsition dashboard">
|
||||
<nav class="site-navbar navbar navbar-default navbar-fixed-top navbar-mega" role="navigation">
|
||||
|
||||
<?php $this->load->view('partials/_navbar-header'); ?>
|
||||
|
||||
<div class="navbar-container container-fluid">
|
||||
<div class="collapse navbar-collapse navbar-collapse-toolbar" id="site-navbar-collapse">
|
||||
<?php $this->load->view('partials/_navbar-container/_navbar-toolbar'); ?>
|
||||
|
||||
<?php $this->load->view('partials/_navbar-container/_navbar-right'); ?>
|
||||
</div>
|
||||
|
||||
<!-- Site Navbar Seach -->
|
||||
<div class="collapse navbar-search-overlap" id="site-navbar-search">
|
||||
<form role="search">
|
||||
<div class="form-group">
|
||||
<div class="input-search">
|
||||
<i class="input-search-icon wb-search" aria-hidden="true"></i>
|
||||
<input type="text" class="form-control" name="site-search" placeholder="Search...">
|
||||
<button type="button" class="input-search-close icon wb-close" data-target="#site-navbar-search"
|
||||
data-toggle="collapse" aria-label="Close"></button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- End Site Navbar Seach -->
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</body>
|
||||
@@ -35,25 +35,28 @@
|
||||
<body class="animsition page-login-v3 layout-full">
|
||||
<?php $this->load->view('specials/notify_modal'); ?>
|
||||
<!-- Page -->
|
||||
<?php $this->load->view('specials/notifyme_modal'); ?>
|
||||
<div class="page vertical-align text-center" data-animsition-in="fade-in" data-animsition-out="fade-out">
|
||||
<div class="page-content vertical-align-middle animation-slide-top animation-duration-1">
|
||||
<div class="panel">
|
||||
<div class="panel" id="login-form">
|
||||
<div class="panel-body">
|
||||
<div class="brand">
|
||||
<img class="brand-img" src="css/images/logo_dbo.png" alt="...">
|
||||
<h2 class="brand-text font-size-18">projectbeheer</h2>
|
||||
</div>
|
||||
<form method="post" action="#" id="login-form">
|
||||
<div>
|
||||
<div class="form-group form-material floating" data-plugin="formMaterial">
|
||||
<input type="text" class="form-control" name="username" />
|
||||
<input type="text" class="form-control" name="email"
|
||||
data-bind="textInput:username" />
|
||||
<label class="floating-label">gebruikersnaam</label>
|
||||
</div>
|
||||
<div class="form-group form-material floating" data-plugin="formMaterial">
|
||||
<input type="password" class="form-control" name="password" />
|
||||
<input type="password" class="form-control" name="password"
|
||||
data-bind="textInput:password" />
|
||||
<label class="floating-label">wachtwoord</label>
|
||||
</div>
|
||||
<button type="button" class="btn btn-primary btn-block btn-lg mt-40" data-bind="click:login">Log in</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -103,6 +106,7 @@
|
||||
<script src="js/vendor/Plugin/switchery.js"></script>
|
||||
<script src="js/vendor/Plugin/jquery-placeholder.js"></script>
|
||||
<script src="js/vendor/Plugin/material.js"></script>
|
||||
|
||||
<script src="js/vendor/Knockout.min.js"></script>
|
||||
<script src="js/lib/modules/login/loginModule.js"></script>
|
||||
<script src="js/lib/modules/specials/notifyModule.js"></script>
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<link rel="apple-touch-icon" href="../assets/images/apple-touch-icon.png">
|
||||
<link rel="shortcut icon" href="../assets/images/favicon.ico">
|
||||
|
||||
<!-- Stylesheets -->
|
||||
<link rel="stylesheet" href="../../global/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="../../global/css/bootstrap-extend.min.css">
|
||||
<link rel="stylesheet" href="../assets/css/site.min.css">
|
||||
|
||||
<!-- Plugins -->
|
||||
<link rel="stylesheet" href="../../global/vendor/animsition/animsition.css">
|
||||
<link rel="stylesheet" href="../../global/vendor/asscrollable/asScrollable.css">
|
||||
<link rel="stylesheet" href="../../global/vendor/switchery/switchery.css">
|
||||
<link rel="stylesheet" href="../../global/vendor/intro-js/introjs.css">
|
||||
<link rel="stylesheet" href="../../global/vendor/slidepanel/slidePanel.css">
|
||||
<link rel="stylesheet" href="../../global/vendor/flag-icon-css/flag-icon.css">
|
||||
<link rel="stylesheet" href="../../global/vendor/chartist/chartist.css">
|
||||
<link rel="stylesheet" href="../../global/vendor/jvectormap/jquery-jvectormap.css">
|
||||
<link rel="stylesheet" href="../../global/vendor/chartist-plugin-tooltip/chartist-plugin-tooltip.css">
|
||||
<link rel="stylesheet" href="../assets/examples/css/dashboard/v1.css">
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<link rel="stylesheet" href="../../global/fonts/weather-icons/weather-icons.css">
|
||||
<link rel="stylesheet" href="../../global/fonts/web-icons/web-icons.min.css">
|
||||
<link rel="stylesheet" href="../../global/fonts/brand-icons/brand-icons.min.css">
|
||||
<link rel='stylesheet' href='http://fonts.googleapis.com/css?family=Roboto:300,400,500,300italic'>
|
||||
|
||||
@@ -0,0 +1,221 @@
|
||||
<ul class="nav navbar-toolbar navbar-right navbar-toolbar-right">
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link" data-toggle="dropdown" href="javascript:void(0)" data-animation="scale-up"
|
||||
aria-expanded="false" role="button">
|
||||
<span class="flag-icon flag-icon-us"></span>
|
||||
</a>
|
||||
<div class="dropdown-menu" role="menu">
|
||||
<a class="dropdown-item" href="javascript:void(0)" role="menuitem">
|
||||
<span class="flag-icon flag-icon-gb"></span> English</a>
|
||||
<a class="dropdown-item" href="javascript:void(0)" role="menuitem">
|
||||
<span class="flag-icon flag-icon-fr"></span> French</a>
|
||||
<a class="dropdown-item" href="javascript:void(0)" role="menuitem">
|
||||
<span class="flag-icon flag-icon-cn"></span> Chinese</a>
|
||||
<a class="dropdown-item" href="javascript:void(0)" role="menuitem">
|
||||
<span class="flag-icon flag-icon-de"></span> German</a>
|
||||
<a class="dropdown-item" href="javascript:void(0)" role="menuitem">
|
||||
<span class="flag-icon flag-icon-nl"></span> Dutch</a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link navbar-avatar" data-toggle="dropdown" href="#" aria-expanded="false"
|
||||
data-animation="scale-up" role="button">
|
||||
<span class="avatar avatar-online">
|
||||
<img src="../../global/portraits/5.jpg" alt="...">
|
||||
<i></i>
|
||||
</span>
|
||||
</a>
|
||||
<div class="dropdown-menu" role="menu">
|
||||
<a class="dropdown-item" href="javascript:void(0)" role="menuitem"><i class="icon wb-user" aria-hidden="true"></i> Profile</a>
|
||||
<a class="dropdown-item" href="javascript:void(0)" role="menuitem"><i class="icon wb-payment" aria-hidden="true"></i> Billing</a>
|
||||
<a class="dropdown-item" href="javascript:void(0)" role="menuitem"><i class="icon wb-settings" aria-hidden="true"></i> Settings</a>
|
||||
<div class="dropdown-divider" role="presentation"></div>
|
||||
<a class="dropdown-item" href="javascript:void(0)" role="menuitem"><i class="icon wb-power" aria-hidden="true"></i> Logout</a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link" data-toggle="dropdown" href="javascript:void(0)" title="Notifications"
|
||||
aria-expanded="false" data-animation="scale-up" role="button">
|
||||
<i class="icon wb-bell" aria-hidden="true"></i>
|
||||
<span class="badge badge-pill badge-danger up">5</span>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right dropdown-menu-media" role="menu">
|
||||
<div class="dropdown-menu-header">
|
||||
<h5>NOTIFICATIONS</h5>
|
||||
<span class="badge badge-round badge-danger">New 5</span>
|
||||
</div>
|
||||
|
||||
<div class="list-group">
|
||||
<div data-role="container">
|
||||
<div data-role="content">
|
||||
<a class="list-group-item dropdown-item" href="javascript:void(0)" role="menuitem">
|
||||
<div class="media">
|
||||
<div class="pr-10">
|
||||
<i class="icon wb-order bg-red-600 white icon-circle" aria-hidden="true"></i>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h6 class="media-heading">A new order has been placed</h6>
|
||||
<time class="media-meta" datetime="2018-06-12T20:50:48+08:00">5 hours ago</time>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="list-group-item dropdown-item" href="javascript:void(0)" role="menuitem">
|
||||
<div class="media">
|
||||
<div class="pr-10">
|
||||
<i class="icon wb-user bg-green-600 white icon-circle" aria-hidden="true"></i>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h6 class="media-heading">Completed the task</h6>
|
||||
<time class="media-meta" datetime="2018-06-11T18:29:20+08:00">2 days ago</time>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="list-group-item dropdown-item" href="javascript:void(0)" role="menuitem">
|
||||
<div class="media">
|
||||
<div class="pr-10">
|
||||
<i class="icon wb-settings bg-red-600 white icon-circle" aria-hidden="true"></i>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h6 class="media-heading">Settings updated</h6>
|
||||
<time class="media-meta" datetime="2018-06-11T14:05:00+08:00">2 days ago</time>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="list-group-item dropdown-item" href="javascript:void(0)" role="menuitem">
|
||||
<div class="media">
|
||||
<div class="pr-10">
|
||||
<i class="icon wb-calendar bg-blue-600 white icon-circle" aria-hidden="true"></i>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h6 class="media-heading">Event started</h6>
|
||||
<time class="media-meta" datetime="2018-06-10T13:50:18+08:00">3 days ago</time>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="list-group-item dropdown-item" href="javascript:void(0)" role="menuitem">
|
||||
<div class="media">
|
||||
<div class="pr-10">
|
||||
<i class="icon wb-chat bg-orange-600 white icon-circle" aria-hidden="true"></i>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h6 class="media-heading">Message received</h6>
|
||||
<time class="media-meta" datetime="2018-06-10T12:34:48+08:00">3 days ago</time>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-menu-footer">
|
||||
<a class="dropdown-menu-footer-btn" href="javascript:void(0)" role="button">
|
||||
<i class="icon wb-settings" aria-hidden="true"></i>
|
||||
</a>
|
||||
<a class="dropdown-item" href="javascript:void(0)" role="menuitem">
|
||||
All notifications
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link" data-toggle="dropdown" href="javascript:void(0)" title="Messages"
|
||||
aria-expanded="false" data-animation="scale-up" role="button">
|
||||
<i class="icon wb-envelope" aria-hidden="true"></i>
|
||||
<span class="badge badge-pill badge-info up">3</span>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right dropdown-menu-media" role="menu">
|
||||
<div class="dropdown-menu-header" role="presentation">
|
||||
<h5>MESSAGES</h5>
|
||||
<span class="badge badge-round badge-info">New 3</span>
|
||||
</div>
|
||||
|
||||
<div class="list-group" role="presentation">
|
||||
<div data-role="container">
|
||||
<div data-role="content">
|
||||
<a class="list-group-item" href="javascript:void(0)" role="menuitem">
|
||||
<div class="media">
|
||||
<div class="pr-10">
|
||||
<span class="avatar avatar-sm avatar-online">
|
||||
<img src="../../global/portraits/2.jpg" alt="..." />
|
||||
<i></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h6 class="media-heading">Mary Adams</h6>
|
||||
<div class="media-meta">
|
||||
<time datetime="2018-06-17T20:22:05+08:00">30 minutes ago</time>
|
||||
</div>
|
||||
<div class="media-detail">Anyways, i would like just do it</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="list-group-item" href="javascript:void(0)" role="menuitem">
|
||||
<div class="media">
|
||||
<div class="pr-10">
|
||||
<span class="avatar avatar-sm avatar-off">
|
||||
<img src="../../global/portraits/3.jpg" alt="..." />
|
||||
<i></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h6 class="media-heading">Caleb Richards</h6>
|
||||
<div class="media-meta">
|
||||
<time datetime="2018-06-17T12:30:30+08:00">12 hours ago</time>
|
||||
</div>
|
||||
<div class="media-detail">I checheck the document. But there seems</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="list-group-item" href="javascript:void(0)" role="menuitem">
|
||||
<div class="media">
|
||||
<div class="pr-10">
|
||||
<span class="avatar avatar-sm avatar-busy">
|
||||
<img src="../../global/portraits/4.jpg" alt="..." />
|
||||
<i></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h6 class="media-heading">June Lane</h6>
|
||||
<div class="media-meta">
|
||||
<time datetime="2018-06-16T18:38:40+08:00">2 days ago</time>
|
||||
</div>
|
||||
<div class="media-detail">Lorem ipsum Id consectetur et minim</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="list-group-item" href="javascript:void(0)" role="menuitem">
|
||||
<div class="media">
|
||||
<div class="pr-10">
|
||||
<span class="avatar avatar-sm avatar-away">
|
||||
<img src="../../global/portraits/5.jpg" alt="..." />
|
||||
<i></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="media-body">
|
||||
<h6 class="media-heading">Edward Fletcher</h6>
|
||||
<div class="media-meta">
|
||||
<time datetime="2018-06-15T20:34:48+08:00">3 days ago</time>
|
||||
</div>
|
||||
<div class="media-detail">Dolor et irure cupidatat commodo nostrud nostrud.</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-menu-footer" role="presentation">
|
||||
<a class="dropdown-menu-footer-btn" href="javascript:void(0)" role="button">
|
||||
<i class="icon wb-settings" aria-hidden="true"></i>
|
||||
</a>
|
||||
<a class="dropdown-item" href="javascript:void(0)" role="menuitem">
|
||||
See all messages
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="nav-item" id="toggleChat">
|
||||
<a class="nav-link" data-toggle="site-sidebar" href="javascript:void(0)" title="Chat"
|
||||
data-url="site-sidebar.tpl">
|
||||
<i class="icon wb-chat" aria-hidden="true"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,188 @@
|
||||
<ul class="nav navbar-toolbar">
|
||||
<li class="nav-item hidden-float" id="toggleMenubar">
|
||||
<a class="nav-link" data-toggle="menubar" href="#" role="button">
|
||||
<i class="icon hamburger hamburger-arrow-left">
|
||||
<span class="sr-only">Toggle menubar</span>
|
||||
<span class="hamburger-bar"></span>
|
||||
</i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item hidden-sm-down" id="toggleFullscreen">
|
||||
<a class="nav-link icon icon-fullscreen" data-toggle="fullscreen" href="#" role="button">
|
||||
<span class="sr-only">Toggle fullscreen</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item hidden-float">
|
||||
<a class="nav-link icon wb-search" data-toggle="collapse" href="#" data-target="#site-navbar-search"
|
||||
role="button">
|
||||
<span class="sr-only">Toggle Search</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item dropdown dropdown-fw dropdown-mega">
|
||||
<a class="nav-link" data-toggle="dropdown" href="#" aria-expanded="false" data-animation="fade"
|
||||
role="button">Mega <i class="icon wb-chevron-down-mini" aria-hidden="true"></i></a>
|
||||
<div class="dropdown-menu" role="menu">
|
||||
<div class="mega-content">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h5>UI Kit</h5>
|
||||
<ul class="blocks-2">
|
||||
<li class="mega-menu m-0">
|
||||
<ul class="list-icons">
|
||||
<li><i class="wb-chevron-right-mini" aria-hidden="true"></i>
|
||||
<a
|
||||
href="advanced/animation.html">Animation</a>
|
||||
</li>
|
||||
<li><i class="wb-chevron-right-mini" aria-hidden="true"></i>
|
||||
<a
|
||||
href="uikit/buttons.html">Buttons</a>
|
||||
</li>
|
||||
<li><i class="wb-chevron-right-mini" aria-hidden="true"></i>
|
||||
<a
|
||||
href="uikit/colors.html">Colors</a>
|
||||
</li>
|
||||
<li><i class="wb-chevron-right-mini" aria-hidden="true"></i>
|
||||
<a
|
||||
href="uikit/dropdowns.html">Dropdowns</a>
|
||||
</li>
|
||||
<li><i class="wb-chevron-right-mini" aria-hidden="true"></i>
|
||||
<a
|
||||
href="uikit/icons.html">Icons</a>
|
||||
</li>
|
||||
<li><i class="wb-chevron-right-mini" aria-hidden="true"></i>
|
||||
<a
|
||||
href="advanced/lightbox.html">Lightbox</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="mega-menu m-0">
|
||||
<ul class="list-icons">
|
||||
<li><i class="wb-chevron-right-mini" aria-hidden="true"></i>
|
||||
<a
|
||||
href="uikit/modals.html">Modals</a>
|
||||
</li>
|
||||
<li><i class="wb-chevron-right-mini" aria-hidden="true"></i>
|
||||
<a
|
||||
href="uikit/panel-structure.html">Panels</a>
|
||||
</li>
|
||||
<li><i class="wb-chevron-right-mini" aria-hidden="true"></i>
|
||||
<a
|
||||
href="structure/overlay.html">Overlay</a>
|
||||
</li>
|
||||
<li><i class="wb-chevron-right-mini" aria-hidden="true"></i>
|
||||
<a
|
||||
href="uikit/tooltip-popover.html ">Tooltips</a>
|
||||
</li>
|
||||
<li><i class="wb-chevron-right-mini" aria-hidden="true"></i>
|
||||
<a
|
||||
href="advanced/scrollable.html">Scrollable</a>
|
||||
</li>
|
||||
<li><i class="wb-chevron-right-mini" aria-hidden="true"></i>
|
||||
<a
|
||||
href="uikit/typography.html">Typography</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h5>Media
|
||||
<span class="badge badge-pill badge-success">4</span>
|
||||
</h5>
|
||||
<ul class="blocks-3">
|
||||
<li>
|
||||
<a class="thumbnail m-0" href="javascript:void(0)">
|
||||
<img class="w-full" src="../../global/photos/placeholder.png" alt="..." />
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="thumbnail m-0" href="javascript:void(0)">
|
||||
<img class="w-full" src="../../global/photos/placeholder.png" alt="..." />
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="thumbnail m-0" href="javascript:void(0)">
|
||||
<img class="w-full" src="../../global/photos/placeholder.png" alt="..." />
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="thumbnail m-0" href="javascript:void(0)">
|
||||
<img class="w-full" src="../../global/photos/placeholder.png" alt="..." />
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="thumbnail m-0" href="javascript:void(0)">
|
||||
<img class="w-full" src="../../global/photos/placeholder.png" alt="..." />
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="thumbnail m-0" href="javascript:void(0)">
|
||||
<img class="w-full" src="../../global/photos/placeholder.png" alt="..." />
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h5 class="mb-0">Accordion</h5>
|
||||
<!-- Accordion -->
|
||||
<div class="panel-group panel-group-simple" id="siteMegaAccordion" aria-multiselectable="true"
|
||||
role="tablist">
|
||||
<div class="panel">
|
||||
<div class="panel-heading" id="siteMegaAccordionHeadingOne" role="tab">
|
||||
<a class="panel-title" data-toggle="collapse" href="#siteMegaCollapseOne" data-parent="#siteMegaAccordion"
|
||||
aria-expanded="false" aria-controls="siteMegaCollapseOne">
|
||||
Collapsible Group Item #1
|
||||
</a>
|
||||
</div>
|
||||
<div class="panel-collapse collapse" id="siteMegaCollapseOne" aria-labelledby="siteMegaAccordionHeadingOne"
|
||||
role="tabpanel">
|
||||
<div class="panel-body">
|
||||
De moveat laudatur vestra parum doloribus labitur sentire partes, eripuit praesenti
|
||||
congressus ostendit alienae, voluptati ornateque accusamus
|
||||
clamat reperietur convicia albucius.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel">
|
||||
<div class="panel-heading" id="siteMegaAccordionHeadingTwo" role="tab">
|
||||
<a class="panel-title collapsed" data-toggle="collapse" href="#siteMegaCollapseTwo"
|
||||
data-parent="#siteMegaAccordion" aria-expanded="false"
|
||||
aria-controls="siteMegaCollapseTwo">
|
||||
Collapsible Group Item #2
|
||||
</a>
|
||||
</div>
|
||||
<div class="panel-collapse collapse" id="siteMegaCollapseTwo" aria-labelledby="siteMegaAccordionHeadingTwo"
|
||||
role="tabpanel">
|
||||
<div class="panel-body">
|
||||
Praestabiliorem. Pellat excruciant legantur ullum leniter vacare foris voluptate
|
||||
loco ignavi, credo videretur multoque choro fatemur mortis
|
||||
animus adoptionem, bello statuat expediunt naturales.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-heading" id="siteMegaAccordionHeadingThree" role="tab">
|
||||
<a class="panel-title collapsed" data-toggle="collapse" href="#siteMegaCollapseThree"
|
||||
data-parent="#siteMegaAccordion" aria-expanded="false"
|
||||
aria-controls="siteMegaCollapseThree">
|
||||
Collapsible Group Item #3
|
||||
</a>
|
||||
</div>
|
||||
<div class="panel-collapse collapse" id="siteMegaCollapseThree" aria-labelledby="siteMegaAccordionHeadingThree"
|
||||
role="tabpanel">
|
||||
<div class="panel-body">
|
||||
Horum, antiquitate perciperet d conspectum locus obruamus animumque perspici probabis
|
||||
suscipere. Desiderat magnum, contenta poena desiderant
|
||||
concederetur menandri damna disputandum corporum.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Accordion -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,20 @@
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggler hamburger hamburger-close navbar-toggler-left hided"
|
||||
data-toggle="menubar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="hamburger-bar"></span>
|
||||
</button>
|
||||
<button type="button" class="navbar-toggler collapsed" data-target="#site-navbar-collapse"
|
||||
data-toggle="collapse">
|
||||
<i class="icon wb-more-horizontal" aria-hidden="true"></i>
|
||||
</button>
|
||||
<div class="navbar-brand navbar-brand-center site-gridmenu-toggle" data-toggle="gridmenu">
|
||||
<img class="navbar-brand-logo" src="../assets/images/logo.png" title="Remark">
|
||||
<span class="navbar-brand-text hidden-xs-down"> Remark</span>
|
||||
</div>
|
||||
<button type="button" class="navbar-toggler collapsed" data-target="#site-navbar-search"
|
||||
data-toggle="collapse">
|
||||
<span class="sr-only">Toggle Search</span>
|
||||
<i class="icon wb-search" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
@@ -0,0 +1,27 @@
|
||||
<div class="modal modal-3d-flip-vertical" tabindex="-1" role="dialog" id="notify-me" data-bind="css:modalClass">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" data-bind="text:title"></h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p data-bind="text:message"></p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<!-- ko if : notify() -->
|
||||
<button type="button" class="btn btn-primary"
|
||||
data-bind="text:yesText; click:closeYes"></button>
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal"
|
||||
data-bind="text:noText; click:closeNo"></button>
|
||||
<!-- /ko -->
|
||||
<!-- ko if : ! notify() -->
|
||||
<button type="button" class="btn btn-primary" data-dismiss="modal"
|
||||
data-bind="click:closeOk">OK</button>
|
||||
<!-- /ko -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
+2
-1
@@ -11,7 +11,8 @@
|
||||
"source": "https://github.com/bcit-ci/CodeIgniter"
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.7"
|
||||
"php": ">=5.3.7",
|
||||
"vlucas/phpdotenv": "^2.4"
|
||||
},
|
||||
"suggest": {
|
||||
"paragonie/random_compat": "Provides better randomness in PHP 5.x"
|
||||
|
||||
+16
-1
@@ -1,4 +1,19 @@
|
||||
<?php
|
||||
/**
|
||||
* Load all enviroment variables
|
||||
*
|
||||
* using: vlucas/phpdotenv (composer require vlucas/phpdotenv)
|
||||
*/
|
||||
|
||||
include_once('../vendor/autoload.php');
|
||||
|
||||
//$dotenv = new Dotenv\Dotenv(__DIR__);
|
||||
$dotenv = new Dotenv\Dotenv('../');
|
||||
$dotenv->load();
|
||||
|
||||
$dotenv->required(['DB_HOST', 'DB_NAME', 'DB_USER', 'DB_PASS', 'ENVIRONMENT']);
|
||||
|
||||
|
||||
/**
|
||||
* CodeIgniter
|
||||
*
|
||||
@@ -53,7 +68,7 @@
|
||||
*
|
||||
* NOTE: If you change these, also change the error_reporting() code below
|
||||
*/
|
||||
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
|
||||
define('ENVIRONMENT', getenv('ENVIRONMENT'));
|
||||
|
||||
/*
|
||||
*---------------------------------------------------------------
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
* Time: 11:17
|
||||
*/
|
||||
var dbo = {};
|
||||
|
||||
$( function () {
|
||||
|
||||
dbo.loginModel = {
|
||||
@@ -16,9 +17,8 @@ $( function () {
|
||||
dbo.loginService.login();
|
||||
}
|
||||
}
|
||||
|
||||
console.log( 'text' );
|
||||
ko.applyBindings( dbo.loginModel, document.getElementById( "login-form" ) );
|
||||
|
||||
} );
|
||||
|
||||
dbo.loginService = {
|
||||
@@ -28,11 +28,13 @@ dbo.loginService = {
|
||||
var self = dbo.loginService;
|
||||
var vm = dbo.loginModel;
|
||||
|
||||
self.validateInput( function ( data ) {
|
||||
if ( !data ) return self.notifyWrongPassword();
|
||||
self.validateInput( function ( submitDATA ) {
|
||||
if ( ! submitDATA ) return self.notifyWrongPassword();
|
||||
|
||||
ds.login( submitDATA, function ( data ) {
|
||||
if ( data ) return location.reload();
|
||||
|
||||
self.notifyWrongPassword();
|
||||
} );
|
||||
} );
|
||||
|
||||
@@ -55,8 +57,7 @@ dbo.loginService = {
|
||||
notifyWrongPassword: function () {
|
||||
notifyMe( {
|
||||
title : 'Login fout',
|
||||
message: 'Gebruikersnaam / wachtwoord komen niet overeen',
|
||||
alert : true
|
||||
message: 'Gebruikersnaam / wachtwoord komen niet overeen'
|
||||
} );
|
||||
}
|
||||
};
|
||||
|
||||
@@ -11,14 +11,15 @@ var notifyMe = function ( options, callback ) {
|
||||
|
||||
dbo.notifyModel = {
|
||||
|
||||
title : ko.observable( null ),
|
||||
message : ko.observable( null ),
|
||||
notify : ko.observable( false ),
|
||||
alert : ko.observable( false ),
|
||||
noText : ko.observable( null ),
|
||||
yesText : ko.observable( null ),
|
||||
closeText: ko.observable( null ),
|
||||
callback : null,
|
||||
title : ko.observable( null ),
|
||||
message : ko.observable( null ),
|
||||
notify : ko.observable( false ),
|
||||
alert : ko.observable( false ),
|
||||
noText : ko.observable( null ),
|
||||
yesText : ko.observable( null ),
|
||||
closeText : ko.observable( null ),
|
||||
modalClass: ko.observable( null ),
|
||||
callback : null,
|
||||
|
||||
init: function ( options, callback ) {
|
||||
var vm = dbo.notifyModel;
|
||||
@@ -36,11 +37,10 @@ dbo.notifyModel = {
|
||||
vm.title( options.title || '' );
|
||||
vm.message( options.message || '' );
|
||||
vm.notify( options.notify || false );
|
||||
vm.alert( options.alert || false );
|
||||
vm.noText( options.noText || 'Nee' );
|
||||
vm.yesText( options.yesText || 'Ja' );
|
||||
vm.closeText( options.closeText || 'ok' );
|
||||
vm.modalClass( options.modalClass || 'modal-primary');
|
||||
vm.modalClass( options.modalClass || 'modal-primary' )
|
||||
},
|
||||
|
||||
closeNo: function () {
|
||||
|
||||
Reference in New Issue
Block a user