├── .gitattributes ├── .gitignore ├── .htaccess ├── app ├── Controllers │ ├── Branchdetails.php │ ├── Branchissues.php │ ├── Errors.php │ ├── Index.php │ ├── Logins.php │ └── Users.php ├── Models │ ├── Branchdetail.php │ ├── Branchissue.php │ └── UserModel.php └── helpers.php ├── bank-db-dump.sql ├── bootstrap └── autoload.php ├── composer.json ├── composer.lock ├── config ├── app.php ├── database.php └── mail.php ├── include ├── FormHelper.php ├── Pagination.php └── Validator.php ├── index.php ├── libs ├── Auth.php ├── BaseController.php ├── BaseModel.php ├── Bootstrap.php ├── Database.php ├── Exceptions │ └── HttpPageNotFoundException.php ├── Hash.php ├── Session.php └── View.php ├── public ├── css │ ├── bootstrap.min.css │ └── style.css ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ └── glyphicons-halflings-regular.woff ├── images │ ├── favicon.ico │ ├── favicon.png │ ├── logo.jpg │ ├── sort_asc.png │ └── sort_desc.png └── js │ ├── angular.min.js │ ├── angular.min.js.map │ ├── bootstrap.min.js │ ├── html5shiv.js │ ├── jquery.min.js │ └── mycustom.js ├── readme.md ├── resources └── views │ ├── branch_detail │ ├── add.php │ ├── index.php │ ├── js │ │ └── details.js │ └── show.php │ ├── branch_issue │ ├── add.php │ ├── index.php │ └── show.php │ ├── error │ └── index.php │ ├── footer.php │ ├── header.php │ ├── index │ └── index.php │ ├── login │ ├── css │ │ └── login.css │ └── index.php │ ├── navigation.php │ ├── slider.php │ └── user │ ├── add.php │ ├── edit.php │ └── index.php └── tmp ├── cache └── .gitignore ├── logs └── .gitignore └── session └── .gitignore /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.css linguist-vendored 3 | *.scss linguist-vendored 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /vendor 2 | /node_modules 3 | /public/storage 4 | Homestead.yaml 5 | Homestead.json 6 | .env 7 | .idea 8 | /bower_components 9 | -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | php_flag display_errors on 2 | php_value error_reporting 9999 3 | RewriteEngine on 4 | RewriteCond %{REQUEST_FILENAME} !-d 5 | RewriteCond %{REQUEST_FILENAME} !-f 6 | RewriteCond %{REQUEST_FILENAME} !-l 7 | RewriteRule ^(.+)$ index.php?url=$1&direction=asc [QSA,L] 8 | -------------------------------------------------------------------------------- /app/Controllers/Branchdetails.php: -------------------------------------------------------------------------------- 1 | view->js=array('branch_detail/js/details.js'); 20 | } 21 | 22 | public function index($limit=5) 23 | { 24 | $page=(isset($_GET['page'])? $_GET['page']: 1); 25 | $param['sort']=isset($_GET['sort'])? $_GET['sort']:'id'; 26 | $param['direction']=isset($_GET['direction'])? $_GET['direction']: 'asc'; 27 | if(isset($_GET['search_query'])){ 28 | return $this->search($page,$limit,$param); 29 | } 30 | unset ($_GET['search_query']); 31 | $totalRecord=$this->model->totalRecord(); 32 | $pagination=new \Pagination($page,$limit,$totalRecord); 33 | $this->view->offSet=$pagination->offset(); 34 | if ($page < 1 || $page > $pagination->totalPages() ){ 35 | $this->index($page=1); 36 | exit; 37 | } 38 | $this->view->createLinks=$pagination->createPaginationArea($pagination,$page); 39 | $this->view->details=$this->model->branchList($limit,$pagination->offset(),$param); 40 | $this->view->render("branch_detail/index"); 41 | } 42 | public function add(){ 43 | $this->view->render('branch_detail/add'); 44 | } 45 | public function store(){ 46 | if(($_SERVER['REQUEST_METHOD']==='POST') && isset($_POST['add-issue']) ){ 47 | try{ 48 | $form=new \FormHelper(); 49 | $form->post('branch_name') 50 | ->Validator('isRequired') 51 | ->Validator('minLength',3) 52 | ->Validator('maxLength',80) 53 | ->post('branch_manager') 54 | ->Validator('isRequired') 55 | ->Validator('minLength',3) 56 | ->Validator('maxLength',80) 57 | ->post('location') 58 | ->Validator('isRequired') 59 | ->Validator('minLength',5) 60 | ->post('email') 61 | ->Validator('isEmail'); 62 | $form->submit(); 63 | $data=$form->fetch(); 64 | $bd=new \Branchdetail(); 65 | $bd->branch_name=$data['branch_name']; 66 | $bd->branch_manager=$data['branch_manager']; 67 | $bd->location=$data['location']; 68 | $bd->location=$data['location']; 69 | $bd->email=$data['email']; 70 | $bd->save(); 71 | Session::set('message',"New Branch Added Successfully!"); 72 | header("location:".URL.'branchdetail/'); 73 | }catch (\Exception $e){ 74 | // throw new Exception($e->getMessage()); 75 | header('location:'.URL.'branchdetail/add'); 76 | } 77 | 78 | }else{ 79 | header('location: '.URL); 80 | } 81 | } 82 | public function sendmessage($id){ 83 | try{ 84 | $form=new \FormHelper(); 85 | $form->post('client-full-name') 86 | ->Validator('isRequired') 87 | ->Validator('minLength',3) 88 | ->Validator('maxLength',80) 89 | ->post('branch_manager') 90 | ->Validator('isRequired') 91 | ->Validator('minLength',3) 92 | ->Validator('maxLength',80) 93 | ->post('subject') 94 | ->Validator('isRequired') 95 | ->Validator('minLength',5) 96 | ->post('message') 97 | ->Validator('isRequired') 98 | ->Validator('minLength',5) 99 | ->post('client-email') 100 | ->Validator('isEmail') 101 | ->file('client-file') 102 | ->Validator('isFileOk',array('type'=>array('image/jpeg','image/pjpeg', 103 | 'application/msword','application/pdf','application/zip'),'maxUploadSize'=>4194304,'isOptional'=>true)); 104 | $form->submit(); 105 | $data=$form->fetch(); 106 | $message=" Client Name: ".$data['client-full-name']; 107 | $message.="\n Client Email- ID: ".$data['client-email']; 108 | $message.="\n Message: \n\n".$data['message']; 109 | $mailgun= new Mailgun(MAILGUN_API_KEY); 110 | $email=\Branchdetail::first($id)->get_values_for(['email'])['email']; 111 | if(move_uploaded_file($_FILES['client-file']['tmp_name'],UPLOAD_DIR.$_FILES['client-file']['name'])){ 112 | $file=UPLOAD_DIR.$_FILES['client-file']['name']; 113 | $mailgun->sendMessage(MAILGUN_DOMAIN, array('from'=> MAILGUN_FROM, 114 | 'to' => $data['client-full-name']."<{$email}>", 115 | 'subject' => $data['subject'], 116 | 'text' => $message), 117 | array('attachment' => array("@{$file}"))); 118 | unlink($file); 119 | }else{ 120 | $mailgun->sendMessage(MAILGUN_DOMAIN, array('from'=> MAILGUN_FROM, 121 | 'to' => $data['client-full-name']."<{$email}>", 122 | 'subject' => $data['subject'], 123 | 'text' => $message)); 124 | } 125 | Session::set('message',"Your Message Sent Successfully!"); 126 | header("location:".URL.'branchdetail/'); 127 | }catch (\Exception $e){ 128 | // throw new Exception($e->getMessage()); 129 | header("location:".URL.'branchdetail/'); 130 | } 131 | } 132 | public function show( $branchDetail_id){ 133 | try{ 134 | $this->view->details=$this->model->showBranchIssues($branchDetail_id); 135 | $this->view->render('branch_detail/show'); 136 | } 137 | catch(ActiveRecordException $e){ 138 | echo $e->getMessage(); 139 | // Session::set('errors', array("{$branchDetail_id}"=>'Does Not Exists')); 140 | // header('location:'.URL.'branchdetail/'); 141 | } 142 | } 143 | public function showBranchIssuesInJson(){ 144 | $branchDetail_id=$_GET['b_id']; 145 | echo $this->model->showBranchIssues($branchDetail_id)->to_json(array('include'=>'issues')); 146 | } 147 | public function search($page=1,$limit=10,$param){ 148 | try{ 149 | $form=new \FormHelper(); 150 | $form->request('search_query') 151 | ->Validator('isRequired') 152 | ->request('searchBy') 153 | ->Validator('isRequired'); 154 | $form->submit(); 155 | $data=$form->fetch(); 156 | $totalRecord=$this->model->totalSearch($data); 157 | $pagination=new \Pagination($page,$limit,$totalRecord); 158 | $this->view->details=$this->model->search($data,$limit,$pagination->offset(),$param); 159 | $this->view->createLinks=$pagination->createPaginationArea($pagination,$page); 160 | $this->view->render("branch_detail/index"); 161 | }catch (\Exception $e){ 162 | // throw new Exception($e->getMessage()); 163 | header("location:".URL.'branchdetail/'); 164 | } 165 | } 166 | } 167 | ?> -------------------------------------------------------------------------------- /app/Controllers/Branchissues.php: -------------------------------------------------------------------------------- 1 | model->totalRecord(); 24 | $pagination=new \Pagination($page,$limit,$totalRecord); 25 | $this->view->offSet=$pagination->offset(); 26 | if ($page < 1 || $page > $pagination->totalPages() ){ 27 | $this->Index($page=1); 28 | exit; 29 | } 30 | $this->view->createLinks=$pagination->createPaginationArea($pagination,$page); 31 | $this->view->issues=$this->model->branchIssueList($limit,$pagination->offset(),$param); 32 | $this->view->render("branch_issue/index"); 33 | } 34 | public function search_by_ticket(){ 35 | $q=isset($_GET['q-tkt'])? $_GET['q-tkt']: ''; 36 | $this->view->issues=$this->model->search_by_ticket($q); 37 | $this->view->createLinks=NULL; 38 | $this->view->render("branch_issue/index"); 39 | } 40 | 41 | public function add(){ 42 | $this->view->render('branch_issue/add'); 43 | } 44 | public function show(){ 45 | $this->view->render('branch_issue/show'); 46 | } 47 | public function response($issue_id){ 48 | if($_SERVER['REQUEST_METHOD']==='POST' ){ 49 | $_POST['status']=isset($_POST['status'])? 1: 0; 50 | try{ 51 | $form=new \FormHelper(); 52 | $form->post('status') 53 | ->post('remark') 54 | ->Validator('isRequired') 55 | ->Validator('minLength',5); 56 | $form->submit(); 57 | $data=$form->fetch(); 58 | $bi=\Branchissue::find($issue_id); 59 | // dd((bool)$data['status']); 60 | $bi->status=(bool)$data['status']; 61 | $bi->result=$data['remark']; 62 | $bi->issue_updated_at=new \DateTime(); 63 | $bi->save(); 64 | Session::set('message',"Respond Submitted Successfully!"); 65 | header('location:'.URL.'branchissue'); 66 | }catch (\Exception $e){ 67 | // throw new Exception($e->getMessage()); 68 | header('location:'.URL.'branchissue'); 69 | } 70 | 71 | }else{ 72 | header('location:'.URL); 73 | } 74 | } 75 | } 76 | ?> -------------------------------------------------------------------------------- /app/Controllers/Errors.php: -------------------------------------------------------------------------------- 1 | view->render("error/index"); 16 | } 17 | } -------------------------------------------------------------------------------- /app/Controllers/Index.php: -------------------------------------------------------------------------------- 1 | view->render('index/index'); 16 | } 17 | } -------------------------------------------------------------------------------- /app/Controllers/Logins.php: -------------------------------------------------------------------------------- 1 | view->css=array('login/css/login.css'); 16 | } 17 | public function Index() 18 | { 19 | Session::init(); 20 | if (Session::get('loggedIn')===TRUE) { 21 | header("location:".URL); 22 | exit; 23 | } 24 | $this->view->Render('login/index'); 25 | } 26 | public function login() 27 | { 28 | if (Auth::login($_REQUEST['email'],$_REQUEST['password'])) { 29 | header("location:".URL."branchdetail"); 30 | } 31 | else{ 32 | Session::init(); 33 | Auth::logout(); 34 | Session::set('errors','Oops!! Invalid Credentials. Try Again.'); 35 | header("location:".URL."login"); 36 | } 37 | } 38 | public function logout() 39 | { 40 | Auth::logout(); 41 | header("location:".URL."login"); 42 | } 43 | } 44 | ?> -------------------------------------------------------------------------------- /app/Controllers/Users.php: -------------------------------------------------------------------------------- 1 | pages(); 23 | // $this->view->Render('user/index'); 24 | } 25 | public function add() 26 | { 27 | $this->view->render('user/add'); 28 | } 29 | public function create() 30 | { 31 | $this->model->create(); 32 | } 33 | 34 | public function edit($id) 35 | { 36 | $this->view->user=$this->model->userById($id); 37 | if($this->view->user['username']=='abhishekkhaware'){ 38 | header("location:".URL.'user'); 39 | return true; 40 | } 41 | $this->view->render('user/edit'); 42 | } 43 | public function editSave($id) 44 | { 45 | $this->model->editSave($id); 46 | } 47 | public function pages($page=1,$limit=4) 48 | { 49 | $totalRecord=$this->model->totalRecord(); 50 | $pagination=new \Pagination($page,$limit,$totalRecord); 51 | $this->view->offSet=$pagination->offset(); 52 | if ($page < 1 || $page > $pagination->totalPages() ){ 53 | $this->index($page=1); 54 | exit; 55 | } 56 | $this->view->createLinks=$this->createPaginationArea($pagination,$page); 57 | $this->view->userList=$this->model->userList($limit,$pagination->offset()); 58 | $this->view->render("user/index"); 59 | } 60 | public function createPaginationArea($pagination,$page) 61 | { 62 | $area=""; 80 | return $area; 81 | } 82 | 83 | public function delete($id) 84 | { 85 | $this->model->delete($id); 86 | header("location:".URL."user"); 87 | } 88 | public function logout() 89 | { 90 | Auth::logout(); 91 | header("location:".URL."login"); 92 | } 93 | } -------------------------------------------------------------------------------- /app/Models/Branchdetail.php: -------------------------------------------------------------------------------- 1 | 'id', 14 | 'class_name' => 'Branchissue' 15 | ) 16 | ); 17 | public function findAll(){ 18 | return Branchdetail::all(); 19 | } 20 | public function totalRecord() 21 | { 22 | return (int)count(Branchdetail::all()); 23 | } 24 | public function branchList($limit=10,$offset=0,array $param=array('sort'=>'id','direction'=>'asc')) 25 | { 26 | return Branchdetail::all(); 27 | } 28 | public function totalSearch($data){ 29 | return (int)count(Branchdetail::all(array('conditions'=>"{$data['searchBy']} LIKE '%{$data['search_query']}%'"))); 30 | } 31 | public function search($data,$limit=10,$offset=0,array $param=array('sort'=>'id','direction'=>'asc')){ 32 | return Branchdetail::all(array('limit'=>$limit,'offset'=>$offset, 33 | 'order'=>"{$param['sort']} {$param['direction']}", 34 | 'conditions'=>"{$data['searchBy']} LIKE '%{$data['search_query']}%'", 35 | 'include' => array('issues'))); 36 | 37 | } 38 | public function showBranchIssues($branch_id){ 39 | // dd($branch_id); 40 | return Branchdetail::all($branch_id,array('include' => array('issues'))); 41 | } 42 | } -------------------------------------------------------------------------------- /app/Models/Branchissue.php: -------------------------------------------------------------------------------- 1 | 'id', 13 | 'foreign_key' => 'branchdetail_id', 14 | 'class_name'=>'Branchdetail')); 15 | public function findAll(){ 16 | return Branchissue::all(); 17 | } 18 | public function totalRecord() 19 | { 20 | return (int)(Branchissue::count()); 21 | } 22 | public function branchIssueList($limit=10,$offset=0,array $param=array('sort'=>'issue_ticket_created_at','direction'=>'asc')) 23 | { 24 | // return Branchissue::all(array('limit'=>$limit,'offset'=>$offset,'conditions'=>array('status LIKE 0'),'order'=>"{$param['sort']} {$param['direction']}")); 25 | return Branchissue::all(); 26 | } 27 | public function search_by_ticket($tkt){ 28 | return (Branchissue::all()); 29 | } 30 | } -------------------------------------------------------------------------------- /app/Models/UserModel.php: -------------------------------------------------------------------------------- 1 | post('username') 20 | ->Validator('minLength',8) 21 | ->Validator('maxLength',40) 22 | ->Validator('isAlphaNum') 23 | ->post('password') 24 | ->Validator('minLength',6) 25 | ->post('confirm-password') 26 | ->Validator('isMatched',$form->fetch('password')) 27 | ->post('email') 28 | ->Validator('isEmail') 29 | ->post('role') 30 | ->Validator('isAlpha'); 31 | $form->submit(); 32 | $data= $form->fetch(); 33 | $data['password']=Hash::make($data['password']); 34 | unset($data['confirm-password']); 35 | date_default_timezone_set("Asia/Calcutta"); 36 | $dt = date('Y-m-d H:i:s', time()); 37 | $data['created_at']=$dt; 38 | $data['updated_at']=$dt; 39 | $this->db->insert('users',$data); 40 | Session::init(); 41 | Session::set('flagMsg',"New User Added Successfull!!"); 42 | header("location:".URL."user/add"); 43 | } catch (Exception $e) { 44 | Session::init(); 45 | Session::set('errors',$e->getMessage()); 46 | header("location:".URL."user/add"); 47 | } 48 | }else{ 49 | header("location:".URL."user"); 50 | } 51 | } 52 | public function userList($limit=5,$offset=0) 53 | { 54 | return $this->db->select("SELECT * FROM users LIMIT $limit OFFSET $offset"); 55 | } 56 | public function userById($id,$limit=1) 57 | { 58 | $res=$this->db->select("SELECT * FROM users WHERE user_id=$id LIMIT $limit"); 59 | return $res[0]; 60 | } 61 | public function totalRecord() 62 | { 63 | return (int)count($this->db->select("SELECT user_id FROM users")); 64 | } 65 | public function editSave($id) 66 | { 67 | if (isset($_REQUEST['update']) ){ 68 | try { 69 | $form=new FormHelper(); 70 | $form->post('username') 71 | ->Validator('minLength',8) 72 | ->Validator('maxLength',40) 73 | ->Validator('isAlphaNum') 74 | ->post('password') 75 | ->Validator('minLength',6) 76 | ->post('confirm-password') 77 | ->Validator('isMatched',$form->fetch('password')) 78 | ->post('email') 79 | ->Validator('isEmail') 80 | ->post('role') 81 | ->Validator('isAlpha'); 82 | $form->submit(); 83 | $data= $form->fetch(); 84 | $data['password']=Hash::make($data['password']); 85 | unset($data['confirm-password']); 86 | date_default_timezone_set("Asia/Calcutta"); 87 | $dt = date('Y-m-d H:i:s', time()); 88 | $data['updated_at']=$dt; 89 | $this->db->update('users',$data,"user_id=$id"); 90 | Session::init(); 91 | Session::set('flagMsg',"User's Record Updated Successfully!!"); 92 | header("location:".URL."user/edit/{$id}"); 93 | } catch (Exception $e) { 94 | Session::init(); 95 | Session::set('errors',$e->getMessage()); 96 | header("location:".URL."user/edit/{$id}"); 97 | } 98 | }else{ 99 | header("location:".URL."user/edit/{$id}"); 100 | } 101 | } 102 | public function delete($id) 103 | { 104 | $this->db->delete("users","user_id=$id"); 105 | } 106 | } -------------------------------------------------------------------------------- /app/helpers.php: -------------------------------------------------------------------------------- 1 | $column,'direction'=>$direction),$attr); 6 | } 7 | function link_to($url,$body,array $queryString=array(),$attributes=''){ 8 | $link="$value){ 14 | $link.=$key.'='.$value.'&'; 15 | } 16 | $link=rtrim($link,'&'); 17 | } 18 | $link=rtrim($link,'?'); 19 | return $link." >{$body}"; 20 | } 21 | function append_to_queryString(array $param){ 22 | return array_merge( $_GET,$param); 23 | } 24 | function except_to_queryString(array $param){ 25 | return array_diff_assoc($param,$_GET); 26 | } 27 | function isSort($column){ 28 | if(!isset($_GET['sort'])){$_GET['sort']='';} 29 | return ($_GET['sort']==$column) ? 'sorting '.sortSign():''; 30 | } 31 | function sortSign(){ 32 | return ($_GET['direction']=='asc')? 'glyphicon glyphicon-sort-by-attributes' : 'glyphicon glyphicon-sort-by-attributes-alt'; 33 | } 34 | function redirect($uri,$contentType='location'){ 35 | header("{$contentType}: {$uri}"); 36 | } 37 | function isActive($param){ 38 | return isset($_GET['url'])? (rtrim($_GET['url'],'/')==$param)? 'active':'' :''; 39 | } 40 | function hasMessage(){ 41 | \Libs\Session::init(); 42 | return \Libs\Session::get('message'); 43 | } 44 | function hasErrors(){ 45 | \Libs\Session::init(); 46 | return isset($_SESSION['errors']); 47 | } 48 | function getErrors($key){ 49 | return \Libs\Session::get('errors')[$key]; 50 | } 51 | function oldInput($key){ 52 | if(isset($_SESSION['old']) && isset($_SESSION['old'][$key])){ 53 | return $_SESSION['old'][$key]; 54 | } 55 | return false; 56 | } 57 | function decryptErrors($errors=array()) 58 | { 59 | if(!empty($errors)){ 60 | $er=explode(',', $errors); 61 | $err=array(); 62 | for ($i=0; $i < count($er) ; $i=$i+2) { 63 | $err[$er[$i]]=$er[$i+1]; 64 | } 65 | return $err; 66 | } 67 | return $errors; 68 | } 69 | ?> -------------------------------------------------------------------------------- /bank-db-dump.sql: -------------------------------------------------------------------------------- 1 | -- phpMyAdmin SQL Dump 2 | -- version 4.0.6deb1 3 | -- http://www.phpmyadmin.net 4 | -- 5 | -- Host: localhost 6 | -- Generation Time: Feb 10, 2014 at 03:38 AM 7 | -- Server version: 5.5.35-0ubuntu0.13.10.2 8 | -- PHP Version: 5.5.8-3+sury.org~saucy+2 9 | 10 | SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 11 | SET time_zone = "+00:00"; 12 | 13 | 14 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; 15 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; 16 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; 17 | /*!40101 SET NAMES utf8 */; 18 | 19 | -- 20 | -- Database: `bank` 21 | -- 22 | CREATE DATABASE IF NOT EXISTS `bank` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; 23 | USE `bank`; 24 | 25 | -- -------------------------------------------------------- 26 | 27 | -- 28 | -- Table structure for table `branchdetails` 29 | -- 30 | 31 | CREATE TABLE IF NOT EXISTS `branchdetails` ( 32 | `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 33 | `branch_name` varchar(120) NOT NULL, 34 | `branch_manager` varchar(80) NOT NULL, 35 | `location` text NOT NULL, 36 | `email` varchar(120) NOT NULL, 37 | PRIMARY KEY (`id`) 38 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ; 39 | 40 | -- 41 | -- Dumping data for table `branchdetails` 42 | -- 43 | 44 | INSERT INTO `branchdetails` (`id`, `branch_name`, `branch_manager`, `location`, `email`) VALUES 45 | (1, 'MayurVihar-II', 'Santosh Kumar', 'Pocket -A, Mayur Vihar-II, New Delhi-92', 'santoshkumar@yahoo.com'), 46 | (2, 'MayurVihar-I', 'Rajeev Ranjan', 'Pocket -C, Mayur Vihar-I, New Delhi-92', 'rajeevranjan@gmail.com'), 47 | (3, 'South Ex', 'Pinki Sharma', 'K16, South Ex-I, New Delhi-92', 'pinkisharma@rediffmail.com'), 48 | (4, 'Vinod Nagar', 'Abhishek Khaware', '124, West Vinod Nagar, New Delhi-92', 'abhishekkhaware@gmail.com'), 49 | (5, 'Laxmi Nagar', 'Manish Raana', 'S-86, Laxmi Nagar, New Delhi-92', 'manishraana@hotmail.com'), 50 | (6, 'Rajender Nagar', 'Anjana Agarwal', 'F-186, New Rajender Nagar, New Delhi-92', 'anjana86@hotmail.com'), 51 | (7, 'Janakpuri', 'Jyoti Rajpal', 'D-186, Janakpuri East, New Delhi-92', 'jyoti.rajpal@gmail.com'), 52 | (8, 'Sagar Pur', 'Avinash Tiwari', 'A-86/2, Sagar Pur, New Delhi-92', 'avinash.t1991@gmail.com'), 53 | (9, 'Lajpat Nagar', 'Manoj Gupta', 'C-12, Lajpat Nagar -II, New Delhi', 'manojgupta@gmail.com'), 54 | (10, 'Munirka', 'Sushant Kumar', 'R-332, Munirka Village, New Delhi-67', 'sshnt26@gmail.com'), 55 | (11, 'Rajnagar Ext', 'Priya Gupta', 'D-23, Rajnagar Extension, New Delhi', 'priya.gupta91@gmail.com'), 56 | (12, 'Rajnagar Ext', 'Priya Gupta', 'D-23, Rajnagar Extension, New Delhi', 'priya.gupta91@gmail.com'), 57 | (13, 'Pandav Nagar', 'Deepak Jha', 'D-155, Pandav Nagar, New Delhi-92', 'deepak.jha91@gmail.com'); 58 | 59 | -- -------------------------------------------------------- 60 | 61 | -- 62 | -- Table structure for table `branchissues` 63 | -- 64 | 65 | CREATE TABLE IF NOT EXISTS `branchissues` ( 66 | `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 67 | `branchdetail_id` int(11) unsigned NOT NULL, 68 | `issue_ticket` varchar(20) NOT NULL, 69 | `issue_ticket_created_at` datetime NOT NULL, 70 | `issue` text NOT NULL, 71 | `status` tinyint(1) NOT NULL DEFAULT '0', 72 | `result` varchar(255) NOT NULL DEFAULT 'unresolved', 73 | `issue_updated_at` datetime DEFAULT NULL, 74 | PRIMARY KEY (`id`), 75 | KEY `branch_id` (`branchdetail_id`) 76 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ; 77 | 78 | -- 79 | -- Dumping data for table `branchissues` 80 | -- 81 | 82 | INSERT INTO `branchissues` (`id`, `branchdetail_id`, `issue_ticket`, `issue_ticket_created_at`, `issue`, `status`, `result`, `issue_updated_at`) VALUES 83 | (1, 1, 'TK-ICICI-001', '2014-02-01 07:23:12', 'AC Not Working.', 0, 'unresolved', NULL), 84 | (2, 1, 'TK-ICICI-201', '2014-01-29 12:18:42', 'Manager''s Chair is not adjustable.', 0, 'unresolved', NULL), 85 | (3, 2, 'TK-ICICI-373', '2014-02-01 12:08:43', 'Broken Chair.', 1, 'j jhj hjkh gjhjg ', '2014-02-10 03:05:34'), 86 | (4, 1, 'TK-ICICI-045', '2014-01-28 09:41:35', 'Fan Not Working Properly.', 0, 'Sent asda', '2014-02-10 02:41:44'), 87 | (5, 1, 'TK-ICICI-820', '2014-02-27 17:22:37', 'Water Leakage in Bathroom', 1, 'Plumber Sent For Repair.', '2014-02-01 13:30:04'); 88 | 89 | -- -------------------------------------------------------- 90 | 91 | -- 92 | -- Table structure for table `users` 93 | -- 94 | 95 | CREATE TABLE IF NOT EXISTS `users` ( 96 | `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 97 | `username` varchar(80) NOT NULL, 98 | `password` varchar(255) NOT NULL, 99 | `email` varchar(120) NOT NULL, 100 | `role` enum('general','admin') NOT NULL DEFAULT 'general', 101 | `created_at` datetime DEFAULT NULL, 102 | `updated_at` datetime DEFAULT NULL, 103 | PRIMARY KEY (`id`), 104 | UNIQUE KEY `username` (`username`), 105 | UNIQUE KEY `email` (`email`) 106 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; 107 | 108 | -- 109 | -- Dumping data for table `users` 110 | -- 111 | 112 | INSERT INTO `users` (`id`, `username`, `password`, `email`, `role`, `created_at`, `updated_at`) VALUES 113 | (1, 'abhishekkhaware', 'c9b180442e314ee20adc4a262b96f46b', 'abhishekkhaware@gmail.com', 'admin', '2013-07-13 09:15:11', '2013-07-15 18:23:20'), 114 | (2, 'sujitlca', 'aa79f6482a1b873ad79ec04921386813', 'sujitlca@gmail.com', 'general', '2013-07-13 09:54:59', '2013-07-15 19:20:03'), 115 | (3, 'sushant26', 'aa79f6482a1b873ad79ec04921386813', 'sushant26@gmail.com', 'general', '2013-07-16 01:29:41', '2013-07-17 20:27:30'), 116 | (4, 'shaileshkhaware', 'c9b180442e314ee20adc4a262b96f46b', 'shailesh.khaware@gmail.com', 'general', '2013-07-16 01:30:34', '2013-07-17 20:30:54'), 117 | (5, 'saifazad', 'aa79f6482a1b873ad79ec04921386813', 'saif.azad90@gmail.com', 'general', '2013-07-16 01:31:22', '2013-07-16 01:32:47'), 118 | (6, 'avinashtiwari', 'aa79f6482a1b873ad79ec04921386813', 'avinash.t1992@gmail.com', 'general', '2013-07-16 01:38:09', '2013-07-16 01:38:56'), 119 | (7, '8882157881', 'c9b180442e314ee20adc4a262b96f46b', 'abhishekkhaware@hotmail.com', 'general', '2013-07-16 01:48:24', '2013-07-16 01:48:24'), 120 | (8, 'abhishek', 'c9b180442e314ee20adc4a262b96f46b', 'abhishek.khaware@yahoo.co.in', 'general', '2013-07-16 01:49:43', '2013-07-16 01:49:43'); 121 | 122 | -- 123 | -- Constraints for dumped tables 124 | -- 125 | 126 | -- 127 | -- Constraints for table `branchissues` 128 | -- 129 | ALTER TABLE `branchissues` 130 | ADD CONSTRAINT `branchissues_ibfk_1` FOREIGN KEY (`branchdetail_id`) REFERENCES `branchdetails` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; 131 | 132 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; 133 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; 134 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 135 | -------------------------------------------------------------------------------- /bootstrap/autoload.php: -------------------------------------------------------------------------------- 1 | files()->in(__DIR__."/../config")->name('*.php'); 12 | 13 | foreach ($finder as $file) { 14 | // Dump the relative path to the file 15 | require_once __DIR__."/../config/".$file->getRelativePathname(); 16 | } 17 | 18 | /* 19 | * whoops Config 20 | */ 21 | $whoops = new \Whoops\Run; 22 | $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler); 23 | $whoops->register(); 24 | 25 | // $whoops = new \Whoops\Run(); 26 | //// $whoops->pushHandler(new Whoops\Handler\PrettyPageHandler())->setPageTitle("Abhishek Khaware- Its\'s Broken!"); 27 | // $errorPage = new Whoops\Handler\PrettyPageHandler(); 28 | // $errorPage->setPageTitle("OOps! It's broken!"); // Set the page's title 29 | //// $errorPage->setEditor("sublime"); // Set the editor used for the "Open" link 30 | //// $errorPage->addDataTable("Extra Info", array( 31 | //// "stuff" => 123, 32 | //// "foo" => "bar", 33 | //// "useful-id" => "abhishek" 34 | //// )); 35 | // 36 | // $whoops->pushHandler($errorPage); 37 | // 38 | // // Set Whoops as the default error and exception handler used by PHP: 39 | // $whoops->register(); 40 | 41 | 42 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "abhishekkhaware/mvc", 3 | "description": "This is micro MVC framework.", 4 | "keywords": ["framework", "MVC"], 5 | "type": "project", 6 | "license": "MIT", 7 | "authors": [ 8 | { 9 | "name": "Abhishek Khaware", 10 | "email": "abhishekkhaware@gmail.com" 11 | } 12 | ], 13 | "autoload": { 14 | "classmap": [ 15 | "libs","include" 16 | ], 17 | "psr-4": { 18 | "App\\": "app/" 19 | }, 20 | "files": ["app/helpers.php"] 21 | }, 22 | "require": { 23 | "php": ">=5.5.9", 24 | "guzzlehttp/guzzle": "^6.2", 25 | "symfony/var-dumper": "^3.1", 26 | "illuminate/database": "^5.2", 27 | "illuminate/pagination": "^5.2", 28 | "illuminate/mail": "^5.2", 29 | "mailgun/mailgun-php": "^2.0", 30 | "filp/whoops": "^2.1", 31 | "symfony/finder": "^3.1" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 5 | "This file is @generated automatically" 6 | ], 7 | "hash": "94d362b0bcb47828f5211f1112e02863", 8 | "content-hash": "062f2887a3154efedd32dad938d8509e", 9 | "packages": [ 10 | { 11 | "name": "doctrine/inflector", 12 | "version": "v1.1.0", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/doctrine/inflector.git", 16 | "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", 21 | "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", 22 | "shasum": "" 23 | }, 24 | "require": { 25 | "php": ">=5.3.2" 26 | }, 27 | "require-dev": { 28 | "phpunit/phpunit": "4.*" 29 | }, 30 | "type": "library", 31 | "extra": { 32 | "branch-alias": { 33 | "dev-master": "1.1.x-dev" 34 | } 35 | }, 36 | "autoload": { 37 | "psr-0": { 38 | "Doctrine\\Common\\Inflector\\": "lib/" 39 | } 40 | }, 41 | "notification-url": "https://packagist.org/downloads/", 42 | "license": [ 43 | "MIT" 44 | ], 45 | "authors": [ 46 | { 47 | "name": "Roman Borschel", 48 | "email": "roman@code-factory.org" 49 | }, 50 | { 51 | "name": "Benjamin Eberlei", 52 | "email": "kontakt@beberlei.de" 53 | }, 54 | { 55 | "name": "Guilherme Blanco", 56 | "email": "guilhermeblanco@gmail.com" 57 | }, 58 | { 59 | "name": "Jonathan Wage", 60 | "email": "jonwage@gmail.com" 61 | }, 62 | { 63 | "name": "Johannes Schmitt", 64 | "email": "schmittjoh@gmail.com" 65 | } 66 | ], 67 | "description": "Common String Manipulations with regard to casing and singular/plural rules.", 68 | "homepage": "http://www.doctrine-project.org", 69 | "keywords": [ 70 | "inflection", 71 | "pluralize", 72 | "singularize", 73 | "string" 74 | ], 75 | "time": "2015-11-06 14:35:42" 76 | }, 77 | { 78 | "name": "filp/whoops", 79 | "version": "2.1.2", 80 | "source": { 81 | "type": "git", 82 | "url": "https://github.com/filp/whoops.git", 83 | "reference": "d13505b240a6f580bc75ba591da30299d6cb0eec" 84 | }, 85 | "dist": { 86 | "type": "zip", 87 | "url": "https://api.github.com/repos/filp/whoops/zipball/d13505b240a6f580bc75ba591da30299d6cb0eec", 88 | "reference": "d13505b240a6f580bc75ba591da30299d6cb0eec", 89 | "shasum": "" 90 | }, 91 | "require": { 92 | "php": ">=5.5.9" 93 | }, 94 | "require-dev": { 95 | "mockery/mockery": "0.9.*", 96 | "phpunit/phpunit": "^4.8 || ^5.0", 97 | "symfony/var-dumper": "~3.0" 98 | }, 99 | "suggest": { 100 | "symfony/var-dumper": "Pretty print complex values better with var-dumper available", 101 | "whoops/soap": "Formats errors as SOAP responses" 102 | }, 103 | "type": "library", 104 | "extra": { 105 | "branch-alias": { 106 | "dev-master": "2.0-dev" 107 | } 108 | }, 109 | "autoload": { 110 | "psr-4": { 111 | "Whoops\\": "src/Whoops/" 112 | } 113 | }, 114 | "notification-url": "https://packagist.org/downloads/", 115 | "license": [ 116 | "MIT" 117 | ], 118 | "authors": [ 119 | { 120 | "name": "Filipe Dobreira", 121 | "homepage": "https://github.com/filp", 122 | "role": "Developer" 123 | } 124 | ], 125 | "description": "php error handling for cool kids", 126 | "homepage": "https://github.com/filp/whoops", 127 | "keywords": [ 128 | "error", 129 | "exception", 130 | "handling", 131 | "library", 132 | "whoops", 133 | "zf2" 134 | ], 135 | "time": "2016-04-07 06:16:25" 136 | }, 137 | { 138 | "name": "guzzlehttp/guzzle", 139 | "version": "6.2.0", 140 | "source": { 141 | "type": "git", 142 | "url": "https://github.com/guzzle/guzzle.git", 143 | "reference": "d094e337976dff9d8e2424e8485872194e768662" 144 | }, 145 | "dist": { 146 | "type": "zip", 147 | "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d094e337976dff9d8e2424e8485872194e768662", 148 | "reference": "d094e337976dff9d8e2424e8485872194e768662", 149 | "shasum": "" 150 | }, 151 | "require": { 152 | "guzzlehttp/promises": "~1.0", 153 | "guzzlehttp/psr7": "~1.1", 154 | "php": ">=5.5.0" 155 | }, 156 | "require-dev": { 157 | "ext-curl": "*", 158 | "phpunit/phpunit": "~4.0", 159 | "psr/log": "~1.0" 160 | }, 161 | "type": "library", 162 | "extra": { 163 | "branch-alias": { 164 | "dev-master": "6.2-dev" 165 | } 166 | }, 167 | "autoload": { 168 | "files": [ 169 | "src/functions_include.php" 170 | ], 171 | "psr-4": { 172 | "GuzzleHttp\\": "src/" 173 | } 174 | }, 175 | "notification-url": "https://packagist.org/downloads/", 176 | "license": [ 177 | "MIT" 178 | ], 179 | "authors": [ 180 | { 181 | "name": "Michael Dowling", 182 | "email": "mtdowling@gmail.com", 183 | "homepage": "https://github.com/mtdowling" 184 | } 185 | ], 186 | "description": "Guzzle is a PHP HTTP client library", 187 | "homepage": "http://guzzlephp.org/", 188 | "keywords": [ 189 | "client", 190 | "curl", 191 | "framework", 192 | "http", 193 | "http client", 194 | "rest", 195 | "web service" 196 | ], 197 | "time": "2016-03-21 20:02:09" 198 | }, 199 | { 200 | "name": "guzzlehttp/promises", 201 | "version": "1.2.0", 202 | "source": { 203 | "type": "git", 204 | "url": "https://github.com/guzzle/promises.git", 205 | "reference": "c10d860e2a9595f8883527fa0021c7da9e65f579" 206 | }, 207 | "dist": { 208 | "type": "zip", 209 | "url": "https://api.github.com/repos/guzzle/promises/zipball/c10d860e2a9595f8883527fa0021c7da9e65f579", 210 | "reference": "c10d860e2a9595f8883527fa0021c7da9e65f579", 211 | "shasum": "" 212 | }, 213 | "require": { 214 | "php": ">=5.5.0" 215 | }, 216 | "require-dev": { 217 | "phpunit/phpunit": "~4.0" 218 | }, 219 | "type": "library", 220 | "extra": { 221 | "branch-alias": { 222 | "dev-master": "1.0-dev" 223 | } 224 | }, 225 | "autoload": { 226 | "psr-4": { 227 | "GuzzleHttp\\Promise\\": "src/" 228 | }, 229 | "files": [ 230 | "src/functions_include.php" 231 | ] 232 | }, 233 | "notification-url": "https://packagist.org/downloads/", 234 | "license": [ 235 | "MIT" 236 | ], 237 | "authors": [ 238 | { 239 | "name": "Michael Dowling", 240 | "email": "mtdowling@gmail.com", 241 | "homepage": "https://github.com/mtdowling" 242 | } 243 | ], 244 | "description": "Guzzle promises library", 245 | "keywords": [ 246 | "promise" 247 | ], 248 | "time": "2016-05-18 16:56:05" 249 | }, 250 | { 251 | "name": "guzzlehttp/psr7", 252 | "version": "1.3.1", 253 | "source": { 254 | "type": "git", 255 | "url": "https://github.com/guzzle/psr7.git", 256 | "reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b" 257 | }, 258 | "dist": { 259 | "type": "zip", 260 | "url": "https://api.github.com/repos/guzzle/psr7/zipball/5c6447c9df362e8f8093bda8f5d8873fe5c7f65b", 261 | "reference": "5c6447c9df362e8f8093bda8f5d8873fe5c7f65b", 262 | "shasum": "" 263 | }, 264 | "require": { 265 | "php": ">=5.4.0", 266 | "psr/http-message": "~1.0" 267 | }, 268 | "provide": { 269 | "psr/http-message-implementation": "1.0" 270 | }, 271 | "require-dev": { 272 | "phpunit/phpunit": "~4.0" 273 | }, 274 | "type": "library", 275 | "extra": { 276 | "branch-alias": { 277 | "dev-master": "1.4-dev" 278 | } 279 | }, 280 | "autoload": { 281 | "psr-4": { 282 | "GuzzleHttp\\Psr7\\": "src/" 283 | }, 284 | "files": [ 285 | "src/functions_include.php" 286 | ] 287 | }, 288 | "notification-url": "https://packagist.org/downloads/", 289 | "license": [ 290 | "MIT" 291 | ], 292 | "authors": [ 293 | { 294 | "name": "Michael Dowling", 295 | "email": "mtdowling@gmail.com", 296 | "homepage": "https://github.com/mtdowling" 297 | } 298 | ], 299 | "description": "PSR-7 message implementation", 300 | "keywords": [ 301 | "http", 302 | "message", 303 | "stream", 304 | "uri" 305 | ], 306 | "time": "2016-06-24 23:00:38" 307 | }, 308 | { 309 | "name": "illuminate/container", 310 | "version": "v5.2.37", 311 | "source": { 312 | "type": "git", 313 | "url": "https://github.com/illuminate/container.git", 314 | "reference": "7ec395833738b9059f829348ddc9a59d0118ac88" 315 | }, 316 | "dist": { 317 | "type": "zip", 318 | "url": "https://api.github.com/repos/illuminate/container/zipball/7ec395833738b9059f829348ddc9a59d0118ac88", 319 | "reference": "7ec395833738b9059f829348ddc9a59d0118ac88", 320 | "shasum": "" 321 | }, 322 | "require": { 323 | "illuminate/contracts": "5.2.*", 324 | "php": ">=5.5.9" 325 | }, 326 | "type": "library", 327 | "extra": { 328 | "branch-alias": { 329 | "dev-master": "5.2-dev" 330 | } 331 | }, 332 | "autoload": { 333 | "psr-4": { 334 | "Illuminate\\Container\\": "" 335 | } 336 | }, 337 | "notification-url": "https://packagist.org/downloads/", 338 | "license": [ 339 | "MIT" 340 | ], 341 | "authors": [ 342 | { 343 | "name": "Taylor Otwell", 344 | "email": "taylorotwell@gmail.com" 345 | } 346 | ], 347 | "description": "The Illuminate Container package.", 348 | "homepage": "http://laravel.com", 349 | "time": "2016-05-29 02:18:23" 350 | }, 351 | { 352 | "name": "illuminate/contracts", 353 | "version": "v5.2.37", 354 | "source": { 355 | "type": "git", 356 | "url": "https://github.com/illuminate/contracts.git", 357 | "reference": "f4f44d7c6d20404da8dfc655bd3d6dd788dfdce5" 358 | }, 359 | "dist": { 360 | "type": "zip", 361 | "url": "https://api.github.com/repos/illuminate/contracts/zipball/f4f44d7c6d20404da8dfc655bd3d6dd788dfdce5", 362 | "reference": "f4f44d7c6d20404da8dfc655bd3d6dd788dfdce5", 363 | "shasum": "" 364 | }, 365 | "require": { 366 | "php": ">=5.5.9" 367 | }, 368 | "type": "library", 369 | "extra": { 370 | "branch-alias": { 371 | "dev-master": "5.2-dev" 372 | } 373 | }, 374 | "autoload": { 375 | "psr-4": { 376 | "Illuminate\\Contracts\\": "" 377 | } 378 | }, 379 | "notification-url": "https://packagist.org/downloads/", 380 | "license": [ 381 | "MIT" 382 | ], 383 | "authors": [ 384 | { 385 | "name": "Taylor Otwell", 386 | "email": "taylorotwell@gmail.com" 387 | } 388 | ], 389 | "description": "The Illuminate Contracts package.", 390 | "homepage": "http://laravel.com", 391 | "time": "2016-05-31 21:36:13" 392 | }, 393 | { 394 | "name": "illuminate/database", 395 | "version": "v5.2.37", 396 | "source": { 397 | "type": "git", 398 | "url": "https://github.com/illuminate/database.git", 399 | "reference": "c0746930dc6a6ff9b72945152609d61a3b3829c6" 400 | }, 401 | "dist": { 402 | "type": "zip", 403 | "url": "https://api.github.com/repos/illuminate/database/zipball/c0746930dc6a6ff9b72945152609d61a3b3829c6", 404 | "reference": "c0746930dc6a6ff9b72945152609d61a3b3829c6", 405 | "shasum": "" 406 | }, 407 | "require": { 408 | "illuminate/container": "5.2.*", 409 | "illuminate/contracts": "5.2.*", 410 | "illuminate/support": "5.2.*", 411 | "nesbot/carbon": "~1.20", 412 | "php": ">=5.5.9" 413 | }, 414 | "suggest": { 415 | "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.4).", 416 | "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", 417 | "illuminate/console": "Required to use the database commands (5.2.*).", 418 | "illuminate/events": "Required to use the observers with Eloquent (5.2.*).", 419 | "illuminate/filesystem": "Required to use the migrations (5.2.*).", 420 | "illuminate/pagination": "Required to paginate the result set (5.2.*)." 421 | }, 422 | "type": "library", 423 | "extra": { 424 | "branch-alias": { 425 | "dev-master": "5.2-dev" 426 | } 427 | }, 428 | "autoload": { 429 | "psr-4": { 430 | "Illuminate\\Database\\": "" 431 | } 432 | }, 433 | "notification-url": "https://packagist.org/downloads/", 434 | "license": [ 435 | "MIT" 436 | ], 437 | "authors": [ 438 | { 439 | "name": "Taylor Otwell", 440 | "email": "taylorotwell@gmail.com" 441 | } 442 | ], 443 | "description": "The Illuminate Database package.", 444 | "homepage": "http://laravel.com", 445 | "keywords": [ 446 | "database", 447 | "laravel", 448 | "orm", 449 | "sql" 450 | ], 451 | "time": "2016-06-06 13:12:46" 452 | }, 453 | { 454 | "name": "illuminate/mail", 455 | "version": "v5.2.37", 456 | "source": { 457 | "type": "git", 458 | "url": "https://github.com/illuminate/mail.git", 459 | "reference": "020ffc2448314b6af4607e967f22e07dd2bbee80" 460 | }, 461 | "dist": { 462 | "type": "zip", 463 | "url": "https://api.github.com/repos/illuminate/mail/zipball/020ffc2448314b6af4607e967f22e07dd2bbee80", 464 | "reference": "020ffc2448314b6af4607e967f22e07dd2bbee80", 465 | "shasum": "" 466 | }, 467 | "require": { 468 | "illuminate/container": "5.2.*", 469 | "illuminate/contracts": "5.2.*", 470 | "illuminate/support": "5.2.*", 471 | "php": ">=5.5.9", 472 | "psr/log": "~1.0", 473 | "swiftmailer/swiftmailer": "~5.1" 474 | }, 475 | "suggest": { 476 | "aws/aws-sdk-php": "Required to use the SES mail driver (~3.0).", 477 | "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers (~5.3|~6.0).", 478 | "jeremeamia/superclosure": "Required to be able to serialize closures (~2.0)." 479 | }, 480 | "type": "library", 481 | "extra": { 482 | "branch-alias": { 483 | "dev-master": "5.2-dev" 484 | } 485 | }, 486 | "autoload": { 487 | "psr-4": { 488 | "Illuminate\\Mail\\": "" 489 | } 490 | }, 491 | "notification-url": "https://packagist.org/downloads/", 492 | "license": [ 493 | "MIT" 494 | ], 495 | "authors": [ 496 | { 497 | "name": "Taylor Otwell", 498 | "email": "taylorotwell@gmail.com" 499 | } 500 | ], 501 | "description": "The Illuminate Mail package.", 502 | "homepage": "http://laravel.com", 503 | "time": "2016-05-30 19:35:01" 504 | }, 505 | { 506 | "name": "illuminate/pagination", 507 | "version": "v5.2.37", 508 | "source": { 509 | "type": "git", 510 | "url": "https://github.com/illuminate/pagination.git", 511 | "reference": "55024b578ed3608ad6184bc4e4d7a79f03fb9a48" 512 | }, 513 | "dist": { 514 | "type": "zip", 515 | "url": "https://api.github.com/repos/illuminate/pagination/zipball/55024b578ed3608ad6184bc4e4d7a79f03fb9a48", 516 | "reference": "55024b578ed3608ad6184bc4e4d7a79f03fb9a48", 517 | "shasum": "" 518 | }, 519 | "require": { 520 | "illuminate/contracts": "5.2.*", 521 | "illuminate/support": "5.2.*", 522 | "php": ">=5.5.9" 523 | }, 524 | "type": "library", 525 | "extra": { 526 | "branch-alias": { 527 | "dev-master": "5.2-dev" 528 | } 529 | }, 530 | "autoload": { 531 | "psr-4": { 532 | "Illuminate\\Pagination\\": "" 533 | } 534 | }, 535 | "notification-url": "https://packagist.org/downloads/", 536 | "license": [ 537 | "MIT" 538 | ], 539 | "authors": [ 540 | { 541 | "name": "Taylor Otwell", 542 | "email": "taylorotwell@gmail.com" 543 | } 544 | ], 545 | "description": "The Illuminate Pagination package.", 546 | "homepage": "http://laravel.com", 547 | "time": "2016-05-30 02:43:18" 548 | }, 549 | { 550 | "name": "illuminate/support", 551 | "version": "v5.2.37", 552 | "source": { 553 | "type": "git", 554 | "url": "https://github.com/illuminate/support.git", 555 | "reference": "6e86ac2b4e3d0c42c2dc846dbac3e74d378a812b" 556 | }, 557 | "dist": { 558 | "type": "zip", 559 | "url": "https://api.github.com/repos/illuminate/support/zipball/6e86ac2b4e3d0c42c2dc846dbac3e74d378a812b", 560 | "reference": "6e86ac2b4e3d0c42c2dc846dbac3e74d378a812b", 561 | "shasum": "" 562 | }, 563 | "require": { 564 | "doctrine/inflector": "~1.0", 565 | "ext-mbstring": "*", 566 | "illuminate/contracts": "5.2.*", 567 | "paragonie/random_compat": "~1.4", 568 | "php": ">=5.5.9" 569 | }, 570 | "suggest": { 571 | "illuminate/filesystem": "Required to use the composer class (5.2.*).", 572 | "jeremeamia/superclosure": "Required to be able to serialize closures (~2.2).", 573 | "symfony/polyfill-php56": "Required to use the hash_equals function on PHP 5.5 (~1.0).", 574 | "symfony/process": "Required to use the composer class (2.8.*|3.0.*).", 575 | "symfony/var-dumper": "Improves the dd function (2.8.*|3.0.*)." 576 | }, 577 | "type": "library", 578 | "extra": { 579 | "branch-alias": { 580 | "dev-master": "5.2-dev" 581 | } 582 | }, 583 | "autoload": { 584 | "psr-4": { 585 | "Illuminate\\Support\\": "" 586 | }, 587 | "files": [ 588 | "helpers.php" 589 | ] 590 | }, 591 | "notification-url": "https://packagist.org/downloads/", 592 | "license": [ 593 | "MIT" 594 | ], 595 | "authors": [ 596 | { 597 | "name": "Taylor Otwell", 598 | "email": "taylorotwell@gmail.com" 599 | } 600 | ], 601 | "description": "The Illuminate Support package.", 602 | "homepage": "http://laravel.com", 603 | "time": "2016-05-30 02:40:53" 604 | }, 605 | { 606 | "name": "mailgun/mailgun-php", 607 | "version": "v2.0", 608 | "source": { 609 | "type": "git", 610 | "url": "https://github.com/mailgun/mailgun-php.git", 611 | "reference": "976a76a3b5b46eb8d0dedbd48a5c98d054b6054f" 612 | }, 613 | "dist": { 614 | "type": "zip", 615 | "url": "https://api.github.com/repos/mailgun/mailgun-php/zipball/976a76a3b5b46eb8d0dedbd48a5c98d054b6054f", 616 | "reference": "976a76a3b5b46eb8d0dedbd48a5c98d054b6054f", 617 | "shasum": "" 618 | }, 619 | "require": { 620 | "guzzlehttp/psr7": "~1.2", 621 | "php": "^5.5|^7.0", 622 | "php-http/discovery": "^0.8", 623 | "php-http/httplug": "^1.0" 624 | }, 625 | "require-dev": { 626 | "php-http/guzzle6-adapter": "^1.0", 627 | "phpunit/phpunit": "~4.6" 628 | }, 629 | "type": "library", 630 | "autoload": { 631 | "psr-0": { 632 | "Mailgun\\Tests": "tests/", 633 | "Mailgun": "src/" 634 | } 635 | }, 636 | "notification-url": "https://packagist.org/downloads/", 637 | "license": [ 638 | "MIT" 639 | ], 640 | "authors": [ 641 | { 642 | "name": "Travis Swientek", 643 | "email": "travis@mailgunhq.com" 644 | } 645 | ], 646 | "description": "The Mailgun SDK provides methods for all API functions.", 647 | "time": "2016-04-02 00:58:54" 648 | }, 649 | { 650 | "name": "nesbot/carbon", 651 | "version": "1.21.0", 652 | "source": { 653 | "type": "git", 654 | "url": "https://github.com/briannesbitt/Carbon.git", 655 | "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7" 656 | }, 657 | "dist": { 658 | "type": "zip", 659 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7b08ec6f75791e130012f206e3f7b0e76e18e3d7", 660 | "reference": "7b08ec6f75791e130012f206e3f7b0e76e18e3d7", 661 | "shasum": "" 662 | }, 663 | "require": { 664 | "php": ">=5.3.0", 665 | "symfony/translation": "~2.6|~3.0" 666 | }, 667 | "require-dev": { 668 | "phpunit/phpunit": "~4.0|~5.0" 669 | }, 670 | "type": "library", 671 | "autoload": { 672 | "psr-4": { 673 | "Carbon\\": "src/Carbon/" 674 | } 675 | }, 676 | "notification-url": "https://packagist.org/downloads/", 677 | "license": [ 678 | "MIT" 679 | ], 680 | "authors": [ 681 | { 682 | "name": "Brian Nesbitt", 683 | "email": "brian@nesbot.com", 684 | "homepage": "http://nesbot.com" 685 | } 686 | ], 687 | "description": "A simple API extension for DateTime.", 688 | "homepage": "http://carbon.nesbot.com", 689 | "keywords": [ 690 | "date", 691 | "datetime", 692 | "time" 693 | ], 694 | "time": "2015-11-04 20:07:17" 695 | }, 696 | { 697 | "name": "paragonie/random_compat", 698 | "version": "v1.4.1", 699 | "source": { 700 | "type": "git", 701 | "url": "https://github.com/paragonie/random_compat.git", 702 | "reference": "c7e26a21ba357863de030f0b9e701c7d04593774" 703 | }, 704 | "dist": { 705 | "type": "zip", 706 | "url": "https://api.github.com/repos/paragonie/random_compat/zipball/c7e26a21ba357863de030f0b9e701c7d04593774", 707 | "reference": "c7e26a21ba357863de030f0b9e701c7d04593774", 708 | "shasum": "" 709 | }, 710 | "require": { 711 | "php": ">=5.2.0" 712 | }, 713 | "require-dev": { 714 | "phpunit/phpunit": "4.*|5.*" 715 | }, 716 | "suggest": { 717 | "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." 718 | }, 719 | "type": "library", 720 | "autoload": { 721 | "files": [ 722 | "lib/random.php" 723 | ] 724 | }, 725 | "notification-url": "https://packagist.org/downloads/", 726 | "license": [ 727 | "MIT" 728 | ], 729 | "authors": [ 730 | { 731 | "name": "Paragon Initiative Enterprises", 732 | "email": "security@paragonie.com", 733 | "homepage": "https://paragonie.com" 734 | } 735 | ], 736 | "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", 737 | "keywords": [ 738 | "csprng", 739 | "pseudorandom", 740 | "random" 741 | ], 742 | "time": "2016-03-18 20:34:03" 743 | }, 744 | { 745 | "name": "php-http/discovery", 746 | "version": "v0.8.0", 747 | "source": { 748 | "type": "git", 749 | "url": "https://github.com/php-http/discovery.git", 750 | "reference": "fac1240e8a070b3e2f0e38606941de80c849fa53" 751 | }, 752 | "dist": { 753 | "type": "zip", 754 | "url": "https://api.github.com/repos/php-http/discovery/zipball/fac1240e8a070b3e2f0e38606941de80c849fa53", 755 | "reference": "fac1240e8a070b3e2f0e38606941de80c849fa53", 756 | "shasum": "" 757 | }, 758 | "require": { 759 | "php": "^5.4|7.*" 760 | }, 761 | "require-dev": { 762 | "henrikbjorn/phpspec-code-coverage": "^1.0", 763 | "php-http/httplug": "^1.0", 764 | "php-http/message-factory": "^1.0", 765 | "phpspec/phpspec": "^2.4", 766 | "puli/composer-plugin": "1.0.0-beta9" 767 | }, 768 | "suggest": { 769 | "php-http/message": "Allow to use Guzzle or Diactoros factories", 770 | "puli/composer-plugin": "Sets up Puli which is required for Discovery to work. Check http://docs.php-http.org/en/latest/discovery.html for more details." 771 | }, 772 | "bin": [ 773 | "bin/puli.phar" 774 | ], 775 | "type": "library", 776 | "extra": { 777 | "branch-alias": { 778 | "dev-master": "0.9-dev" 779 | } 780 | }, 781 | "autoload": { 782 | "psr-4": { 783 | "Http\\Discovery\\": "src/" 784 | } 785 | }, 786 | "notification-url": "https://packagist.org/downloads/", 787 | "license": [ 788 | "MIT" 789 | ], 790 | "authors": [ 791 | { 792 | "name": "Márk Sági-Kazár", 793 | "email": "mark.sagikazar@gmail.com" 794 | } 795 | ], 796 | "description": "Finds installed HTTPlug implementations and PSR-7 message factories", 797 | "homepage": "http://httplug.io", 798 | "keywords": [ 799 | "adapter", 800 | "client", 801 | "discovery", 802 | "factory", 803 | "http", 804 | "message" 805 | ], 806 | "time": "2016-02-11 09:53:37" 807 | }, 808 | { 809 | "name": "php-http/httplug", 810 | "version": "v1.0.0", 811 | "source": { 812 | "type": "git", 813 | "url": "https://github.com/php-http/httplug.git", 814 | "reference": "2061047ca53a08a6b8f52e997b2a76f386b397dd" 815 | }, 816 | "dist": { 817 | "type": "zip", 818 | "url": "https://api.github.com/repos/php-http/httplug/zipball/2061047ca53a08a6b8f52e997b2a76f386b397dd", 819 | "reference": "2061047ca53a08a6b8f52e997b2a76f386b397dd", 820 | "shasum": "" 821 | }, 822 | "require": { 823 | "php": ">=5.4", 824 | "php-http/promise": "^1.0", 825 | "psr/http-message": "^1.0" 826 | }, 827 | "require-dev": { 828 | "henrikbjorn/phpspec-code-coverage": "^1.0", 829 | "phpspec/phpspec": "^2.4" 830 | }, 831 | "type": "library", 832 | "extra": { 833 | "branch-alias": { 834 | "dev-master": "1.1-dev" 835 | } 836 | }, 837 | "autoload": { 838 | "psr-4": { 839 | "Http\\Client\\": "src/" 840 | } 841 | }, 842 | "notification-url": "https://packagist.org/downloads/", 843 | "license": [ 844 | "MIT" 845 | ], 846 | "authors": [ 847 | { 848 | "name": "Eric GELOEN", 849 | "email": "geloen.eric@gmail.com" 850 | }, 851 | { 852 | "name": "Márk Sági-Kazár", 853 | "email": "mark.sagikazar@gmail.com" 854 | } 855 | ], 856 | "description": "HTTPlug, the HTTP client abstraction for PHP", 857 | "homepage": "http://httplug.io", 858 | "keywords": [ 859 | "client", 860 | "http" 861 | ], 862 | "time": "2016-01-26 14:34:50" 863 | }, 864 | { 865 | "name": "php-http/promise", 866 | "version": "v1.0.0", 867 | "source": { 868 | "type": "git", 869 | "url": "https://github.com/php-http/promise.git", 870 | "reference": "dc494cdc9d7160b9a09bd5573272195242ce7980" 871 | }, 872 | "dist": { 873 | "type": "zip", 874 | "url": "https://api.github.com/repos/php-http/promise/zipball/dc494cdc9d7160b9a09bd5573272195242ce7980", 875 | "reference": "dc494cdc9d7160b9a09bd5573272195242ce7980", 876 | "shasum": "" 877 | }, 878 | "require-dev": { 879 | "henrikbjorn/phpspec-code-coverage": "^1.0", 880 | "phpspec/phpspec": "^2.4" 881 | }, 882 | "type": "library", 883 | "extra": { 884 | "branch-alias": { 885 | "dev-master": "1.1-dev" 886 | } 887 | }, 888 | "autoload": { 889 | "psr-4": { 890 | "Http\\Promise\\": "src/" 891 | } 892 | }, 893 | "notification-url": "https://packagist.org/downloads/", 894 | "license": [ 895 | "MIT" 896 | ], 897 | "authors": [ 898 | { 899 | "name": "Márk Sági-Kazár", 900 | "email": "mark.sagikazar@gmail.com" 901 | }, 902 | { 903 | "name": "Joel Wurtz", 904 | "email": "joel.wurtz@gmail.com" 905 | } 906 | ], 907 | "description": "Promise used for asynchronous HTTP requests", 908 | "homepage": "http://httplug.io", 909 | "keywords": [ 910 | "promise" 911 | ], 912 | "time": "2016-01-26 13:27:02" 913 | }, 914 | { 915 | "name": "psr/http-message", 916 | "version": "1.0", 917 | "source": { 918 | "type": "git", 919 | "url": "https://github.com/php-fig/http-message.git", 920 | "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298" 921 | }, 922 | "dist": { 923 | "type": "zip", 924 | "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", 925 | "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", 926 | "shasum": "" 927 | }, 928 | "require": { 929 | "php": ">=5.3.0" 930 | }, 931 | "type": "library", 932 | "extra": { 933 | "branch-alias": { 934 | "dev-master": "1.0.x-dev" 935 | } 936 | }, 937 | "autoload": { 938 | "psr-4": { 939 | "Psr\\Http\\Message\\": "src/" 940 | } 941 | }, 942 | "notification-url": "https://packagist.org/downloads/", 943 | "license": [ 944 | "MIT" 945 | ], 946 | "authors": [ 947 | { 948 | "name": "PHP-FIG", 949 | "homepage": "http://www.php-fig.org/" 950 | } 951 | ], 952 | "description": "Common interface for HTTP messages", 953 | "keywords": [ 954 | "http", 955 | "http-message", 956 | "psr", 957 | "psr-7", 958 | "request", 959 | "response" 960 | ], 961 | "time": "2015-05-04 20:22:00" 962 | }, 963 | { 964 | "name": "psr/log", 965 | "version": "1.0.0", 966 | "source": { 967 | "type": "git", 968 | "url": "https://github.com/php-fig/log.git", 969 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" 970 | }, 971 | "dist": { 972 | "type": "zip", 973 | "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", 974 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", 975 | "shasum": "" 976 | }, 977 | "type": "library", 978 | "autoload": { 979 | "psr-0": { 980 | "Psr\\Log\\": "" 981 | } 982 | }, 983 | "notification-url": "https://packagist.org/downloads/", 984 | "license": [ 985 | "MIT" 986 | ], 987 | "authors": [ 988 | { 989 | "name": "PHP-FIG", 990 | "homepage": "http://www.php-fig.org/" 991 | } 992 | ], 993 | "description": "Common interface for logging libraries", 994 | "keywords": [ 995 | "log", 996 | "psr", 997 | "psr-3" 998 | ], 999 | "time": "2012-12-21 11:40:51" 1000 | }, 1001 | { 1002 | "name": "swiftmailer/swiftmailer", 1003 | "version": "v5.4.2", 1004 | "source": { 1005 | "type": "git", 1006 | "url": "https://github.com/swiftmailer/swiftmailer.git", 1007 | "reference": "d8db871a54619458a805229a057ea2af33c753e8" 1008 | }, 1009 | "dist": { 1010 | "type": "zip", 1011 | "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/d8db871a54619458a805229a057ea2af33c753e8", 1012 | "reference": "d8db871a54619458a805229a057ea2af33c753e8", 1013 | "shasum": "" 1014 | }, 1015 | "require": { 1016 | "php": ">=5.3.3" 1017 | }, 1018 | "require-dev": { 1019 | "mockery/mockery": "~0.9.1,<0.9.4" 1020 | }, 1021 | "type": "library", 1022 | "extra": { 1023 | "branch-alias": { 1024 | "dev-master": "5.4-dev" 1025 | } 1026 | }, 1027 | "autoload": { 1028 | "files": [ 1029 | "lib/swift_required.php" 1030 | ] 1031 | }, 1032 | "notification-url": "https://packagist.org/downloads/", 1033 | "license": [ 1034 | "MIT" 1035 | ], 1036 | "authors": [ 1037 | { 1038 | "name": "Chris Corbyn" 1039 | }, 1040 | { 1041 | "name": "Fabien Potencier", 1042 | "email": "fabien@symfony.com" 1043 | } 1044 | ], 1045 | "description": "Swiftmailer, free feature-rich PHP mailer", 1046 | "homepage": "http://swiftmailer.org", 1047 | "keywords": [ 1048 | "email", 1049 | "mail", 1050 | "mailer" 1051 | ], 1052 | "time": "2016-05-01 08:45:47" 1053 | }, 1054 | { 1055 | "name": "symfony/finder", 1056 | "version": "v3.1.2", 1057 | "source": { 1058 | "type": "git", 1059 | "url": "https://github.com/symfony/finder.git", 1060 | "reference": "8201978de88a9fa0923e18601bb17f1df9c721e7" 1061 | }, 1062 | "dist": { 1063 | "type": "zip", 1064 | "url": "https://api.github.com/repos/symfony/finder/zipball/8201978de88a9fa0923e18601bb17f1df9c721e7", 1065 | "reference": "8201978de88a9fa0923e18601bb17f1df9c721e7", 1066 | "shasum": "" 1067 | }, 1068 | "require": { 1069 | "php": ">=5.5.9" 1070 | }, 1071 | "type": "library", 1072 | "extra": { 1073 | "branch-alias": { 1074 | "dev-master": "3.1-dev" 1075 | } 1076 | }, 1077 | "autoload": { 1078 | "psr-4": { 1079 | "Symfony\\Component\\Finder\\": "" 1080 | }, 1081 | "exclude-from-classmap": [ 1082 | "/Tests/" 1083 | ] 1084 | }, 1085 | "notification-url": "https://packagist.org/downloads/", 1086 | "license": [ 1087 | "MIT" 1088 | ], 1089 | "authors": [ 1090 | { 1091 | "name": "Fabien Potencier", 1092 | "email": "fabien@symfony.com" 1093 | }, 1094 | { 1095 | "name": "Symfony Community", 1096 | "homepage": "https://symfony.com/contributors" 1097 | } 1098 | ], 1099 | "description": "Symfony Finder Component", 1100 | "homepage": "https://symfony.com", 1101 | "time": "2016-06-29 05:41:56" 1102 | }, 1103 | { 1104 | "name": "symfony/polyfill-mbstring", 1105 | "version": "v1.2.0", 1106 | "source": { 1107 | "type": "git", 1108 | "url": "https://github.com/symfony/polyfill-mbstring.git", 1109 | "reference": "dff51f72b0706335131b00a7f49606168c582594" 1110 | }, 1111 | "dist": { 1112 | "type": "zip", 1113 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594", 1114 | "reference": "dff51f72b0706335131b00a7f49606168c582594", 1115 | "shasum": "" 1116 | }, 1117 | "require": { 1118 | "php": ">=5.3.3" 1119 | }, 1120 | "suggest": { 1121 | "ext-mbstring": "For best performance" 1122 | }, 1123 | "type": "library", 1124 | "extra": { 1125 | "branch-alias": { 1126 | "dev-master": "1.2-dev" 1127 | } 1128 | }, 1129 | "autoload": { 1130 | "psr-4": { 1131 | "Symfony\\Polyfill\\Mbstring\\": "" 1132 | }, 1133 | "files": [ 1134 | "bootstrap.php" 1135 | ] 1136 | }, 1137 | "notification-url": "https://packagist.org/downloads/", 1138 | "license": [ 1139 | "MIT" 1140 | ], 1141 | "authors": [ 1142 | { 1143 | "name": "Nicolas Grekas", 1144 | "email": "p@tchwork.com" 1145 | }, 1146 | { 1147 | "name": "Symfony Community", 1148 | "homepage": "https://symfony.com/contributors" 1149 | } 1150 | ], 1151 | "description": "Symfony polyfill for the Mbstring extension", 1152 | "homepage": "https://symfony.com", 1153 | "keywords": [ 1154 | "compatibility", 1155 | "mbstring", 1156 | "polyfill", 1157 | "portable", 1158 | "shim" 1159 | ], 1160 | "time": "2016-05-18 14:26:46" 1161 | }, 1162 | { 1163 | "name": "symfony/translation", 1164 | "version": "v3.1.2", 1165 | "source": { 1166 | "type": "git", 1167 | "url": "https://github.com/symfony/translation.git", 1168 | "reference": "d63a94528530c3ea5ff46924c8001cec4a398609" 1169 | }, 1170 | "dist": { 1171 | "type": "zip", 1172 | "url": "https://api.github.com/repos/symfony/translation/zipball/d63a94528530c3ea5ff46924c8001cec4a398609", 1173 | "reference": "d63a94528530c3ea5ff46924c8001cec4a398609", 1174 | "shasum": "" 1175 | }, 1176 | "require": { 1177 | "php": ">=5.5.9", 1178 | "symfony/polyfill-mbstring": "~1.0" 1179 | }, 1180 | "conflict": { 1181 | "symfony/config": "<2.8" 1182 | }, 1183 | "require-dev": { 1184 | "psr/log": "~1.0", 1185 | "symfony/config": "~2.8|~3.0", 1186 | "symfony/intl": "~2.8|~3.0", 1187 | "symfony/yaml": "~2.8|~3.0" 1188 | }, 1189 | "suggest": { 1190 | "psr/log": "To use logging capability in translator", 1191 | "symfony/config": "", 1192 | "symfony/yaml": "" 1193 | }, 1194 | "type": "library", 1195 | "extra": { 1196 | "branch-alias": { 1197 | "dev-master": "3.1-dev" 1198 | } 1199 | }, 1200 | "autoload": { 1201 | "psr-4": { 1202 | "Symfony\\Component\\Translation\\": "" 1203 | }, 1204 | "exclude-from-classmap": [ 1205 | "/Tests/" 1206 | ] 1207 | }, 1208 | "notification-url": "https://packagist.org/downloads/", 1209 | "license": [ 1210 | "MIT" 1211 | ], 1212 | "authors": [ 1213 | { 1214 | "name": "Fabien Potencier", 1215 | "email": "fabien@symfony.com" 1216 | }, 1217 | { 1218 | "name": "Symfony Community", 1219 | "homepage": "https://symfony.com/contributors" 1220 | } 1221 | ], 1222 | "description": "Symfony Translation Component", 1223 | "homepage": "https://symfony.com", 1224 | "time": "2016-06-29 05:41:56" 1225 | }, 1226 | { 1227 | "name": "symfony/var-dumper", 1228 | "version": "v3.1.2", 1229 | "source": { 1230 | "type": "git", 1231 | "url": "https://github.com/symfony/var-dumper.git", 1232 | "reference": "39492b8b8fe514163e677bf154fd80f6cc995759" 1233 | }, 1234 | "dist": { 1235 | "type": "zip", 1236 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/39492b8b8fe514163e677bf154fd80f6cc995759", 1237 | "reference": "39492b8b8fe514163e677bf154fd80f6cc995759", 1238 | "shasum": "" 1239 | }, 1240 | "require": { 1241 | "php": ">=5.5.9", 1242 | "symfony/polyfill-mbstring": "~1.0" 1243 | }, 1244 | "require-dev": { 1245 | "twig/twig": "~1.20|~2.0" 1246 | }, 1247 | "suggest": { 1248 | "ext-symfony_debug": "" 1249 | }, 1250 | "type": "library", 1251 | "extra": { 1252 | "branch-alias": { 1253 | "dev-master": "3.1-dev" 1254 | } 1255 | }, 1256 | "autoload": { 1257 | "files": [ 1258 | "Resources/functions/dump.php" 1259 | ], 1260 | "psr-4": { 1261 | "Symfony\\Component\\VarDumper\\": "" 1262 | }, 1263 | "exclude-from-classmap": [ 1264 | "/Tests/" 1265 | ] 1266 | }, 1267 | "notification-url": "https://packagist.org/downloads/", 1268 | "license": [ 1269 | "MIT" 1270 | ], 1271 | "authors": [ 1272 | { 1273 | "name": "Nicolas Grekas", 1274 | "email": "p@tchwork.com" 1275 | }, 1276 | { 1277 | "name": "Symfony Community", 1278 | "homepage": "https://symfony.com/contributors" 1279 | } 1280 | ], 1281 | "description": "Symfony mechanism for exploring and dumping PHP variables", 1282 | "homepage": "https://symfony.com", 1283 | "keywords": [ 1284 | "debug", 1285 | "dump" 1286 | ], 1287 | "time": "2016-06-29 05:41:56" 1288 | } 1289 | ], 1290 | "packages-dev": [], 1291 | "aliases": [], 1292 | "minimum-stability": "stable", 1293 | "stability-flags": [], 1294 | "prefer-stable": false, 1295 | "prefer-lowest": false, 1296 | "platform": [], 1297 | "platform-dev": [] 1298 | } 1299 | -------------------------------------------------------------------------------- /config/app.php: -------------------------------------------------------------------------------- 1 | addConnection([ 17 | 'driver' => DB_TYPE, 18 | 'host' => DB_HOST, 19 | 'port' => DB_PORT, 20 | 'database' => DB_NAME, 21 | 'username' => DB_USER, 22 | 'password' => DB_PASSWORD, 23 | 'charset' => 'utf8', 24 | 'collation' => 'utf8_unicode_ci', 25 | 'prefix' => '', 26 | 'strict' => false, 27 | 'engine' => null, 28 | ]); 29 | $capsule->setAsGlobal(); 30 | $capsule->bootEloquent(); 31 | -------------------------------------------------------------------------------- /config/mail.php: -------------------------------------------------------------------------------- 1 | '); -------------------------------------------------------------------------------- /include/FormHelper.php: -------------------------------------------------------------------------------- 1 | _postData[$field]=$_POST[$field]; 15 | $this->_currentItem=$field; 16 | return $this; 17 | } 18 | public function file($field) 19 | { 20 | $this->_postData[$field]=$_FILES[$field]; 21 | $this->_currentItem=$field; 22 | return $this; 23 | } 24 | 25 | public function request($field) 26 | { 27 | $this->_postData[$field]=$_REQUEST[$field]; 28 | $this->_currentItem=$field; 29 | return $this; 30 | } 31 | public function fetch($fieldName=false) 32 | { 33 | if ($fieldName) { 34 | if (isset($this->_postData[$fieldName])) { 35 | return $this->_postData[$fieldName]; 36 | } 37 | else{ 38 | return false; 39 | } 40 | }else{ 41 | return $this->_postData; 42 | } 43 | } 44 | public function Validator($validationType,$arg=NULL) 45 | { 46 | $_val=new Validator(); 47 | if ($arg==NULL) { 48 | $error=$_val->{$validationType}($this->_postData[$this->_currentItem]); 49 | }else{ 50 | $error=$_val->{$validationType}($this->_postData[$this->_currentItem],$arg); 51 | } 52 | if ($error) { 53 | $this->_error[$this->_currentItem]=$error; 54 | } 55 | return $this; 56 | } 57 | public function submit() 58 | { 59 | Session::set('old',$this->_postData); 60 | if (empty($this->_error)) { 61 | return true; 62 | }else{ 63 | Session::init(); 64 | Session::set('errors',$this->_error); 65 | $str=''; 66 | foreach ($this->_error as $key => $value) { 67 | $str.=$key.','.$value.','; 68 | } 69 | $str=rtrim($str,','); 70 | throw new Exception($str); 71 | } 72 | } 73 | } 74 | ?> -------------------------------------------------------------------------------- /include/Pagination.php: -------------------------------------------------------------------------------- 1 | current_page = (int)$page; 11 | $this->per_page = (int)$per_page; 12 | $this->total_page = (int)$total_page; 13 | } 14 | public function offset() 15 | { 16 | return ($this->current_page - 1) * $this->per_page; 17 | } 18 | public function totalPages() 19 | { 20 | return ceil($this->total_page/$this->per_page); 21 | } 22 | public function prevPage() 23 | { 24 | return $this->current_page -1; 25 | } 26 | public function nextPage() 27 | { 28 | return $this->current_page +1; 29 | } 30 | public function hasNextPage() 31 | { 32 | return $this->nextPage() <= $this->totalPages() ? TRUE : FALSE; 33 | } 34 | public function hasPrevPage() 35 | { 36 | return $this->prevPage() >=1 ? TRUE :FALSE; 37 | } 38 | public function createPaginationArea(Pagination $pagination,$page) 39 | { 40 | $area=""; 62 | return $area; 63 | } 64 | 65 | } -------------------------------------------------------------------------------- /include/Validator.php: -------------------------------------------------------------------------------- 1 | $len) { 55 | return "You Are Required To Enter Maximun: $len Value!!"; 56 | } 57 | } 58 | public function isMatched($param1=-1,$param2=NULL,$type='Password') 59 | { 60 | if ($param1!=$param2) { 61 | return "$type does not Match!!"; 62 | } 63 | } 64 | public function isRequired($param) 65 | { 66 | if (!isset($param) || empty($param)) { 67 | return "$param Cannot be Blank!!"; 68 | } 69 | } 70 | public function isFileOk($file,$option=array('type'=>array('image/jpeg','image/pjpeg'),'maxUploadSize'=>20480,'isOptional'=>false)) 71 | { 72 | if($option['isOptional']){return;} 73 | $upload_errors=array( 74 | UPLOAD_ERR_OK =>"NO ERRORS.", 75 | UPLOAD_ERR_INI_SIZE =>"File is Larger Then upload_max_size.", 76 | UPLOAD_ERR_FORM_SIZE =>"File is Larger Then MAX_FILE_SIZE.", 77 | UPLOAD_ERR_PARTIAL =>"Partial Upload ERRORS.", 78 | UPLOAD_ERR_NO_FILE =>"NO FILE SELECTED. Please Upload A File.", 79 | UPLOAD_ERR_NO_TMP_DIR =>"NO Temporary Directory.", 80 | UPLOAD_ERR_CANT_WRITE =>"Can't Write to Disk.", 81 | UPLOAD_ERR_EXTENSION =>"File Upload Stopped by Extension." 82 | ); 83 | if(!is_uploaded_file($file['tmp_name'])){ 84 | return $upload_errors[$file['error']]; 85 | } 86 | if (!in_array($file['type'], $option['type']) || $file['size'] > $option['maxUploadSize'] ) { 87 | return "File Not Allowed. Try Different!! "; 88 | } 89 | 90 | } 91 | public function __call($name, $arg) 92 | { 93 | throw new Exception("$name does not exists in ".__CLASS__); 94 | 95 | } 96 | } 97 | ?> -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | __init(); 8 | 9 | 10 | ?> -------------------------------------------------------------------------------- /libs/Auth.php: -------------------------------------------------------------------------------- 1 | prepare("SElECT * FROM users WHERE email=:email AND password=:password"); 14 | $st->execute(array( 15 | ':email'=>$email, 16 | ':password'=>Hash::make($password) 17 | )); 18 | $data=$st->fetch(); 19 | $count=$st->rowCount(); 20 | if ($count > 0) { 21 | self::$user_id=$data['id']; 22 | self::$username=$data['username']; 23 | self::$email=$data['email']; 24 | return TRUE; 25 | } 26 | return FALSE; 27 | } 28 | public static function login($username,$password) 29 | { 30 | if(self::check($username,$password)){ 31 | Session::init(); 32 | Session::set('loggedIn',TRUE); 33 | Session::set('id',self::$user_id); 34 | Session::set('username',self::$username); 35 | Session::set('email',self::$email); 36 | return true; 37 | } 38 | return false; 39 | } 40 | public static function logout() 41 | { 42 | Session::init(); 43 | self::$user_id=NULL; 44 | self::$username=NULL; 45 | self::$email=NULL; 46 | Session::remove('loggedIn'); 47 | Session::remove('id'); 48 | Session::remove('username'); 49 | Session::remove('email'); 50 | // Session::destroy(); 51 | } 52 | } -------------------------------------------------------------------------------- /libs/BaseController.php: -------------------------------------------------------------------------------- 1 | view=new View(); 10 | } 11 | public function loadModel($name) 12 | { 13 | $file=__MODELS__.ucfirst($name).'.php'; 14 | if (file_exists($file)) { 15 | // require $file; 16 | $modelName="\\App\\Models\\".ucwords($name); 17 | $this->model=new $modelName(); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /libs/BaseModel.php: -------------------------------------------------------------------------------- 1 | __getUrl(); 15 | if (empty($this->_url[0])) { 16 | $this->__loadDefaultController(); 17 | return false; 18 | } 19 | $this->__loadExistingController(); 20 | $this->__loadControllerMethod(); 21 | 22 | 23 | } 24 | private function __getUrl() 25 | { 26 | $url=isset($_GET['url'])? $_GET['url'] : null; 27 | $url= rtrim($url,'/'); 28 | $url=filter_var($url,FILTER_SANITIZE_URL); 29 | $this->_url=explode('/', $url); 30 | } 31 | private function __loadDefaultController() 32 | { 33 | require __CONTROLLERS__.'Index.php'; 34 | $this->_controller=new Index(); 35 | $this->_controller->loadModel( 'Index' ); 36 | $this->_controller->index(); 37 | } 38 | private function __loadExistingController() 39 | { 40 | $file=__CONTROLLERS__.ucwords($this->_url[0]).'s.php'; 41 | if(file_exists($file)){ 42 | // require $file; 43 | $cc=ucwords($this->_url[0]).'s'; 44 | $cc = "\\App\\Controllers\\{$cc}"; 45 | $this->_controller=new $cc; 46 | $this->_controller->loadModel( $this->_url[0] ); 47 | }else{ 48 | $this->error(); 49 | } 50 | } 51 | private function __loadControllerMethod() 52 | { 53 | # Find if controller exist 54 | # if controller does not exist call error method. 55 | $length=count($this->_url); 56 | if ($length > 1) { 57 | if(!method_exists($this->_controller, $this->_url[1])){ 58 | $this->error(); 59 | } 60 | } 61 | # if controller exist load the controller's method 62 | switch ($length) { 63 | case 5: 64 | $this->_controller->{$this->_url[1]}($this->_url[2],$this->_url[3],$this->_url[4]); 65 | break; 66 | case 4: 67 | $this->_controller->{$this->_url[1]}($this->_url[2],$this->_url[3]); 68 | break; 69 | case 3: 70 | $this->_controller->{$this->_url[1]}($this->_url[2]); 71 | break; 72 | case 2: 73 | $this->_controller->{$this->_url[1]}(); 74 | break; 75 | default: 76 | $this->_controller->Index(); 77 | break; 78 | } 79 | } 80 | function error(){ 81 | // require __CONTROLLERS__.'Error.php'; 82 | $this->_controller=new \Errors(); 83 | $this->_controller->Index(); 84 | exit(); 85 | 86 | } 87 | } -------------------------------------------------------------------------------- /libs/Database.php: -------------------------------------------------------------------------------- 1 | prepare($sql); 16 | foreach ($array as $key => $value) { 17 | $st->bindValue(":`$key`",$value); 18 | } 19 | $st->execute(); 20 | return $st->fetchAll($fetchmode); 21 | } 22 | public function insert($table,$data) 23 | { 24 | ksort($data); 25 | $fieldNames=implode(',', array_keys($data)); 26 | $fieldValues=':'.implode(',:', array_keys($data)); 27 | $st=$this->prepare("INSERT INTO $table($fieldNames) VALUES($fieldValues)"); 28 | foreach ($data as $key => $value) { 29 | $st->bindValue(":$key",$value); 30 | } 31 | return $st->execute(); 32 | } 33 | public function update($table, $data,$where) 34 | { 35 | ksort($data); 36 | $fieldDetails=NULL; 37 | foreach ($data as $key => $value) { 38 | $fieldDetails.="$key=:$key,"; 39 | } 40 | $fieldDetails=rtrim($fieldDetails,','); 41 | $st=$this->prepare("UPDATE $table SET $fieldDetails where $where"); 42 | foreach ($data as $key => $value) { 43 | $st->bindValue(":$key",$value); 44 | } 45 | return $st->execute(); 46 | } 47 | 48 | public function delete($table,$where) 49 | { 50 | return $this->exec("DELETE FROM $table WHERE $where "); 51 | } 52 | } -------------------------------------------------------------------------------- /libs/Exceptions/HttpPageNotFoundException.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/Session.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/css/style.css: -------------------------------------------------------------------------------- 1 | *{ 2 | margin: 0; 3 | padding: 0; 4 | } 5 | body{ 6 | padding: 60px 0 20px; 7 | /*background: #2A2E37;*/ 8 | /*background: #171D1E;*/ 9 | /*color: #fff;*/ 10 | } 11 | .error{ 12 | color: #b92c28; 13 | padding-left: 5px; 14 | font-style: italic; 15 | } 16 | .error:before{ 17 | content: '*'; 18 | } 19 | .navbar-inverse .navbar-nav>.active>a, 20 | .navbar-inverse 21 | .navbar-nav>.active>a:hover, 22 | .navbar-inverse 23 | .navbar-nav> 24 | .active>a:focus{ 25 | background: #4A86B3; 26 | } 27 | .dropdown-menu>li>a:hover{ 28 | color: #fff; 29 | background-color: #4A86B3; 30 | } 31 | #main-content{ 32 | min-height: 620px; 33 | } 34 | ul{ 35 | list-style: none; 36 | } 37 | .sorting{ 38 | color: #468847; 39 | border-bottom: 3px solid #419641; 40 | padding: 5px 10px; 41 | } -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abhishekkhaware/mvc/9334adf54d1c223821718761f54ed91f0c405bdd/public/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abhishekkhaware/mvc/9334adf54d1c223821718761f54ed91f0c405bdd/public/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abhishekkhaware/mvc/9334adf54d1c223821718761f54ed91f0c405bdd/public/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abhishekkhaware/mvc/9334adf54d1c223821718761f54ed91f0c405bdd/public/images/favicon.ico -------------------------------------------------------------------------------- /public/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abhishekkhaware/mvc/9334adf54d1c223821718761f54ed91f0c405bdd/public/images/favicon.png -------------------------------------------------------------------------------- /public/images/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abhishekkhaware/mvc/9334adf54d1c223821718761f54ed91f0c405bdd/public/images/logo.jpg -------------------------------------------------------------------------------- /public/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abhishekkhaware/mvc/9334adf54d1c223821718761f54ed91f0c405bdd/public/images/sort_asc.png -------------------------------------------------------------------------------- /public/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abhishekkhaware/mvc/9334adf54d1c223821718761f54ed91f0c405bdd/public/images/sort_desc.png -------------------------------------------------------------------------------- /public/js/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.0.1 by @fat and @mdo 3 | * Copyright 2013 Twitter, Inc. 4 | * Licensed under http://www.apache.org/licenses/LICENSE-2.0 5 | * 6 | * Designed and built with all the love in the world by @mdo and @fat. 7 | */ 8 | 9 | if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery); -------------------------------------------------------------------------------- /public/js/html5shiv.js: -------------------------------------------------------------------------------- 1 | /* 2 | HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); 5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; 6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| 7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment(); 8 | for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d 2 |

Add New Branch

3 |
4 |
5 | 6 | 7 |

8 | 9 |

10 | 11 |
12 |
13 | 14 | 15 |

16 | 17 |

18 | 19 |
20 |
21 | 22 | 23 |

24 | 25 |

26 | 27 |
28 |
29 | 30 | 31 |

32 | 33 |

34 | 35 |
36 | 37 |
38 | 39 | -------------------------------------------------------------------------------- /resources/views/branch_detail/index.php: -------------------------------------------------------------------------------- 1 |
2 | 15 | 16 | Display All 17 | 18 |
19 | details) && !empty($this->details)): ?> 20 | 21 | 23 | 24 | 25 | 28 | 31 | 34 | 37 | 40 | 41 | 42 | 43 | details as $detail): ?> 44 | 45 | 46 | 47 | 48 | 49 | 86 | 87 | 88 | 89 |

