work on setup wizard
This commit is contained in:
parent
31cd11ad60
commit
970bc1e33d
1
app.js
1
app.js
|
@ -7,6 +7,7 @@ angular.module('myApp', [
|
||||||
'myApp.authors',
|
'myApp.authors',
|
||||||
'myApp.site',
|
'myApp.site',
|
||||||
'myApp.build',
|
'myApp.build',
|
||||||
|
'myApp.configure',
|
||||||
'myApp.create',
|
'myApp.create',
|
||||||
'myApp.version',
|
'myApp.version',
|
||||||
'myApp.services'
|
'myApp.services'
|
||||||
|
|
|
@ -109,6 +109,7 @@
|
||||||
<script src="./views/about/about.js"></script>
|
<script src="./views/about/about.js"></script>
|
||||||
<script src="./views/authors/authors.js"></script>
|
<script src="./views/authors/authors.js"></script>
|
||||||
<script src="./views/site/site.js"></script>
|
<script src="./views/site/site.js"></script>
|
||||||
|
<script src="./views/configure/configure.js"></script>
|
||||||
<script src="./views/build/build.js"></script>
|
<script src="./views/build/build.js"></script>
|
||||||
<script src="./views/create/create.js"></script>
|
<script src="./views/create/create.js"></script>
|
||||||
<script src="components/desirae/desirae.js"></script>
|
<script src="components/desirae/desirae.js"></script>
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="page-header">
|
||||||
|
<h1>Site Configuration</h1>
|
||||||
|
<h3><span ng-bind="Site.blogdir"></span></h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form class="form-horizontal">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="well bs-component">
|
||||||
|
<fieldset>
|
||||||
|
<legend>Advanced</legend>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputRootConf" class="col-lg-2 control-label">Root Pages</label>
|
||||||
|
<div class="col-lg-8">
|
||||||
|
<input type="text" class="form-control" id="inputRootConf" placeholder="i.e. images">
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2">
|
||||||
|
<button class="btn" type="button">Add</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputThemesConf" class="col-lg-2 control-label">Themes</label>
|
||||||
|
<div class="col-lg-8">
|
||||||
|
<input type="text" class="form-control" id="inputThemesConf" placeholder="i.e. images">
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2">
|
||||||
|
<button class="btn" type="button">Add</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputCollectionsConf" class="col-lg-2 control-label">Collections</label>
|
||||||
|
<div class="col-lg-8">
|
||||||
|
<input type="text" class="form-control" id="inputCollectionsConf" placeholder="i.e. images">
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2">
|
||||||
|
<button class="btn" type="button">Add</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputAssetsConf" class="col-lg-2 control-label">Assets</label>
|
||||||
|
<div class="col-lg-8">
|
||||||
|
<input type="text" class="form-control" id="inputAssetsConf" placeholder="i.e. images">
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2">
|
||||||
|
<button class="btn" type="button">Add</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputWidgetsConf" class="col-lg-2 control-label">Widgets</label>
|
||||||
|
<div class="col-lg-8">
|
||||||
|
<input type="text" class="form-control" id="inputWidgetsConf" placeholder="i.e. images">
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2">
|
||||||
|
<button class="btn" type="button">Add</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
|
@ -0,0 +1,13 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('myApp.configure', ['ngRoute'])
|
||||||
|
|
||||||
|
.config(['$routeProvider', function($routeProvider) {
|
||||||
|
$routeProvider.when('/configure', {
|
||||||
|
templateUrl: 'views/configure/configure.html',
|
||||||
|
controller: 'ConfigureCtrl as Configure'
|
||||||
|
});
|
||||||
|
}])
|
||||||
|
|
||||||
|
.controller('ConfigureCtrl', [function() {
|
||||||
|
}]);
|
|
@ -1,12 +1,13 @@
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="page-header">
|
<div class="page-header">
|
||||||
<h1>Blog Configuration</h1>
|
<h1>Site Configuration</h1>
|
||||||
<h3><span ng-bind="Site.blogdir"></span></h3>
|
<h3><span ng-bind="Site.blogdir"></span><button class="btn btn-primary pull-right" type="submit" form="formSiteConf">Save & Continue</button></h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form class="form-horizontal">
|
|
||||||
|
<form id="formSiteConf" class="form-horizontal" ng-submit="Site.upsert()">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<div class="well bs-component">
|
<div class="well bs-component">
|
||||||
|
@ -14,55 +15,91 @@
|
||||||
<legend>General</legend>
|
<legend>General</legend>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputBlogTitle" class="col-lg-2 control-label">Title</label>
|
<label for="inputBlogTitle" class="col-lg-3 control-label">Title</label>
|
||||||
<div class="col-lg-10">
|
<div class="col-lg-9">
|
||||||
<input type="text" class="form-control" id="inputBlogTitle" placeholder="My Awesome Blog" ng-model="Site.title">
|
<input
|
||||||
|
ng-model="Site.site.title"
|
||||||
|
type="text" class="form-control" id="inputBlogTitle" placeholder="My Awesome Blog">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputBlogTagline" class="col-lg-2 control-label">Tagline</label>
|
<label for="inputBlogTagline" class="col-lg-3 control-label">Tagline</label>
|
||||||
<div class="col-lg-10">
|
<div class="col-lg-9">
|
||||||
<input type="text" class="form-control" id="inputBlogTagline" placeholder="For try-hard ethical master cleanse, 3 wolf moon Tumblr, disrupt lo-fi, narwhals and kale chips. YOLO." ng-model="Site.tagline">
|
<input
|
||||||
|
ng-model="Site.site.tagline"
|
||||||
|
type="text" class="form-control" id="inputBlogTagline"
|
||||||
|
placeholder="i.e. I have not failed, I've just found 10,000 ways that do not work.">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</fieldset>
|
<div class="row">
|
||||||
</div>
|
<div class="col-lg-12">
|
||||||
</div>
|
<div class="form-group">
|
||||||
</div>
|
<label for="inputSiteDesc" class="col-lg-3 control-label">Description
|
||||||
|
<small>(<span ng-bind="Site.site.description.length || 0"></span>/140)</small></label>
|
||||||
|
<div class="col-lg-9">
|
||||||
|
<textarea ng-model="Site.site.description"
|
||||||
|
class="form-control" id="inputSiteDesc" placeholder="i.e. For tips and tricks for try-hard ethical master cleanses, 3 wolf moons on Tumblr, disruptive lo-fi, preserving narwhals and eating kale chips, etc. YOLO."></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- TODO -->
|
||||||
|
<!--
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputProdUrl" class="col-lg-3 control-label">URL</label>
|
||||||
|
<div class="col-lg-9">
|
||||||
|
<input
|
||||||
|
ng-model="Site.site.url"
|
||||||
|
ng-change="Site.updateUrls()"
|
||||||
|
placeholder="i.e. https://example.com/myblog"
|
||||||
|
type="url"
|
||||||
|
class="form-control"
|
||||||
|
id="inputProdUrl">
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-12">
|
|
||||||
<div class="well bs-component">
|
|
||||||
<fieldset>
|
|
||||||
<legend>Production</legend>
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputProdHost" class="col-lg-3 control-label">Base URL</label>
|
<label for="inputProdHost" class="col-lg-3 control-label">Base URL</label>
|
||||||
<div class="col-lg-9">
|
<div class="col-lg-9">
|
||||||
<input ng-model="Site.base_url"
|
<input ng-model="Site.site.base_url"
|
||||||
placeholder="i.e. https://example.com in https://example.com/myblog"
|
placeholder="i.e. https://example.com in https://example.com/myblog"
|
||||||
type="text" class="form-control" id="inputProdHost">
|
type="url"
|
||||||
|
class="form-control"
|
||||||
|
id="inputProdHost">
|
||||||
|
<br/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputProdBase" class="col-lg-3 control-label">Base Path</label>
|
<label for="inputProdBase" class="col-lg-3 control-label">Base Path</label>
|
||||||
<div class="col-lg-9">
|
<div class="col-lg-9">
|
||||||
<input ng-model="Site.base_path"
|
<input ng-model="Site.site.base_path"
|
||||||
placeholder="i.e. /blog in https://example.com/blog"
|
placeholder="i.e. /blog in https://example.com/blog"
|
||||||
type="text" class="form-control" id="inputProdBase">
|
type="text"
|
||||||
|
class="form-control"
|
||||||
|
id="inputProdBase">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputProdOutput" class="col-lg-3 control-label">Output Path</label>
|
<label for="inputProdOutput" class="col-lg-3 control-label">Output Path</label>
|
||||||
<div class="col-lg-9">
|
<div class="col-lg-9">
|
||||||
<input type="text" class="form-control" id="inputProdOutput" disabled placeholder="./compiled">
|
<input
|
||||||
|
ng-value="Site.blogdir + '/compiled'"
|
||||||
|
type="text" class="form-control" id="inputProdOutput" disabled>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -70,61 +107,89 @@
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<div class="well bs-component">
|
<div class="well bs-component">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Advanced</legend>
|
<legend>Development</legend>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputRootConf" class="col-lg-2 control-label">Root Pages</label>
|
<label for="inputDevHost" class="col-lg-3 control-label">Base URL</label>
|
||||||
<div class="col-lg-8">
|
<div class="col-lg-9">
|
||||||
<input type="text" class="form-control" id="inputRootConf" placeholder="i.e. images">
|
<input
|
||||||
</div>
|
value="https://local.dear.desi:65080"
|
||||||
<div class="col-lg-2">
|
type="url"
|
||||||
<button class="btn" type="button">Add</button>
|
class="form-control"
|
||||||
|
id="inputDevHost"
|
||||||
|
disabled>
|
||||||
|
<br/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputThemesConf" class="col-lg-2 control-label">Themes</label>
|
<label for="inputDevBase" class="col-lg-3 control-label">Base Path</label>
|
||||||
<div class="col-lg-8">
|
<div class="col-lg-9">
|
||||||
<input type="text" class="form-control" id="inputThemesConf" placeholder="i.e. images">
|
<input
|
||||||
</div>
|
value="/compiled_dev"
|
||||||
<div class="col-lg-2">
|
placeholder="i.e. /blog in https://example.com/blog"
|
||||||
<button class="btn" type="button">Add</button>
|
type="text" class="form-control" id="inputDevBase"
|
||||||
|
disabled>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="inputCollectionsConf" class="col-lg-2 control-label">Collections</label>
|
<label for="inputDevOutput" class="col-lg-3 control-label">Output Path</label>
|
||||||
<div class="col-lg-8">
|
<div class="col-lg-9">
|
||||||
<input type="text" class="form-control" id="inputCollectionsConf" placeholder="i.e. images">
|
<input
|
||||||
</div>
|
ng-value="Site.blogdir + '/compiled_dev'"
|
||||||
<div class="col-lg-2">
|
type="text"
|
||||||
<button class="btn" type="button">Add</button>
|
class="form-control"
|
||||||
|
id="inputDevOutput"
|
||||||
|
disabled>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
</fieldset>
|
||||||
<label for="inputAssetsConf" class="col-lg-2 control-label">Assets</label>
|
|
||||||
<div class="col-lg-8">
|
|
||||||
<input type="text" class="form-control" id="inputAssetsConf" placeholder="i.e. images">
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-2">
|
|
||||||
<button class="btn" type="button">Add</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="inputWidgetsConf" class="col-lg-2 control-label">Widgets</label>
|
|
||||||
<div class="col-lg-8">
|
|
||||||
<input type="text" class="form-control" id="inputWidgetsConf" placeholder="i.e. images">
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-2">
|
|
||||||
<button class="btn" type="button">Add</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</fieldset>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="well bs-component">
|
||||||
|
<fieldset>
|
||||||
|
<legend>Plugins</legend>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputGoogleAnalyticsId" class="col-lg-3 control-label">Google Analytics ID</label>
|
||||||
|
<div class="col-lg-9">
|
||||||
|
<input
|
||||||
|
ng-model="Site.site.google_analytics_tracking_id"
|
||||||
|
placeholder="i.e. UA-XXXYYYZZ-1"
|
||||||
|
type="text"
|
||||||
|
class="form-control"
|
||||||
|
id="inputGoogleAnalyticsId"
|
||||||
|
>
|
||||||
|
<br/>
|
||||||
|
<small>Found in the Admin section of Google Analytics</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="inputDisqusShortname" class="col-lg-3 control-label">Disqus Shortname</label>
|
||||||
|
<div class="col-lg-9">
|
||||||
|
<input
|
||||||
|
ng-model="Site.site.disqus_shortname"
|
||||||
|
placeholder="i.e. johndoe-blog"
|
||||||
|
type="text" class="form-control" id="inputDisqusShortname"
|
||||||
|
>
|
||||||
|
<br/>
|
||||||
|
<small>Found under Admin > Settings in Disqus</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button class="btn btn-primary pull-right" type="submit">Save & Continue</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -13,14 +13,45 @@ angular.module('myApp.site', ['ngRoute'])
|
||||||
var scope = this
|
var scope = this
|
||||||
;
|
;
|
||||||
|
|
||||||
console.log('desi loading');
|
|
||||||
Desirae.meta().then(function (desi) {
|
function init() {
|
||||||
console.log('desi loaded');
|
console.log('desi loading');
|
||||||
console.log(desi);
|
Desirae.meta().then(function (desi) {
|
||||||
scope.blogdir = desi.blogdir.path.replace(/^\/(Users|home)\/[^\/]+\//, '~/');
|
scope.blogdir = desi.blogdir.path.replace(/^\/(Users|home)\/[^\/]+\//, '~/');
|
||||||
}).catch(function (e) {
|
scope.site = desi.site;
|
||||||
window.alert("An Error Occured. Most errors that occur in the init phase are parse errors in the config files or permissions errors on files or directories, but check the error console for details.");
|
}).catch(function (e) {
|
||||||
console.error(e);
|
window.alert("An Error Occured. Most errors that occur in the init phase are parse errors in the config files or permissions errors on files or directories, but check the error console for details.");
|
||||||
throw e;
|
console.error(e);
|
||||||
});
|
throw e;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
scope.upsert = function () {
|
||||||
|
console.log('yolo!');
|
||||||
|
return;
|
||||||
|
var author = scope.selectedAuthor
|
||||||
|
, files = []
|
||||||
|
, filename = author.filename
|
||||||
|
;
|
||||||
|
|
||||||
|
delete author.filename;
|
||||||
|
if ('new' !== filename && filename !== author.handle) {
|
||||||
|
files.push({ path: 'authors/' + filename + '.yml', contents: '', delete: true });
|
||||||
|
}
|
||||||
|
files.push({ path: 'authors/' + author.handle + '.yml', contents: window.jsyaml.dump(author) });
|
||||||
|
|
||||||
|
console.log(files);
|
||||||
|
|
||||||
|
Desirae.putFiles(files).then(function (results) {
|
||||||
|
console.log('updated author', results);
|
||||||
|
$location.path('/post');
|
||||||
|
}).catch(function (e) {
|
||||||
|
author.filename = filename;
|
||||||
|
console.error(e);
|
||||||
|
window.alert("Error Nation! :/");
|
||||||
|
throw e;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
init();
|
||||||
}]);
|
}]);
|
||||||
|
|
Loading…
Reference in New Issue