refactored settings methodology, added theme settings files, initiated settings page

This commit is contained in:
Ro 2018-12-11 12:35:29 -05:00
parent 3845ca9552
commit 069854d041
17 changed files with 186 additions and 568 deletions

View file

@ -1,4 +1,3 @@
var express = require('express');
import DateUtils from '../../tools/utilities/DateUtils';
import StringUtils from '../../tools/utilities/StringUtils';
import * as DataEvent from '../../tools/events/DataEvent';
@ -17,6 +16,7 @@ import RightsManager,
OBJECT_POST
}
from '../../tools/utilities/RightsManager';
const express = require('express');
const router = express.Router();
const multer = require('multer');
const md = require('markdown-it')('commonmark');

View file

@ -44,6 +44,7 @@ app.use(flash());
var front = require('./routes/front/index')(session);
var back = require('./routes/back/index');
var postDashboard = require('./routes/back/dash_posts');
var settingsDashboard = require('./routes/back/dash_settings');
//api
var postLibrary = require('./api/content/posts');
var mailer = require('./api/content/mailer');
@ -54,6 +55,7 @@ app.use('/api/post', postLibrary);
app.use('/', front);
app.use('/@/dashboard', back);
app.use('/@/dashboard/posts', postDashboard);
app.use('/@/dashboard/settings', settingsDashboard);
//app.use('/mailer', mailer);
// catch 404 and forward to error handler
app.use(function(req, res, next)

View file

@ -0,0 +1,50 @@
const express = require('express');
const router = express.Router();
const FileHound = require('filehound');
const Models = require('../../models');
const fs = require("fs-extra");
var themes = [];
var settings = [];
//--------------------------
// SETTINGS
//--------------------------
router.get('/', function(req, res)
{
fs.readJson('site-settings.json').then(obj =>
{
settings = obj;
}).catch(err =>
{
//console.error(err)
})
FileHound.create().paths('themes').ext('json').find().then(files =>
{
for (let index = 0; index < files.length; index++)
{
fs.readJson(files[index]).then(theme =>
{
(theme.name == settings.theme) ? themes.push({theme: theme, current:true}) : themes.push({theme: theme, current:false})
}).catch(err =>
{
//console.error(err)
})
}
});
if (req.session.user)
{
let memberInfo = [];
memberInfo.push({handle:req.session.user.handle, email:req.session.user.email, avi:req.session.user.avatar});
res.render('dash/settings',
{
title: 'Dashboard | Settings',
themes: themes,
settings: settings,
member: memberInfo[0]
});
}
else
{
res.redirect('/@/dashboard');
}
});
module.exports = router;

View file

@ -9,8 +9,6 @@ router.get('/', function(req, res)
{
var loggedIn = false
if (req.session.user) loggedIn = true;
Models.FreshPost.sync().then(f =>
{
Models.FreshPost.findAll(
{
order: [
@ -45,28 +43,6 @@ router.get('/', function(req, res)
{
//next(err);
})
}).catch(err =>
{
console.log("ERR: " + err);
})
});
//--------------------------
// SETTINGS
//--------------------------
router.get('/settings/', function(req, res)
{
if (req.session.user)
{
res.render('dash/settings',
{
title: 'Dashboard | Settings',
mode: 'admin'
});
}
else
{
res.redirect('/@/dashboard');
}
});
//--------------------------
// Login

View file

@ -1,7 +1,7 @@
var express = require('express');
var router = express.Router();
var Models = require('../../models');
var config = require('../../../config.json');
var config = require('../../../site-settings.json');
module.exports = function (session) {
//--------------------------
// Index

View file

@ -1,59 +0,0 @@
import TransformEffects from './TransformEffects.jsx';
class Slideshow{
//--------------------------
// constructor
//--------------------------
constructor(slides)
{
this.slides = slides;
var timer = null;
this.slideIndex = 0;
for(let i of slides)
{
new TransformEffects().rotateY(i, 0, 90, "top right");
i.style.opacity = 1;
}
this.start();
}
//--------------------------
// methods
//--------------------------
start()
{
new TransformEffects().rotateY(this.slides[this.slideIndex], 1, 0, "top right");
this.startTimer()
}
startTimer()
{
var self = this;
this.timer = setTimeout(f=>
{
self.slideTranstion();
}, 4000);
}
slideTranstion()
{
new TransformEffects().rotateY(this.slides[this.slideIndex], 1, 90, "top right");
++this.slideIndex;
if(this.slideIndex > this.slides.length-1)
this.slideIndex = 0;
new TransformEffects().rotateY(this.slides[this.slideIndex], 1, 0, "top right");
this.startTimer();
}
setDisplayType()
{
}
//--------------------------
// eventhandlers
//--------------------------
}
export {Slideshow as default}

252
package-lock.json generated
View file

@ -1771,8 +1771,7 @@
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"base": {
"version": "0.11.2",
@ -1895,19 +1894,10 @@
}
}
},
"boom": {
"version": "2.10.1",
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
"requires": {
"hoek": "2.x.x"
}
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@ -2239,8 +2229,7 @@
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"concat-stream": {
"version": "1.6.2",
@ -2364,14 +2353,6 @@
}
}
},
"cryptiles": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
"integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
"requires": {
"boom": "2.x.x"
}
},
"css-parse": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz",
@ -2699,6 +2680,11 @@
"brfs": "^1.4.3"
}
},
"err-code": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz",
"integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA="
},
"es5-ext": {
"version": "0.10.46",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
@ -3089,11 +3075,34 @@
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
},
"file-js": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/file-js/-/file-js-0.3.0.tgz",
"integrity": "sha1-+rRr94I0bJKUSZ8fDSrQfYOPJdE=",
"requires": {
"bluebird": "^3.4.7",
"minimatch": "^3.0.3",
"proper-lockfile": "^1.2.0"
}
},
"file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
},
"filehound": {
"version": "1.16.5",
"resolved": "https://registry.npmjs.org/filehound/-/filehound-1.16.5.tgz",
"integrity": "sha512-pMGt+Fl/msSDMBU/3/jUtNkBvDKAeRb0eIrhyz3qB/gqFSGqWMrExCGfgTJjtch9YEKYTi1Z/N5Tpuzfj/pkBg==",
"requires": {
"bluebird": "^3.5.1",
"file-js": "0.3.0",
"lodash": "^4.17.10",
"minimatch": "^3.0.4",
"moment": "^2.22.1",
"unit-compare": "^1.0.1"
}
},
"fill-range": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
@ -3961,17 +3970,6 @@
"integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
"dev": true
},
"hawk": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
"integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
"requires": {
"boom": "2.x.x",
"cryptiles": "2.x.x",
"hoek": "2.x.x",
"sntp": "1.x.x"
}
},
"he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
@ -3983,11 +3981,6 @@
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz",
"integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A=="
},
"hoek": {
"version": "2.16.3",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
},
"html-encoding-sniffer": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
@ -4428,14 +4421,6 @@
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"json-stable-stringify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
"integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
"requires": {
"jsonify": "~0.0.0"
}
},
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
@ -4455,11 +4440,6 @@
"graceful-fs": "^4.1.6"
}
},
"jsonify": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
"integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM="
},
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
@ -4804,7 +4784,6 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@ -5448,6 +5427,17 @@
"with-callback": "^1.0.2"
}
},
"proper-lockfile": {
"version": "1.2.0",
"resolved": "http://registry.npmjs.org/proper-lockfile/-/proper-lockfile-1.2.0.tgz",
"integrity": "sha1-zv9d2J0+XxD7deHo52vHWAGlnDQ=",
"requires": {
"err-code": "^1.0.0",
"extend": "^3.0.0",
"graceful-fs": "^4.1.2",
"retry": "^0.10.0"
}
},
"proto-list": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
@ -5861,6 +5851,11 @@
"integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
"dev": true
},
"retry": {
"version": "0.10.1",
"resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz",
"integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q="
},
"retry-as-promised": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-2.3.2.tgz",
@ -5944,140 +5939,6 @@
"integrity": "sha1-io6pbtN0G4WpKgSCQuniBxyePLE=",
"dev": true
},
"scrape-metadata": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/scrape-metadata/-/scrape-metadata-2.0.0.tgz",
"integrity": "sha1-fr9sO14F211ZzX6I/G8auTuIL/4=",
"requires": {
"htmlparser2": "3.9.2",
"request": "2.81.0"
},
"dependencies": {
"ajv": {
"version": "4.11.8",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
"integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
"requires": {
"co": "^4.6.0",
"json-stable-stringify": "^1.0.1"
}
},
"assert-plus": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
"integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
},
"aws-sign2": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
"integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8="
},
"form-data": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
"integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.5",
"mime-types": "^2.1.12"
}
},
"har-schema": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
"integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4="
},
"har-validator": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
"integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
"requires": {
"ajv": "^4.9.1",
"har-schema": "^1.0.5"
}
},
"htmlparser2": {
"version": "3.9.2",
"resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
"integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
"requires": {
"domelementtype": "^1.3.0",
"domhandler": "^2.3.0",
"domutils": "^1.5.1",
"entities": "^1.1.1",
"inherits": "^2.0.1",
"readable-stream": "^2.0.2"
}
},
"http-signature": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
"integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
"requires": {
"assert-plus": "^0.2.0",
"jsprim": "^1.2.2",
"sshpk": "^1.7.0"
}
},
"oauth-sign": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
"integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
},
"performance-now": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
"integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU="
},
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
},
"qs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
"integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM="
},
"request": {
"version": "2.81.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
"integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
"requires": {
"aws-sign2": "~0.6.0",
"aws4": "^1.2.1",
"caseless": "~0.12.0",
"combined-stream": "~1.0.5",
"extend": "~3.0.0",
"forever-agent": "~0.6.1",
"form-data": "~2.1.1",
"har-validator": "~4.2.1",
"hawk": "~3.1.3",
"http-signature": "~1.1.0",
"is-typedarray": "~1.0.0",
"isstream": "~0.1.2",
"json-stringify-safe": "~5.0.1",
"mime-types": "~2.1.7",
"oauth-sign": "~0.8.1",
"performance-now": "^0.2.0",
"qs": "~6.4.0",
"safe-buffer": "^5.0.1",
"stringstream": "~0.0.4",
"tough-cookie": "~2.3.0",
"tunnel-agent": "^0.6.0",
"uuid": "^3.0.0"
}
},
"tough-cookie": {
"version": "2.3.4",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
"integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
"requires": {
"punycode": "^1.4.1"
}
}
}
},
"semver": {
"version": "4.3.2",
"resolved": "http://registry.npmjs.org/semver/-/semver-4.3.2.tgz",
@ -6463,14 +6324,6 @@
"kind-of": "^3.2.0"
}
},
"sntp": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
"integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
"requires": {
"hoek": "2.x.x"
}
},
"socks": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/socks/-/socks-2.2.1.tgz",
@ -6657,11 +6510,6 @@
"safe-buffer": "~5.1.0"
}
},
"stringstream": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz",
"integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA=="
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@ -7014,6 +6862,14 @@
"integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
"dev": true
},
"unit-compare": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/unit-compare/-/unit-compare-1.0.1.tgz",
"integrity": "sha1-DHRZ8OW/U2N+qHPKPO4Y3i7so4Y=",
"requires": {
"moment": "^2.14.1"
}
},
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",