List of Available Branches

22 |
26 | 27 | 29 | 30 | 32 | 33 | 35 | 36 | 38 | 39 |
id ?> branch_name ?> issues){ ?>issues,function($dt){return !$dt->status;}))? "".count(array_filter($detail->issues,function($dt){return !$dt->status;}))."" : ''; } ?> branch_manager ?> location ?> email ?> 50 | 85 |
90 |
91 | createLinks; ?> 92 | 93 |

NO RECORD FOUND!!

94 | 95 | -------------------------------------------------------------------------------- /resources/views/branch_detail/js/details.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by abhishek on 6/2/14. 3 | */ 4 | function BranchDetailController($scope,$http){ 5 | $http.get('http://bank.com/branchdetail/showBranchIssuesInJson',{params :{b_id: $('#branchid').val()}}).success(function(details){ 6 | $scope.details=details; 7 | // console.log($scope.details); 8 | }); 9 | } 10 | -------------------------------------------------------------------------------- /resources/views/branch_detail/show.php: -------------------------------------------------------------------------------- 1 |
2 | details) && !empty($this->details)): ?> 3 |
4 | 5 |
6 | 7 | 8 | 12 | 13 | 14 | 17 | 20 | 23 | 26 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 |

List Of Issues At Branch Code: details->id ?> And 9 | Branch Manager is: details->branch_manager ?> 10 |

11 |
15 | Issue ID 16 | 18 | Issue Ticket 19 | 21 | Created At 22 | 24 | Issue 25 | 27 | Action 28 |
{{ detail.id }} {{ detail.issue_ticket}}{{ detail.issue_ticket_created_at }} {{ detail.issue }} Response

No Record Found

44 |
45 | 46 |

NO RECORD FOUND!!

47 | 48 |
-------------------------------------------------------------------------------- /resources/views/branch_issue/add.php: -------------------------------------------------------------------------------- 1 |
2 |

Add New Issue

3 |
4 | 5 |
6 | 7 |
8 |
9 | 10 |

11 | Example block-level help text here. 12 |

13 |
14 | 15 |
16 |
-------------------------------------------------------------------------------- /resources/views/branch_issue/index.php: -------------------------------------------------------------------------------- 1 | 6 | issues) && !empty($this->issues)): ?> 7 | 8 | 10 | 11 | 12 | 15 | 18 | 21 | 24 | 27 | 28 | 29 | 30 | 33 | 34 | 35 | 36 | issues as $issue): ?> 37 | 38 | 39 | 40 | 41 | 42 | 44 | 45 | 48 | 87 | 88 | 89 | 90 |

