Ado

 view release on metacpan or  search on metacpan

lib/Ado/Plugin/AdoHelpers.pm  view on Meta::CPAN

        $assets = [$assets] unless ref($assets) eq 'ARRAY';
        foreach my $a (@$assets) {
            push @$assets_list, $a unless first { $_ eq $a } @$assets_list;
        }
        return;
    }

    # render
    my $css = '';

    #everything in separate stylesheet begin end block or <link>
    foreach my $a (@$assets_list) {
        if ($a =~ $file_re) {    # a file
            $css .= qq|<link href="$a" rel='stylesheet' type='text/css' />\n|;
        }
        elsif (ref $a eq 'CODE') {    # a code
            $css .= $c->stylesheet($a) . $/;
        }
        else {                        # a string
            $css .= $c->stylesheet(sub {$a}) . $/;
        }
    }
    return $css;
}

sub _head_javascript {
    my ($c, $assets) = @_;
    my $assets_list = $c->stash('head_javascript');

    #append

lib/Ado/Plugin/AdoHelpers.pm  view on Meta::CPAN

    ]);
  %>
  <!-- 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);
  # in a javascript chunk of a template

public/css/ado.css  view on Meta::CPAN

  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;
}
*/

public/doc/bg/img/default_admin_screen.epz  view on Meta::CPAN

