diff --git a/App/Controllers/Home.php b/App/Controllers/Home.php index 307336e..039287e 100644 --- a/App/Controllers/Home.php +++ b/App/Controllers/Home.php @@ -14,12 +14,6 @@ use Defuse\Crypto\Key; class Home { - // public $model; - // - // public function __construct() - // { - // $this->model = new Access(); - // } /* Routes */ public function index() @@ -30,11 +24,6 @@ class Home public function login($args = []) { - // if (Session::exists('userid')) { - // Session::flash('info', 'Anda telah masuk'); - // Redirect::to('/'); - // die(); - // } // Login if ($args) { @@ -105,6 +94,7 @@ class Home } else { $this->delete(); } + session_destroy(); header('X-Token: '); setcookie('signal', '', time()-3600); @@ -203,44 +193,25 @@ class Home public function delete($id = '') { - // if (Session::exists('userid') == false) { - // throw new \Exception("Bad request but thrown as 404", 404); - // } - // $client = ClientSession::fetch([ - // - // ]) - // $userid = Session::get('userid'); - // - // $user = Access::showAll([ - // ['id', '=', $userid] - // ]); - // $max_user = $user['max_user'] + 1; - // - // if (Access::update( - // [ - // 'max_user' => $max_user - // ], - // $userid - // ) != true) { - // throw new \Exception("Bad request", 400); - // } - // return true; - - - if ($id) { - $uid = $id; - } elseif (isset($_SERVER['HTTP_X_TOKEN'])) { - $token = Token::fetch($_SERVER['HTTP_X_TOKEN']); - if ($token == '') { - throw new \Exception("Token invalid"); - } - $uid = $token['uid']; - } elseif (isset($_SERVER['HTTP_X_QUERY'])) { + // if ($id) { + // $uid = $id; + // } elseif (isset($_SERVER['HTTP_X_TOKEN'])) { + // $token = Token::fetch($_SERVER['HTTP_X_TOKEN']); + // if ($token == '') { + // throw new \Exception("Token invalid"); + // } + // $uid = $token['uid']; + // } elseif (isset($_SERVER['HTTP_X_QUERY'])) { $query_string = $_SERVER['HTTP_X_QUERY']; $exploded = explode('&', $query_string); $uid = $exploded[1]; - } - ClientSession::remove($uid); + $uid = explode('=', $uid); + $uid = $uid[1]; + // } + + $ip = isset($_SERVER['HTTP_X_FORWADED_FOR']) ? $_SERVER['HTTP_X_FORWADED_FOR'] : $_SERVER['REMOTE_ADDR']; + + ClientSession::remove($ip, $uid); Access::update(['flag' => 0], $uid); return true; } diff --git a/App/Models/ClientSession.php b/App/Models/ClientSession.php index b6300e3..a923f83 100644 --- a/App/Models/ClientSession.php +++ b/App/Models/ClientSession.php @@ -75,14 +75,15 @@ class ClientSession return $result; } - public static function remove($id) + public static function remove($ip, $id) { - $sql = "DELETE FROM `client_session` WHERE `uid` = ?"; + $sql = "DELETE FROM `client_session` WHERE `ip_address` = ? AND `uid` = ?"; try { $db = static::connectDB(); $query = $db->prepare($sql); - $query->bindValue(1, $id); + $query->bindValue(1, $ip); + $query->bindValue(2, $id); $query->execute(); $result = self::fetch(['uid' => $id]); diff --git a/Core/Router.php b/Core/Router.php index f8316b8..7965da7 100644 --- a/Core/Router.php +++ b/Core/Router.php @@ -52,46 +52,60 @@ class Router public function dispatch($url) { // Check token - if (isset($_SERVER['HTTP_X-Token'])) { - if (!$this->checkToken($_SERVER['HTTP_X-Token'])) { + if (isset($_SERVER['HTTP_X_Token'])) { + if (!$this->checkToken($_SERVER['HTTP_X_Token'])) { // Logout $controller = 'Home'; $controller = $this->getNamespace($controller); $obj = new $controller(); $obj->logout(); - Redirect::to('/mithril'); + Redirect::to('/'); } } - $query_string = $this->getQueryStringVariable($url); - if ($query_string) { - $sessid = explode('=', $query_string[0]); - $sessid = $sessid[1]; - $userid = explode('=', $query_string[1]); - $userid = $userid[1]; + if ($url != '/login' && $url != '/') { + $query_string = $this->getQueryStringVariable($url); + if ($query_string) { + $sessid = explode('=', $query_string[0]); + $sessid = $sessid[1]; + $userid = explode('=', $query_string[1]); + $userid = $userid[1]; - // Check if user login - if (is_array(\App\Models\ClientSession::fetch([ - 'uid' => $userid, - 'id' => $sessid - ]))) { - $token = Token::generate($userid); - header("X-Token: $token"); - } - } elseif ($query_string == false) { - // echo ['status' => true, 'message' => 'atas'];die(); - // Get user ip - $ip_address = isset($_SERVER['HTTP_X_FORWADED_FOR']) ? $_SERVER['HTTP_X_FORWADED_FOR'] : $_SERVER['REMOTE_ADDR']; - $record = \App\Models\ClientSession::fetch(['ip_address' => $ip_address]); - if (is_array($record)) { - $obj = 'Home'; - $obj = $this->getNamespace($obj); - $obj = new $obj(); - $obj->logout($record['uid']); - header('Location: http://lepisi.dev/mithril'); - // Redirect::to('/mithril'); - die(); + // Check if user login + $session = \App\Models\ClientSession::fetch([ + 'uid' => $userid, + 'id' => $sessid + ]); + if (is_array($session)) { + $token = Token::generate($userid); + header("X-Token: $token"); + } else { + $ip_address = isset($_SERVER['HTTP_X_FORWADED_FOR']) ? $_SERVER['HTTP_X_FORWADED_FOR'] : $_SERVER['REMOTE_ADDR']; + $record = \App\Models\ClientSession::fetch(['ip_address' => $ip_address]); + $obj = 'Home'; + $obj = $this->getNamespace($obj); + if (is_array($record)) { + $obj = new $obj(); + $obj->logout($record['uid']); + die(); + } else { + $obj = new $obj(); + $obj->logout($userid); + } + header('Location: /'); + } + } elseif ($query_string == false) { + $ip_address = isset($_SERVER['HTTP_X_FORWADED_FOR']) ? $_SERVER['HTTP_X_FORWADED_FOR'] : $_SERVER['REMOTE_ADDR']; + $record = \App\Models\ClientSession::fetch(['ip_address' => $ip_address]); + if (is_array($record)) { + $obj = 'Home'; + $obj = $this->getNamespace($obj); + $obj = new $obj(); + $obj->logout($record['uid']); + header('Location: /'); + die(); + } } } @@ -151,7 +165,7 @@ class Router return $parts[0]; } - private function getQueryStringVariable($url) + protected function getQueryStringVariable($url) { $exploded = explode('?', $url); if (isset($exploded[1])) { diff --git a/Core/RouterApi.php b/Core/RouterApi.php index 5b28a2d..5299d9f 100644 --- a/Core/RouterApi.php +++ b/Core/RouterApi.php @@ -12,12 +12,48 @@ class RouterApi extends Router // Logout $obj = new Home(); $obj->logout(); - header('Location: /mithril'); + header('Location: /'); } - // $request = Token::generate(2); - // var_dump($request, Token::validate($request)); - // return true; + if (isset($_SERVER['HTTP_X_QUERY'])) { + // $obj = new Home(); + // $obj->logout(); + // header('Location: /'); + $query_string = $this->getQueryStringVariable($_SERVER['HTTP_X_QUERY']); + $sessid = explode('=', $query_string[0]); + $sessid = $sessid[1]; + $userid = explode('=', $query_string[1]); + $userid = $userid[1]; + + // Check if user login + $session = \App\Models\ClientSession::fetch([ + 'uid' => $userid, + 'id' => $sessid + ]); + + if (is_array($session)) { + $token = Token::generate($userid); + header("X-Token: $token"); + } else { + $response = []; + $response['status'] = 401; + $response['message'] = 'Unauthorized'; + echo json_encode($response); die(); + // $ip_address = isset($_SERVER['HTTP_X_FORWADED_FOR']) ? $_SERVER['HTTP_X_FORWADED_FOR'] : $_SERVER['REMOTE_ADDR']; + // $record = \App\Models\ClientSession::fetch(['ip_address' => $ip_address]); + // $obj = 'Home'; + // $obj = $this->getNamespace($obj); + // if (is_array($record)) { + // $obj = new $obj(); + // $obj->logout($record['uid']); + // } else { + // $obj = new $obj(); + // $obj->logout($userid); + // } + // header('Location: /'); + die(); + } + } $object = new Api(); if (isset($this->params['action'])) { diff --git a/assets/js/models/category.js b/assets/js/models/category.js index 83b04f0..5bd4b42 100644 --- a/assets/js/models/category.js +++ b/assets/js/models/category.js @@ -1,6 +1,7 @@ let m = require('mithril') let _ = require('lodash') let post = require('./post') +let user = require('./user') var category = { loading: false, @@ -36,14 +37,16 @@ var category = { method: 'PUT', url: '/api/kategori', data: category.current, - withCredentials: true + withCredentials: true, + headers: {'x-query': window.location.search} }) .then(function(result) { + console.log(result) category.current = {} - if (result.status) { + if (result.status == true) { m.route.set('/kategori') - } else { - console.log(result) + } else if (result.status == 401) { + user.logout(); } }) }, @@ -52,13 +55,15 @@ var category = { method: 'POST', url: '/api/kategori', data: category.current, - withCredentials: true + withCredentials: true, + headers: {'x-query': window.location.search} }) .then(function(result) { - if (result.status) { + console.log(result); + if (result.status == true) { category.loadList() - } else { - console.log(result.status) + } else if (result.status == 401) { + user.logout() } }) }, diff --git a/assets/js/models/user.js b/assets/js/models/user.js index 89cc026..bcb6116 100644 --- a/assets/js/models/user.js +++ b/assets/js/models/user.js @@ -38,7 +38,7 @@ var user = { url: '/post', data: user.current, withCredentials: true, - headers: {client: 'api'} + headers: {client: 'api', 'x-query': window.location.search} }) .then(function(response) { if (response.status == true) { diff --git a/public/js/index.js b/public/js/index.js index e43a219..a983fef 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -116,7 +116,7 @@ eval("var __WEBPACK_AMD_DEFINE_RESULT__;(function (main) {\n 'use strict';\n\n /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -eval("let m = __webpack_require__(/*! mithril */ 0)\n\nvar user = {\n current: {},\n login: function() {\n return m.request({\n method: 'POST',\n url: '/login',\n data: user.current,\n withCredentials: true,\n headers: {client: 'api'}\n })\n .then(function(response) {\n if (response.status == true) {\n window.location = response.redirect_to\n } else {\n console.log(response.status);\n }\n })\n },\n logout: function() {\n return m.request({\n method: 'GET',\n url: '/logout',\n withCredentials: true,\n headers: {client: 'api', 'x-query': window.location.search}\n })\n .then(function(response) {\n console.log(response);\n if (response.status) {\n window.location = response.redirect_to\n }\n })\n },\n register: function() {\n return m.request({\n method: 'POST',\n url: '/post',\n data: user.current,\n withCredentials: true,\n headers: {client: 'api'}\n })\n .then(function(response) {\n if (response.status == true) {\n m.route.set(response.route_to)\n } else {\n console.log(response);\n }\n })\n }\n}\n\nmodule.exports = user\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9qcy9tb2RlbHMvdXNlci5qcz9mYTlmIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBtID0gcmVxdWlyZSgnbWl0aHJpbCcpXG5cbnZhciB1c2VyID0ge1xuICAgIGN1cnJlbnQ6IHt9LFxuICAgIGxvZ2luOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG0ucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIHVybDogJy9sb2dpbicsXG4gICAgICAgICAgICBkYXRhOiB1c2VyLmN1cnJlbnQsXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICBoZWFkZXJzOiB7Y2xpZW50OiAnYXBpJ31cbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlLnJlZGlyZWN0X3RvXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnN0YXR1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfSxcbiAgICBsb2dvdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbS5yZXF1ZXN0KHtcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICB1cmw6ICcvbG9nb3V0JyxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtjbGllbnQ6ICdhcGknLCAneC1xdWVyeSc6IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2h9XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2UucmVkaXJlY3RfdG9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9LFxuICAgIHJlZ2lzdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG0ucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIHVybDogJy9wb3N0JyxcbiAgICAgICAgICAgIGRhdGE6IHVzZXIuY3VycmVudCxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtjbGllbnQ6ICdhcGknfVxuICAgICAgICB9KVxuICAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgbS5yb3V0ZS5zZXQocmVzcG9uc2Uucm91dGVfdG8pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdXNlclxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9hc3NldHMvanMvbW9kZWxzL3VzZXIuanNcbi8vIG1vZHVsZSBpZCA9IDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4\n"); +eval("let m = __webpack_require__(/*! mithril */ 0)\n\nvar user = {\n current: {},\n login: function() {\n return m.request({\n method: 'POST',\n url: '/login',\n data: user.current,\n withCredentials: true,\n headers: {client: 'api'}\n })\n .then(function(response) {\n if (response.status == true) {\n window.location = response.redirect_to\n } else {\n console.log(response.status);\n }\n })\n },\n logout: function() {\n return m.request({\n method: 'GET',\n url: '/logout',\n withCredentials: true,\n headers: {client: 'api', 'x-query': window.location.search}\n })\n .then(function(response) {\n console.log(response);\n if (response.status) {\n window.location = response.redirect_to\n }\n })\n },\n register: function() {\n return m.request({\n method: 'POST',\n url: '/post',\n data: user.current,\n withCredentials: true,\n headers: {client: 'api', 'x-query': window.location.search}\n })\n .then(function(response) {\n if (response.status == true) {\n m.route.set(response.route_to)\n } else {\n console.log(response);\n }\n })\n }\n}\n\nmodule.exports = user\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9qcy9tb2RlbHMvdXNlci5qcz9mYTlmIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBtID0gcmVxdWlyZSgnbWl0aHJpbCcpXG5cbnZhciB1c2VyID0ge1xuICAgIGN1cnJlbnQ6IHt9LFxuICAgIGxvZ2luOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG0ucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIHVybDogJy9sb2dpbicsXG4gICAgICAgICAgICBkYXRhOiB1c2VyLmN1cnJlbnQsXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICBoZWFkZXJzOiB7Y2xpZW50OiAnYXBpJ31cbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlLnJlZGlyZWN0X3RvXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnN0YXR1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfSxcbiAgICBsb2dvdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbS5yZXF1ZXN0KHtcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICB1cmw6ICcvbG9nb3V0JyxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtjbGllbnQ6ICdhcGknLCAneC1xdWVyeSc6IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2h9XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2UucmVkaXJlY3RfdG9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9LFxuICAgIHJlZ2lzdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG0ucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIHVybDogJy9wb3N0JyxcbiAgICAgICAgICAgIGRhdGE6IHVzZXIuY3VycmVudCxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtjbGllbnQ6ICdhcGknLCAneC1xdWVyeSc6IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2h9XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBtLnJvdXRlLnNldChyZXNwb25zZS5yb3V0ZV90bylcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB1c2VyXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2Fzc2V0cy9qcy9tb2RlbHMvdXNlci5qc1xuLy8gbW9kdWxlIGlkID0gNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///4\n"); /***/ }), /* 5 */ diff --git a/public/js/landing.js b/public/js/landing.js index 91f9690..45803f6 100644 --- a/public/js/landing.js +++ b/public/js/landing.js @@ -116,7 +116,7 @@ eval("var __WEBPACK_AMD_DEFINE_RESULT__;(function (main) {\n 'use strict';\n\n /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -eval("let m = __webpack_require__(/*! mithril */ 0)\n\nvar user = {\n current: {},\n login: function() {\n return m.request({\n method: 'POST',\n url: '/login',\n data: user.current,\n withCredentials: true,\n headers: {client: 'api'}\n })\n .then(function(response) {\n if (response.status == true) {\n window.location = response.redirect_to\n } else {\n console.log(response.status);\n }\n })\n },\n logout: function() {\n return m.request({\n method: 'GET',\n url: '/logout',\n withCredentials: true,\n headers: {client: 'api', 'x-query': window.location.search}\n })\n .then(function(response) {\n console.log(response);\n if (response.status) {\n window.location = response.redirect_to\n }\n })\n },\n register: function() {\n return m.request({\n method: 'POST',\n url: '/post',\n data: user.current,\n withCredentials: true,\n headers: {client: 'api'}\n })\n .then(function(response) {\n if (response.status == true) {\n m.route.set(response.route_to)\n } else {\n console.log(response);\n }\n })\n }\n}\n\nmodule.exports = user\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9qcy9tb2RlbHMvdXNlci5qcz9mYTlmIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBtID0gcmVxdWlyZSgnbWl0aHJpbCcpXG5cbnZhciB1c2VyID0ge1xuICAgIGN1cnJlbnQ6IHt9LFxuICAgIGxvZ2luOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG0ucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIHVybDogJy9sb2dpbicsXG4gICAgICAgICAgICBkYXRhOiB1c2VyLmN1cnJlbnQsXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICBoZWFkZXJzOiB7Y2xpZW50OiAnYXBpJ31cbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlLnJlZGlyZWN0X3RvXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnN0YXR1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfSxcbiAgICBsb2dvdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbS5yZXF1ZXN0KHtcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICB1cmw6ICcvbG9nb3V0JyxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtjbGllbnQ6ICdhcGknLCAneC1xdWVyeSc6IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2h9XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2UucmVkaXJlY3RfdG9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9LFxuICAgIHJlZ2lzdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG0ucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIHVybDogJy9wb3N0JyxcbiAgICAgICAgICAgIGRhdGE6IHVzZXIuY3VycmVudCxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtjbGllbnQ6ICdhcGknfVxuICAgICAgICB9KVxuICAgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgbS5yb3V0ZS5zZXQocmVzcG9uc2Uucm91dGVfdG8pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdXNlclxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9hc3NldHMvanMvbW9kZWxzL3VzZXIuanNcbi8vIG1vZHVsZSBpZCA9IDRcbi8vIG1vZHVsZSBjaHVua3MgPSAwIDEiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4\n"); +eval("let m = __webpack_require__(/*! mithril */ 0)\n\nvar user = {\n current: {},\n login: function() {\n return m.request({\n method: 'POST',\n url: '/login',\n data: user.current,\n withCredentials: true,\n headers: {client: 'api'}\n })\n .then(function(response) {\n if (response.status == true) {\n window.location = response.redirect_to\n } else {\n console.log(response.status);\n }\n })\n },\n logout: function() {\n return m.request({\n method: 'GET',\n url: '/logout',\n withCredentials: true,\n headers: {client: 'api', 'x-query': window.location.search}\n })\n .then(function(response) {\n console.log(response);\n if (response.status) {\n window.location = response.redirect_to\n }\n })\n },\n register: function() {\n return m.request({\n method: 'POST',\n url: '/post',\n data: user.current,\n withCredentials: true,\n headers: {client: 'api', 'x-query': window.location.search}\n })\n .then(function(response) {\n if (response.status == true) {\n m.route.set(response.route_to)\n } else {\n console.log(response);\n }\n })\n }\n}\n\nmodule.exports = user\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9qcy9tb2RlbHMvdXNlci5qcz9mYTlmIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBtID0gcmVxdWlyZSgnbWl0aHJpbCcpXG5cbnZhciB1c2VyID0ge1xuICAgIGN1cnJlbnQ6IHt9LFxuICAgIGxvZ2luOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG0ucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIHVybDogJy9sb2dpbicsXG4gICAgICAgICAgICBkYXRhOiB1c2VyLmN1cnJlbnQsXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICBoZWFkZXJzOiB7Y2xpZW50OiAnYXBpJ31cbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9IHJlc3BvbnNlLnJlZGlyZWN0X3RvXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlLnN0YXR1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfSxcbiAgICBsb2dvdXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbS5yZXF1ZXN0KHtcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICB1cmw6ICcvbG9nb3V0JyxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtjbGllbnQ6ICdhcGknLCAneC1xdWVyeSc6IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2h9XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gcmVzcG9uc2UucmVkaXJlY3RfdG9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9LFxuICAgIHJlZ2lzdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG0ucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIHVybDogJy9wb3N0JyxcbiAgICAgICAgICAgIGRhdGE6IHVzZXIuY3VycmVudCxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtjbGllbnQ6ICdhcGknLCAneC1xdWVyeSc6IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2h9XG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBtLnJvdXRlLnNldChyZXNwb25zZS5yb3V0ZV90bylcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB1c2VyXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2Fzc2V0cy9qcy9tb2RlbHMvdXNlci5qc1xuLy8gbW9kdWxlIGlkID0gNFxuLy8gbW9kdWxlIGNodW5rcyA9IDAgMSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///4\n"); /***/ }), /* 5 */ @@ -193,7 +193,7 @@ eval("/* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DE /*! all exports used */ /***/ (function(module, exports, __webpack_require__) { -eval("let m = __webpack_require__(/*! mithril */ 0)\nlet _ = __webpack_require__(/*! lodash */ 10)\nlet post = __webpack_require__(/*! ./post */ 2)\n\nvar category = {\n loading: false,\n list: [],\n current: {},\n loadList: function() {\n category.loading = true\n category.current = {}\n return m.request({\n method: 'GET',\n url: '/api/kategori',\n withCredentials: true\n })\n .then(function(results) {\n category.list = results.data\n category.loading = false\n })\n },\n loadCurrent: function(id) {\n category.loading = true\n return m.request({\n method: 'GET',\n url: '/api/kategori/' + id,\n withCredentials: true\n })\n .then(function(result) {\n category.current = result.data\n category.loading = false\n })\n },\n save: function() {\n return m.request({\n method: 'PUT',\n url: '/api/kategori',\n data: category.current,\n withCredentials: true\n })\n .then(function(result) {\n category.current = {}\n if (result.status) {\n m.route.set('/kategori')\n } else {\n console.log(result)\n }\n })\n },\n entry: function() {\n return m.request({\n method: 'POST',\n url: '/api/kategori',\n data: category.current,\n withCredentials: true\n })\n .then(function(result) {\n if (result.status) {\n category.loadList()\n } else {\n console.log(result.status)\n }\n })\n },\n toggleStatus: function(id){\n category.current = _.find(category.list, function(o) { return o.id == id })\n if (category.current.posts == 0) {\n category.current.status == 1 ? category.current.status = 0 : category.current.status = 1\n }\n category.save()\n }\n}\n\nmodule.exports = category\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvbW9kZWxzL2NhdGVnb3J5LmpzP2M3N2UiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IG0gPSByZXF1aXJlKCdtaXRocmlsJylcbmxldCBfID0gcmVxdWlyZSgnbG9kYXNoJylcbmxldCBwb3N0ID0gcmVxdWlyZSgnLi9wb3N0JylcblxudmFyIGNhdGVnb3J5ID0ge1xuICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgIGxpc3Q6IFtdLFxuICAgIGN1cnJlbnQ6IHt9LFxuICAgIGxvYWRMaXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgY2F0ZWdvcnkubG9hZGluZyA9IHRydWVcbiAgICAgICAgY2F0ZWdvcnkuY3VycmVudCA9IHt9XG4gICAgICAgIHJldHVybiBtLnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIHVybDogJy9hcGkva2F0ZWdvcmknLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdHMpIHtcbiAgICAgICAgICAgIGNhdGVnb3J5Lmxpc3QgPSByZXN1bHRzLmRhdGFcbiAgICAgICAgICAgIGNhdGVnb3J5LmxvYWRpbmcgPSBmYWxzZVxuICAgICAgICB9KVxuICAgIH0sXG4gICAgbG9hZEN1cnJlbnQ6IGZ1bmN0aW9uKGlkKSB7XG4gICAgICAgIGNhdGVnb3J5LmxvYWRpbmcgPSB0cnVlXG4gICAgICAgIHJldHVybiBtLnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIHVybDogJy9hcGkva2F0ZWdvcmkvJyArIGlkLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkge1xuICAgICAgICAgICAgY2F0ZWdvcnkuY3VycmVudCA9IHJlc3VsdC5kYXRhXG4gICAgICAgICAgICBjYXRlZ29yeS5sb2FkaW5nID0gZmFsc2VcbiAgICAgICAgfSlcbiAgICB9LFxuICAgIHNhdmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbS5yZXF1ZXN0KHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICAgICAgICB1cmw6ICcvYXBpL2thdGVnb3JpJyxcbiAgICAgICAgICAgIGRhdGE6IGNhdGVnb3J5LmN1cnJlbnQsXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7XG4gICAgICAgICAgICBjYXRlZ29yeS5jdXJyZW50ID0ge31cbiAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgbS5yb3V0ZS5zZXQoJy9rYXRlZ29yaScpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9LFxuICAgIGVudHJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG0ucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIHVybDogJy9hcGkva2F0ZWdvcmknLFxuICAgICAgICAgICAgZGF0YTogY2F0ZWdvcnkuY3VycmVudCxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgY2F0ZWdvcnkubG9hZExpc3QoKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQuc3RhdHVzKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH0sXG4gICAgdG9nZ2xlU3RhdHVzOiBmdW5jdGlvbihpZCl7XG4gICAgICAgIGNhdGVnb3J5LmN1cnJlbnQgPSBfLmZpbmQoY2F0ZWdvcnkubGlzdCwgZnVuY3Rpb24obykgeyByZXR1cm4gby5pZCA9PSBpZCB9KVxuICAgICAgICBpZiAoY2F0ZWdvcnkuY3VycmVudC5wb3N0cyA9PSAwKSB7XG4gICAgICAgICAgICBjYXRlZ29yeS5jdXJyZW50LnN0YXR1cyA9PSAxID8gY2F0ZWdvcnkuY3VycmVudC5zdGF0dXMgPSAwIDogY2F0ZWdvcnkuY3VycmVudC5zdGF0dXMgPSAxXG4gICAgICAgIH1cbiAgICAgICAgY2F0ZWdvcnkuc2F2ZSgpXG4gICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNhdGVnb3J5XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL2Fzc2V0cy9qcy9tb2RlbHMvY2F0ZWdvcnkuanNcbi8vIG1vZHVsZSBpZCA9IDExXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///11\n"); +eval("let m = __webpack_require__(/*! mithril */ 0)\nlet _ = __webpack_require__(/*! lodash */ 10)\nlet post = __webpack_require__(/*! ./post */ 2)\nlet user = __webpack_require__(/*! ./user */ 4)\n\nvar category = {\n loading: false,\n list: [],\n current: {},\n loadList: function() {\n category.loading = true\n category.current = {}\n return m.request({\n method: 'GET',\n url: '/api/kategori',\n withCredentials: true\n })\n .then(function(results) {\n category.list = results.data\n category.loading = false\n })\n },\n loadCurrent: function(id) {\n category.loading = true\n return m.request({\n method: 'GET',\n url: '/api/kategori/' + id,\n withCredentials: true\n })\n .then(function(result) {\n category.current = result.data\n category.loading = false\n })\n },\n save: function() {\n return m.request({\n method: 'PUT',\n url: '/api/kategori',\n data: category.current,\n withCredentials: true,\n headers: {'x-query': window.location.search}\n })\n .then(function(result) {\n console.log(result)\n category.current = {}\n if (result.status == true) {\n m.route.set('/kategori')\n } else if (result.status == 401) {\n user.logout();\n }\n })\n },\n entry: function() {\n return m.request({\n method: 'POST',\n url: '/api/kategori',\n data: category.current,\n withCredentials: true,\n headers: {'x-query': window.location.search}\n })\n .then(function(result) {\n console.log(result);\n if (result.status == true) {\n category.loadList()\n } else if (result.status == 401) {\n user.logout()\n }\n })\n },\n toggleStatus: function(id){\n category.current = _.find(category.list, function(o) { return o.id == id })\n if (category.current.posts == 0) {\n category.current.status == 1 ? category.current.status = 0 : category.current.status = 1\n }\n category.save()\n }\n}\n\nmodule.exports = category\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9hc3NldHMvanMvbW9kZWxzL2NhdGVnb3J5LmpzP2M3N2UiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IG0gPSByZXF1aXJlKCdtaXRocmlsJylcbmxldCBfID0gcmVxdWlyZSgnbG9kYXNoJylcbmxldCBwb3N0ID0gcmVxdWlyZSgnLi9wb3N0JylcbmxldCB1c2VyID0gcmVxdWlyZSgnLi91c2VyJylcblxudmFyIGNhdGVnb3J5ID0ge1xuICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgIGxpc3Q6IFtdLFxuICAgIGN1cnJlbnQ6IHt9LFxuICAgIGxvYWRMaXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgY2F0ZWdvcnkubG9hZGluZyA9IHRydWVcbiAgICAgICAgY2F0ZWdvcnkuY3VycmVudCA9IHt9XG4gICAgICAgIHJldHVybiBtLnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIHVybDogJy9hcGkva2F0ZWdvcmknLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdHMpIHtcbiAgICAgICAgICAgIGNhdGVnb3J5Lmxpc3QgPSByZXN1bHRzLmRhdGFcbiAgICAgICAgICAgIGNhdGVnb3J5LmxvYWRpbmcgPSBmYWxzZVxuICAgICAgICB9KVxuICAgIH0sXG4gICAgbG9hZEN1cnJlbnQ6IGZ1bmN0aW9uKGlkKSB7XG4gICAgICAgIGNhdGVnb3J5LmxvYWRpbmcgPSB0cnVlXG4gICAgICAgIHJldHVybiBtLnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgIHVybDogJy9hcGkva2F0ZWdvcmkvJyArIGlkLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkge1xuICAgICAgICAgICAgY2F0ZWdvcnkuY3VycmVudCA9IHJlc3VsdC5kYXRhXG4gICAgICAgICAgICBjYXRlZ29yeS5sb2FkaW5nID0gZmFsc2VcbiAgICAgICAgfSlcbiAgICB9LFxuICAgIHNhdmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbS5yZXF1ZXN0KHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICAgICAgICB1cmw6ICcvYXBpL2thdGVnb3JpJyxcbiAgICAgICAgICAgIGRhdGE6IGNhdGVnb3J5LmN1cnJlbnQsXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICBoZWFkZXJzOiB7J3gtcXVlcnknOiB3aW5kb3cubG9jYXRpb24uc2VhcmNofVxuICAgICAgICB9KVxuICAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdClcbiAgICAgICAgICAgIGNhdGVnb3J5LmN1cnJlbnQgPSB7fVxuICAgICAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG0ucm91dGUuc2V0KCcva2F0ZWdvcmknKVxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuc3RhdHVzID09IDQwMSkge1xuICAgICAgICAgICAgICAgIHVzZXIubG9nb3V0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfSxcbiAgICBlbnRyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBtLnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICB1cmw6ICcvYXBpL2thdGVnb3JpJyxcbiAgICAgICAgICAgIGRhdGE6IGNhdGVnb3J5LmN1cnJlbnQsXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgICAgICBoZWFkZXJzOiB7J3gtcXVlcnknOiB3aW5kb3cubG9jYXRpb24uc2VhcmNofVxuICAgICAgICB9KVxuICAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgY2F0ZWdvcnkubG9hZExpc3QoKVxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuc3RhdHVzID09IDQwMSkge1xuICAgICAgICAgICAgICAgIHVzZXIubG9nb3V0KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9LFxuICAgIHRvZ2dsZVN0YXR1czogZnVuY3Rpb24oaWQpe1xuICAgICAgICBjYXRlZ29yeS5jdXJyZW50ID0gXy5maW5kKGNhdGVnb3J5Lmxpc3QsIGZ1bmN0aW9uKG8pIHsgcmV0dXJuIG8uaWQgPT0gaWQgfSlcbiAgICAgICAgaWYgKGNhdGVnb3J5LmN1cnJlbnQucG9zdHMgPT0gMCkge1xuICAgICAgICAgICAgY2F0ZWdvcnkuY3VycmVudC5zdGF0dXMgPT0gMSA/IGNhdGVnb3J5LmN1cnJlbnQuc3RhdHVzID0gMCA6IGNhdGVnb3J5LmN1cnJlbnQuc3RhdHVzID0gMVxuICAgICAgICB9XG4gICAgICAgIGNhdGVnb3J5LnNhdmUoKVxuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjYXRlZ29yeVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9hc3NldHMvanMvbW9kZWxzL2NhdGVnb3J5LmpzXG4vLyBtb2R1bGUgaWQgPSAxMVxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///11\n"); /***/ }), /* 12 */