view release on metacpan or search on metacpan
0.37 2014-04-05
- Added experimental Ado::Command::adduser.
- Small improvements and higher test coverage in Ado::Plugin::Auth.
- Made Ado::Command more consistent with Ado::Plugin.
0.36 2014-03-22
- Improved documentation.
- Added sha1.js from CryptoJS v3.1.2.
- Fixed typos and improved the home page.
- Added a subset of Free Serif font to use the GLAGOLITIC alphabet
directly.
- Upgraded to Mojolicious 4.90.
- Upgraded to Semantic UI 0.15.1
- Shamelessly stollen and modified a background pattern from jQuery UI.
- Added Ado::Plugin::AdoHelpers.
- Added Ado::Control::Test controller for testing plugins.
- Implemented experimental digest access authentication with Ado::Plugin::Auth.
0.35 2014-03-01
- ЧеÑÑиÑа Ðаба ÐаÑÑа!
public/doc/bg/shops.md
public/doc/bg/site_apps.md
public/doc/bg/store.md
public/doc/bg/toc.md
public/doc/bg/users.md
public/doc/en/cover.md
public/doc/en/intro.md
public/doc/en/no_title.md
public/doc/en/toc.md
public/favicon.png
public/fonts/FreeSerif-Glagolitic-UC.woff
public/fonts/README
public/img/5FE59-ado.jpg
public/img/Ado-Building-Blocks.png
public/img/Ado-Building-Blocks.svg
public/index.html
public/js/auth.js
public/js/help_toc.js
public/js/jquery.cookie.js
public/vendor/crypto-js/rollups/sha1.js
public/vendor/pagedown/LICENSE.txt
public/vendor/pagedown/Markdown.Converter.js
lib/Ado/Manual/Intro.pod view on Meta::CPAN
â  âââ Sessions # Server side sessions - e.g. Ado::Sessions::Database
âââ log # Log directory
âââ public # Static file directory (served automatically)
â  â # Good for generated static pages served by e.g. Apache or Nginx
â  âââ css
â  â  âââ flags
â  âââ doc
â  â  âââ bg
â  â  â  âââ img
â  â  âââ en
â  âââ fonts
â  âââ img
â  âââ js
â  âââ vendor # Directory for putting vendor specific JavaScript libraries
â  âââ crypto-js
â  â  âââ rollups
â  âââ pagedown
âââ site_templates # Template directory for site specific templates, used instead
â # of those with the same name found in templates directory
âââ t # Test directory
â  âââ ado
lib/Ado/Plugin/AdoHelpers.pm view on Meta::CPAN
C<$c-E<gt>stash('head_css')> and C<app-E<gt>stash('head_javascript')>. The new
assets are only appended if they are not already present in the corresponding
list of assets. The defaults are populated in C<etc/ado.conf>. See also:
L<Mojolicious/defaults>; L<Mojolicious::Plugin::AssetPack>.
#in a template:
#append
<%
head_css([
'vendor/SemanticUI/components/popup.min.css'
'#myid { font-size:xx-small }'
]);
head_javascript([
'vendor/SemanticUI/components/popup.min.js'
'jQuery( function($){ $('#ado-img').popup() })'
]);
%>
<!-- or -->
# or
% head_javascript begin
jQuery( function($){ $('#ado-img').popup() });
% end;
# render in templates/partials/head.html.ep
%== head_css;
<link href="css/ado.css" rel='stylesheet' type='text/css' />
<link href='//fonts.googleapis.com/css?family=Ubuntu&subset=latin,cyrillic'
rel='stylesheet' type='text/css' />
%== head_javascript;
=head2 to_json
Suitable for preparing JavaScript
objects from Perl references that will be used from stash and in templates.
my $chars = $c->to_json({name =>'ÐеÑÑÑ',id=>2});
$c->stash(user_as_js => $chars);
public/css/ado.css view on Meta::CPAN
@charset "UTF-8";
/* ado.css */
@font-face
{
font-family: FreeSerif;
src: url(../fonts/FreeSerif-Glagolitic-UC.woff);
}
body, body.ui.pushable{
font-family: 'Ubuntu', sans-serif;
margin: 0;
color: #46400D;
background-color: #fff;
background-image: url(ui-bg_diagonal-maze_light_10x10.png);
}
h1,h2,h3,h4 {
margin-bottom: 0.5em;
margin-top: 1em;
}
h1 {
public/css/ado.css view on Meta::CPAN
position: relative;
margin: auto;
min-width: 460px;
width: 98%;
max-width: 1024px;
box-shadow: 0px 0px 5px #aaa;
background: #FAFAFA;
border-radius: 0.25em;
/* top right bottom left */
padding: 2em 1em 1em 1em;
font-size: 1.3em;
}
aside#toc ul {
padding: 0;
margin: 0;
}
aside#toc li {
list-style: none inside none;
padding: 0 0 0 1.2ex;
}
article.main.container li {
margin-bottom:0.5em ;
}
/*
aside#toc li a {
font-size: 1.1em;
}
*/
a {
color: rgb(0, 159, 218);
text-decoration: none;
}
a.footnote {
vertical-align: super;
font-size: 0.8em;
font-weight: bolder;
}
a.icon.ado.popup.visible {
font-family: FreeSerif;
}
i.icon.ado{
font-family: FreeSerif;
text-shadow:2px 2px 2px #aaa;
font-weight: bolder;
}
i.icon.ado:before {
content: "â°";
}
.ÑÑ,.ne,.Ñ,.Ñ {display: none; visibility: hidden;}
.ui.hidden {
display: none;
}
/* box-shadow: none|h-shadow v-shadow blur spread color |inset|initial|inherit; */
#ado-img {
box-shadow: 1px 1px 0.1em 0.1em #aaa;
border: 1px #aaa outset;
}
.small {font-size: small}
code {
color: #993;
white-space: nowrap;
}
section.login_form {
padding-top: 2em;
margin: auto;
min-width: 300px;
width: 80%;
max-width: 600px;
public/doc/bg/img/default_admin_screen.epz view on Meta::CPAN
<stop style="stop-color: rgb(192, 192, 192); stop-opacity: 1;" offset="0" p:name="stop1" id="97ba4839a4a8438c832d3b69c28106b0"/>
<stop style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" offset="1" p:name="stop2" id="4f79e103cdb646b8a85a0656bf5af6c8"/>
</linearGradient>
<rect width="1025" height="75" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: url("#36be4582de964e90968b9d4a8d0823fa") none; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="65fcfb10486244958422f3bb...
<filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="36fe3410734e42e0a6254778df8c1601">
<feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
</filter>
</defs>
<use xlink:href="#65fcfb10486244958422f3bb02cdb947" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#36fe3410734e42e0a6254778df8c1601)" style="opacity: 0.5; visibility: hidden; display: none;" p:heavy=...
<use xlink:href="#65fcfb10486244958422f3bb02cdb947" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<foreignObject x="4.6875" y="38" width="1015.62" height="0" p:name="text" id="2590d4e6d9b8435ca672185452f3421e" style="font-family: Arial; font-size: 13px; font-weight: normal; font-style: normal; text-decoration: none; color: rgb(0, 0, 0...
</div></foreignObject>
</g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.NativeGUI:TabBox" id="6ff879e699b24995aa71b74c272f566f" transform="matrix(1,0,0,1,1,36)"><p:metadata><p:property name="box"...
<foreignObject x="0" y="0" width="976" height="506" p:name="htmlObject" id="66a6f4f3ef2e468b9e711d6f75acab97" style="font-family: "Liberation Sans",Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal; text...
<html:div xmlns:html="http://www.w3.org/1999/xhtml" style="-moz-box-sizing: border-box; overflow: hidden; position: relative; width: 976px; height: 506px;" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" p:name="...
<tabbox flex="1" style="pointer-events: none; margin: 0px ! important; width: 976px; height: 506px; font-family: "Liberation Sans",Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal; text-decorati...
<tabs p:name="tabs" id="72c551467bcc459aa1f0d9c6db590ff3"><tab label="УпÑавление" selected="true"/><tab label="СайÑ" selected="false"/><tab label="ÐокÑпки" selected="false"/><tab label="ÐÑодажби" sel...
<tabpanels flex="1">
<tabpanel/>
</tabpanels>
</tabbox>
<html:div style="position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;"></html:div>
</html:div>
</foreignObject>
</g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.NativeGUI:Listbox" id="211483412b4d45a2909ff2958f3e05c6" transform="matrix(1,0,0,1,1,60)"><p:metadata><p:property name="box...
ÐоÑÑебиÑели]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|normal|normal|13px|none]]></p:property></p:metadata>
<foreignObject x="0" y="0" width="140" height="478" p:name="htmlObject" id="b86902bea256473ebad2901ae3d49f8c" style="">
<html:div xmlns:html="http://www.w3.org/1999/xhtml" style="-moz-box-sizing: border-box; overflow: hidden; position: relative; font-size: 0px; width: 140px; height: 478px;" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.on...
<listbox style="margin: 0px ! important; min-width: 0px ! important; -moz-box-sizing: border-box; vertical-align: middle; width: 140px; height: 478px; font-family: "Liberation Sans",Arial,sans-serif; font-size: 13px; fon...
<html:div style="position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;"></html:div>
</html:div>
</foreignObject>
</g></Content></Page></Pages></Document>
public/fonts/README view on Meta::CPAN
This folder contains some additional fonts and subset of fonts.
The subsets are made by typing the needed letters into an OpenDocument file,
exporting it to PDF then extracting the embedded subset using
http://onlinefontconverter.com/
Currently we have:
A subset from the Free Serif font containing only the uppercase letters from
the GLAGOLITIC Alphabet (the first Slavic alphabet)
FreeSerif-Glagolitic-UC.woff
https://www.gnu.org/software/freefont/license.html
We use it for Ado codenames.
See also: http://en.wikipedia.org/wiki/Saints_Cyril_and_Methodius#Invention_of_the_Glagolitic_and_Cyrillic_alphabets
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
x="35.602814"
height="74.794373"
width="952.79437"
id="rect4552"
style="fill:none;stroke:#000000;stroke-width:1.20562422;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
sodipodi:linespacing="125%"
id="text4554"
y="715.87109"
x="132.35156"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="715.87109"
x="132.35156"
id="tspan4556"
sodipodi:role="line">Linux, Mac OSX, Free BSD, Windows...</tspan></text>
</g>
<rect
style="fill:none;stroke:#000000;stroke-width:0.7151494;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4560"
width="404.99161"
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
width="443.17566"
height="75.175659"
x="35.41217"
y="583.41211"
ry="12.407634" />
<text
sodipodi:linespacing="125%"
id="text4562"
y="635.91205"
x="219.45117"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="635.91205"
x="219.45117"
id="tspan4564"
sodipodi:role="line">Perl</tspan></text>
</g>
<text
xml:space="preserve"
style="font-size:32.77528381px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="401.50366"
y="662.63531"
id="text4566"
sodipodi:linespacing="125%"
transform="scale(0.99424176,1.0057916)"><tspan
sodipodi:role="line"
id="tspan4568"
x="401.50366"
y="662.63531"
style="font-size:26.2202282px">SQLite, MySQL, Postgre SQL</tspan></text>
<g
id="g4592"
transform="matrix(0.81466395,0,0,0.82412767,-18.737277,147.41433)">
<rect
style="fill:none;stroke:#000000;stroke-width:1.20562422;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4570"
width="952.79437"
height="74.794373"
x="35.602814"
y="497.60278"
ry="12.344703" />
<text
sodipodi:linespacing="125%"
id="text4572"
y="546.03516"
x="400.75"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="546.03516"
x="400.75"
id="tspan4574"
sodipodi:role="line">Mojolicious</tspan></text>
</g>
<g
id="g4599"
transform="matrix(0.81466395,0,0,0.82412767,-18.737277,147.41433)">
<rect
ry="12.344703"
y="409.60278"
x="35.602814"
height="74.794373"
width="952.79437"
id="rect4576"
style="fill:none;stroke:#000000;stroke-width:1.20562422;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="77.723633"
y="456.93161"
id="text4578"
sodipodi:linespacing="125%"><tspan
style="font-size:36px"
sodipodi:role="line"
id="tspan4580"
x="77.723633"
y="456.93161">Ado framework = Ado App + Mojolicious Plugins</tspan></text>
</g>
<g
id="g4706"
transform="matrix(0.81466395,0,0,0.82412767,-13.453267,147.41433)">
<rect
style="fill:none;stroke:#000000;stroke-width:2.65525556;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
height="363.34473"
x="31.841515"
y="38.327599"
ry="59.969524" />
<text
transform="scale(1.2786835,0.78205437)"
sodipodi:linespacing="125%"
id="text4635"
y="482.72614"
x="46.371292"
style="font-size:37.7113533px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:60.3381691px;fill:#cccccc"
y="482.72614"
x="46.371292"
id="tspan4637"
sodipodi:role="line">Ado-based applications</tspan></text>
<g
transform="matrix(1,0,0,0.85391604,0,6.7183252)"
id="g4663">
<rect
style="fill:none;stroke:#000000;stroke-width:0.97899681;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4623"
width="135.02098"
height="348.02097"
x="46.456173"
y="45.989479"
ry="57.440357" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-372.00681"
y="123.8983"
id="text4639"
sodipodi:linespacing="125%"
transform="matrix(0,-1,1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan4641"
x="-372.00681"
y="123.8983"
style="font-size:36px">Ado::Plugin::Vest</tspan></text>
</g>
<g
transform="matrix(1,0,0,0.85391604,0,6.7183252)"
id="g4676">
<rect
ry="57.440357"
y="45.989479"
x="204.49136"
height="348.02097"
width="135.02098"
id="rect4625"
style="fill:none;stroke:#000000;stroke-width:0.97899681;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
transform="matrix(0,-1,1,0,0,0)"
sodipodi:linespacing="125%"
id="text4643"
y="281.9335"
x="-367.61227"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:36px"
y="281.9335"
x="-367.61227"
id="tspan4645"
sodipodi:role="line">Ado::Plugin::Site</tspan></text>
</g>
<g
transform="matrix(1,0,0,0.85391604,0,6.7183252)"
id="g4696">
<rect
style="fill:none;stroke:#000000;stroke-width:0.97899681;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4627"
width="135.02098"
height="348.02097"
x="362.52655"
y="45.989479"
ry="57.440357" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-380.40427"
y="439.41693"
id="text4647"
sodipodi:linespacing="125%"
transform="matrix(0,-1,1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan4649"
x="-380.40427"
y="439.41693"
style="font-size:34px">Ado::Plugin::Admin</tspan></text>
</g>
<g
transform="matrix(1,0,0,0.85391604,0,6.7183252)"
id="g4691">
<rect
ry="57.440357"
y="45.989479"
x="520.56177"
height="348.02097"
width="135.02098"
id="rect4629"
style="fill:none;stroke:#000000;stroke-width:0.97899681;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
transform="matrix(0,-1,1,0,0,0)"
sodipodi:linespacing="125%"
id="text4651"
y="598.00391"
x="-378.30856"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:36px"
y="598.00391"
x="-378.30856"
id="tspan4653"
sodipodi:role="line">Ado::Plugin::Shop</tspan></text>
</g>
<g
transform="matrix(1,0,0,0.85391604,0,6.7183252)"
id="g4686">
<rect
style="fill:none;stroke:#000000;stroke-width:0.97899681;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4631"
width="135.02098"
height="348.02097"
x="678.59692"
y="45.989479"
ry="57.440357" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-371.72165"
y="755.4873"
id="text4655"
sodipodi:linespacing="125%"
transform="matrix(0,-1,1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan4657"
x="-371.72165"
y="755.4873"
style="font-size:34px">Ado::Plugin::Store</tspan></text>
</g>
<rect
style="fill:none;stroke:#000000;stroke-width:0.90466726;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4633"
width="135.02098"
height="297.18069"
x="836.63208"
y="45.989479"
ry="49.049244" />
<text
xml:space="preserve"
style="font-size:36.96303177px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-342.90289"
y="844.3244"
id="text4659"
sodipodi:linespacing="125%"
transform="matrix(0,-0.9240758,1.0821623,0,0,0)"><tspan
sodipodi:role="line"
id="tspan4661"
x="-342.90289"
y="844.3244"
style="font-size:32px">Ado::Plugin::XYZ</tspan></text>
</g>
</g>
</svg>
templates/partials/apache2htaccess.ep view on Meta::CPAN
# If your site is running in a VirtualDocumentRoot at http://example.com/,
# use the following line:
# RewriteBase /
# Otherwise set RewriteBase to the subdirectory where your site is, e.g. /<%=$moniker%>.
# RewriteBase /<%=$moniker%>
# Redirect all requests for Ado static files to public/ directory.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^((css|doc|fonts|img|js|vendor|favicon|index)\b.*)$ /public/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /bin/<%=$moniker%>/$1 [L]
</IfModule>
templates/partials/head.html.ep view on Meta::CPAN
<base href="<%= $base_url %>" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="generator" content="<%= $self->generator %>" />
<meta name="description" content="<%= $description %>" />
<meta name="keywords" content="<%= $keywords %>" />
<title><%= title %></title>
<link rel="icon" href="<%=$base_url%>/favicon.png" type="image/png" />
%== head_css
<link href="css/ado.css" rel='stylesheet' type='text/css' />
<link href='//fonts.googleapis.com/css?family=Ubuntu&subset=latin,cyrillic' rel='stylesheet' type='text/css' />
%== head_javascript