List All Issues

9 |
13 | 14 | 16 | 17 | 19 | 20 | 22 | 23 | 25 | 26 | 31 | Action 32 |
id ?> branchdetail_id ?> issue_ticket_created_at ?> issue_ticket ?> status)? "SOLVED": 43 | "UNSOLVED" ?> Response 49 | 86 |
91 |
92 | createLinks; ?> 93 | 94 |

NO RECORD FOUND!!

95 | 96 | -------------------------------------------------------------------------------- /resources/views/branch_issue/show.php: -------------------------------------------------------------------------------- 1 | issues) && !empty($this->issues)): ?> 2 | 3 | 5 | 6 | 7 | 10 | 13 | 16 | 19 | 22 | 25 | 26 | 27 | 28 | issues as $issue): ?> 29 | 30 | 31 | 32 | 33 | 34 | 36 | 40 | 41 | 42 | 43 | 44 |

List All Issues

4 |
8 | 9 | 11 | 12 | 14 | 15 | 17 | 18 | 20 | 21 | 23 | Action 24 |
id ?> issue_ticket_created_at ?> issue_ticket ?> issue ?> status)? "SOLVED": 35 | "UNSOLVED" ?> 37 | result=='unresolved')? "UNRESOLVED": $issue->result. 38 | " (RESOLVED)"; ?> 39 | Response
45 |
46 | createLinks; ?> 47 | 48 |