View file

@ -32,6 +32,7 @@
"esm": "^3.0.84",
"express": "^4.16.4",
"express-session": "^1.15.6",
"filehound": "^1.16.5",
"fs-extra": "latest",
"highlight.js": "^9.13.1",
"jsdom": "^12.2.0",
@ -48,7 +49,6 @@
"reframe.js": "^2.2.1",
"request": "^2.88.0",
"sanitize-html": "^1.19.1",
"scrape-metadata": "^2.0.0",
"sequelize": "^4.37.6",
"sequelize-cli": "^5.3.0",
"serve-favicon": "latest",

17
site-settings.json Normal file
View file

@ -0,0 +1,17 @@
{
"url": "http://fipamo.local/",
"description":"The most chill blog framework ever.",
"theme": "default",
"private": false,
"email": {
"smtp": {
"domain":"",
"email": "",
"password": ""
},
"mailgun": {
"domain": "",
"api-key": ""
}
}
}

View file

@ -1907,175 +1907,6 @@ svg.icons {
}
/**
-------------------------------
-- Fipamo
-------------------------------
**/
#bm-content {
width: 100%;
max-width: 1024px;
margin: 0 auto;
}
#bm-content #header-two {
font: 400 1.5em $bodyType;
}
#bm-content #bookmark-display {
padding: 0;
}
#bm-content #bookmark-display .bookmark-list .bookmark-entry {
background: #1e272f;
width: 50%;
height: 500px;
background-size: cover;
overflow: hidden;
display: inline-block;
vertical-align: top;
padding: 10px;
}
#bm-content #bookmark-display .bookmark-list .bookmark-entry .bookmark-info {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
}
#bm-content #bookmark-display .bookmark-list .bookmark-entry .bookmark-info label {
display: block;
font-size: 0.5em;
padding: 10px;
background: #374857;
border-radius: 5px;
}
#bm-content #bookmark-display .bookmark-list #paginate-control {
width: 100%;
height: 300px;
background: #3b4e5e;
display: flex;
align-items: center;
justify-content: center;
}
#bm-content #bookmark-display .bookmark-list #paginate-control #paginate {
margin: 0 auto;
}
#bm-content #bookmark-display .bookmark-list #paginate-control #paginate a,
#bm-content #bookmark-display .bookmark-list #paginate-control #paginate label {
display: inline-block;
vertical-align: top;
}
#bm-content #bookmark-display .bookmark-list #paginate-control #paginate label {
padding: 5px;
color: #f5ab35;
font-size: 2.2em;
}
#bm-content #bookmark-display .bookmark-list #paginate-control #paginate a {
padding: 20px;
margin-top: 4px;
}
@media only screen and (max-width: 768px) {
#bm-content #bookmark-display .bookmark-list .bookmark-entry {
width: 100%;
}
}
/**
-------------------------------
-- Folio
-------------------------------
**/
#work-content {
width: 100%;
max-width: 1024px;
margin: 0 auto;
}
#work-content #header #header-two p {
font: 400 1.5em $bodyType;
}
#work-content #header #header-two p span {
color: #b2cce5;
}
#work-content #work-display {
padding: 0;
margin: 0 0 40px 0;
opacity: 0;
}
#work-content #work-list .work-item {
width: 50%;
height: 300px;
display: inline-block;
vertical-align: top;
background-size: cover;
background-color: #f5ab35;
color: #f5ab35;
}
#work-content #work-list .work-item span {
font: 600 0.7em $titleType;
}
#work-content #work-contact #contact-form {
opacity: 1;
}
#work-content #work-contact #contact-form label {
font: 600 0.8em $titleType;
color: #fc6399;
margin: 0 0 15px 0;
display: block;
}
#work-content #work-contact #contact-form #request-form input[type=email],
#work-content #work-contact #contact-form #request-form input[type=password],
#work-content #work-contact #contact-form #request-form input[type=text] {
width: 100%;
margin: 0 10px 10px 0;
}
#work-content #work-contact #contact-form #request-form select {
width: 100%;
margin-bottom: 10px;
}
#work-content #work-contact #contact-form #request-form textarea {
width: 100%;
}
#work-content #work-contact #contact-info label#request-status {
font: 600 0.8em $titleType;
color: #fc6399;
margin: 0 0 15px 0;
display: block;
text-transform: uppercase;
}
#work-content #work-contact #contact-info p {
font: 400 1em $bodyType;
color: #f5ab35;
}
#work-content #work-contact #contact-info p i {
color: #fc6399;
}
#project-content {
width: 100%;
max-width: 1024px;
margin: 0 auto;
}
#project-content #project-display {
padding: 0 20px 20px 20px;
}
#project-content #project-display #project-info span {
font: 400 2em $titleType;
color: #f2f1ef;
}
#project-content #project-display #project-desc {
font: 300 1.2em $bodyType;
color: #f5ab35;
}
#project-content #project-images {
margin: 10px 0 0 0;
opacity: 1;
}
#project-content #project-images .folio-image {
width: 100%;
margin: 0 0 50px 0;
opacity: 0;
}
@media screen and (max-width: 768px) {
#work-content #work-list .work-item {
width: 100%;
}
}
/**
-------------------------------
-- Forms
-------------------------------
**/

