Compare commits
No commits in common. "beta" and "b2.5.1" have entirely different histories.
68 changed files with 33281 additions and 29971 deletions
11
.gitignore
vendored
11
.gitignore
vendored
|
@ -12,21 +12,13 @@ public/*
|
||||||
public/assets/*
|
public/assets/*
|
||||||
!public/assets/css
|
!public/assets/css
|
||||||
public/assets/css/*
|
public/assets/css/*
|
||||||
!public/assets/css/dash
|
!public/assets/css/dash.css
|
||||||
!public/assets/scripts
|
!public/assets/scripts
|
||||||
public/assets/scripts/*
|
public/assets/scripts/*
|
||||||
<<<<<<< HEAD
|
|
||||||
!public/assets/scripts/Start.js
|
!public/assets/scripts/Start.js
|
||||||
/public/assets/images/global/rikc-logo.svg
|
/public/assets/images/global/rikc-logo.svg
|
||||||
|
|
||||||
|
|
||||||
=======
|
|
||||||
!public/assets/scripts/dash.js
|
|
||||||
<<<<<<< HEAD
|
|
||||||
>>>>>>> develop
|
|
||||||
=======
|
|
||||||
!public/assets/scripts/dash.js.map
|
|
||||||
>>>>>>> develop
|
|
||||||
!public/assets/images
|
!public/assets/images
|
||||||
public/assets/images/*
|
public/assets/images/*
|
||||||
!public/assets/images/global/
|
!public/assets/images/global/
|
||||||
|
@ -55,4 +47,3 @@ config.codekit3
|
||||||
src/com/*
|
src/com/*
|
||||||
src/styles/*
|
src/styles/*
|
||||||
|
|
||||||
src/com/ui/TextEditor.js
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$config = new PhpCsFixer\Config();
|
return (new PhpCsFixer\Config())
|
||||||
return $config
|
|
||||||
->setRiskyAllowed(true)
|
|
||||||
->setRules([
|
->setRules([
|
||||||
'@PSR12' => true,
|
'@PSR12' => true,
|
||||||
'array_indentation' => true,
|
'array_indentation' => true,
|
||||||
|
@ -22,7 +20,7 @@ return $config
|
||||||
'multiline_whitespace_before_semicolons' => [
|
'multiline_whitespace_before_semicolons' => [
|
||||||
'strategy' => 'no_multi_line',
|
'strategy' => 'no_multi_line',
|
||||||
],
|
],
|
||||||
'single_quote' => false,
|
'single_quote' => true,
|
||||||
|
|
||||||
'binary_operator_spaces' => [
|
'binary_operator_spaces' => [
|
||||||
'default' => 'single_space',
|
'default' => 'single_space',
|
||||||
|
@ -52,6 +50,7 @@ return $config
|
||||||
'extra',
|
'extra',
|
||||||
'parenthesis_brace_block',
|
'parenthesis_brace_block',
|
||||||
'throw',
|
'throw',
|
||||||
|
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
'no_multiline_whitespace_around_double_arrow' => true,
|
'no_multiline_whitespace_around_double_arrow' => true,
|
||||||
|
@ -69,6 +68,5 @@ return $config
|
||||||
'ordered_imports' => [
|
'ordered_imports' => [
|
||||||
'sort_algorithm' => 'none',
|
'sort_algorithm' => 'none',
|
||||||
],
|
],
|
||||||
//Other rules here...
|
|
||||||
])
|
])
|
||||||
->setLineEnding("\n");
|
->setLineEnding("\n");
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
{
|
{
|
||||||
"extends": ["stylelint-config-standard"]
|
"extends": [
|
||||||
|
"stylelint-config-standard-scss",
|
||||||
|
"stylelint-config-prettier-scss"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
![This is Fipamo](https://playvicio.us/base-assets/images/fipamo-brand.png)
|
||||||
|
|
||||||
# Fipamo means to save
|
# Fipamo means to save
|
||||||
|
|
||||||
The Fipamo project was born from a need for a simple, easy to use no data blog platform that doesn't require much effort to set up and maintain. Fipamo uses Markdown to handle posts and renders them to flat html so you can serve them from anywhere. No complicated set ups. No long list of dependencies. Just set up and go.
|
The Fipamo project was born from a need for a simple, easy to use no data blog platform that doesn't require much effort to set up and maintain. Fipamo uses Markdown to handle posts and renders them to flat html so you can serve them from anywhere. No complicated set ups. No long list of dependencies. Just set up and go.
|
||||||
|
@ -6,4 +8,6 @@ Because nobody has time for all that.
|
||||||
|
|
||||||
## Check the (WIP) Docs to get you started. <br>
|
## Check the (WIP) Docs to get you started. <br>
|
||||||
|
|
||||||
[Getting Started](https://koodu.ubiqueros.com/are0h/Fipamo/wiki/00---Start) <br>
|
[Getting Started](https://code.playvicio.us/Are0h/Fipamo/wiki/00---Start) <br>
|
||||||
|
[Install](https://code.playvicio.us/Are0h/Fipamo/wiki/01---Install) <br>
|
||||||
|
[Using Fipamo](https://code.playvicio.us/Are0h/Fipamo/wiki/02-Usage) <br>
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
spl_autoload_register(function ($className) {
|
|
||||||
$file = dirname(__DIR__) . '\\' . $className . '.php';
|
|
||||||
$file = str_replace('\\', DIRECTORY_SEPARATOR, $file);
|
|
||||||
//echo $file;
|
|
||||||
if (file_exists($file)) {
|
|
||||||
include $file;
|
|
||||||
}
|
|
||||||
});
|
|
|
@ -1,73 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace brain\api\v1;
|
|
||||||
|
|
||||||
use brain\utility\FileUploader;
|
|
||||||
use brain\data\Settings;
|
|
||||||
use brain\data\Member;
|
|
||||||
|
|
||||||
class FilesAPI
|
|
||||||
{
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function uploadFiles($request, $type = null)
|
|
||||||
{
|
|
||||||
$upload = $request->getUploadedFiles(); //grab uploaded files
|
|
||||||
$options = $request->getParsedBody();
|
|
||||||
$file = $upload['upload_files'][0]; //front end sends one by one for progress tracking, so grab first
|
|
||||||
$type = $file->getClientMediaType();
|
|
||||||
$filesPath = '';
|
|
||||||
$path = date('Y') . '/' . date('m');
|
|
||||||
$response = [];
|
|
||||||
|
|
||||||
switch ($type) {
|
|
||||||
case 'image/jpeg':
|
|
||||||
case 'image/png':
|
|
||||||
case 'image/gif':
|
|
||||||
case 'image/svg':
|
|
||||||
if (isset($options["source"])) {
|
|
||||||
if ($options["source"] == "avatar-upload") {
|
|
||||||
$filesPath = '/assets/images/user/' . $path . '/';
|
|
||||||
Member::updateData(
|
|
||||||
'avi',
|
|
||||||
$filesPath . $file->getClientFileName()
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
$filesPath = '/assets/images/user/' . $path . '/';
|
|
||||||
Settings::updateGlobalData(
|
|
||||||
'background',
|
|
||||||
$filesPath . '/' . $file->getClientFileName()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$filesPath = '/assets/images/blog/' . $path . '/';
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case 'video/mp4':
|
|
||||||
$filesPath = '/assets/video/blog/' . $path . '/';
|
|
||||||
break;
|
|
||||||
case 'audio/mpeg':
|
|
||||||
$filesPath = '/assets/sound/blog/' . $path . '/';
|
|
||||||
break;
|
|
||||||
case 'application/pdf':
|
|
||||||
case 'text/plain':
|
|
||||||
case 'text/rtf':
|
|
||||||
$filesPath = '/assets/docs/blog/' . $path . '/';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
FileUploader::uploadFile('../public' . $filesPath, $file);
|
|
||||||
|
|
||||||
$response = [
|
|
||||||
'message' => "File Uploaded. Great!",
|
|
||||||
"filePath" => $filesPath . urlencode($file->getClientFileName()),
|
|
||||||
"fileName" => urlencode($file->getClientFileName()),
|
|
||||||
'type' => $type,
|
|
||||||
];
|
|
||||||
|
|
||||||
return $response;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -111,7 +111,7 @@ class PagesAPI
|
||||||
case 'delete':
|
case 'delete':
|
||||||
case 'create':
|
case 'create':
|
||||||
case 'write':
|
case 'write':
|
||||||
$body = json_decode(file_get_contents("php://input"), true);
|
$body = $request->getParsedBody();
|
||||||
$passed = true;
|
$passed = true;
|
||||||
if (!isset($body['form_token'])) {
|
if (!isset($body['form_token'])) {
|
||||||
$result = [
|
$result = [
|
||||||
|
@ -120,6 +120,7 @@ class PagesAPI
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
if ($body['form_token'] == Session::get('form_token')) {
|
if ($body['form_token'] == Session::get('form_token')) {
|
||||||
|
//TODO: Verify form fields
|
||||||
$keys = [
|
$keys = [
|
||||||
'id',
|
'id',
|
||||||
'uuid',
|
'uuid',
|
||||||
|
@ -134,15 +135,12 @@ class PagesAPI
|
||||||
'featured',
|
'featured',
|
||||||
'published',
|
'published',
|
||||||
'form_token',
|
'form_token',
|
||||||
'imageList',
|
'feature_image',
|
||||||
"fileList",
|
|
||||||
"remote"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($body as $key => $item) {
|
foreach ($body as $key => $item) {
|
||||||
if (!in_array($key, $keys)) {
|
if (!in_array($key, $keys)) {
|
||||||
//found unnecessary key, so reject submission
|
//found unnecessary key, so reject submission
|
||||||
var_dump($key);
|
|
||||||
$passed = false;
|
$passed = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,6 @@ class SettingsAPI
|
||||||
} else {
|
} else {
|
||||||
$render = new Render();
|
$render = new Render();
|
||||||
if (isset($themeConfig['render'])) {
|
if (isset($themeConfig['render'])) {
|
||||||
//rendering for one page sites
|
|
||||||
if (!$themeConfig['render'] || $themeConfig['render'] === 'false') {
|
if (!$themeConfig['render'] || $themeConfig['render'] === 'false') {
|
||||||
$render->renderIndex();
|
$render->renderIndex();
|
||||||
$result = [
|
$result = [
|
||||||
|
|
|
@ -6,7 +6,6 @@ use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use brain\api\v1\AuthAPI;
|
use brain\api\v1\AuthAPI;
|
||||||
use brain\api\v1\PagesAPI;
|
use brain\api\v1\PagesAPI;
|
||||||
use brain\api\v1\FilesAPI;
|
|
||||||
use brain\api\v1\SettingsAPI;
|
use brain\api\v1\SettingsAPI;
|
||||||
use brain\api\v1\InitAPI;
|
use brain\api\v1\InitAPI;
|
||||||
use brain\api\v1\MailerAPI;
|
use brain\api\v1\MailerAPI;
|
||||||
|
@ -189,24 +188,6 @@ class APIControl
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
|
||||||
case "files":
|
|
||||||
$token = $request->getHeader('fipamo-access-token');
|
|
||||||
if (isset($token[0])) {
|
|
||||||
if (Session::verifyToken($token[0])) {
|
|
||||||
$result = FilesAPI::uploadFiles($request, $args);
|
|
||||||
} else {
|
|
||||||
$result = [
|
|
||||||
'message' => 'Invalid token, API access denied, homie',
|
|
||||||
'type' => 'API_ERROR',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$result = [
|
|
||||||
'message' => 'No token, API access denied, homie',
|
|
||||||
'type' => 'API_ERROR',
|
|
||||||
];
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 'settings':
|
case 'settings':
|
||||||
if (isset($body)) {
|
if (isset($body)) {
|
||||||
|
@ -244,6 +225,7 @@ class APIControl
|
||||||
];
|
];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$response->getBody()->write(json_encode($result));
|
$response->getBody()->write(json_encode($result));
|
||||||
return $response->withHeader('Content-Type', 'application/json');
|
return $response->withHeader('Content-Type', 'application/json');
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,8 +7,6 @@ use brain\data\Session;
|
||||||
use brain\data\Settings;
|
use brain\data\Settings;
|
||||||
use brain\data\Themes;
|
use brain\data\Themes;
|
||||||
use brain\utility\Setup;
|
use brain\utility\Setup;
|
||||||
use brain\utility\Sorting;
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Slim\Views\Twig;
|
use Slim\Views\Twig;
|
||||||
|
@ -33,9 +31,9 @@ class DashControl
|
||||||
$template = 'dash/settings.twig';
|
$template = 'dash/settings.twig';
|
||||||
$member = Session::get('member');
|
$member = Session::get('member');
|
||||||
$form_token = Session::get('form_token');
|
$form_token = Session::get('form_token');
|
||||||
$updated = new Carbon($settings['global']['last_backup']);
|
$updated = new \Moment\Moment($settings['global']['last_backup']);
|
||||||
$pageOptions = [
|
$pageOptions = [
|
||||||
'title' => 'Settings',
|
'title' => 'Dash Settings',
|
||||||
'private' => $settings['global']['private'],
|
'private' => $settings['global']['private'],
|
||||||
'renderOnSave' => $settings['global']['renderOnSave'],
|
'renderOnSave' => $settings['global']['renderOnSave'],
|
||||||
'background' => $settings['global']['background'],
|
'background' => $settings['global']['background'],
|
||||||
|
@ -71,7 +69,7 @@ class DashControl
|
||||||
$settings = $config->getSettings();
|
$settings = $config->getSettings();
|
||||||
$template = 'dash/navigation.twig';
|
$template = 'dash/navigation.twig';
|
||||||
$pageOptions = [
|
$pageOptions = [
|
||||||
'title' => 'Edit Menu',
|
'title' => 'Edit Dash Navigation',
|
||||||
'status' => Session::active(),
|
'status' => Session::active(),
|
||||||
'menu' => $settings['menu'],
|
'menu' => $settings['menu'],
|
||||||
];
|
];
|
||||||
|
@ -112,22 +110,14 @@ class DashControl
|
||||||
case 'edit':
|
case 'edit':
|
||||||
$page = (new Book())->findPageById($uuid);
|
$page = (new Book())->findPageById($uuid);
|
||||||
$views = [];
|
$views = [];
|
||||||
if (!isset($page['layout'])) {
|
|
||||||
$page['layout'] = "page";
|
|
||||||
}
|
|
||||||
if (str_contains($page['layout'], 'index')) {
|
if (str_contains($page['layout'], 'index')) {
|
||||||
$views = (new Themes())->getCustomIndex();
|
$views = (new Themes())->getCustomIndex();
|
||||||
} else {
|
} else {
|
||||||
$views = (new Themes())->getCustomViews();
|
$views = (new Themes())->getCustomViews();
|
||||||
}
|
}
|
||||||
$imageList = [];
|
|
||||||
$fileList = [];
|
|
||||||
if (isset($page['feature'])) {
|
|
||||||
$imageList = explode(',', $page['feature']);
|
$imageList = explode(',', $page['feature']);
|
||||||
}
|
|
||||||
if (isset($page['files'])) {
|
|
||||||
$fileList = explode(',', $page['files']);
|
$fileList = explode(',', $page['files']);
|
||||||
}
|
|
||||||
|
|
||||||
$images = [];
|
$images = [];
|
||||||
$files = [];
|
$files = [];
|
||||||
|
@ -146,7 +136,7 @@ class DashControl
|
||||||
}
|
}
|
||||||
|
|
||||||
$pageOptions = [
|
$pageOptions = [
|
||||||
'title' => $page['title'],
|
'title' => 'Fipamo | Edit Page',
|
||||||
'page' => $page,
|
'page' => $page,
|
||||||
'mode' => $mode,
|
'mode' => $mode,
|
||||||
'token' => Session::get('form_token'),
|
'token' => Session::get('form_token'),
|
||||||
|
@ -160,15 +150,16 @@ class DashControl
|
||||||
$config = new Settings();
|
$config = new Settings();
|
||||||
$settings = $config->getSettings();
|
$settings = $config->getSettings();
|
||||||
$loader = new \Twig\Loader\FilesystemLoader(
|
$loader = new \Twig\Loader\FilesystemLoader(
|
||||||
'../content/themes/' . $settings['global']['theme'] .
|
'../content/themes'
|
||||||
'/'
|
|
||||||
);
|
);
|
||||||
$display = new \Twig\Environment($loader, []);
|
$display = new \Twig\Environment($loader, []);
|
||||||
|
|
||||||
$book = new Book();
|
$book = new Book();
|
||||||
$page = $book->findPageById($uuid);
|
$page = $book->findPageById($uuid);
|
||||||
$pageOptions = Sorting::page($page);
|
$pageOptions = Sorting::page($page);
|
||||||
$preview = $page['layout'] .
|
$preview = $settings['global']['theme'] .
|
||||||
|
'/' .
|
||||||
|
$page['layout'] .
|
||||||
'.twig';
|
'.twig';
|
||||||
$html = $display->render($preview, $pageOptions);
|
$html = $display->render($preview, $pageOptions);
|
||||||
$response->getBody()->write($html);
|
$response->getBody()->write($html);
|
||||||
|
@ -204,7 +195,7 @@ class DashControl
|
||||||
$template = 'dash/start.twig';
|
$template = 'dash/start.twig';
|
||||||
if (Session::active()) {
|
if (Session::active()) {
|
||||||
$pageOptions = [
|
$pageOptions = [
|
||||||
'title' => 'Start',
|
'title' => 'Welcome Back',
|
||||||
'status' => Session::active(),
|
'status' => Session::active(),
|
||||||
'data' => (new Book())->getPages(1, 4),
|
'data' => (new Book())->getPages(1, 4),
|
||||||
];
|
];
|
||||||
|
|
|
@ -7,7 +7,6 @@ use Psr\Http\Message\ServerRequestInterface;
|
||||||
|
|
||||||
class RouteControl
|
class RouteControl
|
||||||
{
|
{
|
||||||
//TODO: Add additional HTTP Methods to better organize API control paths
|
|
||||||
public function get(
|
public function get(
|
||||||
ServerRequestInterface $request,
|
ServerRequestInterface $request,
|
||||||
ResponseInterface $response,
|
ResponseInterface $response,
|
||||||
|
@ -33,15 +32,14 @@ class RouteControl
|
||||||
): ResponseInterface {
|
): ResponseInterface {
|
||||||
switch (isset($args['first']) ? $args['first'] : 'index') {
|
switch (isset($args['first']) ? $args['first'] : 'index') {
|
||||||
case 'api':
|
case 'api':
|
||||||
|
//$result = APIControl::post($request, $response, $args);
|
||||||
|
//var_dump($result);
|
||||||
return APIControl::post($request, $response, $args);
|
return APIControl::post($request, $response, $args);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$result = [
|
//echo "YES";
|
||||||
'message' => "Nothing matches this route. That's unfortunate",
|
//return IndexControl::start($request, $response, $args);
|
||||||
'type' => 'TASK_NONE',
|
break;
|
||||||
];
|
|
||||||
$response->getBody()->write(json_encode($result));
|
|
||||||
return $response->withHeader('Content-Type', 'application/json');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
namespace brain\data;
|
namespace brain\data;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use brain\utility\DocTools;
|
use brain\utility\DocTools;
|
||||||
use brain\utility\StringTools;
|
use brain\utility\StringTools;
|
||||||
|
use brain\utility\FileUploader;
|
||||||
|
|
||||||
use function _\find;
|
use function _\find;
|
||||||
use function _\filter;
|
use function _\filter;
|
||||||
|
@ -38,8 +38,13 @@ class Book
|
||||||
public function editPage($task, $request)
|
public function editPage($task, $request)
|
||||||
{
|
{
|
||||||
$content = $this->getContents();
|
$content = $this->getContents();
|
||||||
$body = json_decode(file_get_contents("php://input"), true);
|
if ($task == 'delete') {
|
||||||
//$body = find($content, ["uuid" => $parsed["id"]]);
|
// $parsed = json_decode(file_get_contents("php://input"), true);
|
||||||
|
// $body = find($content, ["uuid" => $parsed["id"]]);
|
||||||
|
$body = $request->getParsedBody();
|
||||||
|
} else {
|
||||||
|
$body = $request->getParsedBody();
|
||||||
|
}
|
||||||
|
|
||||||
$page = find($content, ['uuid' => $body['uuid']]);
|
$page = find($content, ['uuid' => $body['uuid']]);
|
||||||
$files = $request->getUploadedFiles();
|
$files = $request->getUploadedFiles();
|
||||||
|
@ -57,6 +62,64 @@ class Book
|
||||||
$page_feature = '';
|
$page_feature = '';
|
||||||
$page_files = '';
|
$page_files = '';
|
||||||
|
|
||||||
|
if (isset($files['page_files'])) {
|
||||||
|
$imageList = '';
|
||||||
|
$fileList = '';
|
||||||
|
// var_dump($files["page_files"] );
|
||||||
|
foreach ($files['page_files'] as $file) {
|
||||||
|
$type = $file->getClientMediaType();
|
||||||
|
switch ($type) {
|
||||||
|
case 'image/jpeg':
|
||||||
|
case 'image/png':
|
||||||
|
case 'image/gif':
|
||||||
|
case 'image/svg':
|
||||||
|
$imagesPath = '/assets/images/blog/' . $path . '/';
|
||||||
|
$imageList = $imageList . $imagesPath . urlencode($file->getClientFileName()) . ', ';
|
||||||
|
|
||||||
|
FileUploader::uploadFile(
|
||||||
|
'../public/assets/images/blog/' . $path . '/',
|
||||||
|
$file
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
case 'video/mp4':
|
||||||
|
$videosPath = '/assets/video/blog/' . $path . '/';
|
||||||
|
$imageList = $imageList . $videosPath . urlencode($file->getClientFileName()) . ', ';
|
||||||
|
|
||||||
|
FileUploader::uploadFile(
|
||||||
|
'../public/assets/video/blog/' . $path . '/',
|
||||||
|
$file
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
case 'audio/mpeg':
|
||||||
|
$soundPath = '/assets/sound/blog/' . $path . '/';
|
||||||
|
$fileList = $fileList . $soundPath . urlencode($file->getClientFileName()) . ', ';
|
||||||
|
|
||||||
|
FileUploader::uploadFile(
|
||||||
|
'../public/assets/sound/blog/' . $path . '/',
|
||||||
|
$file
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
case 'application/pdf':
|
||||||
|
case 'text/plain':
|
||||||
|
case 'text/rtf':
|
||||||
|
$docPath = '/assets/docs/blog/' . $path . '/';
|
||||||
|
$fileList = $fileList . $docPath . urlencode($file->getClientFileName()) . ', ';
|
||||||
|
|
||||||
|
FileUploader::uploadFile(
|
||||||
|
'../public/assets/docs/blog/' . $path . '/',
|
||||||
|
$file
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$page_feature = $imageList;
|
||||||
|
$page_files = $fileList;
|
||||||
|
} else {
|
||||||
|
// if no files, just reset string from page object
|
||||||
|
$page_feature = $page['feature'];
|
||||||
|
$page_files = $page['files'];
|
||||||
|
}
|
||||||
|
|
||||||
if ($task == 'delete') {
|
if ($task == 'delete') {
|
||||||
$deleted = 'true';
|
$deleted = 'true';
|
||||||
$body['menu'] = 'false';
|
$body['menu'] = 'false';
|
||||||
|
@ -66,8 +129,10 @@ class Book
|
||||||
$deleted = isset($page['deleted']) ? $page['deleted'] : 'false';
|
$deleted = isset($page['deleted']) ? $page['deleted'] : 'false';
|
||||||
}
|
}
|
||||||
|
|
||||||
$created = $task != 'create' ? new Carbon($page['rawCreated']) : Carbon::now();
|
$created = $task != 'create'
|
||||||
$updated = Carbon::now();
|
? new \Moment\Moment($page['rawCreated'])
|
||||||
|
: new \Moment\Moment();
|
||||||
|
$updated = new \Moment\Moment();
|
||||||
|
|
||||||
// grab current index from settings and update
|
// grab current index from settings and update
|
||||||
$id = $task != 'create' ? $body['id'] : Settings::getCurrentIndex();
|
$id = $task != 'create' ? $body['id'] : Settings::getCurrentIndex();
|
||||||
|
@ -76,8 +141,8 @@ class Book
|
||||||
|
|
||||||
$body['id'] = $id;
|
$body['id'] = $id;
|
||||||
$body['uuid'] = $uuid;
|
$body['uuid'] = $uuid;
|
||||||
//$body['feature'] = $page_feature;
|
$body['feature'] = $page_feature;
|
||||||
//$body['files'] = $page_files;
|
$body['files'] = $page_files;
|
||||||
$body['path'] = $path;
|
$body['path'] = $path;
|
||||||
$body['author'] = $member['handle'];
|
$body['author'] = $member['handle'];
|
||||||
$body['created'] = $created->format("Y-m-d\TH:i:sP");
|
$body['created'] = $created->format("Y-m-d\TH:i:sP");
|
||||||
|
|
|
@ -108,13 +108,9 @@ class Contents
|
||||||
];
|
];
|
||||||
|
|
||||||
$sanitizer = $builder->build($detergent);
|
$sanitizer = $builder->build($detergent);
|
||||||
$scrubbed = $sanitizer->sanitize($result->getContent());
|
|
||||||
if (isset($meta['feature'])) {
|
|
||||||
$featureList = explode(',', $meta['feature']);
|
|
||||||
} else {
|
|
||||||
$featureList = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
$scrubbed = $sanitizer->sanitize($result->getContent());
|
||||||
|
$featureList = explode(',', $meta['feature']);
|
||||||
$docs = '';
|
$docs = '';
|
||||||
if (isset($meta['files'])) {
|
if (isset($meta['files'])) {
|
||||||
$fileList = explode(',', $meta['files']);
|
$fileList = explode(',', $meta['files']);
|
||||||
|
@ -126,7 +122,6 @@ class Contents
|
||||||
|
|
||||||
$media = [];
|
$media = [];
|
||||||
$files = [];
|
$files = [];
|
||||||
if ($featureList != '') {
|
|
||||||
foreach ($featureList as $file) {
|
foreach ($featureList as $file) {
|
||||||
$item = trim($file);
|
$item = trim($file);
|
||||||
$ext = pathinfo($item, PATHINFO_EXTENSION);
|
$ext = pathinfo($item, PATHINFO_EXTENSION);
|
||||||
|
@ -134,9 +129,7 @@ class Contents
|
||||||
array_push($media, ['file' => $item, 'type' => trim($ext)]);
|
array_push($media, ['file' => $item, 'type' => trim($ext)]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ($fileList != "") {
|
|
||||||
foreach ($fileList as $file) {
|
foreach ($fileList as $file) {
|
||||||
$item = trim($file);
|
$item = trim($file);
|
||||||
$ext = pathinfo($item, PATHINFO_EXTENSION);
|
$ext = pathinfo($item, PATHINFO_EXTENSION);
|
||||||
|
@ -144,7 +137,6 @@ class Contents
|
||||||
array_push($files, ['file' => $item, 'type' => trim($ext)]);
|
array_push($files, ['file' => $item, 'type' => trim($ext)]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
//sort attributes into page object
|
//sort attributes into page object
|
||||||
$page = [
|
$page = [
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
namespace brain\data;
|
namespace brain\data;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use brain\utility\DocTools;
|
use brain\utility\DocTools;
|
||||||
|
|
||||||
use function _\find;
|
use function _\find;
|
||||||
|
@ -39,7 +38,7 @@ class Member
|
||||||
}
|
}
|
||||||
$found[$key] = $data;
|
$found[$key] = $data;
|
||||||
//record time updated
|
//record time updated
|
||||||
$updated = Carbon::now();
|
$updated = new \Moment\Moment();
|
||||||
$found['updated'] = $updated->format("Y-m-d\TH:i:sP");
|
$found['updated'] = $updated->format("Y-m-d\TH:i:sP");
|
||||||
$newFolks = [];
|
$newFolks = [];
|
||||||
array_push($newFolks, $found);
|
array_push($newFolks, $found);
|
||||||
|
|
|
@ -107,7 +107,7 @@ class Render
|
||||||
}
|
}
|
||||||
|
|
||||||
$template = $layout . '.twig';
|
$template = $layout . '.twig';
|
||||||
if (str_contains($layout, 'index')) {
|
if (str_contains($page['layout'], 'index')) {
|
||||||
$location = '../public/index.html';
|
$location = '../public/index.html';
|
||||||
$dir = null;
|
$dir = null;
|
||||||
} else {
|
} else {
|
||||||
|
@ -136,7 +136,6 @@ class Render
|
||||||
'archives' => $archive,
|
'archives' => $archive,
|
||||||
'info' => $this->pageInfo,
|
'info' => $this->pageInfo,
|
||||||
'menu' => $this->menu,
|
'menu' => $this->menu,
|
||||||
'media' => [['file' => $this->pageInfo['image'], 'type' => trim(pathinfo($this->pageInfo['image'], PATHINFO_EXTENSION))]],
|
|
||||||
];
|
];
|
||||||
|
|
||||||
$html = $this->twig->render($template, $pageOptions);
|
$html = $this->twig->render($template, $pageOptions);
|
||||||
|
@ -155,7 +154,6 @@ class Render
|
||||||
'tag_list' => $item['pages'],
|
'tag_list' => $item['pages'],
|
||||||
'info' => $this->pageInfo,
|
'info' => $this->pageInfo,
|
||||||
'menu' => $this->menu,
|
'menu' => $this->menu,
|
||||||
'media' => [['file' => $this->pageInfo['image'], 'type' => trim(pathinfo($this->pageInfo['image'], PATHINFO_EXTENSION))]],
|
|
||||||
];
|
];
|
||||||
|
|
||||||
$html = $this->twig->render($template, $pageOptions);
|
$html = $this->twig->render($template, $pageOptions);
|
||||||
|
|
|
@ -4,7 +4,6 @@ namespace brain\data;
|
||||||
|
|
||||||
use brain\utility\DocTools;
|
use brain\utility\DocTools;
|
||||||
use brain\utility\Sorting;
|
use brain\utility\Sorting;
|
||||||
use Carbon\Carbon;
|
|
||||||
|
|
||||||
use function _\find;
|
use function _\find;
|
||||||
use function _\pull;
|
use function _\pull;
|
||||||
|
@ -68,8 +67,8 @@ class Settings
|
||||||
$page['deleted']
|
$page['deleted']
|
||||||
? ($page['deleted'] = 'true')
|
? ($page['deleted'] = 'true')
|
||||||
: ($page['deleted'] = 'false');
|
: ($page['deleted'] = 'false');
|
||||||
$updated = Carbon::now();
|
$updated = new \Moment\Moment();
|
||||||
$created = new Carbon($page['rawCreated']);
|
$created = new \Moment\Moment($page['rawCreated']);
|
||||||
$page['created'] = $created->format("Y-m-d\TH:i:sP");
|
$page['created'] = $created->format("Y-m-d\TH:i:sP");
|
||||||
$page['updated'] = $updated->format("Y-m-d\TH:i:sP");
|
$page['updated'] = $updated->format("Y-m-d\TH:i:sP");
|
||||||
|
|
||||||
|
|
|
@ -99,10 +99,10 @@ class DocTools
|
||||||
"'" .
|
"'" .
|
||||||
"\n" .
|
"\n" .
|
||||||
'feature: ' .
|
'feature: ' .
|
||||||
$object['imageList'] .
|
$object['feature'] .
|
||||||
"\n" .
|
"\n" .
|
||||||
'files: ' .
|
'files: ' .
|
||||||
$object['fileList'] .
|
$object['files'] .
|
||||||
"\n" .
|
"\n" .
|
||||||
'path: ' .
|
'path: ' .
|
||||||
$object['path'] .
|
$object['path'] .
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
namespace brain\utility;
|
namespace brain\utility;
|
||||||
|
|
||||||
use brain\data\Settings;
|
use brain\data\Settings;
|
||||||
use Carbon\Carbon;
|
|
||||||
|
|
||||||
class Maintenance
|
class Maintenance
|
||||||
{
|
{
|
||||||
|
@ -91,7 +90,7 @@ class Maintenance
|
||||||
$zip->close();
|
$zip->close();
|
||||||
|
|
||||||
//update settings file with latest back up date
|
//update settings file with latest back up date
|
||||||
$updated = Carbon::now();
|
$updated = new \Moment\Moment();
|
||||||
Settings::updateGlobalData(
|
Settings::updateGlobalData(
|
||||||
'last_backup',
|
'last_backup',
|
||||||
$updated->format("Y-m-d\TH:i:sP")
|
$updated->format("Y-m-d\TH:i:sP")
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
|
|
||||||
namespace brain\utility;
|
namespace brain\utility;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
|
||||||
|
|
||||||
use function _\find;
|
use function _\find;
|
||||||
|
|
||||||
class SetUp
|
class SetUp
|
||||||
|
@ -35,7 +33,7 @@ class SetUp
|
||||||
$pass = $body['new_member_pass'];
|
$pass = $body['new_member_pass'];
|
||||||
$title = $body['new_member_title'];
|
$title = $body['new_member_title'];
|
||||||
|
|
||||||
$now = Carbon::now();
|
$now = new \Moment\Moment();
|
||||||
//setup folks config
|
//setup folks config
|
||||||
$hash = password_hash($pass, PASSWORD_DEFAULT);
|
$hash = password_hash($pass, PASSWORD_DEFAULT);
|
||||||
$newFolks[0]['id'] = 0;
|
$newFolks[0]['id'] = 0;
|
||||||
|
@ -57,8 +55,8 @@ class SetUp
|
||||||
'id' => 1,
|
'id' => 1,
|
||||||
'uuid' => StringTools::createUUID(),
|
'uuid' => StringTools::createUUID(),
|
||||||
'title' => 'FIRST!',
|
'title' => 'FIRST!',
|
||||||
'imageList' => '/assets/images/global/default-bg.jpg',
|
'feature' => '/assets/images/global/default-bg.jpg',
|
||||||
'fileList' => '',
|
'files' => '',
|
||||||
'path' => 'content/pages/start',
|
'path' => 'content/pages/start',
|
||||||
'layout' => 'index',
|
'layout' => 'index',
|
||||||
'tags' => 'start, welcome',
|
'tags' => 'start, welcome',
|
||||||
|
|
|
@ -2,13 +2,12 @@
|
||||||
|
|
||||||
namespace brain\utility;
|
namespace brain\utility;
|
||||||
|
|
||||||
|
use function _\filter;
|
||||||
|
use function _\find;
|
||||||
use brain\data\Book;
|
use brain\data\Book;
|
||||||
use brain\data\Settings;
|
use brain\data\Settings;
|
||||||
use Mni\FrontYAML\Parser;
|
use Mni\FrontYAML\Parser;
|
||||||
|
|
||||||
use function _\filter;
|
|
||||||
use function _\find;
|
|
||||||
|
|
||||||
class Sorting
|
class Sorting
|
||||||
{
|
{
|
||||||
private static $p_tags = [];
|
private static $p_tags = [];
|
||||||
|
@ -17,13 +16,11 @@ class Sorting
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function tags()
|
public static function tags()
|
||||||
{
|
{
|
||||||
$pages = (new Book('../content/pages'))->getContents();
|
$pages = (new Book('../content/pages'))->getContents();
|
||||||
foreach ($pages as $page) {
|
foreach ($pages as $page) {
|
||||||
$temp = [];
|
$temp = [];
|
||||||
if (isset($page['tags'])) {
|
|
||||||
$temp = explode(',', $page['tags']);
|
$temp = explode(',', $page['tags']);
|
||||||
foreach ($temp as $tag) {
|
foreach ($temp as $tag) {
|
||||||
$label = trim($tag);
|
$label = trim($tag);
|
||||||
|
@ -36,16 +33,13 @@ class Sorting
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return self::$p_tags;
|
return self::$p_tags;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function tagPages($tag, $pages)
|
private static function tagPages($tag, $pages)
|
||||||
{
|
{
|
||||||
$tagged = [];
|
$tagged = [];
|
||||||
foreach ($pages as $page) {
|
foreach ($pages as $page) {
|
||||||
if (isset($page['tags'])) {
|
|
||||||
if (strpos($page['tags'], $tag) !== false) {
|
if (strpos($page['tags'], $tag) !== false) {
|
||||||
array_push($tagged, [
|
array_push($tagged, [
|
||||||
'title' => $page['title'],
|
'title' => $page['title'],
|
||||||
|
@ -55,11 +49,9 @@ class Sorting
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return $tagged;
|
return $tagged;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function archive()
|
public static function archive()
|
||||||
{
|
{
|
||||||
$pages = (new Book('../content/pages'))->getContents();
|
$pages = (new Book('../content/pages'))->getContents();
|
||||||
|
@ -72,13 +64,10 @@ class Sorting
|
||||||
if (!find($years, ['year' => trim($date[0])])) {
|
if (!find($years, ['year' => trim($date[0])])) {
|
||||||
$findPages = filter($pages, ['createdYear' => trim($date[0])]);
|
$findPages = filter($pages, ['createdYear' => trim($date[0])]);
|
||||||
// var_dump($findPages);
|
// var_dump($findPages);
|
||||||
array_push(
|
array_push($years, [
|
||||||
$years,
|
|
||||||
[
|
|
||||||
'year' => trim($date[0]),
|
'year' => trim($date[0]),
|
||||||
'count' => count($findPages),
|
'count' => count($findPages),
|
||||||
]
|
]);
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach ($years as $year) {
|
foreach ($years as $year) {
|
||||||
|
@ -88,15 +77,12 @@ class Sorting
|
||||||
foreach ($filtered as $obj) {
|
foreach ($filtered as $obj) {
|
||||||
$month = date('m', date($obj['rawCreated']));
|
$month = date('m', date($obj['rawCreated']));
|
||||||
if (!find($sorted, ['month' => $month])) {
|
if (!find($sorted, ['month' => $month])) {
|
||||||
$perMonth = filter(
|
$perMonth = filter($pages, [
|
||||||
$pages,
|
|
||||||
[
|
|
||||||
'path' => $year['year'] . '/' . $month,
|
'path' => $year['year'] . '/' . $month,
|
||||||
'deleted' => false,
|
'deleted' => false,
|
||||||
'published' => true,
|
'published' => true,
|
||||||
'layout' => 'page',
|
'layout' => 'page',
|
||||||
]
|
]);
|
||||||
);
|
|
||||||
array_push($sorted, [
|
array_push($sorted, [
|
||||||
'month' => $month,
|
'month' => $month,
|
||||||
'full_month' => date('F', date($obj['rawCreated'])),
|
'full_month' => date('F', date($obj['rawCreated'])),
|
||||||
|
@ -113,7 +99,6 @@ class Sorting
|
||||||
|
|
||||||
return self::$p_archive;
|
return self::$p_archive;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function page($page)
|
public static function page($page)
|
||||||
{
|
{
|
||||||
$config = new Settings();
|
$config = new Settings();
|
||||||
|
@ -128,9 +113,9 @@ class Sorting
|
||||||
'image' => $settings['global']['base_url'] . $settings['global']['background'],
|
'image' => $settings['global']['base_url'] . $settings['global']['background'],
|
||||||
'baseURL' => $settings['global']['base_url'],
|
'baseURL' => $settings['global']['base_url'],
|
||||||
];
|
];
|
||||||
$tags = [];
|
|
||||||
if (isset($page['tags'])) {
|
|
||||||
$taglist = explode(',', $page['tags']);
|
$taglist = explode(',', $page['tags']);
|
||||||
|
$tags = [];
|
||||||
foreach ($taglist as $tag) {
|
foreach ($taglist as $tag) {
|
||||||
$label = trim($tag);
|
$label = trim($tag);
|
||||||
array_push($tags, [
|
array_push($tags, [
|
||||||
|
@ -138,7 +123,6 @@ class Sorting
|
||||||
'slug' => StringTools::safeString($label),
|
'slug' => StringTools::safeString($label),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$meta = [
|
$meta = [
|
||||||
'who' => $page['author'],
|
'who' => $page['author'],
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="theme-color" content="#FFFFFF"/>
|
<meta name="theme-color" content="#FFFFFF"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>
|
<title>
|
||||||
{% block title %}
|
{% block title %}
|
||||||
{{ title }}
|
{{ title }}
|
||||||
|
@ -12,38 +11,56 @@
|
||||||
{% block stylesheets %}{% endblock %}
|
{% block stylesheets %}{% endblock %}
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
<div id="notifications" class="notifications">
|
||||||
|
<div id="notify-message" class="notify-message">
|
||||||
|
<div id="notify-good" class="notify-icon">
|
||||||
|
<svg viewbox="0 0 20 20" class="icons"><use xlink:href="/assets/images/global/sprite.svg#entypo-emoji-flirt"/></svg>
|
||||||
|
</div>
|
||||||
|
<div id="notify-lame" class="notify-icon">
|
||||||
|
<svg viewbox="0 0 20 20" class="icons"><use xlink:href="/assets/images/global/sprite.svg#entypo-emoji-sad"/></svg>
|
||||||
|
</div>
|
||||||
|
<div id="notify-working" class="notify-icon">
|
||||||
|
<svg id="notify-working-icon" viewbox="0 0 20 20" class="icons"><use xlink:href="/assets/images/global/sprite.svg#entypo-cog"/></svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="notify-text">
|
||||||
|
<div id="notify-progress"></div>
|
||||||
|
<p id="message-text">MESSAGE TEXT</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="main-content" class="main-container">
|
||||||
|
<section id="dash-index-content">
|
||||||
{% if status %}
|
{% if status %}
|
||||||
<header>
|
<header id="header">
|
||||||
|
<div id="wrapper">
|
||||||
{% apply spaceless %}
|
{% apply spaceless %}
|
||||||
<nav role="top-nav">
|
<div id="left">
|
||||||
<div role="nav-left">
|
|
||||||
<a href="/dashboard"><img id="the-logo" src="/assets/images/global/fipamo-logo.svg"/></a>
|
<a href="/dashboard"><img id="the-logo" src="/assets/images/global/fipamo-logo.svg"/></a>
|
||||||
</div>
|
</div>
|
||||||
<div role="title">
|
<div id="right">
|
||||||
<h1>{{ title }}</h1>
|
|
||||||
</div>
|
|
||||||
<div role="nav-right">
|
|
||||||
{% if status %}
|
{% if status %}
|
||||||
{% apply spaceless %}
|
{% apply spaceless %}
|
||||||
{{ include("dash/partials/navigation.twig") }}
|
{{ include("dash/partials/navigation.twig") }}
|
||||||
{% endapply %}
|
{% endapply %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
|
||||||
<div role="notify">
|
|
||||||
{% apply spaceless %}
|
|
||||||
{{ include("dash/partials/notifications.twig") }}
|
|
||||||
{% endapply %}
|
{% endapply %}
|
||||||
</div>
|
</div>
|
||||||
{% endapply %}
|
|
||||||
{% endif %}
|
|
||||||
</header>
|
</header>
|
||||||
<main>
|
{% endif %}
|
||||||
{% apply spaceless %}
|
{% apply spaceless %}
|
||||||
{% block mainContent %}{% endblock %}
|
{% block mainContent %}{% endblock %}
|
||||||
{% endapply %}
|
{% endapply %}
|
||||||
</main>
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<footer></footer>
|
<footer></footer>
|
||||||
<script type="module" src="/assets/scripts/dash.js"></script>
|
{% block javascripts %}{% endblock %}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -5,36 +5,45 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
<link rel="stylesheet" type="text/css" href="/assets/css/dash/start.css?=vdthg">
|
<link rel="stylesheet" type="text/css" href="/assets/css/dash.css?=dfvgy">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block mainContent %}
|
{% block mainContent %}
|
||||||
<section role="book-index-header">
|
<div id="post-index">
|
||||||
<div role="book-index-header-left">
|
<div id="post-index-wrapper">
|
||||||
{{ filter }}
|
<div id="post-index-header">
|
||||||
Pages
|
<div id="post-index-header-left">
|
||||||
|
{{ filter }} Pages
|
||||||
</div>
|
</div>
|
||||||
<div role="book-index-header-right">
|
<div id="post-index-header-right">
|
||||||
<a href="/dashboard/pages/all" title="view all pages">
|
<a href="/dashboard/pages/all" title="view all pages">
|
||||||
<button>
|
<button>
|
||||||
<i class="ti ti-clipboard-list"></i>
|
<svg >
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-archive"/>
|
||||||
|
</svg>
|
||||||
{{ stats['all'] }}
|
{{ stats['all'] }}
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
<a href="/dashboard/pages/published" title="view publised pages">
|
<a href="/dashboard/pages/published" title="view publised pages">
|
||||||
<button>
|
<button>
|
||||||
<i class="ti ti-clipboard-check"></i>
|
<svg >
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-globe"/>
|
||||||
|
</svg>
|
||||||
{{ stats['published'] }}
|
{{ stats['published'] }}
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
<a href="/dashboard/pages/deleted" title="view deleted pages">
|
<a href="/dashboard/pages/deleted" title="view deleted pages">
|
||||||
<button>
|
<button>
|
||||||
<i class="ti ti-clipboard-off"></i>
|
<svg >
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-circle-with-cross"/>
|
||||||
|
</svg>
|
||||||
{{ stats['deleted'] }}
|
{{ stats['deleted'] }}
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
</section>
|
</div>
|
||||||
<section role="book-index-pages">
|
|
||||||
|
</div>
|
||||||
|
<div id="posts-list">
|
||||||
{% for page in pages %}
|
{% for page in pages %}
|
||||||
{% if page.media[0].type == 'mp4' %}
|
{% if page.media[0].type == 'mp4' %}
|
||||||
<a href="/dashboard/page/edit/{{ page.uuid }}" id="{{ page.uuid }}" class="page-link">
|
<a href="/dashboard/page/edit/{{ page.uuid }}" id="{{ page.uuid }}" class="page-link">
|
||||||
|
@ -44,16 +53,23 @@
|
||||||
|
|
||||||
Sorry, your browser doesn't support embedded videos.
|
Sorry, your browser doesn't support embedded videos.
|
||||||
</video>
|
</video>
|
||||||
|
<label>
|
||||||
|
{{ page.title }}
|
||||||
|
</label>
|
||||||
<div id="meta">
|
<div id="meta">
|
||||||
{{ include("dash/partials/recent-meta.twig") }}
|
{{ include("dash/partials/recent-options.twig") }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="page-link" href="/dashboard/page/edit/{{ page.uuid }}">
|
<a class="page-link" href="/dashboard/page/edit/{{ page.uuid }}">
|
||||||
<div class="page-bg" style="background: url({{ page.media[0].file }}) no-repeat center center / cover #fc6399">
|
<div class="page-bg" style="background: url({{ page.media[0].file }}) no-repeat center center / cover">
|
||||||
|
<label>
|
||||||
|
{{ page.title }}
|
||||||
|
</label>
|
||||||
<div id="meta">
|
<div id="meta">
|
||||||
{{ include("dash/partials/recent-meta.twig") }}
|
{{ include("dash/partials/recent-options.twig") }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
@ -61,9 +77,9 @@
|
||||||
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if numOfPages > 1 %}
|
{% if numOfPages > 1 %}
|
||||||
<div role="paginate">
|
<div class="paginate">
|
||||||
<a class="page-btns" href="/dashboard/pages/{{ paginate['sort'] }}/{{ paginate['prevPage'] }}">
|
<a class="page-btns" href="/dashboard/pages/{{ paginate['sort'] }}/{{ paginate['prevPage'] }}">
|
||||||
<i class="ti ti-square-arrow-left"></i>
|
<svg viewbox="0 0 20 20" class="icons"><use xlink:href="/assets/images/global/sprite.svg#entypo-chevron-left"/></svg>
|
||||||
</a>
|
</a>
|
||||||
<span class="count">
|
<span class="count">
|
||||||
{{ currentPage }}
|
{{ currentPage }}
|
||||||
|
@ -71,10 +87,16 @@
|
||||||
{{ numOfPages }}
|
{{ numOfPages }}
|
||||||
</span>
|
</span>
|
||||||
<a class="page-btns" href="/dashboard/pages/{{ paginate['sort'] }}/{{ paginate['nextPage'] }}">
|
<a class="page-btns" href="/dashboard/pages/{{ paginate['sort'] }}/{{ paginate['nextPage'] }}">
|
||||||
<i class="ti ti-square-arrow-right"></i>
|
<svg viewbox="0 0 20 20" class="icons"><use xlink:href="/assets/images/global/sprite.svg#entypo-chevron-right"/></svg>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</section>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block javascripts %}
|
||||||
|
<script src="/assets/scripts/Start.js" type="text/javascript"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -1,16 +0,0 @@
|
||||||
<div>
|
|
||||||
<a href="/dashboard">
|
|
||||||
<img id="the-logo" src="/assets/images/global/fipamo-logo.svg"/>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<form id="init-restore" method="POST">
|
|
||||||
<input type="text" name="restore_member_handle" id="restore_member_handle" placeholder="handle"/><input type="password" name="restore_member_pass" id="restore_member_pass" placeholder="password"/>
|
|
||||||
<div>
|
|
||||||
<label>Grab your backup zip</label>
|
|
||||||
<input id="backup-upload" type="file" name="backup-upload" placeholder="Backup Zip"/>
|
|
||||||
</div>
|
|
||||||
<br/><br/>
|
|
||||||
<button id="blog-restore" data-action='blog-restore' type='submit'>RESTORE</button>
|
|
||||||
<br/><br/>
|
|
||||||
<button class="init-option" id="init-switch-fresh">OR INSTALL FROM SCRATCH</button>
|
|
||||||
</form>
|
|
|
@ -1,15 +0,0 @@
|
||||||
<div>
|
|
||||||
<a href="/dashboard">
|
|
||||||
<img id="the-logo" src="/assets/images/global/fipamo-logo.svg"/>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<form id="init-form" method="POST" onsubmit="return false;">
|
|
||||||
<input type="text" name="new_member_handle" id="new_member_handle" placeholder="handle"/>
|
|
||||||
<input type="text" name="new_member_email" id="new_member_email" placeholder="email"/>
|
|
||||||
<input type="text" name="new_member_pass" id="new_member_pass" placeholder="password"/>
|
|
||||||
<input type="text" name="new_member_pass2" id="new_member_pass2" placeholder="password confirm"/>
|
|
||||||
<input type="text" name="new_member_title" id="new_member_title" placeholder="title"/>
|
|
||||||
<button id="init-blog" data-action='blog-init' type='submit'>SET UP YOUR SITE</button>
|
|
||||||
<br/><br/>
|
|
||||||
<button class="init-option" id="init-switch-restore">RESTORE FROM BACKUP</button>
|
|
||||||
</form>
|
|
|
@ -1,13 +1,13 @@
|
||||||
<section role="login">
|
<div id="dash-login">
|
||||||
<div>
|
<div id="dash-form" class="dash-form">
|
||||||
<img id="the-logo" src="/assets/images/global/fipamo-logo.svg"/>
|
<img id="the-logo" src="/assets/images/global/fipamo-logo.svg"/>
|
||||||
</div>
|
<form id="login" class='login' name="login" method="POST">
|
||||||
<form id="login" class='login' name="login" method="POST" onsubmit="return false;">
|
<input type="text" name="handle" class="form-control" placeholder="Handle" required ">
|
||||||
<input type="text" name="handle" class="form-control" placeholder="Handle" required/>
|
<input type="password" name="password" class="form-control" placeholder="Password" required">
|
||||||
<input type="password" name="password" class="form-control" placeholder="Password" required/>
|
<button id="login-btn" class='login-btn' type='submit'>
|
||||||
<button id="login-btn" class='login-btn'>
|
|
||||||
ID, PLEASE
|
ID, PLEASE
|
||||||
</button>
|
</button><br /><br />
|
||||||
<a href="/dashboard/reset-password">?</a>
|
<a href="/dashboard/reset-password"> Forgot Password?</a>
|
||||||
</form>
|
</form>
|
||||||
</section>
|
</div>
|
||||||
|
</div>
|
|
@ -1,21 +0,0 @@
|
||||||
<div>
|
|
||||||
<a href="/dashboard">
|
|
||||||
<img id="the-logo" src="/assets/images/global/fipamo-logo.svg"/>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<form id="reset" class='login' name="reset" action="/dashboard/login" method="POST">
|
|
||||||
|
|
||||||
<input type="password" id="new_password" name="new_password" class="form-control" placeholder="New Password" required/>
|
|
||||||
<input type="password" id="new_password2" name="new_password2" class="form-control" placeholder="New Password Confirm" required">
|
|
||||||
<input type="password" id="secret" name="secret" class="form-control" placeholder="Account Secret" required/>
|
|
||||||
<button id="reset-btn" class='login-btn' type='submit'>
|
|
||||||
RESET PASSWORD
|
|
||||||
</button><br/>
|
|
||||||
<p>
|
|
||||||
Use this to get your secret to verify it's you. If your email is set up, the secret will be sent there. If not, the form will be updated automatically(but please set up your email, once you reset your password).
|
|
||||||
</p>
|
|
||||||
<input type="text" id="email" name="email" class="form-control" placeholder="email to verify" required/>
|
|
||||||
<button id="get-secret-btn" class='login-btn' type='submit'>
|
|
||||||
VERIFY EMAIL
|
|
||||||
</button><br/><br/>
|
|
||||||
</form>
|
|
|
@ -5,20 +5,44 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
<link rel="stylesheet" type="text/css" href="/assets/css/dash/start.css">
|
<link rel="stylesheet" type="text/css" href="/assets/css/dash.css?=adfa">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block mainContent %}
|
{% block mainContent %}
|
||||||
<article role="site-restore">
|
<div id="dash-index">
|
||||||
<section role="restore-fresh">
|
<div id="dash-index-wrapper">
|
||||||
{% apply spaceless %}
|
<div id="dash-init" class="dash-init">
|
||||||
{{ include("dash/forms/init-fresh.twig") }}
|
<form id="init-form" method="POST">
|
||||||
{% endapply %}
|
<img id="the-logo" src="/assets/images/global/fipamo-logo.svg"/>
|
||||||
</section>
|
<input type="text" name="new_member_handle" id="new_member_handle" placeholder="handle"/>
|
||||||
<section role="restore-backup">
|
<input type="text" name="new_member_email" id="new_member_email" placeholder="email"/>
|
||||||
{% apply spaceless %}
|
<input type="text" name="new_member_pass" id="new_member_pass" placeholder="password"/>
|
||||||
{{ include("dash/forms/init-backup.twig") }}
|
<input type="text" name="new_member_pass2" id="new_member_pass2" placeholder="password confirm"/>
|
||||||
{% endapply %}
|
<input type="text" name="new_member_title" id="new_member_title" placeholder="title"/>
|
||||||
</section>
|
<button id="init-blog" data-action='blog-init' type='submit'>SET UP YOUR SITE</button>
|
||||||
</article>
|
<br /><br />
|
||||||
|
<button class="init-option" id="init-switch-restore">RESTORE FROM BACKUP</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div id="dash-restore" class="dash-restore">
|
||||||
|
<form id="init-restore" method="POST">
|
||||||
|
<img id="the-logo" src="/assets/images/global/fipamo-logo.svg"/>
|
||||||
|
<input type="text" name="restore_member_handle" id="restore_member_handle" placeholder="handle"/><input type="password" name="restore_member_pass" id="restore_member_pass" placeholder="password"/>
|
||||||
|
<div>
|
||||||
|
<label>Grab your backup zip</label>
|
||||||
|
<input id="backup-upload" type="file" name="backup-upload" placeholder="Backup Zip"/>
|
||||||
|
</div>
|
||||||
|
<br /><br />
|
||||||
|
<button id="blog-restore" data-action='blog-restore' type='submit'>RESTORE</button>
|
||||||
|
<br /><br />
|
||||||
|
<button class="init-option" id="init-switch-fresh">OR INSTALL FROM SCRATCH</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block javascripts %}
|
||||||
|
<script src="/assets/scripts/Start.js?=sdfsdf" type="text/javascript"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -5,26 +5,39 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
<link rel="stylesheet" type="text/css" href="/assets/css/dash/start.css?=sdsdsds">
|
<link rel="stylesheet" type="text/css" href="/assets/css/dash.css?=sdsdsds">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block mainContent %}
|
{% block mainContent %}
|
||||||
<article role="navigation">
|
<div id="nav-index">
|
||||||
<section id="nav-items">
|
<div id="nav-index-wrapper">
|
||||||
|
<div id="nav-pages">
|
||||||
{% for item in menu %}
|
{% for item in menu %}
|
||||||
<div id="{{ item.id }}" class="nav-item" data-slug="{{ item.slug }}" data-uuid="{{ item.uuid }}" data-path="{{ item.path }}">
|
<div id="{{item.id}}" class="nav-item" data-slug="{{item.slug}}" data-uuid="{{item.uuid}}" data-path="{{item.path}}">
|
||||||
<i class="ti ti-arrows-move-vertical"></i>
|
<svg id="item-arrows">
|
||||||
<label>{{ item.title }}</label>
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-select-arrows"/>
|
||||||
|
</svg>
|
||||||
|
<label>{{item.title}}</label>
|
||||||
<div id="nav-btns">
|
<div id="nav-btns">
|
||||||
<button id="edit-item" class="nav-btn" data-id="{{ item.uuid }}" title="edit page">
|
<button id="edit-item" class="nav-btn" data-id="{{item.uuid}}" title="edit page">
|
||||||
<i class="ti ti-edit"></i>
|
<svg>
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-edit"/>
|
||||||
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<button id="remove-item" class="nav-btn" data-uuid="{{ item.uuid }}" data-id="{{ item.id }}" title="delete from menu">
|
<button id="remove-item" class="nav-btn" data-uuid="{{item.uuid}}" data-id="{{item.id}}" title="delete from menu">
|
||||||
<i class="ti ti-x"></i>
|
<svg>
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-cross"/>
|
||||||
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</section>
|
</div>
|
||||||
</article>
|
</div>
|
||||||
{% endblock %}
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block javascripts %}
|
||||||
|
<script src="/assets/scripts/Start.js?=cvfggt" type="text/javascript"></script>
|
||||||
|
{% endblock %}
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
{% set slug = page['slug'] %}
|
{% set slug = page['slug'] %}
|
||||||
{% set layout = page['layout'] %}
|
{% set layout = page['layout'] %}
|
||||||
{% set feature = page['feature'] %}
|
{% set feature = page['feature'] %}
|
||||||
|
{% set title = page['title'] %}
|
||||||
{% set tags = page['tags'] %}
|
{% set tags = page['tags'] %}
|
||||||
{% set content = page['content'] %}
|
{% set content = page['content'] %}
|
||||||
{% set date = page['created'] %}
|
{% set date = page['created'] %}
|
||||||
|
@ -35,43 +36,45 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
<link rel="stylesheet" type="text/css" href="/assets/css/dash/start.css?=vdthg">
|
<link rel="stylesheet" type="text/css" href="/assets/css/dash.css?=dfdf">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block mainContent %}
|
{% block mainContent %}
|
||||||
<section data-index="{{ id }}" data-uuid="{{ uuid }}" data-slug="{{ slug }}" data-layout="{{ layout }}" role="file-manager">
|
<div id="post-edit-index" data-index="{{ id }}" data-uuid="{{ uuid }}" data-slug="{{ slug }}" data-layout="{{ layout }}">
|
||||||
|
<div id="post-edit-index-wrapper">
|
||||||
|
<div id="post-feature">
|
||||||
{% if page['feature'] == null %}
|
{% if page['feature'] == null %}
|
||||||
<div role="file-drop">
|
<div id="page-file-manager">
|
||||||
|
<div id="page-file-wrapper">
|
||||||
|
<div id="page-file-drop">
|
||||||
<label for="page-files-upload">DRAG AND DROP FILES OR CLICK TO SELECT</label>
|
<label for="page-files-upload">DRAG AND DROP FILES OR CLICK TO SELECT</label>
|
||||||
</div>
|
</div>
|
||||||
<label role="list-title">IMAGES AND VIDEO</label>
|
IMAGES AND VIDEO
|
||||||
<div role="page-images-list"></div>
|
<div id="page-images-list"></div>
|
||||||
<label role="list-title">FILES</label>
|
FILES
|
||||||
<div role="page-files-list"></div>
|
<div id="page-files-list"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div role="file-drop">
|
<div id="page-file-manager">
|
||||||
|
<div id="page-file-wrapper">
|
||||||
|
<div id="page-file-drop">
|
||||||
<label for="page-files-upload">DRAG AND DROP FILES OR CLICK TO SELECT</label>
|
<label for="page-files-upload">DRAG AND DROP FILES OR CLICK TO SELECT</label>
|
||||||
</div>
|
</div>
|
||||||
<label role="list-title">IMAGES AND VIDEO</label>
|
IMAGES AND VIDEO
|
||||||
<div role="page-images-list">
|
<div id="page-images-list">
|
||||||
{% if media|length > 1 %}
|
{% if media|length > 1 %}
|
||||||
{% for item in media %}
|
{% for item in media %}
|
||||||
{% set fileName = item.file|split('/') %}
|
{% set fileName = item.file|split('/') %}
|
||||||
{% if item.type == "mp4" %}
|
{% if item.type == "mp4" %}
|
||||||
|
|
||||||
<div id="{{ loop.index0 }}" class="video-item" data-source="{{ item.file }}">
|
<div id="{{ loop.index0 }}" class="video-item" data-source="{{ item.file }}" data-file-name="{{ fileName[6] }}">
|
||||||
<video>
|
<button id="{{ loop.index0 }}" class="media-remove">X</button>
|
||||||
<source src="{{ item.file }}"/>
|
|
||||||
</video>
|
|
||||||
<button id="{{ loop.index0 }}" class="media-remove">
|
|
||||||
<i class="ti ti-x"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div id="{{ loop.index0 }}" class="img-item" data-source="{{ item.file }}" style="background: url({{ item.file }}) no-repeat center center / cover">
|
<div id="{{ loop.index0 }}" class="img-item" style="background: url({{ item.file }}) no-repeat center center / cover" data-file-name="{{ fileName[6] }}">
|
||||||
<button id="{{ loop.index0 }}" class="media-remove">
|
<button id="{{ loop.index0 }}" class="media-remove">X</button>
|
||||||
<i class="ti ti-x"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -79,41 +82,32 @@
|
||||||
{% if media[0] != '' %}
|
{% if media[0] != '' %}
|
||||||
{% set fileName = media[0].file|split('/') %}
|
{% set fileName = media[0].file|split('/') %}
|
||||||
{% if media[0].type == "mp4" %}
|
{% if media[0].type == "mp4" %}
|
||||||
<div id="0" class="video-item" data-source="{{ media[0].file }}">
|
<div id="0" class="video-item" data-source="{{ media[0].file }}" date-file-name="{{ fileName[6] }}">
|
||||||
<button id="{{ loop.index0 }}" class="media-remove">X</button>
|
<button id="{{ loop.index0 }}" class="media-remove">X</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<div id="0" class="img-item" data-source="{{ media[0].file }}" style="background: url({{ media[0].file }}) no-repeat center center / cover">
|
<div id="0" class="img-item" style="background: url({{ media[0].file }}) no-repeat center center / cover" data-file-name="{{ fileName[6] }}">
|
||||||
<button id="{{ loop.index0 }}" class="media-remove">
|
<button id="{{ loop.index0 }}" class="media-remove">X</button>
|
||||||
<i class="ti ti-x"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<label role="list-title">FILES</label>
|
FILES
|
||||||
<div role="page-files-list">
|
<div id="page-files-list">
|
||||||
{% if files|length > 1 %}
|
{% if files|length > 1 %}
|
||||||
{% for item in files %}
|
{% for item in files %}
|
||||||
{% set fileName = item.file|split('/') %}
|
{% set fileName = item.file|split('/') %}
|
||||||
{% if item.type == "mp3" %}
|
{% if item.type == "mp3" %}
|
||||||
<div id="{{ loop.index0 }}" class="audio-item" data-source="{{ item.file }}">
|
<div id="{{ loop.index0 }}" class="audio-item" data-source="{{ item.file }}" data-file-name="{{ fileName[6] }}">
|
||||||
<audio controls>
|
<button id="{{ loop.index0 }}" class="media-remove">X</button>
|
||||||
<source src="{{ item.file }}"/>
|
|
||||||
</audio>
|
|
||||||
<button id="{{ loop.index0 }}" class="media-remove">
|
|
||||||
<i class="ti ti-x"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div id="{{ loop.index0 }}" class="file-item" data-source="{{ item.file }}">
|
<div id="{{ loop.index0 }}" class="file-item" data-source="{{ item.file }}" data-file-name="{{ fileName[6] }}">
|
||||||
<a href="{{ item.file }}" target="_blank">{{ fileName[6] }}"</a>
|
<button id="{{ loop.index0 }}" class="media-remove">X</button>
|
||||||
<button id="{{ loop.index0 }}" class="media-remove">
|
|
||||||
<i class="ti ti-x"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -121,20 +115,12 @@
|
||||||
{% if files[0] != '' %}
|
{% if files[0] != '' %}
|
||||||
{% set fileName = files[0].file|split('/') %}
|
{% set fileName = files[0].file|split('/') %}
|
||||||
{% if files[0].type == "mp3" %}
|
{% if files[0].type == "mp3" %}
|
||||||
<div id="0" class="audio-item" data-source="{{ files[0].file }}">
|
<div id="0" class="audio-item" data-source="{{ files[0].file }}" data-file-name="{{ fileName[6] }}">
|
||||||
<audio controls>
|
<button id="{{ loop.index0 }}" class="media-remove">X</button>
|
||||||
<source src="{{ files[0].file }}"/>
|
|
||||||
</audio>
|
|
||||||
<button id="{{ loop.index0 }}" class="media-remove">
|
|
||||||
<i class="ti ti-x"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div id="0" class="file-item" data-source="{{ files[0].file }}">
|
<div id="0" class="file-item" data-source="{{ files[0].file }}" data-file-name="{{ fileName[6] }}">
|
||||||
<a href="{{ item.file }}" target="_blank">{{ fileName[6] }}"</a>
|
<button id="{{ loop.index0 }}" class="media-remove">X</button>
|
||||||
<button id="{{ loop.index0 }}" class="media-remove">
|
|
||||||
<i class="ti ti-x"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -143,21 +129,21 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</section>
|
|
||||||
<section role="page-meta">
|
</div>
|
||||||
<div role="page-meta-wrapper">
|
<div id="post-header">
|
||||||
<div role="page-title">
|
<div id="post-header-wrapper" class="columns">
|
||||||
<strong>TITLE</strong>
|
<div id="post-edit-title" class="column">
|
||||||
|
<label>TITLE</label>
|
||||||
<textarea id="post-title-text" type="text" name="post-title-text" class="post-edit" placeholder="TITLE">{{ title }}</textarea>
|
<textarea id="post-title-text" type="text" name="post-title-text" class="post-edit" placeholder="TITLE">{{ title }}</textarea>
|
||||||
</div>
|
|
||||||
<div role="page-tags">
|
<div id="layouts">
|
||||||
<strong>TAGS</strong>
|
<label>LAYOUTS</label>
|
||||||
<textarea id="post-tags" type="text" name="post-tags" class="form-control" placeholder="tags [comma seperated]">{{ tags }}</textarea>
|
|
||||||
</div>
|
|
||||||
<div role="page-layouts">
|
|
||||||
<strong>LAYOUTS</strong>
|
|
||||||
<select id="page-templates">
|
<select id="page-templates">
|
||||||
{% for view in views %}
|
{% for view in views %}
|
||||||
{% if view == page['layout'] %}
|
{% if view == page['layout'] %}
|
||||||
|
@ -169,38 +155,44 @@
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div role="page-options">
|
<label>CREATED</label>
|
||||||
<strong>OPTIONS</strong>
|
<span id="post-date" type="text">
|
||||||
|
{{ date }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div id="post-meta" class="column">
|
||||||
|
<label>TAGS</label>
|
||||||
|
<textarea id="post-tags" type="text" name="post-tags" class="form-control" placeholder="tags [comma seperated]">{{ tags }}</textarea>
|
||||||
|
<label>OPTIONS</label>
|
||||||
{% apply spaceless %}
|
{% apply spaceless %}
|
||||||
{{ include("dash/partials/options.twig") }}
|
{{ include("dash/partials/options.twig") }}
|
||||||
{% endapply %}
|
{% endapply %}
|
||||||
</div>
|
<label>UPDATED</label>
|
||||||
<div role="page-updated">
|
|
||||||
<strong>UPDATED</strong>
|
|
||||||
<span id="post-date" type="text">
|
<span id="post-date" type="text">
|
||||||
{{ updated }}
|
{{ updated }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
|
||||||
<div role="page-created">
|
|
||||||
<strong>CREATED</strong>
|
|
||||||
<span id="post-date" type="text">
|
|
||||||
{{ date }}
|
|
||||||
</span>
|
|
||||||
<input id="page-files-upload" type="file" name="page-files-upload" multiple/>
|
<input id="page-files-upload" type="file" name="page-files-upload" multiple/>
|
||||||
<input id="post-image-upload" type="file" name="post-image-upload"/>
|
<input id="post-image-upload" type="file" name="post-image-upload"/>
|
||||||
<input id="form_token" name="token" type="hidden" value="{{ token }}"></div>
|
<input id="form_token" name="token" type="hidden" value="{{ token }}"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
<div id="edit-post">
|
||||||
<section role="text-editor">
|
|
||||||
{% apply spaceless %}
|
{% apply spaceless %}
|
||||||
{{ include("dash/partials/editor.twig") }}
|
{{ include("dash/partials/editor.twig") }}
|
||||||
{% endapply %}
|
{% endapply %}
|
||||||
<div role="edit-post-wrapper">
|
<div id="edit-post-wrapper">
|
||||||
<textarea id="edit" spellcheck="false" class="language-md">{{ content }}</textarea>
|
<textarea id="edit" spellcheck="false">{{ content }}</textarea>
|
||||||
<pre id="highlight">
|
<pre id="highlight">
|
||||||
<code id="highlight-content" class="language-md"></code>
|
<code id="highlight-content" class="language-md">
|
||||||
|
|
||||||
|
</code>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block javascripts %}
|
||||||
|
<script src="/assets/scripts/Start.js?=wadfdfd" type="text/javascript"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -1,38 +1,45 @@
|
||||||
<div role="text-editor-control">
|
<div id="edit-control">
|
||||||
<button id="edit-bold" class="content-editor-btn-text editor-button" title="bold">
|
<button id="edit-bold" class="content-editor-btn-text editor-button" title="bold">B</button>
|
||||||
<i id="edit-bold" class="ti ti-bold"></i>
|
<button id="edit-italic" class="content-editor-btn-text editor-button" title="italic">I</button>
|
||||||
</button>
|
<button id="edit-strikethrough" class="content-editor-btn-text editor-button" title="strikethrough">D</button>
|
||||||
<button id="edit-italic" class="content-editor-btn-text editor-button" title="italic">
|
|
||||||
<i id="edit-italic" class="ti ti-italic"></i>
|
|
||||||
</button>
|
|
||||||
<button id="edit-strikethrough" class="content-editor-btn-text editor-button" title="strikethrough">
|
|
||||||
<i id="edit-strikethrough" class="ti ti-strikethrough"></i>
|
|
||||||
</button>
|
|
||||||
<button id="edit-link" class="content-editor-btn-icon editor-button" title="insert link">
|
<button id="edit-link" class="content-editor-btn-icon editor-button" title="insert link">
|
||||||
<i id="edit-link" class="ti ti-link"></i>
|
<svg id="edit-link" viewbox="0 0 20 20" class="icons">
|
||||||
</button>
|
<use id="edit-link" xlink:href="/assets/images/global/sprite.svg#entypo-link"/>
|
||||||
<button id="edit-header1" class="content-editor-btn-text editor-button" title="header 1">
|
</svg>
|
||||||
<i id="edit-header1" class="ti ti-h-1"></i>
|
|
||||||
</button>
|
|
||||||
<button id="edit-header2" class="content-editor-btn-text editor-button" title="header 2">
|
|
||||||
<i id="edit-header2" class="ti ti-h-2"></i>
|
|
||||||
</button>
|
|
||||||
<button id="edit-header3" class="content-editor-btn-text editor-button" title="header 3">
|
|
||||||
<i id="edit-header3" class="ti ti-h-3"></i>
|
|
||||||
</button>
|
</button>
|
||||||
|
<button id="edit-header1" class="content-editor-btn-text editor-button" title="header 1">H1</button>
|
||||||
|
<button id="edit-header2" class="content-editor-btn-text editor-button" title="header 2">H2</button>
|
||||||
|
<button id="edit-header3" class="content-editor-btn-text editor-button" title="header 3">H3</button>
|
||||||
<button id="edit-image" class="content-editor-btn-icon editor-button" title="insert image">
|
<button id="edit-image" class="content-editor-btn-icon editor-button" title="insert image">
|
||||||
<i id="edit-image" class="ti ti-photo"></i>
|
<svg id="edit-image" viewbox="0 0 20 20" class="icons">
|
||||||
|
<use id="edit-image" xlink:href="/assets/images/global/sprite.svg#entypo-image"/>
|
||||||
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
{% if mode == "edit" %}
|
{% if mode == "edit" %}
|
||||||
<button id="edit-update" class="post-sumbit-btn submit-start editor-button" data-action='blog-update' data-id="{{ page['uuid'] }} type='submit' title=" bold">
|
<button id="edit-update" class="post-sumbit-btn submit-start editor-button" data-action='blog-update' data-id="{{ page['uuid'] }} type='submit' title=" bold">
|
||||||
<i id="edit-update" class="ti ti-device-floppy"></i>
|
<svg id="submit-update" viewbox="0 0 20 20" class="icons">
|
||||||
|
<use id="submit-update" xlink:href="/assets/images/global/sprite.svg#entypo-save" data-action='blog-update' data-id="{{ page['uuid'] }}"/>
|
||||||
|
</svg>
|
||||||
|
<svg id="submit-good" class="icon-hide" viewbox="0 0 20 20" class="icons">
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-thumbs-up"/>
|
||||||
|
</svg>
|
||||||
|
<svg id="submit-error" class="icon-hide" viewbox="0 0 20 20" class="icons">
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-thumbs-down"/>
|
||||||
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<button id="edit-delete" class="content-editor-btn-icon editor-button submit-delete" for="post-delete" title='delete post'>
|
<button id="edit-delete" class="content-editor-btn-icon editor-button submit-delete" for="post-delete" title='delete post'>
|
||||||
<i id="edit-delete" class="ti ti-x"></i>
|
<svg id="edit-delete" viewbox="0 0 20 20" class="icons">
|
||||||
|
<use id="edit-delete" xlink:href="/assets/images/global/sprite.svg#entypo-cross"/>
|
||||||
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
<button id="edit-save" class="post-sumbit-btn submit-start editor-button" data-action='blog-add' type='submit'>
|
<button id="edit-save" class="post-sumbit-btn submit-start editor-button" data-action='blog-add' type='submit'>
|
||||||
<i id="edit-save" class="ti ti-file-plus"></i>
|
<svg id="submit-save" viewbox="0 0 20 20" class="icons">
|
||||||
|
<use id="submit-save" xlink:href="/assets/images/global/sprite.svg#entypo-plus"/>
|
||||||
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,30 +1,58 @@
|
||||||
<section role="index-header">
|
<div id="dash-recent">
|
||||||
<div role="index-header-left">
|
<div id="recent-list">
|
||||||
<h1>Recent</h1>
|
<div class="recent-header">
|
||||||
|
<div class="index-header-left">
|
||||||
|
Recent
|
||||||
</div>
|
</div>
|
||||||
<div role="index-header-right"></div>
|
<div class="index-header-right">
|
||||||
</section>
|
<a href='/dashboard/pages' title="view pages">
|
||||||
<section role="index-recent-pages">
|
<button>
|
||||||
|
<svg class="page-link">
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-archive"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a href='/dashboard/page/add/new' title="add new page">
|
||||||
|
<button>
|
||||||
|
<svg class="page-link">
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-plus"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br/>
|
||||||
{% if data["entryCount"] != 0 %}
|
{% if data["entryCount"] != 0 %}
|
||||||
{% for page in data['pages'] %}
|
{% for page in data['pages'] %}
|
||||||
{% if page.media[0].type == 'mp4' %}
|
{% if page.media[0].type == 'mp4' %}
|
||||||
|
|
||||||
<a href="/dashboard/page/edit/{{ page.uuid }}" id="{{ page.uuid }}" class="post-video-link recent-link">
|
<a href="/dashboard/page/edit/{{ page.uuid }}" id="{{ page.uuid }}" class="post-video-link recent-link">
|
||||||
{{ include("dash/partials/recent-meta.twig") }}
|
|
||||||
<video class="post-video" loop muted autoplay>
|
<video class="post-video" loop muted autoplay>
|
||||||
<source src="{{ page.media[0].file }}" type="video/mp4">
|
<source src="{{ page.media[0].file }}" type="video/mp4">
|
||||||
|
|
||||||
Sorry, your browser doesn't support embedded videos.
|
Sorry, your browser doesn't support embedded videos.
|
||||||
</video>
|
</video>
|
||||||
|
<label>
|
||||||
|
{{ page.title }}
|
||||||
|
</label>
|
||||||
|
{{ include("dash/partials/recent-options.twig") }}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="/dashboard/page/edit/{{ page.uuid }}" id="{{ page.uuid }}" class="post-link recent-link" style="background: url({{ page.media[0].file }}) no-repeat center center / cover #fc6399">
|
<a href="/dashboard/page/edit/{{ page.uuid }}" id="{{ page.uuid }}" class="post-link recent-link" style="background: url({{ page.media[0].file }}) no-repeat center center / cover">
|
||||||
{{ include("dash/partials/recent-meta.twig") }}
|
<label>
|
||||||
|
{{ page.title }}
|
||||||
|
</label>
|
||||||
|
|
||||||
|
{{ include("dash/partials/recent-options.twig") }}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
There are no pages
|
There are no pages
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</section>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
|
@ -1,57 +1,23 @@
|
||||||
<div role="menu">
|
<div id="dash-menu">
|
||||||
{% if title == "Settings" %}
|
|
||||||
{% apply spaceless %}
|
|
||||||
{{ include("dash/partials/submenu_settings.twig") }}
|
|
||||||
{% endapply %}
|
|
||||||
{% elseif title=="Start" %}
|
|
||||||
{% apply spaceless %}
|
|
||||||
{{ include("dash/partials/submenu_start.twig") }}
|
|
||||||
{% endapply %}
|
|
||||||
{% endif %}
|
|
||||||
<a id="settings" href="/dashboard/settings" title="settings">
|
<a id="settings" href="/dashboard/settings" title="settings">
|
||||||
<button>
|
<button>
|
||||||
<i class="ti ti-home-cog"></i>
|
<svg class="menu">
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-sound-mix"/>
|
||||||
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a> .
|
||||||
<a id="navigation" href="/dashboard/navigation" title="edit navigation">
|
<a id="navigation" href="/dashboard/navigation" title="edit navigation">
|
||||||
<button>
|
<button>
|
||||||
<i class="ti ti-arrow-autofit-height"></i>
|
<svg class="menu">
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-list"/>
|
||||||
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a> .
|
||||||
<a id="navigation" href="/dashboard/logout" title="log out">
|
<a id="navigation" href="/dashboard/logout" title="log out">
|
||||||
<button>
|
<button>
|
||||||
<i class="ti ti-logout"></i>
|
<svg class="menu">
|
||||||
</button>
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-log-out"/>
|
||||||
</a>
|
</svg>
|
||||||
</div>
|
|
||||||
|
|
||||||
<button role="menu-toggle">
|
|
||||||
<i class="ti ti-menu-2"></i>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<div role="mobile-menu">
|
|
||||||
{% if title == "Settings" %}
|
|
||||||
{% apply spaceless %}
|
|
||||||
{{ include("dash/partials/submenu_settings.twig") }}
|
|
||||||
{% endapply %}
|
|
||||||
{% elseif title=="Start" %}
|
|
||||||
{% apply spaceless %}
|
|
||||||
{{ include("dash/partials/submenu_start.twig") }}
|
|
||||||
{% endapply %}
|
|
||||||
{% endif %}
|
|
||||||
<a id="settings" href="/dashboard/settings" title="settings">
|
|
||||||
<button>
|
|
||||||
<i class="ti ti-home-cog"></i>
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
<a id="navigation" href="/dashboard/navigation" title="edit navigation">
|
|
||||||
<button>
|
|
||||||
<i class="ti ti-arrow-autofit-height"></i>
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
<a id="navigation" href="/dashboard/logout" title="log out">
|
|
||||||
<button>
|
|
||||||
<i class="ti ti-logout"></i>
|
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
|
@ -1,10 +0,0 @@
|
||||||
<div role="notify-message">
|
|
||||||
<div role="notify-icons">
|
|
||||||
<i class="ti ti-mood-smile" role="notify-good"></i>
|
|
||||||
<i class="ti ti-mood-sad" role="notify-notgood"></i>
|
|
||||||
<i class="ti ti-settings" role="notify-working"></i>
|
|
||||||
</div>
|
|
||||||
<div role="notify-text">
|
|
||||||
<span role="response-text">Hey Hey</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -15,26 +15,28 @@
|
||||||
{% else %}
|
{% else %}
|
||||||
{% set published = 'false' %}
|
{% set published = 'false' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<br>
|
|
||||||
|
<div id="post-options">
|
||||||
<button id="option-menu-pin" class="option-inactive post-option-btn" data-active="{{ menu }}" title='Pin to Menu'>
|
<button id="option-menu-pin" class="option-inactive post-option-btn" data-active="{{ menu }}" title='Pin to Menu'>
|
||||||
<svg id="option-page-icon" role="icon">
|
<svg id="option-page-icon" viewbox="0 0 20 20" class="icons">
|
||||||
<use id="option-page-icon" xlink:href="/assets/images/global/sprite.svg#entypo-add-to-list"/>
|
<use id="option-page-icon" xlink:href="/assets/images/global/sprite.svg#entypo-add-to-list"/>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<button id="option-feature" class="option-inactive post-option-btn" data-active="{{ featured }}" title='Feature'>
|
<button id="option-feature" class="option-inactive post-option-btn" data-active="{{ featured }}" title='Feature'>
|
||||||
<svg id="option-feature-icon" role="icon">
|
<svg id="option-feature-icon" viewbox="0 0 20 20" class="icons">
|
||||||
<use id="option-feature-icon" xlink:href="/assets/images/global/sprite.svg#entypo-star"/>
|
<use id="option-feature-icon" xlink:href="/assets/images/global/sprite.svg#entypo-star"/>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<button id="option-published" class="option-inactive post-option-btn" data-active="{{ published }}" title='Published'>
|
<button id="option-published" class="option-inactive post-option-btn" data-active="{{ published }}" title='Published'>
|
||||||
<svg id="option-published-icon" role="icon">
|
<svg id="option-published-icon" viewbox="0 0 20 20" class="icons">
|
||||||
<use id="option-published-icon" xlink:href="/assets/images/global/sprite.svg#entypo-globe"/>
|
<use id="option-published-icon" xlink:href="/assets/images/global/sprite.svg#entypo-globe"/>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<a href="/dashboard/page/preview/{{ uuid }}" target="_blank">
|
<a href="/dashboard/page/preview/{{ uuid }}" target="_blank">
|
||||||
<button id="option-preview" class="option-inactive post-option-btn" data-active="false" title='preview page'>
|
<button id="option-preview" class="option-inactive post-option-btn" data-active="false" title='preview page'>
|
||||||
<svg id="option-preview-icon" role="icon">
|
<svg id="option-preview-icon" viewbox="0 0 20 20" class="icons">
|
||||||
<use id="option-preview-icon" xlink:href="/assets/images/global/sprite.svg#entypo-eye"/>
|
<use id="option-preview-icon" xlink:href="/assets/images/global/sprite.svg#entypo-eye"/>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
|
</div>
|
|
@ -1,37 +0,0 @@
|
||||||
{% if page.menu == 'true' %}
|
|
||||||
{% set menu = "true" %}
|
|
||||||
{% else %}
|
|
||||||
{% set menu = "false" %}
|
|
||||||
{% endif %}
|
|
||||||
{% if page.published == 'true' %}
|
|
||||||
{% set published = "true" %}
|
|
||||||
{% else %}
|
|
||||||
{% set published = "false" %}
|
|
||||||
{% endif %}
|
|
||||||
{% if page.featured == 'true' %}
|
|
||||||
{% set featured = "true" %}
|
|
||||||
{% else %}
|
|
||||||
{% set featured = "false" %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<aside>
|
|
||||||
<strong>
|
|
||||||
{{ page.updated }}
|
|
||||||
</strong>
|
|
||||||
<hr/>
|
|
||||||
<strong>
|
|
||||||
{{ page.title }}
|
|
||||||
</strong>
|
|
||||||
<hr/>
|
|
||||||
<button data-active="{{ menu }}">
|
|
||||||
<i class="ti ti-navigation"></i>
|
|
||||||
</button>
|
|
||||||
<button data-active="{{ published }}">
|
|
||||||
<i class="ti ti-world"></i>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button data-active="{{ featured }}">
|
|
||||||
<i class="ti ti-star"></i>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
</aside>
|
|
42
brain/views/dash/partials/recent-options.twig
Normal file
42
brain/views/dash/partials/recent-options.twig
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
<div id="options">
|
||||||
|
{% if page.menu == 'true' %}
|
||||||
|
{% set menu = "true" %}
|
||||||
|
{% else %}
|
||||||
|
{% set menu = "false" %}
|
||||||
|
{% endif %}
|
||||||
|
{% if page.published == 'true' %}
|
||||||
|
{% set published = "true" %}
|
||||||
|
{% else %}
|
||||||
|
{% set published = "false" %}
|
||||||
|
{% endif %}
|
||||||
|
{% if page.featured == 'true' %}
|
||||||
|
{% set featured = "true" %}
|
||||||
|
{% else %}
|
||||||
|
{% set featured = "false" %}
|
||||||
|
{% endif %}
|
||||||
|
<div id="option-left">
|
||||||
|
|
||||||
|
<button data-active="{{ menu }}">
|
||||||
|
<svg>
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-add-to-list"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<button data-active="{{ published }}">
|
||||||
|
<svg>
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-globe"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button data-active="{{ featured }}">
|
||||||
|
<svg>
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-star"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div id="option-right">
|
||||||
|
<span>
|
||||||
|
{{ page.updated }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
|
@ -1,11 +0,0 @@
|
||||||
<div role="submenu">
|
|
||||||
<button id="save-toggle" title="save settings">
|
|
||||||
<i class="ti ti-device-floppy"></i>
|
|
||||||
</button>
|
|
||||||
<button id="publish-pages" title="publish site">
|
|
||||||
<i class="ti ti-world-upload"></i>
|
|
||||||
</button>
|
|
||||||
<button id="render-toggle" title="render on save toggle" data-render="{{ renderOnSave }}">
|
|
||||||
<i class="ti ti-circle-dashed"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
|
@ -1,12 +0,0 @@
|
||||||
<div role="submenu">
|
|
||||||
<a href='/dashboard/pages' title="view pages">
|
|
||||||
<button>
|
|
||||||
<i class="ti ti-book-2"></i>
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
<a href='/dashboard/page/add/new' title="add new page">
|
|
||||||
<button>
|
|
||||||
<i class="ti ti-square-plus"></i>
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
|
@ -5,14 +5,37 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
<link rel="stylesheet" type="text/css" href="/assets/css/dash/start.css">
|
<link rel="stylesheet" type="text/css" href="/assets/css/dash.css?=dfdfdf">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block mainContent %}
|
{% block mainContent %}
|
||||||
<section role="password-reset">
|
<div id="dash-index">
|
||||||
{% apply spaceless %}
|
<div id="dash-index-wrapper">
|
||||||
{{ include("dash/forms/reset.twig") }}
|
<div id="dash-login">
|
||||||
{% endapply %}
|
<div id="dash-reset" class="dash-reset">
|
||||||
|
<img id="the-logo" src="/assets/images/global/fipamo-logo.svg"/>
|
||||||
|
<form id="reset" class='login' name="reset" action="/dashboard/login" method="POST">
|
||||||
|
|
||||||
</section>
|
<input type="password" id="new_password"name="new_password" class="form-control" placeholder="New Password" required">
|
||||||
|
<input type="password" id="new_password2" name="new_password2" class="form-control" placeholder="New Password Confirm" required">
|
||||||
|
<input type="password" id="secret" name="secret" class="form-control" placeholder="Account Secret" required">
|
||||||
|
<button id="reset-btn" class='login-btn' type='submit'>
|
||||||
|
RESET PASSWORD
|
||||||
|
</button><br />
|
||||||
|
<p>
|
||||||
|
Use this to get your secret to verify it's you. If your email is set up, the secret will be sent there. If not, the form will be updated automatically(but please set up your email, once you reset your password).
|
||||||
|
</p>
|
||||||
|
<input type="text"id="email" name="email" class="form-control" placeholder="email to verify" required">
|
||||||
|
<button id="get-secret-btn" class='login-btn' type='submit'>
|
||||||
|
VERIFY EMAIL
|
||||||
|
</button><br /><br />
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block javascripts %}
|
||||||
|
<script src="/assets/scripts/Start.js" type="text/javascript"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -5,87 +5,123 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
<link rel="stylesheet" type="text/css" href="/assets/css/dash/start.css?=cvnbm">
|
<link rel="stylesheet" type="text/css" href="/assets/css/dash.css?=cvnbm">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block mainContent %}
|
{% block mainContent %}
|
||||||
<article role="settings">
|
<div id="settings-actions">
|
||||||
<section role="member-settings">
|
<div id="buttons">
|
||||||
<div role="member-avatar">
|
<button id="save-toggle" title="save settings">
|
||||||
<div role="avatar" style="background: url({{ member['avatar'] }} ) no-repeat center center / cover"></div>
|
<svg id="submit-update" class="icons">
|
||||||
<input id="avatar-upload" type="file" name="avatar-upload"/>
|
<use id="submit-update" xlink:href="/assets/images/global/sprite.svg#entypo-save"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<button id="publish-pages" title="publish site">
|
||||||
|
<svg id="submit-update" class="icons">
|
||||||
|
<use id="submit-update" xlink:href="/assets/images/global/sprite.svg#entypo-publish"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<button id="render-toggle" title="render on save toggle" data-render="{{ renderOnSave }}">
|
||||||
|
<svg id="render-toggle-icon" class="icons">
|
||||||
|
<use xlink:href="/assets/images/global/sprite.svg#entypo-circular-graph"/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div role="site-background">
|
|
||||||
<div role="background" style="background: url({{ background }} ) no-repeat center center / cover"></div>
|
|
||||||
<input id="background-upload" type="file" name="backgrond-upload"/>
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div id="settings-index">
|
||||||
<input type='text' name='handle' id='settings-handle' placeholder='handle' value="{{ member['handle'] }}" autofocus/>
|
<div id="settings-index-wrapper">
|
||||||
<input type='text' name='email' id='settings-email' placeholder='email' value="{{ member['email'] }}" autofocus/>
|
<div id="member-settings">
|
||||||
<input type='text' name='base-url' id='settings-url' placeholder='url' value="{{ baseUrl }}" autofocus/>
|
<div id="member-images" class="columns">
|
||||||
<input type='text' name='base-title' id='settings-title' placeholder='site title' value="{{ siteTitle }}" autofocus/>
|
<div class="column is-one-third">
|
||||||
<textarea id="settings-desc" type='text' name='settings_desc' class='settings-dec' placeholder='description stuff' , autofocus>{{ desc }}</textarea>
|
<div id="member-avatar-drop">
|
||||||
|
<img id="avatar" src="{{member['avatar']}}" for="avatar-upload"/>
|
||||||
|
<input id="avatar-upload" type="file" name="avatar-upload" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
|
||||||
<button id="create-backup">
|
|
||||||
<i class="ti ti-disc"></i>
|
|
||||||
<span>BACK UP YOUR SITE</span>
|
|
||||||
</button><br/>
|
|
||||||
{% if lastBackup != '' %}
|
|
||||||
LAST BACK UP<br/>
|
|
||||||
<a href="/api/v1/files">{{ lastBackup }}</a><br/>
|
|
||||||
{% else %}
|
|
||||||
<span>span No back ups. Frowny face.</span>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
<div role="features">
|
<div class="column is-two-thirds">
|
||||||
|
<div id="site-background">
|
||||||
|
<img id="background" src="{{background}}" alt="image for site background" for="background-upload"/>
|
||||||
|
<input id="background-upload" type="file" name="backgrond-upload" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="member-meta" class="columns">
|
||||||
|
<div class="column is-one-third">
|
||||||
|
<input type='text' name='handle' id='settings-handle' placeholder='handle' value="{{member['handle']}}" autofocus />
|
||||||
|
<input type='text' name='email' id='settings-email' placeholder='email' value="{{member['email']}}" autofocus />
|
||||||
|
</div>
|
||||||
|
<div class="column is-one-third">
|
||||||
|
<input type='text' name='base-url' id='settings-url' placeholder='url' value="{{baseUrl}}" autofocus />
|
||||||
|
<input type='text' name='base-title' id='settings-title' placeholder='site title' value="{{siteTitle}}" autofocus />
|
||||||
|
</div>
|
||||||
|
<div class="column is-one-third">
|
||||||
|
<textarea id="settings-desc" type='text' name='settings_desc' class='settings-dec' placeholder='description stuff', autofocus>{{desc}}</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="feature-settings">
|
||||||
|
<div id="features" class="columns">
|
||||||
|
<div class="column">
|
||||||
|
<div id="feature-api">
|
||||||
{% if apiStatus is defined and apiStatus == "true" %}
|
{% if apiStatus is defined and apiStatus == "true" %}
|
||||||
<button id="api-access-toggle" title="allow external api" data-enabled="true">
|
<button id="api-access-toggle" title="allow external api" data-enabled="true">
|
||||||
<i class="ti ti-phone-incoming"></i>
|
<svg id="api-access-toggle" class="icons">
|
||||||
<span id="api-status">API ACCESS ENABLED</span>
|
<use id="api-access-toggle" xlink:href="/assets/images/global/sprite.svg#entypo-landline"/>
|
||||||
|
</svg>
|
||||||
|
<span id="api-status">EXTERNAL API ACCESS ENABLED</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<button id="api-access-toggle" title="allow external api" data-enabled="false">
|
<button id="api-access-toggle" title="allow external api" data-enabled="false">
|
||||||
<i class="ti ti-phone-incoming"></i>
|
<svg id="api-access-toggle" class="icons">
|
||||||
<span id="api-status">API ACCESS NOT ENABLED</span>
|
<use id="api-access-toggle" xlink:href="/assets/images/global/sprite.svg#entypo-landline"/>
|
||||||
|
</svg>
|
||||||
|
<span id="api-status">EXTERNAL API ACCESS NOT ENABLED</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="column">
|
||||||
|
<div id="dynamic-api">
|
||||||
{% if dynamicRenderStatus is defined and dynamicRenderStatus == "true" %}
|
{% if dynamicRenderStatus is defined and dynamicRenderStatus == "true" %}
|
||||||
<button id="dynamic-render-toggle" title="allow external api" data-enabled="true">
|
<button id="dynamic-render-toggle" title="allow external api" data-enabled="true">
|
||||||
<i class="ti ti-arrow-merge"></i>
|
<svg id="dynamic-render-toggle" class="icons">
|
||||||
|
<use id="dynamic-render-toggle" xlink:href="/assets/images/global/sprite.svg#entypo-text-document-inverted"/>
|
||||||
|
</svg>
|
||||||
<span id="dynamic-render-status">DYNAMIC PAGE RENDERING</span>
|
<span id="dynamic-render-status">DYNAMIC PAGE RENDERING</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<button id="dynamic-render-toggle" title="allow external api" data-enabled="false">
|
<button id="dynamic-render-toggle" title="allow external api" data-enabled="false">
|
||||||
<i class="ti ti-arrow-merge"></i>
|
<svg id="dynamic-render-toggle" class="icons">
|
||||||
|
<use id="dynamic-render-toggle" xlink:href="/assets/images/global/sprite.svg#entypo-text-document-inverted"/>
|
||||||
|
</svg>
|
||||||
<span id="dynamic-render-status">STATIC PAGE RENDERING</span>
|
<span id="dynamic-render-status">STATIC PAGE RENDERING</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div role="theme">
|
</div>
|
||||||
<label>Themes</label><br/>
|
<div class="column"></div>
|
||||||
|
<div class="column"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="option-settings" class="columns">
|
||||||
|
<div id="theme-settings" class="column">
|
||||||
|
<label>THEMES</label>
|
||||||
{% for theme in themes %}
|
{% for theme in themes %}
|
||||||
{% if theme.name == currentTheme %}
|
{% if theme.name == currentTheme %}
|
||||||
<button id="{{ theme.name }}" class="theme-select" data-enabled="true">
|
<a href="#" id="{{theme.name}}" class="theme-select" data-enabled="true">{{theme['display-name']}}</a>
|
||||||
<i class="ti ti-brush"></i>
|
|
||||||
<span>{{ theme['display-name'] }}</span>
|
|
||||||
</button>
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<button href="#" id="{{ theme.name }}" class="theme-select" data-enabled="false">
|
<a href="#" id="{{theme.name}}" class="theme-select" data-enabled="false">{{theme['display-name']}}</a>
|
||||||
<i class="ti ti-brush-off"></i>
|
|
||||||
<span>{{ theme['display-name'] }}</span>
|
|
||||||
</button>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
<div role="mail">
|
<div id="mail-settings" class="column">
|
||||||
<label>Email</label><br/>
|
<label>EMAIL</label>
|
||||||
{% if mailOption == "option-none" or mailOption == "" %}
|
{% if mailOption == "option-none" or mailOption == "" %}
|
||||||
<a href="#" class="mail-option" id="option-none" data-enabled="true">NONE</a>
|
<a href="#" class="mail-option" id="option-none" data-enabled="true">NONE</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -105,19 +141,52 @@
|
||||||
{% apply spaceless %}
|
{% apply spaceless %}
|
||||||
{{ include("dash/partials/mailforms.twig") }}
|
{{ include("dash/partials/mailforms.twig") }}
|
||||||
{% endapply %}
|
{% endapply %}
|
||||||
<button id="send-mail">
|
<button id="send-mail">TEST MAIL</button>
|
||||||
<i class="ti ti-mailbox"></i>
|
<br /><br />
|
||||||
<span>TEST MAIL</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
<div>
|
</div>
|
||||||
|
<div id="token-settings">
|
||||||
|
<div id="keys-tokens" class="columns">
|
||||||
|
<div class="column">
|
||||||
<label>API KEY</label>
|
<label>API KEY</label>
|
||||||
<br/>
|
<div id="member-api-key">
|
||||||
{{ member['key'] }}
|
{{member['key']}}
|
||||||
<br/>
|
</div>
|
||||||
<label>FORM TOKEN</label><br/>
|
|
||||||
{{ ftoken }}
|
</div>
|
||||||
|
<div class="column">
|
||||||
|
<label>FORM TOKEN</label>
|
||||||
|
<div id="form-token">
|
||||||
|
{{ftoken}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div id="backup-settings">
|
||||||
|
<div class="columns">
|
||||||
|
<div class="column">
|
||||||
|
<button id="create-backup">BACK UP YOUR SITE</button><br />
|
||||||
|
</div>
|
||||||
|
<div class="column">
|
||||||
|
{% if lastBackup != '' %}
|
||||||
|
<div class="backup-meta">
|
||||||
|
LAST BACK UP <a href="/api/v1/files">{{lastBackup}}</a><br />
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<span>span No back ups. Frowny face.</span>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
{% endblock %}
|
||||||
</article>
|
|
||||||
|
{% block javascripts %}
|
||||||
|
<script src="/assets/scripts/Start.js" type="text/javascript"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -5,10 +5,12 @@
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
<link rel="stylesheet" type="text/css" href="/assets/css/dash/start.css?=dfdfrtr">
|
<link rel="stylesheet" type="text/css" href="/assets/css/dash.css?=acvcnh">
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block mainContent %}
|
{% block mainContent %}
|
||||||
|
<div id="dash-index">
|
||||||
|
<div id="dash-index-wrapper">
|
||||||
{% if status %}
|
{% if status %}
|
||||||
{% apply spaceless %}
|
{% apply spaceless %}
|
||||||
{{ include("dash/partials/index.twig") }}
|
{{ include("dash/partials/index.twig") }}
|
||||||
|
@ -16,4 +18,10 @@
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ include("dash/forms/login.twig") }}
|
{{ include("dash/forms/login.twig") }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block javascripts %}
|
||||||
|
<script src="/assets/scripts/Start.js?=dfadsf" type="text/javascript"></script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "are0h/fipamo",
|
"name": "are0h/fipamo",
|
||||||
"descriptions": "The most chill no database blog framework ever.",
|
"descriptions": "The most chill no database blog framework ever.",
|
||||||
"version": "2.6.1-beta",
|
"version": "2.5.1-beta",
|
||||||
"homepage": "https://fipamo.blog",
|
"homepage": "https://fipamo.blog",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
|
@ -9,10 +9,15 @@
|
||||||
"homepage": "https://roiskinda.cool"
|
"homepage": "https://roiskinda.cool"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"brain\\": "brain"
|
||||||
|
}
|
||||||
|
},
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://koodu.ubiqueros.com/are0h/Fipamo",
|
"source": "https://code.playvicio.us/Are0h/Fipamo",
|
||||||
"wiki": "https://koodu.ubiqueros.com/are0h/Fipamo/wiki/?action=_pages",
|
"wiki": "https://code.playvicio.us/Are0h/Fipamo/wiki/_pages",
|
||||||
"issues": "https://koodu.ubiqueros.com/are0h/Fipamo/issues"
|
"issues": "https://code.playvicio.us/Are0h/Fipamo/issues"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"slim/slim": "4.*",
|
"slim/slim": "4.*",
|
||||||
|
@ -22,16 +27,11 @@
|
||||||
"mnapoli/front-yaml": "^1.8",
|
"mnapoli/front-yaml": "^1.8",
|
||||||
"lodash-php/lodash-php": "^0.0.7",
|
"lodash-php/lodash-php": "^0.0.7",
|
||||||
"rbdwllr/reallysimplejwt": "^4.0",
|
"rbdwllr/reallysimplejwt": "^4.0",
|
||||||
|
"fightbulc/moment": "^1.33",
|
||||||
"tgalopin/html-sanitizer": "^1.4",
|
"tgalopin/html-sanitizer": "^1.4",
|
||||||
"phpmailer/phpmailer": "^6.4",
|
"phpmailer/phpmailer": "^6.4",
|
||||||
"league/commonmark": "^2.1",
|
"league/commonmark": "^2.1",
|
||||||
"symfony/yaml": "^5.4",
|
"symfony/yaml": "^5.4",
|
||||||
"olegatro/html-sanitizer-relative": "^1.0",
|
"olegatro/html-sanitizer-relative": "^1.0"
|
||||||
"nesbot/carbon": "^2.62"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"start": [
|
|
||||||
"@php -S localhost:8000 -t public/"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
751
composer.lock
generated
751
composer.lock
generated
File diff suppressed because it is too large
Load diff
16652
package-lock.json
generated
16652
package-lock.json
generated
File diff suppressed because it is too large
Load diff
51
package.json
51
package.json
|
@ -1,34 +1,43 @@
|
||||||
{
|
{
|
||||||
"name": "fipamo-dash",
|
"name": "fipamo-dash",
|
||||||
"version": "2.6.1-beta",
|
"version": "2.5.1-beta",
|
||||||
"private": true,
|
"private": true,
|
||||||
"apidoc": {
|
"apidoc": {
|
||||||
"name": "Fipamo API",
|
"name": "Fipamo API",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "The most chill API for the most chill blog framework"
|
"description": "The most chill API for the most chill blog framework"
|
||||||
},
|
},
|
||||||
"source": "src/com/Start.js",
|
|
||||||
"main": "public/assets/scripts/dash.js",
|
|
||||||
"targets": {
|
|
||||||
"main": {
|
|
||||||
"includeNodeModules": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"watch": "parcel watch",
|
|
||||||
"build": "parcel build"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.21.3",
|
"@babel/preset-env": "^7.16.5",
|
||||||
"babel-plugin-prismjs": "^2.1.0",
|
"babel-cli": "^6.26.0",
|
||||||
"parcel": "^2.8.3",
|
"eslint": "^8.11.0",
|
||||||
"prettier": "^2.8.4",
|
"eslint-plugin-babel": "^5.3.1",
|
||||||
"stylelint": "^15.3.0",
|
"parcel": "^2.0.1",
|
||||||
"stylelint-config-standard": "^31.0.0"
|
"prettier": "^2.6.0",
|
||||||
|
"stylelint": "^14.8.2",
|
||||||
|
"stylelint-config-prettier-scss": "^0.0.1",
|
||||||
|
"stylelint-config-standard-scss": "^3.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@babel/core": "^7.16.5",
|
||||||
|
"@babel/eslint-parser": "^7.16.5",
|
||||||
"animejs": "^3.2.1",
|
"animejs": "^3.2.1",
|
||||||
"prismjs": "^1.29.0",
|
"babel-plugin-prismjs": "^2.1.0",
|
||||||
"sortablejs": "^1.15.0"
|
"babel-preset-env": "^1.7.0",
|
||||||
}
|
"bulma": "^0.9.3",
|
||||||
|
"caret-pos": "^2.0.0",
|
||||||
|
"jsdoc": "^3.6.7",
|
||||||
|
"minami": "^1.2.3",
|
||||||
|
"prismjs": "^1.25.0",
|
||||||
|
"sass": "^1.45.1",
|
||||||
|
"sortablejs": "^1.14.0"
|
||||||
|
},
|
||||||
|
"license": "UNLICENSED",
|
||||||
|
"author": "Are0h",
|
||||||
|
"scripts": {
|
||||||
|
"watch": "sass --watch src/styles:public/assets/css & npx parcel watch src/com/Start.js --dist-dir public/assets/scripts --public-url /assets/scripts",
|
||||||
|
"build": "sass src/styles:public/assets/css & npx parcel build src/com/Start.js --dist-dir public/assets/scripts --public-url /assets/scripts"
|
||||||
|
},
|
||||||
|
"description": "Front end script for the most chill blog framework ever.",
|
||||||
|
"repository": "https://code.playvicio.us/Are0h/Fipamo"
|
||||||
}
|
}
|
||||||
|
|
4145
public/assets/css/dash.css
Normal file
4145
public/assets/css/dash.css
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,109 +0,0 @@
|
||||||
section[role="book-index-header"] {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr;
|
|
||||||
margin: 100px auto 20px;
|
|
||||||
width: 100%;
|
|
||||||
max-width: 900px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-header"] > div[role="book-index-header-left"] {
|
|
||||||
text-transform: capitalize;
|
|
||||||
display: inline-block;
|
|
||||||
color: var(--white);
|
|
||||||
font-size: 3em;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-header"] > div[role="book-index-header-right"] {
|
|
||||||
text-align: right;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-pages"] {
|
|
||||||
margin: 0 auto;
|
|
||||||
width: 100%;
|
|
||||||
max-width: 900px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-pages"] > a.page-link {
|
|
||||||
vertical-align: top;
|
|
||||||
display: inline-block;
|
|
||||||
width: 100%;
|
|
||||||
text-decoration: none;
|
|
||||||
margin: 0 0 20px;
|
|
||||||
border-radius: 3px;
|
|
||||||
height: 350px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-pages"] > a.page-link div.page-video {
|
|
||||||
width: 100%;
|
|
||||||
height: 350px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: left;
|
|
||||||
align-items: center;
|
|
||||||
border-radius: 5px;
|
|
||||||
border-bottom: none;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-pages"] > a.page-link video {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
position: absolute;
|
|
||||||
object-fit: cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-pages"] > a.page-link > div.page-bg {
|
|
||||||
width: 100%;
|
|
||||||
height: 350px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: left;
|
|
||||||
align-items: center;
|
|
||||||
border-radius: 5px;
|
|
||||||
border-bottom: none;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-pages"] aside {
|
|
||||||
font-size: 1.1em;
|
|
||||||
color: var(--white);
|
|
||||||
text-shadow: 2px 2px 2px var(--black);
|
|
||||||
padding: 10px;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-pages"] hr {
|
|
||||||
color: var(--white);
|
|
||||||
border: 0.1px solid;
|
|
||||||
margin: 7px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-pages"] button[data-active="true"] {
|
|
||||||
background: var(--primary);
|
|
||||||
color: var(--tertiary);
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-pages"] button[data-active="false"] {
|
|
||||||
background: var(--secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-pages"] > div[role="paginate"] {
|
|
||||||
width: fit-content;
|
|
||||||
margin: 0 auto;
|
|
||||||
font-size: 1.5em;
|
|
||||||
color: var(--highlight);
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-pages"] > div[role="paginate"] i {
|
|
||||||
color: var(--secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-pages"] > div[role="paginate"] a,
|
|
||||||
section[role="book-index-pages"] > div[role="paginate"] span {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="book-index-pages"] > div[role="paginate"] span {
|
|
||||||
position: relative;
|
|
||||||
top: -15px;
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
:root {
|
|
||||||
/* BASE COLORS */
|
|
||||||
--primary: #1d3040;
|
|
||||||
--secondary: #b2cce5;
|
|
||||||
--tertiary: #f5ab35;
|
|
||||||
--highlight: #fc6399;
|
|
||||||
--white: #efebe3;
|
|
||||||
--grey: #abb7b7;
|
|
||||||
--black: #32302f;
|
|
||||||
|
|
||||||
/* EDITOR COLORS */
|
|
||||||
--event-cool: #32cd32;
|
|
||||||
--event-lame: #f64747;
|
|
||||||
--editor-primary: #fde3a7;
|
|
||||||
--editor-secondary: #e7903c;
|
|
||||||
--editor-tertiary: #6bb9f0;
|
|
||||||
--editor-string: #dcc6e0;
|
|
||||||
--editor-tag: #e73c4e;
|
|
||||||
|
|
||||||
/* RGB Versions */
|
|
||||||
--primary-rgb: 29 28 24;
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
a {
|
|
||||||
color: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
background: var(--tertiary);
|
|
||||||
color: var(--primary);
|
|
||||||
padding: 5px;
|
|
||||||
display: block;
|
|
||||||
border-radius: 5px;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="email"],
|
|
||||||
input[type="password"],
|
|
||||||
input[type="text"] {
|
|
||||||
border: 0;
|
|
||||||
border-radius: 5px;
|
|
||||||
font: 18px var(--base-type);
|
|
||||||
display: inline-block;
|
|
||||||
background: var(--white);
|
|
||||||
color: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea {
|
|
||||||
border: 0;
|
|
||||||
border-radius: 3px;
|
|
||||||
color: var(--primary);
|
|
||||||
background: var(--white);
|
|
||||||
}
|
|
||||||
|
|
||||||
button,
|
|
||||||
input[type="submit"] {
|
|
||||||
background: var(--highlight);
|
|
||||||
color: var(--primary);
|
|
||||||
font: 20px var(--base-type);
|
|
||||||
border-radius: 5px;
|
|
||||||
position: relative;
|
|
||||||
cursor: pointer;
|
|
||||||
border: 0;
|
|
||||||
transition: all 0.3s linear;
|
|
||||||
}
|
|
||||||
|
|
||||||
select {
|
|
||||||
font: 14px var(--base-type);
|
|
||||||
border: 1px solid var(--secondary);
|
|
||||||
appearance: none;
|
|
||||||
color: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
::placeholder {
|
|
||||||
font: 25px var(--base-type);
|
|
||||||
color: var(--black);
|
|
||||||
}
|
|
|
@ -1,151 +0,0 @@
|
||||||
html {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
overflow: hidden;
|
|
||||||
font: 400 1.2em/1.4em var(--base-type);
|
|
||||||
}
|
|
||||||
|
|
||||||
html body {
|
|
||||||
background: var(--primary);
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
overflow-y: scroll;
|
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* GLOBALS */
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: var(--primary);
|
|
||||||
text-decoration: none;
|
|
||||||
border-bottom: 0;
|
|
||||||
transition: all 0.2s linear;
|
|
||||||
}
|
|
||||||
|
|
||||||
sup {
|
|
||||||
background: var(--black);
|
|
||||||
color: var(--white);
|
|
||||||
padding: 3px;
|
|
||||||
border-radius: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
::selection {
|
|
||||||
background: var(--highlight);
|
|
||||||
color: var(--white);
|
|
||||||
}
|
|
||||||
|
|
||||||
#notifications {
|
|
||||||
display: none;
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre,
|
|
||||||
code {
|
|
||||||
background: var(--black);
|
|
||||||
color: var(--highlight);
|
|
||||||
border-radius: 3px;
|
|
||||||
padding: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
svg[role="icon"] {
|
|
||||||
fill: var(--white);
|
|
||||||
width: 25px;
|
|
||||||
height: 25px;
|
|
||||||
padding-top: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* HEADER
|
|
||||||
Navigation
|
|
||||||
Notificiations
|
|
||||||
*/
|
|
||||||
|
|
||||||
header {
|
|
||||||
width: 100%;
|
|
||||||
max-width: 900px;
|
|
||||||
margin: 10px auto;
|
|
||||||
height: 50px;
|
|
||||||
border-radius: 5px;
|
|
||||||
left: 50%;
|
|
||||||
transform: translate(-50%, 0);
|
|
||||||
position: fixed;
|
|
||||||
z-index: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
header > nav > div[role="nav-left"] img {
|
|
||||||
width: 40px;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
header > nav > div[role="title"] {
|
|
||||||
text-align: left;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
header > nav > div[role="title"] h1 {
|
|
||||||
color: var(--primary);
|
|
||||||
margin: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
header > nav > div[role="nav-right"] {
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
header > nav > div > div[role="mobile-menu"] {
|
|
||||||
display: none;
|
|
||||||
position: fixed;
|
|
||||||
z-index: 1000;
|
|
||||||
left: 0;
|
|
||||||
transition: all 0.2s linear;
|
|
||||||
background: var(--white);
|
|
||||||
}
|
|
||||||
|
|
||||||
header > nav > div[role="nav-right"] button {
|
|
||||||
width: 40px;
|
|
||||||
height: 40px;
|
|
||||||
margin-left: 5px;
|
|
||||||
font-size: 0.8em;
|
|
||||||
color: var(--white);
|
|
||||||
}
|
|
||||||
|
|
||||||
header > nav > div[role="nav-right"] > button[role="menu-toggle"] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
header > nav > div[role="nav-right"] div[role="submenu"] {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
|
|
||||||
header > nav > div[role="nav-right"] div[role="submenu"] button {
|
|
||||||
background: var(--primary);
|
|
||||||
color: var(--white);
|
|
||||||
font-size: 0.8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
header
|
|
||||||
> nav
|
|
||||||
> div[role="nav-right"]
|
|
||||||
div[role="submenu"]
|
|
||||||
button[data-render="true"] {
|
|
||||||
background: var(--tertiary);
|
|
||||||
color: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* RESPONSIVE */
|
|
||||||
|
|
||||||
@media only screen and (max-width: 900px) {
|
|
||||||
header {
|
|
||||||
width: 97%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 530px) {
|
|
||||||
header > nav > div[role="nav-right"] > button[role="menu-toggle"] {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
|
|
||||||
header > nav > div > div[role="menu"] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,149 +0,0 @@
|
||||||
section[role="index-header"] {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr;
|
|
||||||
width: 100%;
|
|
||||||
max-width: 900px;
|
|
||||||
margin: 60px auto 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] a {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
display: flex;
|
|
||||||
justify-content: left;
|
|
||||||
align-items: center;
|
|
||||||
border-radius: 5px;
|
|
||||||
border-bottom: none;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] a video {
|
|
||||||
width: 100%;
|
|
||||||
position: absolute;
|
|
||||||
object-fit: cover;
|
|
||||||
height: 100%;
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] a:nth-child(1) {
|
|
||||||
grid-column: 1/4;
|
|
||||||
grid-row: 1/3;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] a:nth-child(2) {
|
|
||||||
grid-row: 3/6;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] a:nth-child(3) {
|
|
||||||
grid-column: 2/4;
|
|
||||||
grid-row: 3/5;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-header"] div[role="index-header-right"] {
|
|
||||||
display: flex;
|
|
||||||
justify-content: right;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-header"] div[role="index-header-right"] a {
|
|
||||||
border-bottom: none;
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr 1fr;
|
|
||||||
grid-auto-rows: minmax(200px, auto);
|
|
||||||
gap: 10px;
|
|
||||||
width: 100%;
|
|
||||||
max-width: 900px;
|
|
||||||
margin: 10px auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] a button {
|
|
||||||
padding: 1px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] button i {
|
|
||||||
font-size: 1.8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] button[data-active="true"] {
|
|
||||||
background: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] button[data-active="true"] i {
|
|
||||||
color: var(--tertiary);
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] button[data-active="false"] {
|
|
||||||
background: var(--secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] button[data-active="false"] i {
|
|
||||||
fill: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] aside {
|
|
||||||
font-size: 1.1em;
|
|
||||||
color: var(--white);
|
|
||||||
text-shadow: 2px 2px 2px var(--black);
|
|
||||||
padding: 10px;
|
|
||||||
z-index: 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] hr {
|
|
||||||
color: var(--white);
|
|
||||||
border: 0.1px solid;
|
|
||||||
margin: 7px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 900px) {
|
|
||||||
section[role="index-header"],
|
|
||||||
section[role="index-recent-pages"] {
|
|
||||||
width: 97%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 520px) {
|
|
||||||
section[role="index-recent-pages"] {
|
|
||||||
grid-template-columns: 1fr 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] a:nth-child(1) {
|
|
||||||
grid-column: 1/3;
|
|
||||||
grid-row: 1/2;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] a:nth-child(2) {
|
|
||||||
grid-row: 2/3;
|
|
||||||
grid-column: 1/2;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] a:nth-child(3) {
|
|
||||||
grid-column: 2/3;
|
|
||||||
grid-row: 2/3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 350px) {
|
|
||||||
section[role="index-recent-pages"] a:nth-child(2) {
|
|
||||||
grid-column: 1/3;
|
|
||||||
grid-row: 2/3;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] a:nth-child(3) {
|
|
||||||
grid-column: 1/3;
|
|
||||||
grid-row: 3/4;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] a:nth-child(4) {
|
|
||||||
grid-column: 1/3;
|
|
||||||
grid-row: 4/5;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="index-recent-pages"] a:nth-child(5) {
|
|
||||||
grid-column: 1/3;
|
|
||||||
grid-row: 5/6;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,113 +0,0 @@
|
||||||
/* LOGIN */
|
|
||||||
|
|
||||||
section[role="login"],
|
|
||||||
section[role="password-reset"],
|
|
||||||
section[role="restore-fresh"],
|
|
||||||
section[role="restore-backup"] {
|
|
||||||
margin: 15% auto;
|
|
||||||
padding: 10px;
|
|
||||||
width: 500px;
|
|
||||||
border-radius: 5px;
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 28.5% 1fr;
|
|
||||||
gap: 10px;
|
|
||||||
visibility: visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="restore-backup"] {
|
|
||||||
display: none;
|
|
||||||
visibility: hidden;
|
|
||||||
color: var(--white);
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="login"] form input {
|
|
||||||
width: 95%;
|
|
||||||
height: 30px;
|
|
||||||
padding: 5px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="login"] form button {
|
|
||||||
padding: 10px 5px;
|
|
||||||
width: 82%;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="login"] form a {
|
|
||||||
padding: 10px 5px;
|
|
||||||
border-radius: 5px;
|
|
||||||
width: 10%;
|
|
||||||
height: 20px;
|
|
||||||
display: inline-block;
|
|
||||||
background: var(--tertiary);
|
|
||||||
vertical-align: top;
|
|
||||||
text-align: center;
|
|
||||||
margin: 0 0 0 10px;
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* PASSWORD-RESET */
|
|
||||||
|
|
||||||
section[role="password-reset"] form button {
|
|
||||||
padding: 10px 5px;
|
|
||||||
width: 82%;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="password-reset"] form input {
|
|
||||||
width: 95%;
|
|
||||||
height: 30px;
|
|
||||||
padding: 5px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* SITE RESTORE */
|
|
||||||
|
|
||||||
section[role="restore-fresh"] form button {
|
|
||||||
padding: 10px 5px;
|
|
||||||
width: 82%;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="restore-fresh"] form input {
|
|
||||||
width: 95%;
|
|
||||||
height: 30px;
|
|
||||||
padding: 5px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="restore-backup"] form button {
|
|
||||||
padding: 10px 5px;
|
|
||||||
width: 82%;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="restore-backup"] form input {
|
|
||||||
width: 95%;
|
|
||||||
height: 30px;
|
|
||||||
padding: 5px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* RESPONSIVE */
|
|
||||||
|
|
||||||
@media only screen and (max-width: 500px) {
|
|
||||||
section[role="login"],
|
|
||||||
section[role="password-reset"],
|
|
||||||
section[role="restore-fresh"],
|
|
||||||
section[role="restore-backup"] {
|
|
||||||
width: 97%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 375px) {
|
|
||||||
section[role="login"],
|
|
||||||
section[role="password-reset"],
|
|
||||||
section[role="restore-fresh"],
|
|
||||||
section[role="restore-backup"] {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="login"] img,
|
|
||||||
section[role="password-reset"] img,
|
|
||||||
section[role="restore-fresh"] img,
|
|
||||||
section[role="restore-backup"] img {
|
|
||||||
width: 50px;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,46 +0,0 @@
|
||||||
article[role="navigation"] {
|
|
||||||
width: 100%;
|
|
||||||
max-width: 900px;
|
|
||||||
margin: 100px auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
article[role="navigation"] > section > div.nav-item {
|
|
||||||
display: block;
|
|
||||||
width: 98%;
|
|
||||||
background: var(--white);
|
|
||||||
border-radius: 3px;
|
|
||||||
color: var(--highlight);
|
|
||||||
margin: 0 0 10px;
|
|
||||||
font-size: 1.5em;
|
|
||||||
cursor: move;
|
|
||||||
}
|
|
||||||
|
|
||||||
article[role="navigation"] > section > div.nav-item > label {
|
|
||||||
display: inline-block;
|
|
||||||
padding: 5px;
|
|
||||||
margin: 12px 0 0 10px;
|
|
||||||
vertical-align: top;
|
|
||||||
cursor: move;
|
|
||||||
}
|
|
||||||
|
|
||||||
article[role="navigation"] > section > div.nav-item > div#nav-btns {
|
|
||||||
float: right;
|
|
||||||
padding: 5px;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
article[role="navigation"] > section > div.nav-item > div#nav-btns button {
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 500px) {
|
|
||||||
article[role="navigation"] > section > div.nav-item > label {
|
|
||||||
width: 55%;
|
|
||||||
margin: 0;
|
|
||||||
font-size: 0.8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
article[role="navigation"] > section i {
|
|
||||||
font-size: 1.5em;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,91 +0,0 @@
|
||||||
header > nav[role="top-nav"] {
|
|
||||||
display: grid;
|
|
||||||
text-align: right;
|
|
||||||
grid-template-columns: 50px auto auto;
|
|
||||||
height: 100%;
|
|
||||||
position: relative;
|
|
||||||
background: var(--white);
|
|
||||||
border-radius: 3px;
|
|
||||||
transform-style: preserve-3d;
|
|
||||||
transform-origin: 100% 50%;
|
|
||||||
transform: rotateX(0deg);
|
|
||||||
transition: all 0.1s ease-out;
|
|
||||||
perspective: 500px;
|
|
||||||
backface-visibility: hidden;
|
|
||||||
box-shadow: 2px 2px 0 rgba(var(--primary-rgb) / 30%);
|
|
||||||
}
|
|
||||||
|
|
||||||
header > div[role="notify"] {
|
|
||||||
display: grid;
|
|
||||||
height: 100%;
|
|
||||||
position: relative;
|
|
||||||
background: var(--black);
|
|
||||||
border-radius: 3px;
|
|
||||||
transform-style: preserve-3d;
|
|
||||||
transform-origin: 100% 50%;
|
|
||||||
transform: rotateX(180deg);
|
|
||||||
transition: all 0.3s ease-out;
|
|
||||||
perspective: 500px;
|
|
||||||
backface-visibility: hidden;
|
|
||||||
margin-top: -50px;
|
|
||||||
box-shadow: 2px 2px 0 rgba(var(--primary-rgb) / 30%);
|
|
||||||
}
|
|
||||||
|
|
||||||
header > div[role="notify"] > div[role="notify-message"] {
|
|
||||||
display: flex;
|
|
||||||
height: 86%;
|
|
||||||
}
|
|
||||||
|
|
||||||
header > div[role="notify"] > div[role="notify-message"] div {
|
|
||||||
display: inline-block;
|
|
||||||
transition: all 0.2s linear;
|
|
||||||
}
|
|
||||||
|
|
||||||
header
|
|
||||||
> div[role="notify"]
|
|
||||||
> div[role="notify-message"]
|
|
||||||
> div[role="notify-text"] {
|
|
||||||
color: var(--white);
|
|
||||||
border-radius: 5px;
|
|
||||||
height: 79%;
|
|
||||||
margin-top: 8px;
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
header
|
|
||||||
> div[role="notify"]
|
|
||||||
> div[role="notify-message"]
|
|
||||||
> div[role="notify-icons"] {
|
|
||||||
margin: 5px;
|
|
||||||
width: 40px;
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
header
|
|
||||||
> div[role="notify"]
|
|
||||||
> div[role="notify-message"]
|
|
||||||
> div[role="notify-text"]
|
|
||||||
span {
|
|
||||||
display: block;
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
header > div[role="notify"] > div[role="notify-message"] i {
|
|
||||||
display: none;
|
|
||||||
color: var(--white);
|
|
||||||
}
|
|
||||||
|
|
||||||
i[role="notify-working"] {
|
|
||||||
animation: 2s infinite linear spin;
|
|
||||||
height: 40px;
|
|
||||||
width: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes spin {
|
|
||||||
from {
|
|
||||||
transform: rotate(0deg);
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
transform: rotate(360deg);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,111 +0,0 @@
|
||||||
code[class*="language-"],
|
|
||||||
pre[class*="language-"] {
|
|
||||||
color: var(--editor-primary);
|
|
||||||
background: none;
|
|
||||||
font-family: var(--mono-type);
|
|
||||||
text-align: left;
|
|
||||||
white-space: pre;
|
|
||||||
word-spacing: normal;
|
|
||||||
word-break: normal;
|
|
||||||
word-wrap: normal;
|
|
||||||
tab-size: 4;
|
|
||||||
hyphens: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre[class*="language-"] {
|
|
||||||
margin: 0.1em 0;
|
|
||||||
overflow: auto;
|
|
||||||
border-radius: 0.3em;
|
|
||||||
}
|
|
||||||
|
|
||||||
:not(pre) > code[class*="language-"],
|
|
||||||
pre[class*="language-"] {
|
|
||||||
background: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
:not(pre) {
|
|
||||||
& > code[class*="language-"] {
|
|
||||||
padding: 0.1em;
|
|
||||||
border-radius: 0.3em;
|
|
||||||
white-space: normal;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.comment,
|
|
||||||
.token.prolog,
|
|
||||||
.token.doctype,
|
|
||||||
.token.cdata {
|
|
||||||
color: #8292a2;
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.punctuation {
|
|
||||||
color: var(--editor-secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.namespace {
|
|
||||||
opacity: 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.keyword {
|
|
||||||
color: #66d9ef;
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.italic {
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.entity {
|
|
||||||
cursor: help;
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.content {
|
|
||||||
color: var(--editor-tertiary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.property,
|
|
||||||
.token.tag,
|
|
||||||
.token.constant,
|
|
||||||
.token.symbol,
|
|
||||||
.token.deleted {
|
|
||||||
color: var(--editor-tag);
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.boolean,
|
|
||||||
.token.number {
|
|
||||||
color: #ae81ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.selector,
|
|
||||||
.token.attr-name,
|
|
||||||
.token.string,
|
|
||||||
.token.char,
|
|
||||||
.token.builtin,
|
|
||||||
.token.inserted {
|
|
||||||
color: #a6e22e;
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.operator,
|
|
||||||
.token.entity,
|
|
||||||
.token.url,
|
|
||||||
.language-css .token.string,
|
|
||||||
.style .token.string,
|
|
||||||
.token.variable {
|
|
||||||
color: var(--editor-string);
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.atrule,
|
|
||||||
.token.attr-value,
|
|
||||||
.token.function,
|
|
||||||
.token.class-name {
|
|
||||||
color: #e6db74;
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.regex,
|
|
||||||
.token.important {
|
|
||||||
color: var(--editor-secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
.token.important,
|
|
||||||
.token.bold {
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
|
@ -1,446 +0,0 @@
|
||||||
/* FILE MANAGER */
|
|
||||||
main > section[role="file-manager"] {
|
|
||||||
width: 100%;
|
|
||||||
background: var(--tertiary);
|
|
||||||
padding: 20px 0;
|
|
||||||
margin-top: 75px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main > section[role="file-manager"] label[role="list-title"] {
|
|
||||||
width: 100%;
|
|
||||||
max-width: 900px;
|
|
||||||
margin: 0 auto;
|
|
||||||
display: block;
|
|
||||||
color: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
main > section[role="file-manager"] > div[role="file-drop"] {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
width: 100%;
|
|
||||||
min-height: 100px;
|
|
||||||
background: var(--white);
|
|
||||||
color: var(--primary);
|
|
||||||
vertical-align: middle;
|
|
||||||
border-radius: 5px;
|
|
||||||
max-width: 900px;
|
|
||||||
margin: 10px auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
main > section[role="file-manager"] > div[role="page-images-list"],
|
|
||||||
main > section[role="file-manager"] > div[role="page-files-list"] {
|
|
||||||
max-width: 900px;
|
|
||||||
width: 100%;
|
|
||||||
margin: 10px auto;
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr 1fr 1fr;
|
|
||||||
gap: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main > section[role="file-manager"] > div[role="page-images-list"] > div,
|
|
||||||
main > section[role="file-manager"] > div[role="page-files-list"] > div {
|
|
||||||
width: 100%;
|
|
||||||
height: 150px;
|
|
||||||
border-radius: 3px;
|
|
||||||
overflow: hidden;
|
|
||||||
position: relative;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="file-manager"]
|
|
||||||
> div[role="page-images-list"]
|
|
||||||
> div
|
|
||||||
> div.item-progress {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
main > section[role="text-editor"] > div[role="text-editor-control"] button {
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="text-editor"]
|
|
||||||
> div[role="text-editor-control"]
|
|
||||||
button
|
|
||||||
> i {
|
|
||||||
font-size: 1.6em;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="text-editor"]
|
|
||||||
> div[role="text-editor-control"]
|
|
||||||
> button:nth-child(1) {
|
|
||||||
border-radius: 3px 0 0 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="text-editor"]
|
|
||||||
> div[role="text-editor-control"]
|
|
||||||
> button:nth-child(10) {
|
|
||||||
border-radius: 0 3px 3px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="file-manager"]
|
|
||||||
> div[role="page-images-list"]
|
|
||||||
> div
|
|
||||||
> button.media-remove,
|
|
||||||
main
|
|
||||||
> section[role="file-manager"]
|
|
||||||
> div[role="page-files-list"]
|
|
||||||
> div
|
|
||||||
> button.media-remove {
|
|
||||||
color: var(--white);
|
|
||||||
margin: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="file-manager"]
|
|
||||||
> div[role="page-images-list"]
|
|
||||||
> div.video-item
|
|
||||||
> video {
|
|
||||||
object-fit: cover;
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="file-manager"]
|
|
||||||
> div[role="page-images-list"]
|
|
||||||
> div.video-item
|
|
||||||
> button,
|
|
||||||
main
|
|
||||||
> section[role="file-manager"]
|
|
||||||
> div[role="page-files-list"]
|
|
||||||
> div.audio-item
|
|
||||||
> button,
|
|
||||||
main
|
|
||||||
> section[role="file-manager"]
|
|
||||||
> div[role="page-files-list"]
|
|
||||||
> div.file-item
|
|
||||||
> button {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="file-manager"]
|
|
||||||
> div[role="page-files-list"]
|
|
||||||
> div.audio-item {
|
|
||||||
background: url("/assets/images/global/upload-audio.png") no-repeat center
|
|
||||||
center / cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="file-manager"]
|
|
||||||
> div[role="page-files-list"]
|
|
||||||
> div.file-item {
|
|
||||||
background: url("/assets/images/global/upload-doc.png") no-repeat center
|
|
||||||
center / cover;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="file-manager"]
|
|
||||||
> div[role="page-files-list"]
|
|
||||||
> div.file-item
|
|
||||||
> a {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
background: var(--secondary);
|
|
||||||
padding: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="file-manager"]
|
|
||||||
> div[role="page-files-list"]
|
|
||||||
> div.audio-item
|
|
||||||
> audio {
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* PAGE META */
|
|
||||||
|
|
||||||
main > section[role="page-meta"] {
|
|
||||||
width: 100%;
|
|
||||||
background: var(--highlight);
|
|
||||||
}
|
|
||||||
|
|
||||||
main > section[role="page-meta"] > div[role="page-meta-wrapper"] {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr;
|
|
||||||
gap: 20px;
|
|
||||||
width: 100%;
|
|
||||||
max-width: 900px;
|
|
||||||
margin: 10px auto;
|
|
||||||
color: var(--white);
|
|
||||||
}
|
|
||||||
|
|
||||||
main section[role="page-meta"] textarea#post-title-text {
|
|
||||||
background: var(--white);
|
|
||||||
font-family: var(--base-type);
|
|
||||||
width: 100%;
|
|
||||||
height: 80px;
|
|
||||||
font-size: 2em;
|
|
||||||
color: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
main section[role="page-meta"] textarea#post-tags {
|
|
||||||
background: var(--white);
|
|
||||||
font-family: var(--base-type);
|
|
||||||
width: 100%;
|
|
||||||
height: 80px;
|
|
||||||
color: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
main section[role="page-meta"] select {
|
|
||||||
background: var(--primary);
|
|
||||||
color: var(--secondary);
|
|
||||||
border-radius: 3px;
|
|
||||||
border-color: var(--primary);
|
|
||||||
width: 100%;
|
|
||||||
height: 45px;
|
|
||||||
padding: 5px;
|
|
||||||
font-size: 1.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
main section[role="page-meta"] div[role="page-options"] {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
section[role="page-meta"]
|
|
||||||
div[role="page-meta-wrapper"]
|
|
||||||
div[role="page-options"]
|
|
||||||
button {
|
|
||||||
width: 25%;
|
|
||||||
height: 45px;
|
|
||||||
transition: all 0.3s linear;
|
|
||||||
margin: 0;
|
|
||||||
border-radius: 0;
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: top;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="page-meta"]
|
|
||||||
> div[role="page-meta-wrapper"]
|
|
||||||
> div[role="page-options"]
|
|
||||||
> button.post-option-btn:nth-child(3) {
|
|
||||||
border-radius: 3px 0 0 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="page-meta"]
|
|
||||||
> div[role="page-meta-wrapper"]
|
|
||||||
> div[role="page-options"]
|
|
||||||
> a
|
|
||||||
> button {
|
|
||||||
border-radius: 0 3px 3px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
section[role="page-meta"]
|
|
||||||
div[role="page-meta-wrapper"]
|
|
||||||
button[data-active="false"] {
|
|
||||||
background: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
section[role="page-meta"]
|
|
||||||
div[role="page-meta-wrapper"]
|
|
||||||
button[data-active="false"]
|
|
||||||
svg {
|
|
||||||
fill: var(--secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
section[role="page-meta"]
|
|
||||||
div[role="page-meta-wrapper"]
|
|
||||||
div[role="page-options"]
|
|
||||||
button[data-active="true"] {
|
|
||||||
background: var(--tertiary);
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
section[role="page-meta"]
|
|
||||||
div[role="page-meta-wrapper"]
|
|
||||||
div[role="page-options"]
|
|
||||||
button[data-active="true"]
|
|
||||||
svg {
|
|
||||||
fill: var(--primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
section[role="page-meta"]
|
|
||||||
div[role="page-meta-wrapper"]
|
|
||||||
div[role="page-created"]
|
|
||||||
input {
|
|
||||||
display: none;
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TEXT EDITOR */
|
|
||||||
|
|
||||||
main > section[role="text-editor"] {
|
|
||||||
width: 100%;
|
|
||||||
max-width: 900px;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
main section[role="text-editor"] .icon-hide {
|
|
||||||
display: none;
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
main > section[role="text-editor"] > div[role="text-editor-control"] {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(10, 1fr);
|
|
||||||
}
|
|
||||||
|
|
||||||
.control-freeze {
|
|
||||||
position: fixed;
|
|
||||||
z-index: 300;
|
|
||||||
width: 97%;
|
|
||||||
top: 65px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main > section[role="text-editor"] > div[role="edit-post-wrapper"] {
|
|
||||||
width: 100%;
|
|
||||||
max-width: 900px;
|
|
||||||
border-radius: 5px;
|
|
||||||
position: relative;
|
|
||||||
margin: 10px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="text-editor"]
|
|
||||||
> div[role="edit-post-wrapper"]
|
|
||||||
textarea:focus {
|
|
||||||
outline: none;
|
|
||||||
border-color: var(--highlight);
|
|
||||||
}
|
|
||||||
|
|
||||||
main section[role="text-editor"] div[role="edit-post-wrapper"] #edit,
|
|
||||||
main section[role="text-editor"] div[role="edit-post-wrapper"] #highlight {
|
|
||||||
font-family: var(--mono-type);
|
|
||||||
border: 0;
|
|
||||||
width: 100%;
|
|
||||||
min-height: 300px;
|
|
||||||
height: auto;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
overflow: auto;
|
|
||||||
word-wrap: normal;
|
|
||||||
white-space: pre-wrap;
|
|
||||||
line-break: normal;
|
|
||||||
font-size: 1.1em;
|
|
||||||
line-height: 1.2;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
section[role="text-editor"]
|
|
||||||
div[role="edit-post-wrapper"]
|
|
||||||
#highlight-content {
|
|
||||||
word-wrap: normal;
|
|
||||||
white-space: pre-wrap;
|
|
||||||
line-break: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
main > section[role="text-editor"] > div[role="edit-post-wrapper"] > #edit {
|
|
||||||
z-index: 1;
|
|
||||||
background: transparent;
|
|
||||||
color: transparent;
|
|
||||||
caret-color: var(--highlight);
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="text-editor"]
|
|
||||||
> div[role="edit-post-wrapper"]
|
|
||||||
> #highlight {
|
|
||||||
z-index: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
main section[role="text-editor"] div[role="edit-post-wrapper"] pre,
|
|
||||||
main section[role="text-editor"] div[role="edit-post-wrapper"] pre code {
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* RESPONSIVE */
|
|
||||||
|
|
||||||
@media only screen and (max-width: 900px) {
|
|
||||||
main > section[role="file-manager"] > div[role="file-drop"],
|
|
||||||
main > section[role="file-manager"] > div[role="page-images-list"],
|
|
||||||
main > section[role="file-manager"] > div[role="page-files-list"],
|
|
||||||
main > section[role="page-meta"] > div[role="page-meta-wrapper"],
|
|
||||||
main > section[role="text-editor"] {
|
|
||||||
width: 97%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 480px) {
|
|
||||||
main > section[role="file-manager"] > div[role="page-images-list"],
|
|
||||||
main > section[role="file-manager"] > div[role="page-files-list"] {
|
|
||||||
grid-template-columns: 1fr 1fr 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
main > section[role="file-manager"] > div[role="file-drop"],
|
|
||||||
main > section[role="file-manager"] > div[role="page-images-list"],
|
|
||||||
main > section[role="file-manager"] > div[role="page-files-list"],
|
|
||||||
main > section[role="page-meta"] > div[role="page-meta-wrapper"],
|
|
||||||
main > section[role="text-editor"] {
|
|
||||||
width: 95%;
|
|
||||||
}
|
|
||||||
|
|
||||||
main > section[role="page-meta"] > div[role="page-meta-wrapper"] {
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
main > section[role="text-editor"] > div[role="text-editor-control"] {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(5, 1fr);
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="text-editor"]
|
|
||||||
> div[role="text-editor-control"]
|
|
||||||
> button:nth-child(1) {
|
|
||||||
border-radius: 3px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="text-editor"]
|
|
||||||
> div[role="text-editor-control"]
|
|
||||||
> button:nth-child(5) {
|
|
||||||
border-radius: 0 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="text-editor"]
|
|
||||||
> div[role="text-editor-control"]
|
|
||||||
> button:nth-child(6) {
|
|
||||||
border-radius: 0 0 0 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
||||||
> section[role="text-editor"]
|
|
||||||
> div[role="text-editor-control"]
|
|
||||||
> button:nth-child(10) {
|
|
||||||
border-radius: 0 0 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
main section[role="text-editor"] div[role="edit-post-wrapper"] #edit,
|
|
||||||
main section[role="text-editor"] div[role="edit-post-wrapper"] #highlight {
|
|
||||||
font-size: 0.8em;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,275 +0,0 @@
|
||||||
article[role="settings"] {
|
|
||||||
margin: 100px auto;
|
|
||||||
width: 100%;
|
|
||||||
max-width: 900px;
|
|
||||||
transition: all 0.8s linear;
|
|
||||||
}
|
|
||||||
|
|
||||||
article[role="settings"] h1 {
|
|
||||||
color: var(--white);
|
|
||||||
}
|
|
||||||
|
|
||||||
article[role="settings"] label {
|
|
||||||
color: var(--secondary);
|
|
||||||
margin-bottom: 10px;
|
|
||||||
display: inline-block;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr 1fr 1fr;
|
|
||||||
grid-auto-columns: auto;
|
|
||||||
gap: 15px;
|
|
||||||
width: 100%;
|
|
||||||
max-width: 900px;
|
|
||||||
margin: 10px auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(1) {
|
|
||||||
grid-column: 1/2;
|
|
||||||
grid-row: 1/3;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(2) {
|
|
||||||
grid-column: 2/4;
|
|
||||||
grid-row: 1/3;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(3) {
|
|
||||||
grid-row: 1/3;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(4) {
|
|
||||||
color: var(--white);
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(4) a {
|
|
||||||
font-weight: bold;
|
|
||||||
text-decoration: underline;
|
|
||||||
color: var(--tertiary);
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(5) {
|
|
||||||
grid-column: 2/4;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(6) {
|
|
||||||
grid-column: 1/3;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(7) {
|
|
||||||
grid-column: 3/5;
|
|
||||||
min-height: 325px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(8) {
|
|
||||||
grid-column: 1/4;
|
|
||||||
color: var(--white);
|
|
||||||
word-wrap: break-word;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div[role="member-avatar"] div,
|
|
||||||
section[role="member-settings"] > div[role="site-background"] div {
|
|
||||||
height: 100%;
|
|
||||||
border-radius: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] div input[type="file"] {
|
|
||||||
display: none;
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] div input[type="text"] {
|
|
||||||
width: 98.4%;
|
|
||||||
height: 40px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] div textarea {
|
|
||||||
width: 98.4%;
|
|
||||||
height: 63%;
|
|
||||||
}
|
|
||||||
|
|
||||||
article[role="settings"] button {
|
|
||||||
width: 100%;
|
|
||||||
text-align: left;
|
|
||||||
height: 50px;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
article[role="settings"] button > span {
|
|
||||||
font-size: 0.8em;
|
|
||||||
display: inline;
|
|
||||||
top: -10px;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"]
|
|
||||||
> div[role="features"]
|
|
||||||
button[data-enabled="true"] {
|
|
||||||
color: var(--white);
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"]
|
|
||||||
> div[role="features"]
|
|
||||||
button[data-enabled="false"] {
|
|
||||||
color: var(--primary);
|
|
||||||
background: var(--secondary);
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"]
|
|
||||||
> div[role="theme"]
|
|
||||||
button[data-enabled="true"] {
|
|
||||||
color: var(--white);
|
|
||||||
background: var(--highlight);
|
|
||||||
display: block;
|
|
||||||
border-radius: 3px;
|
|
||||||
padding: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"]
|
|
||||||
> div[role="theme"]
|
|
||||||
button[data-enabled="false"] {
|
|
||||||
color: var(--primary);
|
|
||||||
background: var(--secondary);
|
|
||||||
display: block;
|
|
||||||
border-radius: 3px;
|
|
||||||
padding: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div[role="mail"] a {
|
|
||||||
margin-right: 3px;
|
|
||||||
color: var(--secondary);
|
|
||||||
display: inline-block;
|
|
||||||
height: 40px;
|
|
||||||
padding: 15px 0 0;
|
|
||||||
border-top: var(--primary) 1px solid;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div[role="mail"] a[data-enabled="true"] {
|
|
||||||
color: var(--tertiary);
|
|
||||||
font-weight: bold;
|
|
||||||
border-top: var(--highlight) 1px solid;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div[role="mail"] div[data-enabled="false"] {
|
|
||||||
visibility: hidden;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div[role="mail"] input {
|
|
||||||
width: 98.4%;
|
|
||||||
height: 40px;
|
|
||||||
padding-left: 5px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="data-settings"] {
|
|
||||||
color: var(--white);
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 900px) {
|
|
||||||
main > article[role="settings"] {
|
|
||||||
width: 97%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 650px) {
|
|
||||||
section[role="member-settings"] div input[type="text"] {
|
|
||||||
width: 99.3%;
|
|
||||||
height: 40px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] {
|
|
||||||
grid-template-columns: 1fr 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div[role="mail"] input {
|
|
||||||
width: 97.7%;
|
|
||||||
height: 40px;
|
|
||||||
padding-left: 5px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] div textarea {
|
|
||||||
height: 80px;
|
|
||||||
width: 99.3%;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(1) {
|
|
||||||
grid-column: 1/2;
|
|
||||||
grid-row: 1/3;
|
|
||||||
height: 200px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(2) {
|
|
||||||
grid-column: 2/3;
|
|
||||||
grid-row: 1/3;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(3) {
|
|
||||||
grid-column: 1/3;
|
|
||||||
grid-row: 3/5;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(4) {
|
|
||||||
grid-column: 1/2;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(5) {
|
|
||||||
grid-column: 2/3;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(6) {
|
|
||||||
grid-column: 1/2;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(7) {
|
|
||||||
grid-column: 2/3;
|
|
||||||
min-height: 325px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(8) {
|
|
||||||
grid-column: 1/3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (max-width: 530px) {
|
|
||||||
section[role="member-settings"] > div[role="mail"] input {
|
|
||||||
width: 98.5%;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] {
|
|
||||||
grid-template-columns: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] div textarea {
|
|
||||||
height: 80px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(1) {
|
|
||||||
grid-row: 1/3;
|
|
||||||
height: 200px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(2) {
|
|
||||||
grid-row: 3/5;
|
|
||||||
grid-column: 1;
|
|
||||||
height: 200px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(3) {
|
|
||||||
grid-column: 1;
|
|
||||||
grid-row: 5/7;
|
|
||||||
}
|
|
||||||
|
|
||||||
section[role="member-settings"] > div:nth-child(4),
|
|
||||||
section[role="member-settings"] > div:nth-child(5),
|
|
||||||
section[role="member-settings"] > div:nth-child(6),
|
|
||||||
section[role="member-settings"] > div:nth-child(7),
|
|
||||||
section[role="member-settings"] > div:nth-child(8) {
|
|
||||||
grid-column: 1;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
@import url("colors.css");
|
|
||||||
@import url("forms.css");
|
|
||||||
@import url("typography.css");
|
|
||||||
@import url("frame.css");
|
|
||||||
@import url("icons.css");
|
|
||||||
@import url("notifications.css");
|
|
||||||
@import url("init.css");
|
|
||||||
@import url("index.css");
|
|
||||||
@import url("book.css");
|
|
||||||
@import url("page-editor.css");
|
|
||||||
@import url("page-editor-highlights.css");
|
|
||||||
@import url("settings.css");
|
|
||||||
@import url("navigation.css");
|
|
Binary file not shown.
Binary file not shown.
|
@ -1,29 +0,0 @@
|
||||||
:root {
|
|
||||||
--base-type: helvetica, arial, sans-serif;
|
|
||||||
--mono-type: "Lucida Console", monaco, monospace;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3 {
|
|
||||||
color: var(--white);
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size: 2em;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
font-size: 1.6em;
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: 1.3em;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
main > article > h1 {
|
|
||||||
color: var(--primary);
|
|
||||||
}
|
|
|
@ -1,33 +1,33 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
<svg width="100%" height="100%" viewBox="0 0 462 462" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
<svg width="100%" height="100%" viewBox="0 0 486 678" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||||
<g transform="matrix(1.58717,0,0,1.58717,-403.964,-376.506)">
|
<g id="Logo" transform="matrix(1.36867,0,0,1.36867,-351.696,-71.9183)">
|
||||||
<g transform="matrix(1,0,0,1,200.753,94.1743)">
|
<g transform="matrix(2.31599,0,0,2.31599,218.53,-99.4797)">
|
||||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(252,99,153);"/>
|
<path d="M93.67,140.92L93.67,140.921C105.569,140.921 115.216,150.567 115.216,162.467L115.216,172.724L115.216,172.724L115.216,182.262C115.216,194.161 105.569,203.808 93.669,203.808C81.976,203.217 74.12,195.969 72.237,184.474L72.282,182.737L72.282,162.467L72.205,160.847C72.775,149.587 82.728,141.121 93.67,140.92Z" style="fill:rgb(252,99,153);fill-rule:nonzero;"/>
|
||||||
</g>
|
</g>
|
||||||
<g transform="matrix(1,0,0,1,200.753,201.192)">
|
<g transform="matrix(2.31599,0,0,2.31599,218.53,-437.697)">
|
||||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(252,99,153);"/>
|
<path d="M93.67,211.678L93.67,211.678C105.569,211.678 115.216,221.324 115.216,233.224L115.216,243.481L115.216,243.481L115.216,253.019C115.216,264.919 105.569,274.565 93.669,274.565C81.976,273.975 74.12,266.726 72.237,255.232L72.282,253.495L72.282,233.224L72.205,231.604C72.775,220.344 82.728,211.878 93.67,211.678Z" style="fill:rgb(252,99,153);fill-rule:nonzero;"/>
|
||||||
</g>
|
</g>
|
||||||
<g transform="matrix(1,0,0,1,307.732,201.192)">
|
<g transform="matrix(2.31599,0,0,2.31599,218.53,241.338)">
|
||||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(252,99,153);"/>
|
<path d="M93.67,69.288L93.67,69.288C105.569,69.288 115.216,78.934 115.216,90.834L115.216,101.091L115.216,101.091L115.216,110.629C115.216,122.528 105.569,132.175 93.669,132.175C81.976,131.584 74.12,124.336 72.237,112.842L72.282,111.105L72.282,90.834L72.205,89.214C72.775,77.954 82.728,69.488 93.67,69.288Z" style="fill:rgb(171,183,183);fill-rule:nonzero;"/>
|
||||||
</g>
|
</g>
|
||||||
<g transform="matrix(1,0,0,1,414.761,201.192)">
|
<g transform="matrix(2.31599,0,0,2.31599,218.53,-104.112)">
|
||||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(171,183,183);"/>
|
<path d="M38.059,142.92L38.059,142.921C49.958,142.921 59.605,152.567 59.605,164.467L59.605,174.724L59.605,174.724L59.605,184.262C59.605,196.161 49.958,205.808 38.058,205.808C26.365,205.217 18.509,197.969 16.626,186.474L16.671,184.737L16.671,164.467L16.594,162.847C17.164,151.587 27.117,143.121 38.059,142.92Z" style="fill:rgb(252,99,153);fill-rule:nonzero;"/>
|
||||||
</g>
|
</g>
|
||||||
<g transform="matrix(1,0,0,1,200.753,308.228)">
|
<g transform="matrix(2.31599,0,0,2.31599,218.53,-104.112)">
|
||||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(252,99,153);"/>
|
<path d="M148.331,142.92L148.331,142.921C160.23,142.921 169.877,152.567 169.877,164.467L169.877,174.724L169.877,174.724L169.877,184.262C169.877,196.161 160.23,205.808 148.331,205.808C136.637,205.217 128.782,197.969 126.898,186.474L126.943,184.737L126.943,164.467L126.867,162.847C127.436,151.587 137.389,143.121 148.331,142.92Z" style="fill:rgb(171,183,183);fill-rule:nonzero;"/>
|
||||||
</g>
|
</g>
|
||||||
<g transform="matrix(1,0,0,1,307.732,308.228)">
|
<g transform="matrix(2.31599,0,0,2.31599,218.53,-437.697)">
|
||||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(171,183,183);"/>
|
<path d="M38.059,211.678L38.059,211.678C49.958,211.678 59.605,221.324 59.605,233.224L59.605,243.481L59.605,243.481L59.605,253.019C59.605,264.919 49.958,274.565 38.058,274.565C26.365,273.975 18.509,266.726 16.626,255.232L16.671,253.495L16.671,233.224L16.594,231.604C17.164,220.344 27.117,211.878 38.059,211.678Z" style="fill:rgb(252,99,153);fill-rule:nonzero;"/>
|
||||||
</g>
|
</g>
|
||||||
<g transform="matrix(1,0,0,1,414.761,308.228)">
|
<g transform="matrix(2.31599,0,0,2.31599,218.53,-437.697)">
|
||||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(171,183,183);"/>
|
<path d="M148.331,211.678L148.331,211.678C160.23,211.678 169.877,221.324 169.877,233.224L169.877,243.481L169.877,243.481L169.877,253.019C169.877,264.919 160.23,274.565 148.331,274.565C136.637,273.975 128.782,266.726 126.898,255.232L126.943,253.495L126.943,233.224L126.867,231.604C127.436,220.344 137.389,211.878 148.331,211.678Z" style="fill:rgb(252,99,153);fill-rule:nonzero;"/>
|
||||||
</g>
|
</g>
|
||||||
<g transform="matrix(1,0,0,1,414.761,94.1743)">
|
<g transform="matrix(2.31599,0,0,2.31599,218.53,241.338)">
|
||||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(252,99,153);"/>
|
<path d="M38.059,69.288L38.059,69.288C49.958,69.288 59.605,78.934 59.605,90.834L59.605,101.091L59.605,101.091L59.605,110.629C59.605,122.528 49.958,132.175 38.058,132.175C26.365,131.584 18.509,124.336 16.626,112.842L16.671,111.105L16.671,90.834L16.594,89.214C17.164,77.954 27.117,69.488 38.059,69.288Z" style="fill:rgb(252,99,153);fill-rule:nonzero;"/>
|
||||||
</g>
|
</g>
|
||||||
<g transform="matrix(6.12323e-17,1,-1,6.12323e-17,581.547,183.453)">
|
<g transform="matrix(2.31599,0,0,2.31599,218.53,241.338)">
|
||||||
<circle cx="92.268" cy="181.547" r="38.502" style="fill:rgb(252,99,153);"/>
|
<path d="M148.331,69.288L148.331,69.288C160.23,69.288 169.877,78.934 169.877,90.834L169.877,101.091L169.877,101.091L169.877,110.629C169.877,122.528 160.23,132.175 148.331,132.175C136.637,131.584 128.782,124.336 126.898,112.842L126.943,111.105L126.943,90.834L126.867,89.214C127.436,77.954 137.389,69.488 148.331,69.288Z" style="fill:rgb(171,183,183);fill-rule:nonzero;"/>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.6 KiB |
8576
public/assets/scripts/Start.js
Normal file
8576
public/assets/scripts/Start.js
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
|
@ -1,11 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
//load Composer Classes
|
|
||||||
require '../vendor/autoload.php';
|
require '../vendor/autoload.php';
|
||||||
//load Fipamo Classes
|
|
||||||
require '../brain/_loader.php';
|
|
||||||
|
|
||||||
use brain\init\App;
|
use brain\init\App;
|
||||||
|
|
||||||
//start app
|
|
||||||
new App();
|
new App();
|
||||||
|
|
|
@ -1,40 +1,40 @@
|
||||||
//** REQUEST TYPES **//
|
//** REQUEST TYPES **//
|
||||||
export const REQUEST_TYPE_POST = 'POST';
|
export const REQUEST_TYPE_POST = "POST";
|
||||||
export const REQUEST_TYPE_GET = 'GET';
|
export const REQUEST_TYPE_GET = "GET";
|
||||||
export const REQUEST_TYPE_PUT = 'PUT';
|
export const REQUEST_TYPE_PUT = "PUT";
|
||||||
export const REQUEST_TYPE_DELETE = 'DELETE';
|
export const REQUEST_TYPE_DELETE = "DELETE";
|
||||||
//** POST CONTENT TYPES **//
|
//** POST CONTENT TYPES **//
|
||||||
export const CONTENT_TYPE_JSON = 'json';
|
export const CONTENT_TYPE_JSON = "json";
|
||||||
export const CONTENT_TYPE_FORM = 'x-www-form-urlencoded';
|
export const CONTENT_TYPE_FORM = "x-www-form-urlencoded";
|
||||||
//** API URLS **//
|
//** API URLS **//
|
||||||
export const API_STATUS = '/api/v1/status';
|
export const API_STATUS = "/api/v1/status";
|
||||||
export const API_GET_SETTINGS = '/api/v1/settings/site';
|
export const API_GET_SETTINGS = "/api/v1/settings/site";
|
||||||
export const API_GET_MEMBER_INFO = '/api/v1/settings/member';
|
export const API_GET_MEMBER_INFO = "/api/v1/settings/member";
|
||||||
export const API_NEW_PAGE = '/api/v1/page/create';
|
export const API_NEW_PAGE = "/api/v1/page/create";
|
||||||
export const API_EDIT_PAGE = '/api/v1/page/write';
|
export const API_EDIT_PAGE = "/api/v1/page/write";
|
||||||
export const API_DELETE_PAGE = '/api/v1/page/delete';
|
export const API_DELETE_PAGE = "/api/v1/page/delete";
|
||||||
export const API_SETTINGS_SYNC = '/api/v1/settings/sync';
|
export const API_SETTINGS_SYNC = "/api/v1/settings/sync";
|
||||||
export const API_PUBLISH_PAGES = '/api/v1/settings/publish';
|
export const API_PUBLISH_PAGES = "/api/v1/settings/publish";
|
||||||
export const API_NAV_SYNC = '/api/v1/settings/nav-sync';
|
export const API_NAV_SYNC = "/api/v1/settings/nav-sync";
|
||||||
export const API_REINDEX_PAGES = '/api/v1/settings/reindex';
|
export const API_REINDEX_PAGES = "/api/v1/settings/reindex";
|
||||||
export const API_SEND_MAIL = '/api/v1/mailer';
|
export const API_SEND_MAIL = "/api/v1/mailer";
|
||||||
export const API_LOGIN = '/api/v1/login';
|
export const API_LOGIN = "/api/v1/login";
|
||||||
//** API TASKS **//
|
//** API TASKS **//
|
||||||
export const AUTH_STATUS = 'getAuthStatus';
|
export const AUTH_STATUS = "getAuthStatus";
|
||||||
export const TASK_SETTINGS_WRITE = 'writeSettings';
|
export const TASK_SETTINGS_WRITE = "writeSettings";
|
||||||
export const TASK_PUBLISH_SITE = 'publishSite';
|
export const TASK_PUBLISH_SITE = "publishSite";
|
||||||
export const TASK_PAGE_CREATE = 'createNewPage';
|
export const TASK_PAGE_CREATE = "createNewPage";
|
||||||
export const TASK_PAGE_EDIT = 'editPage';
|
export const TASK_PAGE_EDIT = "editPage";
|
||||||
export const TASK_PAGE_DELETE = 'deletePage';
|
export const TASK_PAGE_DELETE = "deletePage";
|
||||||
export const TASK_SEND_MAIL = 'sendMail';
|
export const TASK_SEND_MAIL = "sendMail";
|
||||||
export const TASK_REINDEX_PAGE = 'reIndexPages';
|
export const TASK_REINDEX_PAGE = "reIndexPages";
|
||||||
export const TASK_SYNC_SETTNIGS = 'syncSite';
|
export const TASK_SYNC_SETTNIGS = "syncSite";
|
||||||
export const TASK_SYNC_NAV = 'syncNav';
|
export const TASK_SYNC_NAV = "syncNav";
|
||||||
export const TASK_GET_SETTINGS = 'getSiteSettings';
|
export const TASK_GET_SETTINGS = "getSiteSettings";
|
||||||
export const TASK_GET_MEMBER_INFO = 'getMemberInfo';
|
export const TASK_GET_MEMBER_INFO = "getMemberInfo";
|
||||||
//** API STATUS **//
|
//** API STATUS **//
|
||||||
export const API_ACCESS_GOOD = 'apiUseAuthorized';
|
export const API_ACCESS_GOOD = "apiUseAuthorized";
|
||||||
export const API_ACCESS_BAD = 'apiUseNotAuthorized';
|
export const API_ACCESS_BAD = "apiUseNotAuthorized";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A can of methods used to edit install settings, navigation pages and content pages
|
* A can of methods used to edit install settings, navigation pages and content pages
|
||||||
|
@ -54,7 +54,7 @@ class FipamoAdminAPI {
|
||||||
if (baseURL) this.baseURL = baseURL;
|
if (baseURL) this.baseURL = baseURL;
|
||||||
//asks server if a session is active
|
//asks server if a session is active
|
||||||
this._request(this.baseURL ? this.baseURL + API_STATUS : API_STATUS).then(
|
this._request(this.baseURL ? this.baseURL + API_STATUS : API_STATUS).then(
|
||||||
response => {
|
(response) => {
|
||||||
if (response.type === API_ACCESS_GOOD) {
|
if (response.type === API_ACCESS_GOOD) {
|
||||||
this.token = response.token;
|
this.token = response.token;
|
||||||
} else {
|
} else {
|
||||||
|
@ -93,10 +93,10 @@ class FipamoAdminAPI {
|
||||||
CONTENT_TYPE_JSON,
|
CONTENT_TYPE_JSON,
|
||||||
data
|
data
|
||||||
)
|
)
|
||||||
.then(result => {
|
.then((result) => {
|
||||||
resolve(result);
|
resolve(result);
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch((err) => {
|
||||||
reject(err);
|
reject(err);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -142,12 +142,12 @@ class FipamoAdminAPI {
|
||||||
*/
|
*/
|
||||||
sync(task, data) {
|
sync(task, data) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let url = '';
|
let url = "";
|
||||||
switch (task) {
|
switch (task) {
|
||||||
case 'syncSite':
|
case "syncSite":
|
||||||
url = API_SETTINGS_SYNC;
|
url = API_SETTINGS_SYNC;
|
||||||
break;
|
break;
|
||||||
case 'syncNav':
|
case "syncNav":
|
||||||
url = API_NAV_SYNC;
|
url = API_NAV_SYNC;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -158,10 +158,10 @@ class FipamoAdminAPI {
|
||||||
CONTENT_TYPE_JSON,
|
CONTENT_TYPE_JSON,
|
||||||
data
|
data
|
||||||
)
|
)
|
||||||
.then(result => {
|
.then((result) => {
|
||||||
resolve(result);
|
resolve(result);
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch((err) => {
|
||||||
reject(err);
|
reject(err);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -193,10 +193,10 @@ class FipamoAdminAPI {
|
||||||
CONTENT_TYPE_JSON,
|
CONTENT_TYPE_JSON,
|
||||||
data
|
data
|
||||||
)
|
)
|
||||||
.then(result => {
|
.then((result) => {
|
||||||
resolve(result);
|
resolve(result);
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch((err) => {
|
||||||
reject(err);
|
reject(err);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -239,18 +239,18 @@ class FipamoAdminAPI {
|
||||||
case TASK_PAGE_CREATE:
|
case TASK_PAGE_CREATE:
|
||||||
url = API_NEW_PAGE;
|
url = API_NEW_PAGE;
|
||||||
event = TASK_PAGE_CREATE;
|
event = TASK_PAGE_CREATE;
|
||||||
content = CONTENT_TYPE_JSON;
|
content = CONTENT_TYPE_FORM;
|
||||||
break;
|
break;
|
||||||
case TASK_PAGE_EDIT:
|
case TASK_PAGE_EDIT:
|
||||||
url = API_EDIT_PAGE;
|
url = API_EDIT_PAGE;
|
||||||
event = TASK_PAGE_EDIT;
|
event = TASK_PAGE_EDIT;
|
||||||
content = CONTENT_TYPE_JSON;
|
content = CONTENT_TYPE_FORM;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TASK_PAGE_DELETE:
|
case TASK_PAGE_DELETE:
|
||||||
url = API_DELETE_PAGE;
|
url = API_DELETE_PAGE;
|
||||||
event = TASK_PAGE_DELETE;
|
event = TASK_PAGE_DELETE;
|
||||||
content = CONTENT_TYPE_JSON;
|
content = CONTENT_TYPE_FORM;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -272,10 +272,10 @@ class FipamoAdminAPI {
|
||||||
content,
|
content,
|
||||||
data
|
data
|
||||||
)
|
)
|
||||||
.then(result => {
|
.then((result) => {
|
||||||
resolve(result);
|
resolve(result);
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch((err) => {
|
||||||
reject(err);
|
reject(err);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -307,10 +307,10 @@ class FipamoAdminAPI {
|
||||||
CONTENT_TYPE_JSON,
|
CONTENT_TYPE_JSON,
|
||||||
message
|
message
|
||||||
)
|
)
|
||||||
.then(result => {
|
.then((result) => {
|
||||||
resolve(result);
|
resolve(result);
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch((err) => {
|
||||||
reject(err);
|
reject(err);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -338,7 +338,7 @@ class FipamoAdminAPI {
|
||||||
|
|
||||||
getInfo(type) {
|
getInfo(type) {
|
||||||
let url, task;
|
let url, task;
|
||||||
if (type == 'site') {
|
if (type == "site") {
|
||||||
url = API_GET_SETTINGS;
|
url = API_GET_SETTINGS;
|
||||||
task = TASK_GET_SETTINGS;
|
task = TASK_GET_SETTINGS;
|
||||||
} else {
|
} else {
|
||||||
|
@ -347,10 +347,10 @@ class FipamoAdminAPI {
|
||||||
}
|
}
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
this._request(this.baseURL ? this.baseURL + url : url, task)
|
this._request(this.baseURL ? this.baseURL + url : url, task)
|
||||||
.then(result => {
|
.then((result) => {
|
||||||
resolve(result);
|
resolve(result);
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch((err) => {
|
||||||
reject(err);
|
reject(err);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -369,16 +369,16 @@ class FipamoAdminAPI {
|
||||||
var self = this;
|
var self = this;
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
var request = new XMLHttpRequest();
|
var request = new XMLHttpRequest();
|
||||||
request.upload.addEventListener('progress', e =>
|
request.upload.addEventListener("progress", (e) =>
|
||||||
self.handleLoadProgress(e, self.progressBar)
|
self.handleLoadProgress(e, self.progressBar)
|
||||||
);
|
);
|
||||||
request.open(requestType, requestURL, true);
|
request.open(requestType, requestURL, true);
|
||||||
request.onload = () => {
|
request.onload = () => {
|
||||||
if (request.status == 200) {
|
if (request.status == 200) {
|
||||||
let response = JSON.parse(request['response']);
|
let response = JSON.parse(request["response"]);
|
||||||
resolve(response);
|
resolve(response);
|
||||||
} else {
|
} else {
|
||||||
let error = JSON.parse(request['response']);
|
let error = JSON.parse(request["response"]);
|
||||||
reject(error);
|
reject(error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -391,13 +391,13 @@ class FipamoAdminAPI {
|
||||||
eventType === TASK_PUBLISH_SITE ||
|
eventType === TASK_PUBLISH_SITE ||
|
||||||
eventType === TASK_REINDEX_PAGE
|
eventType === TASK_REINDEX_PAGE
|
||||||
)
|
)
|
||||||
request.setRequestHeader('fipamo-access-token', self.token);
|
request.setRequestHeader("fipamo-access-token", self.token);
|
||||||
|
|
||||||
switch (contentType) {
|
switch (contentType) {
|
||||||
case CONTENT_TYPE_JSON:
|
case CONTENT_TYPE_JSON:
|
||||||
request.setRequestHeader(
|
request.setRequestHeader(
|
||||||
'Content-type',
|
"Content-type",
|
||||||
'application/' + contentType
|
"application/" + contentType
|
||||||
);
|
);
|
||||||
request.send(JSON.stringify(requestData));
|
request.send(JSON.stringify(requestData));
|
||||||
break;
|
break;
|
||||||
|
@ -410,7 +410,7 @@ class FipamoAdminAPI {
|
||||||
eventType === TASK_GET_SETTINGS ||
|
eventType === TASK_GET_SETTINGS ||
|
||||||
eventType === TASK_GET_MEMBER_INFO
|
eventType === TASK_GET_MEMBER_INFO
|
||||||
) {
|
) {
|
||||||
request.setRequestHeader('fipamo-access-token', self.token);
|
request.setRequestHeader("fipamo-access-token", self.token);
|
||||||
}
|
}
|
||||||
request.send();
|
request.send();
|
||||||
}
|
}
|
||||||
|
@ -424,7 +424,7 @@ class FipamoAdminAPI {
|
||||||
let percent = Math.ceil((e.loaded / e.total) * 100);
|
let percent = Math.ceil((e.loaded / e.total) * 100);
|
||||||
//if a progress bar element is present, talk to it
|
//if a progress bar element is present, talk to it
|
||||||
if (progressBar != null) {
|
if (progressBar != null) {
|
||||||
progressBar.style.width = percent + '%';
|
progressBar.style.width = percent + "%";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue