Ado

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN


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
    - Честита Баба Марта!

MANIFEST  view on Meta::CPAN

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&amp;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(&quot;#36be4582de964e90968b9d4a8d0823fa&quot;) 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: &quot;Liberation Sans&quot;,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: &quot;Liberation Sans&quot;,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: &quot;Liberation Sans&quot;,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&amp;subset=latin,cyrillic' rel='stylesheet' type='text/css' />
    %== head_javascript



( run in 0.910 second using v1.01-cache-2.11-cpan-ceb78f64989 )