File diff suppressed because one or more lines are too long

View file

@ -8225,7 +8225,7 @@ function () {
exports.default = PostEditor;
PostEditor.uploadFiles = [];
},{"../../../../../brain/tools/utilities/DataUtils":"../../../../brain/tools/utilities/DataUtils.js","../../../../../brain/tools/events/DataEvent":"../../../../brain/tools/events/DataEvent.js","../actions/PostActions":"actions/PostActions.js","../../../../../brain/tools/events/EditorEvent":"../../../../brain/tools/events/EditorEvent.js","tiny-date-picker":"../../../../node_modules/tiny-date-picker/dist/tiny-date-picker.js","../../../../../brain/tools/utilities/DateUtils":"../../../../brain/tools/utilities/DateUtils.js","../../../../../brain/tools/ui/TextEditor":"../../../../brain/tools/ui/TextEditor.js","../../../../../brain/tools/utilities/DBUtils":"../../../../brain/tools/utilities/DBUtils.js"}],"../../../../brain/tools/effects/Animate.js":[function(require,module,exports) {
},{"../../../../../brain/tools/utilities/DataUtils":"../../../../brain/tools/utilities/DataUtils.js","../../../../../brain/tools/events/DataEvent":"../../../../brain/tools/events/DataEvent.js","../actions/PostActions":"actions/PostActions.js","../../../../../brain/tools/events/EditorEvent":"../../../../brain/tools/events/EditorEvent.js","tiny-date-picker":"../../../../node_modules/tiny-date-picker/dist/tiny-date-picker.js","../../../../../brain/tools/utilities/DateUtils":"../../../../brain/tools/utilities/DateUtils.js","../../../../../brain/tools/ui/TextEditor":"../../../../brain/tools/ui/TextEditor.js","../../../../../brain/tools/utilities/DBUtils":"../../../../brain/tools/utilities/DBUtils.js"}],"controllers/PostIndex.js":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
@ -8233,70 +8233,6 @@ Object.defineProperty(exports, "__esModule", {
});
exports.default = void 0;
var _EventEmitter2 = _interopRequireDefault(require("../events/EventEmitter"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
var Animate =
/*#__PURE__*/
function (_EventEmitter) {
_inherits(Animate, _EventEmitter);
//--------------------------
// constructor
//--------------------------
function Animate() {
_classCallCheck(this, Animate);
return _possibleConstructorReturn(this, _getPrototypeOf(Animate).call(this));
} //--------------------------
// methods
//--------------------------
_createClass(Animate, [{
key: "object",
value: function object(properties) {
var animation = anime(properties); //animation.start(properties);
} //--------------------------
// event handlers
//--------------------------
}]);
return Animate;
}(_EventEmitter2.default);
var _default = Animate;
exports.default = _default;
},{"../events/EventEmitter":"../../../../brain/tools/events/EventEmitter.js"}],"controllers/PostIndex.js":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _Animate = _interopRequireDefault(require("../../../../../brain/tools/effects/Animate"));
var _PostEditor = _interopRequireDefault(require("./PostEditor"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@ -8354,7 +8290,7 @@ function () {
}();
exports.default = PostIndex;
},{"../../../../../brain/tools/effects/Animate":"../../../../brain/tools/effects/Animate.js","./PostEditor":"controllers/PostEditor.js"}],"controllers/DashManager.js":[function(require,module,exports) {
},{"./PostEditor":"controllers/PostEditor.js"}],"controllers/DashManager.js":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
@ -8362,10 +8298,6 @@ Object.defineProperty(exports, "__esModule", {
});
exports.default = void 0;
var _PostEditor = _interopRequireDefault(require("./PostEditor"));
var _Animate = _interopRequireDefault(require("../../../../../brain/tools/effects/Animate"));
var _PostIndex = _interopRequireDefault(require("./PostIndex"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@ -8424,7 +8356,7 @@ function () {
}();
exports.default = DashManager;
},{"./PostEditor":"controllers/PostEditor.js","../../../../../brain/tools/effects/Animate":"../../../../brain/tools/effects/Animate.js","./PostIndex":"controllers/PostIndex.js"}],"Base.js":[function(require,module,exports) {
},{"./PostIndex":"controllers/PostIndex.js"}],"Base.js":[function(require,module,exports) {
"use strict";
Object.defineProperty(exports, "__esModule", {
@ -8463,8 +8395,7 @@ function () {
this.dashManager = [];
this.dataUtils = new _DataUtils.default();
this.dbUtils = new _DBUtils.default();
this.settings = []; //this.cacheAssets();
this.settings = [];
this.storeLocalData();
}
@ -8499,18 +8430,6 @@ function () {
}).catch(function (err) {
console.log(err);
});
}
}, {
key: "cacheAssets",
value: function cacheAssets() {
if ('serviceWorker' in navigator) {
window.addEventListener('load', function () {
navigator.serviceWorker.register('https://fipamo.local/tim-duncan.js?' + Math.round(new Date().getTime() / 1000)).then(function (registration) {//console.log('Service worker successfully registered on scope', registration.scope);
}).catch(function (error) {//console.log('Service worker failed to register');
});
});
} else {//console.log("NOPE")
}
} //--------------------------
// event handlers
//--------------------------
@ -8558,7 +8477,7 @@ var parent = module.bundle.parent;
if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {
var hostname = "" || location.hostname;
var protocol = location.protocol === 'https:' ? 'wss' : 'ws';
var ws = new WebSocket(protocol + '://' + hostname + ':' + "60349" + '/');
var ws = new WebSocket(protocol + '://' + hostname + ':' + "51778" + '/');
ws.onmessage = function (event) {
var data = JSON.parse(event.data);

File diff suppressed because one or more lines are too long

View file

@ -2,5 +2,16 @@ extends frame
block main-content
#settings-index
#settings-index-wrapper
h2 Settings
#member-avatar-drop
img(src="")
input(id="avatar-upload" type="file" name="avatar-image-upload")
input(type='text', name='handle' class='settings-handle', placeholder='handle', value=member.handle, autofocus)
input(type='text', name='email' class='settings-email', placeholder='email', value=member.email, autofocus)
br
input(type='text', name='base-url' class='settings-url', placeholder='url', value=settings.url, autofocus)
textarea(id="settings_desc" type='text', name='settings_desc' class='settings-dec', placeholder='description stuff', autofocus)
=settings.description
br
button#privacy-toggle SITE IS PUBLIC

View file

@ -1,4 +1,5 @@
$primary = #374857;
//$primary = #200317; deep purple
$secondary = #b2cce5;
$tertiary = #f5ab35;
$highlight = #fc6399;

View file

@ -0,0 +1,7 @@
{
"name": "default",
"display-name":"Fipama Oh Won",
"author": "Are0h",
"description": "The most dangerous default theme in the known universe.",
"version": "1.0.0"
}

View file

@ -0,0 +1,7 @@
{
"name": "the-twelfth-house",
"display-name":"The Twelfth House",
"author": "Are0h",
"description": "The official theme for the personal site of Ro, The Twelfth House",
"version": "3.0.0"
}