NO RECORD FOUND!!

49 | 50 | -------------------------------------------------------------------------------- /resources/views/error/index.php: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /resources/views/footer.php: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |

6 | © Bank.com. All Rights Reserved ®.
7 | Designed & Developed By: ABHISHEK KHAWARE
8 |

9 |
10 |
11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /resources/views/header.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | WOW Bank - Aapka Apna Bank 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | css)) { 16 | foreach ($this->css as $css) { 17 | echo "\n"; 18 | } 19 | } 20 | if (isset($this->js)) { 21 | foreach ($this->js as $js) { 22 | echo "\n"; 23 | } 24 | } 25 | ?> 26 | 27 | 30 | 31 | 32 | 33 | 34 |
35 |
36 |
37 | 38 | 39 |
40 | 41 |
42 | x 43 |

44 |
45 | 46 | 47 |
48 | x 49 |

$error): ?> 50 | , ".$error ?>
51 | 52 |

53 |
54 | 55 | -------------------------------------------------------------------------------- /resources/views/index/index.php: -------------------------------------------------------------------------------- 1 | 2 |

Welcome To Bank- Aapka Apna Bank

3 |
4 |
5 |
6 | 300x200 7 |
8 |

9 | Thumbnail label 10 |

11 |

12 | Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit. 13 |