<?xml version="1.0"?>
<Document xmlns="http://www.evolus.vn/Namespace/Pencil"><Properties/><Pages><Page><Properties><Property name="name">Untitled Page</Property><Property name="id">1391472647609_5759</Property><Property name="width">980</Property><Property name="height">...
                ]]></p:property><p:property name="textFont"><![CDATA[Arial|normal|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>

            <defs>
                <linearGradient x1="0%" y1="0%" x2="0%" y2="100%" p:name="linearFill" id="36be4582de964e90968b9d4a8d0823fa">
                    <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/doc/en/intro.md  view on Meta::CPAN

  2. Mojolicious::Plugin::Charset – UTF-8.
  3. Mojolicious::Plugin::DSC – a plugin which integrates DBIx::Simple::Class in the application.  DBIx::Simple::Class is a very lightweight object-relational mapper based on  DBIx::Simple. It abstracts the SQL from the programmer still allowing to...
  4. Ado::Plugin::Auth is a plugin that authenticates users to an Ado system. Users can be authenticated locally or using (TODO!) Facebook, Google, Twitter and other authentication service-providers. A pre-made login form can be used directly or as a...
  5. Ado::Plugin::MarkdownRenderer - Render static files in markdown format. One can create a personal blog or enterprise wiki using static files in markdown format.
3. The following libraries for user-interface development are used:
  1. Semantic UI – a CSS and JS framework for development of mobile-ready layouts. Its usage also results in more clean HTML than other popular frameworks.
  2. PageDown is the version of Attacklab's Showdown and WMD as used on Stack Overflow and the other Stack Exchange sites. It includes a converter that turns Markdown into HTML, a Markdown editor with realtime preview of the generated HTML, and a few...
4. The following Ado specific commands are available:
  1. Ado::Command::adduser allows adding users to an Ado application via a terminal. It also allows adding users to existing or not existing groups. The new group is automatically created.
  2. Ado::Command::version shows version information for installed core and optional modules.
1. Last but not least, Ado code is well covered with tests. Special care is taken to avoid accumulating technical debt by having Test::Perl::Critic tests set to level “harsh”. This way the coding style is forced to be consistent across the framew...

Here is how an Ado system looks like from architectural point of view:

![Ado building blocks](/img/Ado-Building-Blocks.png "Ado building blocks")

##Installation/Deployment
The most flexible way to install Ado is manually on the command line.
It is highly recommended to have a separate Perl distribution (not the one that comes with your OS).
ActivePerl or perlbrew are both fine. 

public/img/Ado-Building-Blocks.svg  view on Meta::CPAN

        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g
     id="layer1"
     inkscape:label="Layer 1"
     inkscape:groupmode="layer"
     transform="translate(0,-168)">
    <rect
       style="fill:#ffffff;stroke:#000000;stroke-width:1.63876426000000008;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
       id="rect3782"
       width="798.37067"
       height="598.31671"
       x="0.81465793"
       y="168.84164"
       ry="28.02034"
       inkscape:export-xdpi="72"
       inkscape:export-ydpi="72" />
    <g
       id="g4587"
       transform="matrix(0.81466395,0,0,0.82412767,-18.737277,147.41433)">
      <rect
         ry="12.344703"
         y="665.60278"
         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"
       height="61.914406"
       x="379.98889"
       y="628.24036"
       ry="10.218884" />
    <g
       id="g4582"
       transform="matrix(0.81466395,0,0,0.82412767,-18.737277,147.41433)">
      <rect
         style="fill:none;stroke:#000000;stroke-width:0.82433641;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
         id="rect4558"
         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"
         id="rect4597"
         width="951.34473"
         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>

public/vendor/pagedown/Markdown.Converter.js  view on Meta::CPAN

                    <!
                    (--(?:|(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)   // see http://www.w3.org/TR/html-markup/syntax.html#comments and http://meta.stackoverflow.com/q/95256
                    >
                    [ \t]*
                    (?=\n{2,})                                  // followed by a blank line
                )
            /g,hashElement);
            */
            text = text.replace(/\n\n[ ]{0,3}(<!(--(?:|(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>[ \t]*(?=\n{2,}))/g, hashElement);

            // PHP and ASP-style processor instructions (<?...?> and <%...%>)

            /*
            text = text.replace(/
                (?:
                    \n\n            // Starting after a blank line
                )
                (                   // save in $1
                    [ ]{0,3}        // attacklab: g_tab_width - 1
                    (?:
                        <([?%])     // $2

public/vendor/pagedown/Markdown.Converter.js  view on Meta::CPAN

            });

            return text;
        }

        function _DoAnchors(text) {
            //
            // Turn Markdown link shortcuts into XHTML <a> tags.
            //
            //
            // First, handle reference-style links: [link text] [id]
            //

            /*
            text = text.replace(/
                (                           // wrap whole match in $1
                    \[
                    (
                        (?:
                            \[[^\]]*\]      // allow brackets nested one level
                            |

public/vendor/pagedown/Markdown.Converter.js  view on Meta::CPAN

                    \[
                    (.*?)                   // id = $3
                    \]
                )
                ()()()()                    // pad remaining backreferences
            /g, writeAnchorTag);
            */
            text = text.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g, writeAnchorTag);

            //
            // Next, inline-style links: [link text](url "optional title")
            //

            /*
            text = text.replace(/
                (                           // wrap whole match in $1
                    \[
                    (
                        (?:
                            \[[^\]]*\]      // allow brackets nested one level
                            |

public/vendor/pagedown/Markdown.Converter.js  view on Meta::CPAN

                        [ \t]*              // ignore any spaces/tabs between closing quote and )
                    )?                      // title is optional
                    \)
                )
            /g, writeAnchorTag);
            */

            text = text.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()<?((?:\([^)]*\)|[^()\s])*?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, writeAnchorTag);

            //
            // Last, handle reference-style shortcuts: [link text]
            // These must come last in case you've also got [link test][1]
            // or [link test](/foo)
            //

            /*
            text = text.replace(/
                (                   // wrap whole match in $1
                    \[
                    ([^\[\]]+)      // link text = $2; can't contain '[' or ']'
                    \]

public/vendor/pagedown/Markdown.Converter.js  view on Meta::CPAN


            return result;
        }

        function _DoImages(text) {
            //
            // Turn Markdown image shortcuts into <img> tags.
            //

            //
            // First, handle reference-style labeled images: ![alt text][id]
            //

            /*
            text = text.replace(/
                (                   // wrap whole match in $1
                    !\[
                    (.*?)           // alt text = $2
                    \]

                    [ ]?            // one optional space

public/vendor/pagedown/Markdown.Converter.js  view on Meta::CPAN

            result += " title=\"" + title + "\"";
            //}

            result += " />";

            return result;
        }

        function _DoHeaders(text) {

            // Setext-style headers:
            //  Header 1
            //  ========
            //  
            //  Header 2
            //  --------
            //
            text = text.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm,
                function (wholeMatch, m1) { return "<h1>" + _RunSpanGamut(m1) + "</h1>\n\n"; }
            );

            text = text.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,
                function (matchFound, m1) { return "<h2>" + _RunSpanGamut(m1) + "</h2>\n\n"; }
            );

            // atx-style headers:
            //  # Header 1
            //  ## Header 2
            //  ## Header 2 with closing hashes ##
            //  ...
            //  ###### Header 6
            //

            /*
            text = text.replace(/
                ^(\#{1,6})      // $1 = string of #'s

public/vendor/pagedown/Markdown.Editor.js  view on Meta::CPAN

        init();
    };

    // Creates the background behind the hyperlink text entry box.
    // And download dialog
    // Most of this has been moved to CSS but the div creation and
    // browser-specific hacks remain here.
    ui.createBackground = function () {

        var background = doc.createElement("div"),
            style = background.style;
        
        background.className = "wmd-prompt-background";
        
        style.position = "absolute";
        style.top = "0";

        style.zIndex = "1000";

        if (uaSniffed.isIE) {
            style.filter = "alpha(opacity=50)";
        }
        else {
            style.opacity = "0.5";
        }

        var pageSize = position.getPageSize();
        style.height = pageSize[1] + "px";

        if (uaSniffed.isIE) {
            style.left = doc.documentElement.scrollLeft;
            style.width = doc.documentElement.clientWidth;
        }
        else {
            style.left = "0";
            style.width = "100%";
        }

        doc.body.appendChild(background);
        return background;
    };

    // This simulates a modal dialog box and asks for the URL when you
    // click the hyperlink or image buttons.
    //
    // text: The html for the input box.

public/vendor/pagedown/Markdown.Editor.js  view on Meta::CPAN

        };



        // Create the text input box form/window.
        var createDialog = function () {

            // The main dialog box.
            dialog = doc.createElement("div");
            dialog.className = "wmd-prompt-dialog";
            dialog.style.padding = "10px;";
            dialog.style.position = "fixed";
            dialog.style.width = "400px";
            dialog.style.zIndex = "1001";

            // The dialog text.
            var question = doc.createElement("div");
            question.innerHTML = text;
            question.style.padding = "5px";
            dialog.appendChild(question);

            // The web form container for the text box and buttons.
            var form = doc.createElement("form"),
                style = form.style;
            form.onsubmit = function () { return close(false); };
            style.padding = "0";
            style.margin = "0";
            style.cssFloat = "left";
            style.width = "100%";
            style.textAlign = "center";
            style.position = "relative";
            dialog.appendChild(form);

            // The input text box
            input = doc.createElement("input");
            input.type = "text";
            input.value = defaultInputText;
            style = input.style;
            style.display = "block";
            style.width = "80%";
            style.marginLeft = style.marginRight = "auto";
            form.appendChild(input);

            // The ok button
            var okButton = doc.createElement("input");
            okButton.type = "button";
            okButton.onclick = function () { return close(false); };
            okButton.value = "OK";
            style = okButton.style;
            style.margin = "10px";
            style.display = "inline";
            style.width = "7em";


            // The cancel button
            var cancelButton = doc.createElement("input");
            cancelButton.type = "button";
            cancelButton.onclick = function () { return close(true); };
            cancelButton.value = "Cancel";
            style = cancelButton.style;
            style.margin = "10px";
            style.display = "inline";
            style.width = "7em";

            form.appendChild(okButton);
            form.appendChild(cancelButton);

            util.addEvent(doc.body, "keydown", checkEscape);
            dialog.style.top = "50%";
            dialog.style.left = "50%";
            dialog.style.display = "block";
            if (uaSniffed.isIE_5or6) {
                dialog.style.position = "absolute";
                dialog.style.top = doc.documentElement.scrollTop + 200 + "px";
                dialog.style.left = "50%";
            }
            doc.body.appendChild(dialog);

            // This has to be done AFTER adding the dialog to the form if you
            // want it to be centered.
            dialog.style.marginTop = -(position.getHeight(dialog) / 2) + "px";
            dialog.style.marginLeft = -(position.getWidth(dialog) / 2) + "px";

        };

        // Why is this in a zero-length timeout?
        // Is it working around a browser bug?
        setTimeout(function () {

            createDialog();

            var defTextLen = defaultInputText.length;

public/vendor/pagedown/Markdown.Editor.js  view on Meta::CPAN

            }
        };

        function setupButton(button, isEnabled) {

            var normalYShift = "0px";
            var disabledYShift = "-20px";
            var highlightYShift = "-40px";
            var image = button.getElementsByTagName("span")[0];
            if (isEnabled) {
                image.style.backgroundPosition = button.XShift + " " + normalYShift;
                button.onmouseover = function () {
                    image.style.backgroundPosition = this.XShift + " " + highlightYShift;
                };

                button.onmouseout = function () {
                    image.style.backgroundPosition = this.XShift + " " + normalYShift;
                };

                // IE tries to select the background image "button" text (it's
                // implemented in a list item) so we have to cache the selection
                // on mousedown.
                if (uaSniffed.isIE) {
                    button.onmousedown = function () {
                        if (doc.activeElement && doc.activeElement !== panels.input) { // we're not even in the input box, so there's no selection
                            return;
                        }

public/vendor/pagedown/Markdown.Editor.js  view on Meta::CPAN

                    button.onclick = function () {
                        if (this.onmouseout) {
                            this.onmouseout();
                        }
                        doClick(this);
                        return false;
                    }
                }
            }
            else {
                image.style.backgroundPosition = button.XShift + " " + disabledYShift;
                button.onmouseover = button.onmouseout = button.onclick = function () { };
            }
        }

        function bindCommand(method) {
            if (typeof method === "string")
                method = commandManager[method];
            return function () { method.apply(commandManager, arguments); }
        }

public/vendor/pagedown/Markdown.Editor.js  view on Meta::CPAN

            var highlightYShift = "-40px";

            var buttonRow = document.createElement("ul");
            buttonRow.id = "wmd-button-row" + postfix;
            buttonRow.className = 'wmd-button-row';
            buttonRow = buttonBar.appendChild(buttonRow);
            var xPosition = 0;
            var makeButton = function (id, title, XShift, textOp) {
                var button = document.createElement("li");
                button.className = "wmd-button";
                button.style.left = xPosition + "px";
                xPosition += 25;
                var buttonImage = document.createElement("span");
                button.id = id + postfix;
                button.appendChild(buttonImage);
                button.title = title;
                button.XShift = XShift;
                if (textOp)
                    button.textOp = textOp;
                setupButton(button, true);
                buttonRow.appendChild(button);

public/vendor/pagedown/Markdown.Editor.js  view on Meta::CPAN

            buttons.redo.execute = function (manager) { if (manager) manager.redo(); };

            if (helpOptions) {
                var helpButton = document.createElement("li");
                var helpButtonImage = document.createElement("span");
                helpButton.appendChild(helpButtonImage);
                helpButton.className = "wmd-button wmd-help-button";
                helpButton.id = "wmd-help-button" + postfix;
                helpButton.XShift = "-240px";
                helpButton.isHelp = true;
                helpButton.style.right = "0px";
                helpButton.title = getString("help");
                helpButton.onclick = helpOptions.handler;

                setupButton(helpButton, true);
                buttonRow.appendChild(helpButton);
                buttons.help = helpButton;
            }

            setUndoRedoButtonStates();
        }

t/pod-coverage.t  view on Meta::CPAN

    plan(skip_all => $msg);
}

# Ensure a recent version of Test::Pod::Coverage
my $min_tpc = 1.08;
eval "use Test::Pod::Coverage $min_tpc";
plan skip_all => "Test::Pod::Coverage $min_tpc required for testing POD coverage"
  if $@;

# Test::Pod::Coverage doesn't require a minimum Pod::Coverage version,
# but older versions don't recognize some common documentation styles
my $min_pc = 0.18;
eval "use Pod::Coverage $min_pc";
plan skip_all => "Pod::Coverage $min_pc required for testing POD coverage"
  if $@;
my $trustme = {
    trustme => [
        qr/^(
  ALIASES|CHECKS|COLUMNS|
  PRIMARY_KEY|TABLE|is_base_class|dbix
)$/x

templates/default/index_text.html+bg.ep  view on Meta::CPAN

          </li>
          <li>Можете да генерирате конфигурационни файлове за Apache 2 като използвате
          командите 
          <code>ado generate apache2vhost</code> и
          <code>ado generate apache2htaccess</code>.
          </li>
        </ol>
    </li>
  </ol>
</article>
<div class="ui horizontal section divider" style="margin-top:2em">
  <i class="circular ado icon"></i>
</div>
<article class="ui footer small">
  <h3>АВТОРСКИ ПРАВА И ЛИЦЕНЗ</h3>
<p>&copy; 2013-2016 Красимир Беров (Krasimir Berov).</p>
<p>
Тази програма е свободен софтуер. Можете да я разпространявата или да я
променяте при условията на GNU Lesser General Public License v3 (LGPL-3.0).
Можете да копирате, разпространявате и променяте софтуера ако промените ви
също са с отворен код. Все пак софтуер, който съдържа този лиценз може да бъде

templates/default/index_text.html+de.ep  view on Meta::CPAN

            <a href="<%=url_for('/perldoc/Ado/Plugin/I18n')%>">Ado::Plugin::I18n</a>.
          </li>
          <li>Sie können Konfigurationsdateien für Apache 2 über die Kommandos
            <code>ado generate apache2vhost</code> und
            <code>ado generate apache2htaccess</code> generieren lassen.
          </li>
        </ol>
    </li>
  </ol>
</article>
<div class="ui horizontal section divider" style="margin-top:2em">
  <i class="circular ado icon"></i>
</div>
<article class="ui footer small">
  <h3>COPYRIGHT AND LICENSE</h3>
<p>&copy; 2013-2016 Красимир Беров (Krasimir Berov).</p>
<p>
This program is free software, you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License v3 (LGPL-3.0). You may
copy, distribute and modify the software provided that modifications are open
source. However, software that includes the license may release under a

templates/default/index_text.html.ep  view on Meta::CPAN

            <a href="<%=url_for('/perldoc/Ado/Plugin/I18n')%>">Ado::Plugin::I18n</a>.
          </li>
          <li>You can generate configuration files for Apache 2 using the commands
            <code>ado generate apache2vhost</code> and
            <code>ado generate apache2htaccess</code>.
          </li>
        </ol>
    </li>
  </ol>
</article>
<div class="ui horizontal section divider" style="margin-top:2em">
  <i class="circular ado icon"></i>
</div>
<article class="ui small footer">
  <h3>COPYRIGHT AND LICENSE</h3>
<p>&copy; 2013-2016 Красимир Беров (Krasimir Berov).</p>
<p>
This program is free software, you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License v3 (LGPL-3.0). You may
copy, distribute and modify the software provided that modifications are open
source. However, software that includes the license may release under a

templates/partials/head.html.ep  view on Meta::CPAN

    <meta charset="utf-8" />
    <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

templates/partials/login_form.html.ep  view on Meta::CPAN

    'js/auth.js',
    ]);
%>

  <form class="ui form segment" method="POST" 
    action="<%=url_for('login/ado') %>" id="login_form">
    <div class="ui header">
    %=  l('Sign in') 
    </div>
    % if(stash->{error_login}) {
    <div id="error_login" class="ui error message" style="display:block">
      <%= stash->{error_login} %></div>
    % }
    <div class="field">
      <label for="login_name"><%=ucfirst l('login_name')%></label>
      <div class="ui left labeled icon input">
        %= text_field 'login_name', placeholder => l('login_name'), id => 'login_name', required => ''
        <i class="user icon"></i>
        <div class="ui corner label"><i class="icon asterisk"></i></div>
        % if(stash->{error_login_name}) {
        <div id="error_login_name" class="ui error message" style="display:block">
          <%= stash->{error_login_name} %>
        </div>
        % }
      </div>
    </div>
    <div class="field">
      <label for="login_password"><%=l('login_password')%></label>
      <div class="ui left labeled icon input">
        <input type="password" name="login_password" id="login_password" required="" />
        <i class="lock icon"></i>



( run in 1.177 second using v1.01-cache-2.11-cpan-49f99fa48dc )