diff --git a/.gitignore b/.gitignore index f044de1..591c5c1 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,12 @@ public/assets/images/* !public/assets/images/global/ !public/assets/images/global/* -content/ +!content/ +content/* +!content/themes +content/themes/* +!content/themes/fipamo-default +!content/themes/fipamo-default/* vendor/ cache/ _temp diff --git a/brain/App.inc.php b/brain/App.inc.php index 73b4058..ec8dca7 100644 --- a/brain/App.inc.php +++ b/brain/App.inc.php @@ -16,6 +16,7 @@ include "../brain/utility/StringTools.inc.php"; include "../brain/utility/FileUploader.inc.php"; include "../brain/utility/DocTools.inc.php"; include "../brain/utility/Sorting.inc.php"; +include "../brain/utility/Setup.inc.php"; class App { diff --git a/brain/api/v1/InitAPI.inc.php b/brain/api/v1/InitAPI.inc.php new file mode 100644 index 0000000..778f6e9 --- /dev/null +++ b/brain/api/v1/InitAPI.inc.php @@ -0,0 +1,21 @@ +renderTags(); - //$render->renderArchive(); + $render->renderTags(); + $render->renderArchive(); $render->renderPages(); $result = [ @@ -36,7 +36,6 @@ class SettingsAPI "message" => "Settings Synced. You're doing great!", "type" => "settingsUpdated", ]; - break; case "nav-sync": Settings::navSync($body); diff --git a/brain/controller/APIControl.inc.php b/brain/controller/APIControl.inc.php index 43d554d..cd09474 100644 --- a/brain/controller/APIControl.inc.php +++ b/brain/controller/APIControl.inc.php @@ -6,6 +6,7 @@ include "../brain/api/v1/AuthAPI.inc.php"; include "../brain/api/v1/ImagesAPI.inc.php"; include "../brain/api/v1/PagesAPI.inc.php"; include "../brain/api/v1/SettingsAPI.inc.php"; +include "../brain/api/v1/InitAPI.inc.php"; class APIControl { @@ -39,6 +40,9 @@ class APIControl } switch (isset($args["third"]) ? $args["third"] : "none") { + case "init": + $result = InitApi::handleInitTasks($args["third"], $body); + break; case "login": $result = AuthAPI::login($body); break; diff --git a/brain/controller/DashControl.inc.php b/brain/controller/DashControl.inc.php index e0829c6..69ba850 100644 --- a/brain/controller/DashControl.inc.php +++ b/brain/controller/DashControl.inc.php @@ -15,120 +15,126 @@ class DashControl $view = Twig::fromRequest($request); $pageOptions = []; $template = ""; - switch (isset($args["second"]) ? $args["second"] : "index") { - case "settings": - if (Session::active()) { - $config = new Settings(); - $settings = $config->getSettings(); - $themes = $config->getThemes(); - $template = "dash/settings.twig"; - $member = Session::get("member"); - $pageOptions = [ - "title" => "Dash Settings", - "private" => $settings["global"]["private"], - "render" => $settings["global"]["renderOnSave"], - "background" => $settings["global"]["background"], - "member" => $member, - "siteTitle" => $settings["global"]["title"], - "baseUrl" => $settings["global"]["base_url"], - "desc" => $settings["global"]["descriptions"], - "lastBackup" => $settings["global"]["last_backup"], - "currentTheme" => $settings["global"]["theme"], - "themes" => $themes, - "mailOption" => $settings["email"]["active"], - "status" => Session::active(), - ]; - } else { - header("Location: /dashboard"); - die(); - } - - break; - case "navigation": - if (Session::active()) { - $config = new Settings(); - $settings = $config->getSettings(); - $template = "dash/navigation.twig"; - $pageOptions = [ - "title" => "Edit Dash Navigation", - "status" => Session::active(), - "menu" => $settings["menu"], - ]; - } else { - header("Location: /dashboard"); - die(); - } - break; - case "pages": - if (Session::active()) { - $currentPage = isset($args["fourth"]) ? $args["fourth"] : 1; - $filter = isset($args["third"]) ? $args["third"] : "all"; - $data = (new Book("../content/pages"))->getPages( - $currentPage, - 4, - $filter - ); - $template = "dash/book.twig"; - $pageOptions = [ - "entryCount" => $data["entryCount"], - "numOfPages" => $data["numOfPages"], - "currentPage" => $currentPage, - "filter" => $data["paginate"]["sort"], - "stats" => $data["stats"], - "pages" => $data["pages"], - "paginate" => $data["paginate"], - "status" => Session::active(), - ]; - } else { - header("Location: /dashboard"); - die(); - } - break; - case "page": - if (Session::active()) { - $template = "dash/page-edit.twig"; - $mode = $args["third"]; - if ($mode == "edit") { - $uuid = $args["fourth"]; + if (Setup::status()) { + switch (isset($args["second"]) ? $args["second"] : "index") { + case "settings": + if (Session::active()) { + $config = new Settings(); + $settings = $config->getSettings(); + $themes = $config->getThemes(); + $template = "dash/settings.twig"; + $member = Session::get("member"); + $pageOptions = [ + "title" => "Dash Settings", + "private" => $settings["global"]["private"], + "render" => $settings["global"]["renderOnSave"], + "background" => $settings["global"]["background"], + "member" => $member, + "siteTitle" => $settings["global"]["title"], + "baseUrl" => $settings["global"]["base_url"], + "desc" => $settings["global"]["descriptions"], + "lastBackup" => $settings["global"]["last_backup"], + "currentTheme" => $settings["global"]["theme"], + "themes" => $themes, + "mailOption" => $settings["email"]["active"], + "status" => Session::active(), + ]; + } else { + header("Location: /dashboard"); + die(); + } + break; + case "navigation": + if (Session::active()) { + $config = new Settings(); + $settings = $config->getSettings(); + $template = "dash/navigation.twig"; $pageOptions = [ - "title" => "Fipamo | Edit Page", - "page" => (new Book("../content/pages"))->findPageById($uuid), - "mode" => $mode, + "title" => "Edit Dash Navigation", "status" => Session::active(), + "menu" => $settings["menu"], ]; } else { + header("Location: /dashboard"); + die(); + } + break; + case "pages": + if (Session::active()) { + $currentPage = isset($args["fourth"]) ? $args["fourth"] : 1; + $filter = isset($args["third"]) ? $args["third"] : "all"; + $data = (new Book("../content/pages"))->getPages( + $currentPage, + 4, + $filter + ); + $template = "dash/book.twig"; $pageOptions = [ - "title" => "Fipamo | Create Page", - "mode" => $mode, + "entryCount" => $data["entryCount"], + "numOfPages" => $data["numOfPages"], + "currentPage" => $currentPage, + "filter" => $data["paginate"]["sort"], + "stats" => $data["stats"], + "pages" => $data["pages"], + "paginate" => $data["paginate"], "status" => Session::active(), ]; + } else { + header("Location: /dashboard"); + die(); + } + break; + case "page": + if (Session::active()) { + $template = "dash/page-edit.twig"; + $mode = $args["third"]; + if ($mode == "edit") { + $uuid = $args["fourth"]; + + $pageOptions = [ + "title" => "Fipamo | Edit Page", + "page" => (new Book("../content/pages"))->findPageById($uuid), + "mode" => $mode, + "status" => Session::active(), + ]; + } else { + $pageOptions = [ + "title" => "Fipamo | Create Page", + "mode" => $mode, + "status" => Session::active(), + ]; + } + } else { + header("Location: /dashboard"); + die(); } - } else { + break; + case "logout": + Session::kill(); header("Location: /dashboard"); die(); - } - break; - case "logout": - Session::kill(); - header("Location: /dashboard"); - die(); - break; - default: - $template = "dash/start.twig"; - if (Session::active()) { - $pageOptions = [ - "title" => "Welcome Back", - "status" => Session::active(), - "data" => (new Book("../content/pages"))->getPages(1, 4), - ]; - } else { - $pageOptions = [ - "title" => "Welcome to Fipamo", - "status" => Session::active(), - ]; - } - break; + break; + default: + //$secret = ; + $template = "dash/start.twig"; + if (Session::active()) { + $pageOptions = [ + "title" => "Welcome Back", + "status" => Session::active(), + "data" => (new Book("../content/pages"))->getPages(1, 4), + ]; + } else { + $pageOptions = [ + "title" => "Welcome to Fipamo", + "status" => Session::active(), + ]; + } + break; + } + } else { + $template = "dash/init.twig"; + $pageOptions = ["title" => "Fipamo Setup"]; } return $view->render($response, $template, $pageOptions); diff --git a/brain/controller/IndexControl.inc.php b/brain/controller/IndexControl.inc.php index e26d526..0949c3f 100644 --- a/brain/controller/IndexControl.inc.php +++ b/brain/controller/IndexControl.inc.php @@ -12,18 +12,8 @@ class IndexControl ): ResponseInterface { //unset($_SESSION); $view = Twig::fromRequest($request); - $html = file_get_contents("../public/index.html"); $response->getBody()->write($html); return $response; - - /* - return $view->render($response, "front/start.twig", [ - "title" => "Fipamo Dash", - "status" => false, - "pages" => [], - "totalPages" => 0, - ]); - */ } } diff --git a/brain/data/Book.inc.php b/brain/data/Book.inc.php index 7d8bc3c..07e6f0a 100644 --- a/brain/data/Book.inc.php +++ b/brain/data/Book.inc.php @@ -58,7 +58,11 @@ class Book if (isset($image["feature_image"])) { if ($task != "create") { - $feature = $image["feature_image"]->getClientFileName(); + $feature = + "/assets/images/blog/" . + $path . + "/" . + $image["feature_image"]->getClientFileName(); } else { $feature = "/assets/images/blog/" . @@ -143,14 +147,17 @@ class Book "type" => $task == "write" ? "postUpdated" : "postAdded", "id" => $uuid, ]; + + //**just testing to see why indexing isn't working ** + + //once saved, update menu + $body["path"] = $path; + Settings::updateMenu($body); + Settings::updateTags(); //if new page added, update current index in Settings file if ($task == "create") { Settings::updateIndex(); } - //once saved, update menu - $body["path"] = $path; - Settings::updateMenu($body); - //Settings::updateTags(); } else { $response = [ "message" => "Uh oh. File save problem. Don't panic", diff --git a/brain/data/Session.inc.php b/brain/data/Session.inc.php index 1d6d330..7bbc245 100644 --- a/brain/data/Session.inc.php +++ b/brain/data/Session.inc.php @@ -22,19 +22,27 @@ class Session public static function active() { - $data = json_decode(file_get_contents(self::$file), true); - if ($data["member"] != null) { - $secret = (new Settings())->getFolks("secret"); - if ( - Token::validate($data["token"], $secret) && - Token::validateExpiration($data["token"], $secret) - ) { - return true; + if (!is_file(self::$file)) { + return false; + } else { + $data = json_decode(file_get_contents(self::$file), true); + if ($data["member"] != null) { + $secret = (new Settings())->getFolks("secret"); + if ($secret == null) { + return false; + } else { + if ( + Token::validate($data["token"], $secret) && + Token::validateExpiration($data["token"], $secret) + ) { + return true; + } else { + return false; + } + } } else { return false; } - } else { - return false; } } diff --git a/brain/data/Settings.inc.php b/brain/data/Settings.inc.php index 883ab6a..9ae7226 100644 --- a/brain/data/Settings.inc.php +++ b/brain/data/Settings.inc.php @@ -136,8 +136,9 @@ class Settings public static function updateIndex() { $settings = self::$settings; - $index = $settings["library_stats"]["current_index"]; - $settings["library_stats"]["current_index"] = $index + 1; + + $settings["library_stats"]["current_index"] = + $settings["library_stats"]["current_index"] + 1; DocTools::writeSettings("../config/settings.json", $settings); } diff --git a/brain/utility/DocTools.inc.php b/brain/utility/DocTools.inc.php index cc52766..c64da0d 100644 --- a/brain/utility/DocTools.inc.php +++ b/brain/utility/DocTools.inc.php @@ -29,9 +29,13 @@ class DocTools public static function writeSettings($fileLocation, $fileContents) { - ($new = fopen($fileLocation, "w")) or die("Unable to open file!"); - fwrite($new, json_encode($fileContents)); - fclose($new); + if (!is_file($fileLocation)) { + file_put_contents($fileLocation, json_encode($fileContents)); + } else { + ($new = fopen($fileLocation, "w")) or die("Unable to open file!"); + fwrite($new, json_encode($fileContents)); + fclose($new); + } } public static function writeHTML($location, $html, $path = null) diff --git a/brain/utility/FileUploader.inc.php b/brain/utility/FileUploader.inc.php index 5609834..be3df13 100644 --- a/brain/utility/FileUploader.inc.php +++ b/brain/utility/FileUploader.inc.php @@ -1,13 +1,11 @@ getClientFileName(); + $file->moveTo($directory . "/" . $file->getClientFileName()); - } catch (Error $e) { - echo $e; + } catch (RuntimeException $e) { + echo "ERROR " . $e->getMessage(); //echo "failed to upload image: " . $e->getMessage(); //throw new Error("Failed to upload image file"); diff --git a/brain/utility/Setup.inc.php b/brain/utility/Setup.inc.php new file mode 100644 index 0000000..1ce2593 --- /dev/null +++ b/brain/utility/Setup.inc.php @@ -0,0 +1,97 @@ +getParsedBody(); + $handle = $body["new_member_handle"]; + $email = $body["new_member_email"]; + $pass = $body["new_member_pass"]; + $title = $body["new_member_title"]; + + $now = new \Moment\Moment(); + //setup folks config + $hash = password_hash($pass, PASSWORD_DEFAULT); + $newFolks[0]["id"] = 0; + $newFolks[0]["handle"] = $handle; + $newFolks[0]["email"] = $email; + $newFolks[0]["password"] = $hash; + $newFolks[0]["key"] = password_hash($email, PASSWORD_DEFAULT); + $newFolks[0]["secret"] = StringTools::randomString(12); + $newFolks[0]["role"] = "hnic"; + $newFolks[0]["created"] = $now->format("Y-m-d\TH:i:sP"); + $newFolks[0]["updated"] = $now->format("Y-m-d\TH:i:sP"); + //set up settings config + $newSettings["global"]["title"] = $title; + + //create index file + //$rightNow = $now->format("Y-m-d\TH:i:sP"); + //var_dump($now->format("Y-m-d\TH:i:sP")); + $index = [ + "id" => 1, + "uuid" => StringTools::createUUID(), + "title" => "FIRST!", + "feature" => "/assets/images/global/default-bg.jpg", + "path" => "content/pages/start", + "layout" => "index", + "tags" => "start, welcome", + "author" => $handle, + "created" => $now->format("Y-m-d\TH:i:sP"), + "updated" => $now->format("Y-m-d\TH:i:sP"), + "deleted" => "false", + "slug" => "first", + "menu" => "false", + "featured" => "false", + "published" => "true", + "content" => + "# F**k Yes \n\nIf you're seeing this, you're up and running. NICE WORK!\n\nFrom here, feel free to start dropping pages to your heart's content.\n\nFor some tips about using Fipamo, check out the ![docs](https://code.playvicio.us/Are0h/Fipamo/wiki/02-Usage)\n\nAll good? Feel free to edit this page to whatever you want!\n\nYOU'RE THE CAPTAIN NOW.", + ]; + + $freshIndex = DocTools::objectToMD($index); + + //once all files created, write down + + DocTools::writeSettings("../config/settings.json", $newSettings); + DocTools::writeSettings("../config/folks.json", $newFolks); + DocTools::writeSettings("../config/tags.json", []); + DocTools::writePages( + "create", + "start", + "../content/pages/start/index.md", + $freshIndex + ); + + //if there is an older session file, get rid of it + if (is_file("../content/.session")) { + unlink("../content/.session"); + } + + $result = ["type" => "blogInitGood", "message" => "Site Created"]; + + return $result; + } + + public static function restore() + { + } +} diff --git a/brain/utility/StringTools.inc.php b/brain/utility/StringTools.inc.php index 58487fb..68d81cd 100644 --- a/brain/utility/StringTools.inc.php +++ b/brain/utility/StringTools.inc.php @@ -1,5 +1,6 @@ + {% endblock %} + + {% block mainContent %} +
+
+
+
+
+

What up

+

Just fill these in and it'll get you started.

+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+ +
+
+
+
+

Restore from backup

+

Let's verify your backup

+
+
+ +
+
+ +
+
+ +
+ +
+
+ +
+
+
+
+ {% endblock %} + + {% block javascripts %} + + {% endblock %} \ No newline at end of file diff --git a/config/init/folks-template.json b/config/init/folks-template.json index 2b1084e..0933e36 100644 --- a/config/init/folks-template.json +++ b/config/init/folks-template.json @@ -1,14 +1,15 @@ [ - { - "id": "", - "handle": "", - "avi": "/assets/images/global/default-avi.png", - "email": "", - "password": "", - "key": "", - "role": "", - "created": "", - "updated": "", - "deleted": null - } -] \ No newline at end of file + { + "id": "", + "handle": "", + "avi": "/assets/images/global/default-avi.png", + "email": "", + "password": "", + "key": "", + "secret": "", + "role": "", + "created": "", + "updated": "", + "deleted": null + } +] diff --git a/config/init/index-template.md b/config/init/index-template.md deleted file mode 100644 index 6e23de4..0000000 --- a/config/init/index-template.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -id: 0 -uuid: -title: This is the Start -feature: /assets/images/global/default-bg.jpg -path: -layout: index -tags: start -author: -created: -updated: -deleted: false -menu: false -featured: false -published: true -slug: index ---- -# F**k Yes - -If you're seeing this, you're up and running. NICE WORK! - -From here, feel free to start dropping pages to your heart's content. - -For some tips about using Fipamo, check out the ![docs](https://code.playvicio.us/Are0h/Fipamo/wiki/02-Usage) - -All good? Feel free to edit this page to whatever you want! - -YOU'RE THE CAPTAIN NOW. diff --git a/config/init/settings-template.json b/config/init/settings-template.json index 37dfb1b..93a1e3f 100644 --- a/config/init/settings-template.json +++ b/config/init/settings-template.json @@ -1,29 +1,29 @@ { - "global": { - "base_url": "http://your.domain", - "title": "This is a Title", - "descriptions": "Because it should be easy.", - "background": "/assets/images/global/default-bg.jpg", - "private": "true", - "renderOnSave": "false", - "theme": "default-light", - "display_limit": 5, - "last_backup": null, - "port": 2314 + "global": { + "base_url": "http://your.domain", + "title": "This is a Title", + "descriptions": "Because it should be easy.", + "background": "/assets/images/global/default-bg.jpg", + "private": "true", + "renderOnSave": "false", + "theme": "fipamo-default", + "display_limit": 5, + "last_backup": null + }, + "library_stats": { + "current_index": 1 + }, + "email": { + "active": "none", + "smtp": { + "domain": "", + "email": "", + "password": "" }, - "library_stats": { - "current_index": 1 - }, - "email": { - "smtp": { - "domain": "", - "email": "", - "password": "" - }, - "mailgun": { - "domain": "", - "api-key": "" - } - }, - "menu": [] -} \ No newline at end of file + "mailgun": { + "domain": "", + "api-key": "" + } + }, + "menu": [] +} diff --git a/content/themes/fipamo-default/archive.twig b/content/themes/fipamo-default/archive.twig new file mode 100644 index 0000000..18c7b02 --- /dev/null +++ b/content/themes/fipamo-default/archive.twig @@ -0,0 +1,36 @@ +{% extends "fipamo-default/frame.twig" %} + +{% block title %} + {{ title }} +{% endblock %} + + {% block mainContent %} +
+
+ {{title}} +
+
+
+
+ {% for item in archives %} +
+ + {{item.year}} + + {% for data in item.year_data %} +
+ + {{data.full_month}} + + {% for page in data.pages %} + {{page.title}}
+ {% endfor %} +
+ + {% endfor %} +
+ {% endfor %} + +
+
+ {% endblock %} \ No newline at end of file diff --git a/content/themes/fipamo-default/assets/css/base.css b/content/themes/fipamo-default/assets/css/base.css new file mode 100644 index 0000000..a1a08e0 --- /dev/null +++ b/content/themes/fipamo-default/assets/css/base.css @@ -0,0 +1,555 @@ +/** +------------------------------- +-- Typography +------------------------------- +**/ +/** +------------------------------- +-- Colors +------------------------------- +**/ +/** +------------------------------- +-- Mixins +------------------------------- +**/ +/** +------------------------------- +-- Normalize +------------------------------- +**/ +html { + line-height: 1.15; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} +body { + margin: 0; +} +article, +aside, +footer, +header, +nav, +section { + display: block; +} +h1 { + font-size: 2em; + margin: 0.67em 0; + line-height: 1em; +} +figcaption, +figure, +main { + display: block; +} +figure { + margin: 1em 40px; +} +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} +pre { + font-family: monospace, monospace; + font-size: 1em; +} +a { + background-color: transparent; + -webkit-text-decoration-skip: objects; +} +a:active, +a:hover { + outline-width: 0; +} +abbr[title] { + border-bottom: none; + text-decoration: underline; + text-decoration: underline dotted; +} +b, +strong { + font-weight: inherit; + font-weight: bolder; +} +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +dfn { + font-style: italic; +} +mark { + background-color: #ff0; + color: #000; +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 60%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sub { + bottom: -0.25em; +} +sup { + top: -0.55em; + background: #bdcbdb; + color: #151d26; + border-radius: 2px; + padding: 0 2px 0 2px; + margin: 0 2px 0 0; +} +audio, +video { + display: inline-block; +} +audio:not([controls]) { + display: none; + height: 0; +} +img { + border-style: none; +} +svg:not(:root) { + overflow: hidden; +} +button, +input, +optgroup, +select, +textarea { + font-family: sans-serif; + font-size: 100%; + line-height: 1.15; + margin: 0; +} +button, +input { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner, +button::-moz-focus-inner { + border-style: none; + padding: 0; +} +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring, +button:-moz-focusring { + outline: 1px dotted ButtonText; +} +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} +legend { + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal; +} +progress { + display: inline-block; + vertical-align: baseline; +} +textarea { + overflow: auto; +} +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; + padding: 0; +} +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} +[type="search"] { + -webkit-appearance: textfield; + outline-offset: -2px; +} +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; +} +details, +menu { + display: block; +} +summary { + display: list-item; +} +canvas { + display: inline-block; +} +template { + display: none; +} +[hidden] { + display: none; +} +/** +------------------------------- +-- Main Structure +------------------------------- +**/ +html { + margin: 0; + padding: 0; + width: 100%; + height: 100%; + overflow: hidden; + font: 400 1.2em/1.4em Helvetica, Arial, sans-serif; +} +body { + background: #ebe5d4; + margin: 0; + padding: 0; + perspective: 1px; + transform-style: preserve-3d; + height: 100%; + width: 100%; + overflow-y: scroll; + overflow-x: hidden; +} +a { + color: #151d26; + text-decoration: none; + border-bottom: 1px solid #7ed07e; + -moz-transition: all 0.2s linear; + -webkit-transition: all 0.2s linear; + -o-transition: all 0.2s linear; + transition: all 0.2s linear; +} +a:hover { + border-bottom: 1px solid #fc6399; +} +code { + background: #32302f; + color: #7ed07e; + border-radius: 3px; + padding: 3px; +} +pre { + background: #32302f; + color: #7ed07e; + border-radius: 3px; + padding: 3px; +} +pre code { + color: #fc6399; + background: none; +} +svg.icons { + width: 25px; + fill: #ebe5d4; +} +header { + background: #151d26; + height: 90%; + width: 100%; + border-top: #ebe5d4 3px solid; +} +header nav { + width: 97%; + margin: 10px auto; + color: #151d26; +} +header nav .left, +header nav .right { + width: 50%; + display: inline-block; + vertical-align: top; +} +header nav .left a.logo-link { + border-bottom: none; + margin: 0 0 20px 0; + display: block; +} +header nav .left a.logo-link #logo { + width: 50px; + border-bottom: none; +} +header nav .right { + text-align: right; +} +header nav .right a.menu-link { + background: #fc6399; + margin-bottom: 4px; + padding: 3px; + border-radius: 2px; + display: inline-block; + font-size: 0.8em; + border-bottom: none; +} +header nav .right a.menu-link:hover { + background: #feb1cc; +} +.container { + z-index: 2; + background: #ebe5d4; + line-height: 30px; + font-weight: lighter; + width: 100%; + color: #32302f; +} +.container article { + position: relative; + width: 80%; + height: 80%; + max-width: 840px; + background: #ebe5d4; + vertical-align: top; + color: #32302f; + margin: 0 auto; +} +.container article .index, +.container article .page { + padding: 0 0 15px 0; +} +.container article .index img, +.container article .page img { + display: block; + width: 100%; +} +.container article .index h1, +.container article .page h1 { + color: #151d26; +} +.container article .index p, +.container article .page p { + font: 300 1.25em/1.6em Helvetica, Arial, sans-serif; +} +.container article .index .meta, +.container article .page .meta { + font: 500 0.8em/1.3em Helvetica, Arial, sans-serif; + padding: 5px 0 0 0; + border-top: 1px solid #151d26; + background: #ede8d8; +} +.container article .index .meta a, +.container article .page .meta a { + font-size: 0.8em; + font-weight: 400; +} +.container article .index .archive-item, +.container article .page .archive-item { + padding: 15px 0 20px 0; +} +.container article .index .archive-item span.year, +.container article .page .archive-item span.year { + font-size: 1.5em; + font-weight: 500; + padding: 5px; + display: block; + color: #151d26; +} +.container article .index .archive-item .archive-month, +.container article .page .archive-item .archive-month { + display: inline-block; + vertical-align: top; + width: 30%; + padding: 5px; +} +.container article .index .archive-item .archive-month span.month, +.container article .page .archive-item .archive-month span.month { + color: #fc6399; + font-size: 1.5em; + font-weight: 300; + padding: 5px; + display: block; +} +.container section { + padding: 0 0 20px 0; + background: #151d26; +} +.container section a { + color: #ebe5d4; +} +.container section .index-lists, +.container section .page-title { + max-width: 840px; + width: 80%; + margin: 0 auto; + padding: 20px 0 0 0; +} +.container section .index-lists span, +.container section .page-title span { + font: 600 2em/1.5 Helvetica, Arial, sans-serif; + color: #ebe5d4; +} +.container section .index-lists .recent, +.container section .page-title .recent, +.container section .index-lists .featured, +.container section .page-title .featured { + display: inline-block; + width: 50%; + vertical-align: top; +} +.container section .index-lists label, +.container section .page-title label { + background: #32302f; + color: #ebe5d4; + font-size: 1.5em; + line-height: 1.3; +} +footer { + background: #e4dcc5; + padding: 10px; + color: #151d26; + font-size: 0.8em; + font-weight: 600; + height: 100px; +} +footer .inner { + margin: 20px auto; + width: 80%; + max-width: 840px; +} +footer .inner a { + color: #fc6399; +} +@media only screen and (max-width: 640px) { + header nav { + width: 98%; + } + header span { + font-size: 2.5em; + } + .container article .index .archive-item .archive-month, + .container article .page .archive-item .archive-month { + width: 45%; + } +} +@media only screen and (max-width: 480px) { + header nav { + width: 96%; + } + .container article .index, + .container article .page { + margin: 0; + } + .container article .index p, + .container article .page p { + font: 300 1em/1.6em Helvetica, Arial, sans-serif; + } + .container section .index-lists .recent, + .container section .index-lists .featured { + width: 100% !important; + } +} +@media only screen and (max-width: 375px) { + header nav { + width: 95%; + } + .container article .index, + .container article .page { + margin: 0; + } + .container article .index p, + .container article .page p { + font: 300 0.9em/1.7em Helvetica, Arial, sans-serif; + } + .container article .index .archive-item .archive-month, + .container article .page .archive-item .archive-month { + width: 95%; + } +} +/** +------------------------------- +-- Forms +------------------------------- +**/ +form { + display: inline-block; +} +input[type=email], +input[type=password], +input[type=text] { + border: 0; + border-radius: 5px; + padding: 5px; + margin: 10px 5px 0 0; + font: 15px 'RobotoMono'; + display: inline-block; +} +textarea { + border: 0; + border-radius: 3px; + color: $type02; + font: 15px 'RobotoMono'; +} +button, +input[type=submit] { + background: #fc6399; + color: #ebe5d4; + font: 14px Helvetica, Arial, sans-serif; + border-radius: 5px; + position: relative; + cursor: pointer; + border: 0; + padding: 5px 5px 0 5px; + -moz-transition: all 0.3s linear; + -webkit-transition: all 0.3s linear; + -o-transition: all 0.3s linear; + transition: all 0.3s linear; +} +button:hover, +input[type=submit]:hover { + background: #fc7ca9; +} +select { + font: 14px 'RobotoMono'; + border: 1px solid #fc6399; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + color: #151d26; +} +::-webkit-input-placeholder { + font: 14px 'RobotoMono'; + color: #837e7c; +} +:-moz-placeholder { +/* Firefox 18- */ + font: 14px 'RobotoMono'; + color: #837e7c; +} +::-moz-placeholder { +/* Firefox 19+ */ + font: 14px 'RobotoMono'; + color: #837e7c; +} +:-ms-input-placeholder { + font: 14px 'RobotoMono'; + color: #837e7c; +} +/*# sourceMappingURL=base.css.map */ \ No newline at end of file diff --git a/content/themes/fipamo-default/assets/css/base.css.map b/content/themes/fipamo-default/assets/css/base.css.map new file mode 100644 index 0000000..d9e5fd2 --- /dev/null +++ b/content/themes/fipamo-default/assets/css/base.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../../styles/base.styl","../../../styles/_normalize.styl","../../../styles/_structure.styl","../../../styles/_mixins.styl","../../../styles/_forms.styl"],"names":[],"mappings":"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","file":"base.css"} \ No newline at end of file diff --git a/content/themes/fipamo-default/assets/images/global/default-avi.png b/content/themes/fipamo-default/assets/images/global/default-avi.png new file mode 100644 index 0000000..99ee4bb Binary files /dev/null and b/content/themes/fipamo-default/assets/images/global/default-avi.png differ diff --git a/content/themes/fipamo-default/assets/images/global/default-bg.jpg b/content/themes/fipamo-default/assets/images/global/default-bg.jpg new file mode 100644 index 0000000..ff29737 Binary files /dev/null and b/content/themes/fipamo-default/assets/images/global/default-bg.jpg differ diff --git a/content/themes/fipamo-default/assets/images/global/sprite.svg b/content/themes/fipamo-default/assets/images/global/sprite.svg new file mode 100644 index 0000000..565e7ab --- /dev/null +++ b/content/themes/fipamo-default/assets/images/global/sprite.svg @@ -0,0 +1,823 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + instagram-with-circle + + instagram + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/content/themes/fipamo-default/assets/images/global/the-logo.svg b/content/themes/fipamo-default/assets/images/global/the-logo.svg new file mode 100644 index 0000000..f8d21b5 --- /dev/null +++ b/content/themes/fipamo-default/assets/images/global/the-logo.svg @@ -0,0 +1,33 @@ + + + + + diff --git a/content/themes/fipamo-default/assets/scripts/start.min.js b/content/themes/fipamo-default/assets/scripts/start.min.js new file mode 100644 index 0000000..b108df7 --- /dev/null +++ b/content/themes/fipamo-default/assets/scripts/start.min.js @@ -0,0 +1,376 @@ +// modules are defined as an array +// [ module function, map of requires ] +// +// map of requires is short require name -> numeric require +// +// anything defined in a previous bundle is accessed via the +// orig method which is the require for previous bundles +parcelRequire = (function (modules, cache, entry, globalName) { + // Save the require from previous bundle to this closure if any + var previousRequire = typeof parcelRequire === 'function' && parcelRequire; + var nodeRequire = typeof require === 'function' && require; + + function newRequire(name, jumped) { + if (!cache[name]) { + if (!modules[name]) { + // if we cannot find the module within our internal map or + // cache jump to the current global require ie. the last bundle + // that was added to the page. + var currentRequire = typeof parcelRequire === 'function' && parcelRequire; + if (!jumped && currentRequire) { + return currentRequire(name, true); + } + + // If there are other bundles on this page the require from the + // previous one is saved to 'previousRequire'. Repeat this as + // many times as there are bundles until the module is found or + // we exhaust the require chain. + if (previousRequire) { + return previousRequire(name, true); + } + + // Try the node require function if it exists. + if (nodeRequire && typeof name === 'string') { + return nodeRequire(name); + } + + var err = new Error('Cannot find module \'' + name + '\''); + err.code = 'MODULE_NOT_FOUND'; + throw err; + } + + localRequire.resolve = resolve; + localRequire.cache = {}; + + var module = cache[name] = new newRequire.Module(name); + + modules[name][0].call(module.exports, localRequire, module, module.exports, this); + } + + return cache[name].exports; + + function localRequire(x){ + return newRequire(localRequire.resolve(x)); + } + + function resolve(x){ + return modules[name][1][x] || x; + } + } + + function Module(moduleName) { + this.id = moduleName; + this.bundle = newRequire; + this.exports = {}; + } + + newRequire.isParcelRequire = true; + newRequire.Module = Module; + newRequire.modules = modules; + newRequire.cache = cache; + newRequire.parent = previousRequire; + newRequire.register = function (id, exports) { + modules[id] = [function (require, module) { + module.exports = exports; + }, {}]; + }; + + var error; + for (var i = 0; i < entry.length; i++) { + try { + newRequire(entry[i]); + } catch (e) { + // Save first error but execute all entries + if (!error) { + error = e; + } + } + } + + if (entry.length) { + // Expose entry point to Node, AMD or browser globals + // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js + var mainExports = newRequire(entry[entry.length - 1]); + + // CommonJS + if (typeof exports === "object" && typeof module !== "undefined") { + module.exports = mainExports; + + // RequireJS + } else if (typeof define === "function" && define.amd) { + define(function () { + return mainExports; + }); + + // + + \ No newline at end of file diff --git a/content/themes/fipamo-default/index.twig b/content/themes/fipamo-default/index.twig new file mode 100644 index 0000000..48c3c08 --- /dev/null +++ b/content/themes/fipamo-default/index.twig @@ -0,0 +1,33 @@ +{% extends "fipamo-default/frame.twig" %} + +{% block title %} + {{ title }} +{% endblock %} + + {% block mainContent %} +
+
+

{{title}}

+

{{ content | raw }}

+ +
+
+
+
+
+ RECENT
+ {% for item in recent %} + {{item.title}}
+ {% endfor %} + +
+ + +
+
+ {% endblock %} \ No newline at end of file diff --git a/content/themes/fipamo-default/page.twig b/content/themes/fipamo-default/page.twig new file mode 100644 index 0000000..434b8a6 --- /dev/null +++ b/content/themes/fipamo-default/page.twig @@ -0,0 +1,18 @@ +{% extends "fipamo-default/frame.twig" %} + +{% block title %} + {{ title }} +{% endblock %} + + {% block mainContent %} +
+
+ {{title}} +
+
+
+
+

{{content | raw}}

+
+
+ {% endblock %} \ No newline at end of file diff --git a/content/themes/fipamo-default/tags.twig b/content/themes/fipamo-default/tags.twig new file mode 100644 index 0000000..2c239f4 --- /dev/null +++ b/content/themes/fipamo-default/tags.twig @@ -0,0 +1,21 @@ +{% extends "fipamo-default/frame.twig" %} + +{% block title %} + {{ title }} +{% endblock %} + + {% block mainContent %} +
+
+ {{title}} +
+
+
+
+ {% for tag in tag_list %} + {{tag.title}}
+ {% endfor %} + +
+
+ {% endblock %} \ No newline at end of file diff --git a/content/themes/fipamo-default/theme.json b/content/themes/fipamo-default/theme.json new file mode 100644 index 0000000..2516364 --- /dev/null +++ b/content/themes/fipamo-default/theme.json @@ -0,0 +1,7 @@ +{ + "name": "fipamo-default", + "display-name": "Fipamo Oh Won", + "author": "Are0h", + "description": "The most dangerous default theme in the known universe.", + "version": "1.0.0" +} \ No newline at end of file diff --git a/src/com/Base.js b/src/com/Base.js index c8e6733..cb7ec9a 100644 --- a/src/com/Base.js +++ b/src/com/Base.js @@ -74,6 +74,7 @@ export default class Base { e.stopPropagation(); e.preventDefault(); let setUpForm = data.formDataToJSON(document.getElementById("init-form")); + let api = new FipamoApi(); api .init(setUpForm) .then((response) => { @@ -82,7 +83,7 @@ export default class Base { } else { notify.alert(response.message, true); setTimeout(() => { - window.location = "/@/dashboard"; + window.location = "/dashboard"; }, 700); } })