14 |

15 | Action Action 16 |

17 |
18 |
19 |
20 |
21 |
22 | 300x200 23 |
24 |

25 | Thumbnail label 26 |

27 |

28 | Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit. 29 |

30 |

31 | Action Action 32 |

33 |
34 |
35 |
36 |
37 |
38 | 300x200 39 |
40 |

41 | Thumbnail label 42 |

43 |

44 | Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit. 45 |

46 |

47 | Action Action 48 |

49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 | 300x200 57 |
58 |

59 | Thumbnail label 60 |

61 |

62 | Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit. 63 |

64 |

65 | Action Action 66 |

67 |
68 |
69 |
70 |
71 |
72 | 300x200 73 |
74 |

75 | Thumbnail label 76 |

77 |

78 | Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit. 79 |

80 |

81 | Action Action 82 |

83 |
84 |
85 |
86 |
87 |
88 | 300x200 89 |
90 |

91 | Thumbnail label 92 |

93 |

94 | Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit. 95 |

96 |

97 | Action Action 98 |

99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | 300x200 107 |
108 |

109 | Thumbnail label 110 |

111 |

112 | Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit. 113 |

114 |

115 | Action Action 116 |

117 |
118 |
119 |
120 |
121 |
122 | 300x200 123 |
124 |

125 | Thumbnail label 126 |

