source upload
This commit is contained in:
@@ -0,0 +1,167 @@
|
||||
/*
|
||||
* Globals
|
||||
*/
|
||||
|
||||
body {
|
||||
font-family: Georgia, "Times New Roman", Times, serif;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
h1, .h1,
|
||||
h2, .h2,
|
||||
h3, .h3,
|
||||
h4, .h4,
|
||||
h5, .h5,
|
||||
h6, .h6 {
|
||||
margin-top: 0;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-weight: normal;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Override Bootstrap's default container.
|
||||
*/
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.container {
|
||||
width: 970px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Masthead for nav
|
||||
*/
|
||||
|
||||
.blog-masthead {
|
||||
background-color: #428bca;
|
||||
-webkit-box-shadow: inset 0 -2px 5px rgba(0,0,0,.1);
|
||||
box-shadow: inset 0 -2px 5px rgba(0,0,0,.1);
|
||||
}
|
||||
|
||||
/* Nav links */
|
||||
.blog-nav-item {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
padding: 10px;
|
||||
font-weight: 500;
|
||||
color: #cdddeb;
|
||||
}
|
||||
.blog-nav-item:hover,
|
||||
.blog-nav-item:focus {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Active state gets a caret at the bottom */
|
||||
.blog-nav .active {
|
||||
color: #fff;
|
||||
}
|
||||
.blog-nav .active:after {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin-left: -5px;
|
||||
vertical-align: middle;
|
||||
content: " ";
|
||||
border-right: 5px solid transparent;
|
||||
border-bottom: 5px solid;
|
||||
border-left: 5px solid transparent;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Blog name and description
|
||||
*/
|
||||
|
||||
.blog-header {
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.blog-title {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 0;
|
||||
font-size: 60px;
|
||||
font-weight: normal;
|
||||
}
|
||||
.blog-description {
|
||||
font-size: 20px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Main column and sidebar layout
|
||||
*/
|
||||
|
||||
.blog-main {
|
||||
font-size: 18px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
/* Sidebar modules for boxing content */
|
||||
.sidebar-module {
|
||||
padding: 15px;
|
||||
margin: 0 -15px 15px;
|
||||
}
|
||||
.sidebar-module-inset {
|
||||
padding: 15px;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.sidebar-module-inset p:last-child,
|
||||
.sidebar-module-inset ul:last-child,
|
||||
.sidebar-module-inset ol:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Pagination */
|
||||
.pager {
|
||||
margin-bottom: 60px;
|
||||
text-align: left;
|
||||
}
|
||||
.pager > li > a {
|
||||
width: 140px;
|
||||
padding: 10px 20px;
|
||||
text-align: center;
|
||||
border-radius: 30px;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Blog posts
|
||||
*/
|
||||
|
||||
.blog-post {
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
.blog-post-title {
|
||||
margin-bottom: 5px;
|
||||
font-size: 40px;
|
||||
}
|
||||
.blog-post-meta {
|
||||
margin-bottom: 20px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Footer
|
||||
*/
|
||||
|
||||
.blog-footer {
|
||||
padding: 40px 0;
|
||||
color: #999;
|
||||
text-align: center;
|
||||
background-color: #f9f9f9;
|
||||
border-top: 1px solid #e5e5e5;
|
||||
}
|
||||
.blog-footer p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 510 B |
@@ -0,0 +1,7 @@
|
||||
{{! void template created for the IBlogApplication.ArticleEdit View:
|
||||
defined as
|
||||
procedure ArticleEdit(const ID: integer; const Title: RawUTF8; const Content: RawUTF8; out Article: TSQLArticle);
|
||||
with the following data context:
|
||||
* Main: variant
|
||||
* Article: TSQLArticle
|
||||
}}
|
@@ -0,0 +1,51 @@
|
||||
{{>header}}
|
||||
{{>masthead}}
|
||||
<div class="blog-header">
|
||||
<h1 class="blog-title">{{article.title}}</h1>
|
||||
<div class="lead blog-description">
|
||||
Written by <a href="authorView?id={{article.Author}}">{{article.AuthorName}}</a> ({{author.FirstName}} {{author.FamilyName}}) on {{TimeLogToText article.CreatedAt}}<br />
|
||||
{{#article.tags}}<a href="default?scope={tag:{{.}}}" class="label label-info">{{TagToText .}}</a> {{/article.tags}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-8 blog-main">
|
||||
{{#article}}
|
||||
{{#ContentHtml}}{{{abstract}}}{{/ContentHtml}}{{^ContentHtml}}{{{WikiToHtml abstract}}}{{/ContentHtml}}
|
||||
<hr>
|
||||
{{#ContentHtml}}{{{content}}}{{/ContentHtml}}{{^ContentHtml}}{{{WikiToHtml content}}}{{/ContentHtml}}
|
||||
{{/article}}
|
||||
<hr>
|
||||
<ul class="pager">
|
||||
<li class="previous"><a href="ArticleView?id={{Article.ID}}&withComments={{withComments}}&direction=1">← Previous</a></li>
|
||||
<li class="next"><a href="ArticleView?id={{Article.ID}}&withComments={{withComments}}&direction=2">Next →</a></li>
|
||||
</ul>
|
||||
<a name="comments"></a>
|
||||
{{#WithComments}}
|
||||
{{#Comments}}
|
||||
<blockquote>
|
||||
<p><strong>{{Title}}</strong></p>
|
||||
<p>{{#ContentHtml}}{{{Content}}}{{/ContentHtml}}{{^ContentHtml}}{{{WikiToHtml Content}}}{{/ContentHtml}}</p>
|
||||
<footer>Commented on {{TimeLogToText CreatedAt}} by <a href="authorView?id={{Author}}">{{AuthorName}}</a></<footer>
|
||||
</blockquote>
|
||||
<hr>
|
||||
{{/Comments}}
|
||||
{{^Comments}}<blockquote>No comment yet.</blockquote>{{/Comments}}
|
||||
<p><a href="ArticleView?id={{Article.ID}}#comments" class="btn btn-primary btn-sm">Hide Comments</a></p>
|
||||
{{#main.session.AuthorRights.Comment}}
|
||||
<a name="addComment"></a>
|
||||
<form class="form-horizontal" action="ArticleComment#addComment" method="post">
|
||||
<div class="form-group">
|
||||
{{#Scope}}<div class="alert alert-danger">{{CommentError}}</div>{{/Scope}}
|
||||
<input type="hidden" name="id" value={{Article.ID}}>
|
||||
<input type="text" class="form-control" name="title" placeholder="Title" value="{{Scope.CommentTitle}}">
|
||||
<textarea class="form-control" name="comment" rows="7" placeholder="Enter a new comment here">{{Scope.CommentContent}}</textarea>
|
||||
<button type="submit" class="btn btn-primary btn-sm">Add Comment</a>
|
||||
</div>
|
||||
</form>
|
||||
{{/main.session.AuthorRights.Comment}}
|
||||
</p>
|
||||
{{/WithComments}}
|
||||
{{^WithComments}}
|
||||
<p><a href="ArticleView?id={{Article.ID}}&withComments=true#comments" class="btn btn-primary btn-sm">Show Comments</a></p>
|
||||
{{/WithComments}}
|
||||
{{>footer}}
|
@@ -0,0 +1,15 @@
|
||||
{{>header}}
|
||||
{{>masthead}}
|
||||
<div class="blog-header">
|
||||
<h1 class="blog-title">User {{Author.LogonName}}</h1>
|
||||
<div class="lead blog-description">{{Author.FirstName}} {{Author.FamilyName}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-8 panel">
|
||||
<div class="panel-heading">Information about <strong>{{Author.LogonName}}</strong></div>
|
||||
<div class="panel-body">
|
||||
{{{TSQLAuthor.HtmlTable Author}}}
|
||||
</div>
|
||||
{{>articlerow}}
|
||||
{{>footer}}
|
@@ -0,0 +1,18 @@
|
||||
{{>header}}
|
||||
{{>masthead}}
|
||||
<div class="blog-header">
|
||||
<h1 class="blog-title">{{main.blog.title}}</h1>
|
||||
<p class="lead blog-description">{{main.blog.description}}</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-8 blog-main">
|
||||
{{#Scope}}
|
||||
{{>articlerow}}
|
||||
{{#lastID}}
|
||||
<p><a href="default?scope={lastID:{{.}},tag:{{tag}}}" class="btn btn-primary btn-sm">Previous Articles</a></p>
|
||||
{{/lastID}}
|
||||
{{#lastrank}}
|
||||
<p><a href="default?scope={lastrank:{{.}},match:{{{JSONQuoteURI match}}}}" class="btn btn-primary btn-sm">Previous Articles</a></p>
|
||||
{{/lastrank}}
|
||||
{{/Scope}}
|
||||
{{>footer}}
|
@@ -0,0 +1,15 @@
|
||||
{{>header}}
|
||||
{{>masthead}}
|
||||
<div class="blog-header">
|
||||
<h1 class="blog-title">Error Page</h1>
|
||||
</div>
|
||||
<div class="blog-main">
|
||||
<p>{{#errorCode}}Low-level <b>#{{errorCode}}</b>{{/errorCode}} Error occurred with the following message:</p>
|
||||
<pre>{{msg}}</pre>
|
||||
{{#exception}}
|
||||
<p>The following Exception did occur:</p>
|
||||
<pre>{{exception}}</pre>
|
||||
{{/exception}}
|
||||
<p>Error context:</p><pre>{{originalErrorContext}}</pre>
|
||||
</div>
|
||||
{{>footer}}
|
@@ -0,0 +1,16 @@
|
||||
{{#articles}}
|
||||
<div class="blog-post">
|
||||
<h2 class="blog-post-title"><a href=articleView?id={{id}}>{{Title}}</a></h2>
|
||||
<p class="blog-post-meta">
|
||||
{{TimeLogToText CreatedAt}} by <a href="authorView?id={{Author}}">{{AuthorName}}</a><br />
|
||||
{{#Tags}}<a href="default?scope={tag:{{.}}}" class="label label-info">{{TagToText .}}</a> {{/Tags}}
|
||||
</p>
|
||||
{{#ContentHtml}}{{{Abstract}}}{{/ContentHtml}}{{^ContentHtml}}{{{WikiToHtml Abstract}}}{{/ContentHtml}}
|
||||
<p><a href=articleView?id={{id}} class="label label-primary">Read More</a></p>
|
||||
</div>
|
||||
{{/articles}}
|
||||
{{^articles}}
|
||||
<div class="blog-post">
|
||||
<p>There is no more article corresponding to this research criteria.</p>
|
||||
</div>
|
||||
{{/articles}}
|
@@ -0,0 +1,29 @@
|
||||
</div>
|
||||
<div class="col-sm-3 col-sm-offset-1 blog-sidebar">
|
||||
<div class="sidebar-module sidebar-module-inset">
|
||||
<h4>About</h4>
|
||||
{{{WikiToHtml main.blog.about}}}
|
||||
</div>
|
||||
<div class="sidebar-module">
|
||||
<h4>Archives</h4>
|
||||
<ol class="list-unstyled">
|
||||
{{#main.archives}}
|
||||
<li><a href="default?scope={lastID:{{FirstID}}}">{{MonthToText PublishedMonth}}</a></li>
|
||||
{{/main.archives}}
|
||||
</ol>
|
||||
</div>
|
||||
<div class="sidebar-module">
|
||||
<h4>Tags</h4>
|
||||
{{#main.tags}}
|
||||
<a href="default?scope={tag:{{tagID}}}" class="btn btn-info btn-xs">{{ident}} <span class="badge">{{occurence}}</span></a>
|
||||
{{/main.tags}}
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- container -->
|
||||
<div class="blog-footer">
|
||||
<p>Proudly using the Open Source <a href="http://mormot.net">mORMot ORM/SOA/MVC Framework</a>.<br>
|
||||
<small>{{{main.blog.copyright}}} - page generated in [[GENERATION_TIME_TAG]]</small></p>
|
||||
<p><a href="#">Back to top</a></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -0,0 +1,14 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{main.blog.language}}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="ROBOTS" content="INDEX, FOLLOW" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="{{main.blog.description}}">
|
||||
<meta name="copyright" content="{{{main.blog.copyright}}}" />
|
||||
<meta name="author" content="{{#Author}}{{FirstName}}{{FamilyName}}{{/Author}}">
|
||||
<link rel="icon" href=".static/blog.ico">
|
||||
<title>{{pageTitle}}{{^pageTitle}}{{main.blog.title}} {{pageName}}{{/pageTitle}}</title>
|
||||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href=".static/blog.css" rel="stylesheet">
|
@@ -0,0 +1,47 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="blog-masthead">
|
||||
<div class="navbar navbar-default navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#navbar-main">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<div class="navbar-left">
|
||||
<a class="navbar-brand" href="default">{{main.blog.title}}</a>
|
||||
</div>
|
||||
<div class="navbar-form navbar-right">
|
||||
<form action="articleMatch" method="post">
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control" name="match" placeholder="Search Expression">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<center>
|
||||
<div class="navbar-collapse collapse" id="navbar-main">
|
||||
{{#main.session}}
|
||||
<div class="navbar-right">
|
||||
<form class="navbar-form" action="logout">
|
||||
<span class="navbar-text">Signed in as <a href=AuthorView?id={{AuthorID}}>{{AuthorName}}</a></span>
|
||||
<button class="btn" type="submit">Logout</button>
|
||||
</form>
|
||||
</div>
|
||||
{{/main.session}}
|
||||
{{^main.session}}
|
||||
<form class="navbar-form navbar-right" action="login" method="post">
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control" name="LogonName" placeholder="Username">
|
||||
<input type="password" class="form-control" name="PlainPassword" placeholder="Password">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-default">Sign In</button>
|
||||
</form>
|
||||
{{/main.session}}
|
||||
</div>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
Reference in New Issue
Block a user