127 |

128 | Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit. 129 |

130 |

131 | Action Action 132 |

133 |
134 |
135 |
136 |
137 |
138 | 300x200 139 |
140 |

141 | Thumbnail label 142 |

143 |

144 | Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit. 145 |

146 |

147 | Action Action 148 |

149 |
150 |
151 |
152 |
-------------------------------------------------------------------------------- /resources/views/login/css/login.css: -------------------------------------------------------------------------------- 1 | .login { 2 | margin: 20px auto; 3 | background: #f5f9fa; 4 | padding: 50px; 5 | border-radius: 8px; 6 | text-align: center; 7 | } 8 | 9 | input[type=password], 10 | input[type=email]{ 11 | width: 100%; 12 | border: 1px solid #ccc; 13 | padding: 8px; 14 | box-sizing: border-box; 15 | } 16 | 17 | input[type=password]:focus, 18 | input[type=email]:focus { 19 | border: 1px solid #888; 20 | outline: none; 21 | } 22 | /* Button Style */ 23 | input.submit { 24 | background-color: #68b12f; 25 | background: -webkit-gradient(linear, left top, left bottom, from(#68b12f), to(#50911e)); 26 | background: -webkit-linear-gradient(top, #68b12f, #50911e); 27 | background: -moz-linear-gradient(top, #68b12f, #50911e); 28 | background: -ms-linear-gradient(top, #68b12f, #50911e); 29 | background: -o-linear-gradient(top, #68b12f, #50911e); 30 | background: linear-gradient(top, #68b12f, #50911e); 31 | border: 1px solid #509111; 32 | border-bottom: 1px solid #5b992b; 33 | border-radius: 3px; 34 | -webkit-border-radius: 3px; 35 | -moz-border-radius: 3px; 36 | -ms-border-radius: 3px; 37 | -o-border-radius: 3px; 38 | box-shadow: inset 0 1px 0 0 #9fd574; 39 | -webkit-box-shadow: 0 1px 0 0 #9fd574 inset ; 40 | -moz-box-shadow: 0 1px 0 0 #9fd574 inset; 41 | -ms-box-shadow: 0 1px 0 0 #9fd574 inset; 42 | -o-box-shadow: 0 1px 0 0 #9fd574 inset; 43 | color: white; 44 | font-weight: bold; 45 | padding: 6px 20px; 46 | text-align: center; 47 | text-shadow: 0 -1px 0 #396715; 48 | } 49 | input.submit:hover { 50 | opacity:.85; 51 | cursor: pointer; 52 | } 53 | input.submit:active { 54 | border: 1px solid #20911e; 55 | box-shadow: 0 0 10px 5px #356b0b inset; 56 | -webkit-box-shadow:0 0 10px 5px #356b0b inset ; 57 | -moz-box-shadow: 0 0 10px 5px #356b0b inset; 58 | -ms-box-shadow: 0 0 10px 5px #356b0b inset; 59 | -o-box-shadow: 0 0 10px 5px #356b0b inset; 60 | 61 | } 62 | 63 | .login input { 64 | margin: 6px 0; 65 | } 66 | 67 | input[type=password], 68 | input[type=submit]{ 69 | -webkit-filter: blur(1px); 70 | transform: scale(0.9); 71 | opacity: .4; 72 | transition: all .4s; 73 | pointer-events: none; 74 | } 75 | 76 | input[type=password]:valid + input[type=submit], 77 | input[type=email]:valid + input[type=password] { 78 | pointer-events: auto; 79 | -webkit-filter: none; 80 | transform: scale(1); 81 | opacity: 1; 82 | } 83 | input, textarea { 84 | border:1px solid #aaa; 85 | box-shadow: 0px 0px 3px #ccc, 0 10px 15px #eee inset; 86 | border-radius:2px; 87 | } 88 | input:focus, textarea:focus { 89 | background: #fff; 90 | border:1px solid #555; 91 | box-shadow: 0 0 3px #aaa; 92 | } -------------------------------------------------------------------------------- /resources/views/login/index.php: -------------------------------------------------------------------------------- 1 |
2 | 5 |
6 | 7 | 8 |

9 |

13 |
14 | 15 | 23 |
-------------------------------------------------------------------------------- /resources/views/navigation.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/views/slider.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resources/views/user/add.php: -------------------------------------------------------------------------------- 1 | 4 |
5 |

6 | 10 |

11 |
12 | 13 | 15 |
16 | You have Following Error(s): 17 |

18 |
    19 | decryptErrors(Session::get('errors')); 21 | foreach ($errors as $key=> $error) { 22 | echo "
  • For ".ucfirst($key).", {$error}
  • "; 23 | } 24 | Session::remove('errors'); 25 | ?> 26 |
27 |

28 |
29 | 30 |
31 |
32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 |

Registration Form..!!

54 |
65 |
66 |
-------------------------------------------------------------------------------- /resources/views/user/edit.php: -------------------------------------------------------------------------------- 1 | 4 |
5 | x 6 |

7 | 11 |

12 |
13 | 14 | 16 |
17 | x 18 | You have Following Error(s): 19 |

20 |
    21 | decryptErrors(Session::get('errors')); 23 | foreach ($errors as $error) { 24 | echo "
  • {$error}
  • "; 25 | } 26 | Session::remove('errors'); 27 | ?> 28 |
29 |

30 |
31 | 32 |
33 |
34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 |

Update User Details.

60 |
71 |
72 |
-------------------------------------------------------------------------------- /resources/views/user/index.php: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | userList as $user => $value): ?> 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 24 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 37 | 38 |

Registered User..!!

UserIdUserNameEmailRoleAction
SUPER 23 | EDIT 25 | DELETE 
createLinks; ?>
36 | Add New User
39 |
-------------------------------------------------------------------------------- /tmp/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /tmp/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /tmp/session/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | --------------------------------------------------------------------------------