From 24e0baee7e10298896ceffabe00b453911bdcd55 Mon Sep 17 00:00:00 2001 From: Stanislau Wolski Date: Tue, 27 Sep 2011 06:48:30 -0700 Subject: [PATCH 01/15] github generated gh-pages branch --- index.html | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 index.html diff --git a/index.html b/index.html new file mode 100644 index 0000000..0ece5da --- /dev/null +++ b/index.html @@ -0,0 +1,79 @@ + + + + + + DHTMLX/message @ GitHub + + + + + + Fork me on GitHub + +
+ +
+ + + + +
+ +

Message library + by DHTMLX

+ +
+ Custom messages, alerts, confirmations +
+ +

Message is a helper that simplifies creating of different message windows.

License

+

MIT

+

Authors

+

Stanislau (stanislau.wolski@gmail.com)

+

Contact

+

(support@dhtmlx.com)

+ + +

Download

+

+ You can download this project in either + zip or + tar formats. +

+

You can also clone the project with Git + by running: +

$ git clone git://github.com/DHTMLX/message
+

+ + + +
+ + + + From b4e501dc3cdaf846f8fb090201039380ea121e28 Mon Sep 17 00:00:00 2001 From: Stanislau Date: Tue, 27 Sep 2011 18:05:03 +0300 Subject: [PATCH 02/15] [add] site template --- assets/css/prettify.css | 1 + assets/css/skeleton/404.html | 47 +++ .../images/apple-touch-icon-114x114.png | Bin 0 -> 10118 bytes .../images/apple-touch-icon-72x72.png | Bin 0 -> 3872 bytes .../css/skeleton/images/apple-touch-icon.png | Bin 0 -> 2469 bytes assets/css/skeleton/images/favicon.ico | Bin 0 -> 1150 bytes assets/css/skeleton/index.html | 81 +++++ assets/css/skeleton/javascripts/tabs.js | 42 +++ assets/css/skeleton/robots.txt | 5 + assets/css/skeleton/stylesheets/base.css | 335 ++++++++++++++++++ assets/css/skeleton/stylesheets/layout.css | 58 +++ assets/css/skeleton/stylesheets/skeleton.css | 236 ++++++++++++ assets/css/style.css | 163 +++++++++ assets/images/fublo-logo.png | Bin 0 -> 5379 bytes assets/images/github-logo.png | Bin 0 -> 1851 bytes assets/images/github-ribbons/black.png | Bin 0 -> 7327 bytes assets/images/github-ribbons/green.png | Bin 0 -> 7786 bytes assets/images/github-ribbons/grey.png | Bin 0 -> 6789 bytes assets/images/github-ribbons/orange.png | Bin 0 -> 9438 bytes assets/images/github-ribbons/red.png | Bin 0 -> 8146 bytes assets/images/github-ribbons/white.png | Bin 0 -> 6727 bytes assets/images/page-background.png | Bin 0 -> 31492 bytes assets/javascript/html5.js | 4 + assets/javascript/lang-apollo.js | 2 + assets/javascript/lang-clj.js | 18 + assets/javascript/lang-css.js | 2 + assets/javascript/lang-go.js | 1 + assets/javascript/lang-hs.js | 2 + assets/javascript/lang-lisp.js | 3 + assets/javascript/lang-lua.js | 2 + assets/javascript/lang-ml.js | 2 + assets/javascript/lang-n.js | 4 + assets/javascript/lang-proto.js | 1 + assets/javascript/lang-scala.js | 2 + assets/javascript/lang-sql.js | 2 + assets/javascript/lang-tex.js | 1 + assets/javascript/lang-vb.js | 2 + assets/javascript/lang-vhdl.js | 3 + assets/javascript/lang-wiki.js | 2 + assets/javascript/lang-xq.js | 3 + assets/javascript/lang-yaml.js | 2 + assets/javascript/prettify.js | 28 ++ assets/logo.png | Bin 0 -> 12656 bytes codebase/message.compressed.css | 1 + codebase/message.compressed.js | 1 + index.html | 170 ++++----- 46 files changed, 1147 insertions(+), 79 deletions(-) create mode 100644 assets/css/prettify.css create mode 100644 assets/css/skeleton/404.html create mode 100644 assets/css/skeleton/images/apple-touch-icon-114x114.png create mode 100644 assets/css/skeleton/images/apple-touch-icon-72x72.png create mode 100644 assets/css/skeleton/images/apple-touch-icon.png create mode 100644 assets/css/skeleton/images/favicon.ico create mode 100644 assets/css/skeleton/index.html create mode 100644 assets/css/skeleton/javascripts/tabs.js create mode 100644 assets/css/skeleton/robots.txt create mode 100644 assets/css/skeleton/stylesheets/base.css create mode 100644 assets/css/skeleton/stylesheets/layout.css create mode 100644 assets/css/skeleton/stylesheets/skeleton.css create mode 100644 assets/css/style.css create mode 100644 assets/images/fublo-logo.png create mode 100644 assets/images/github-logo.png create mode 100644 assets/images/github-ribbons/black.png create mode 100644 assets/images/github-ribbons/green.png create mode 100644 assets/images/github-ribbons/grey.png create mode 100644 assets/images/github-ribbons/orange.png create mode 100644 assets/images/github-ribbons/red.png create mode 100644 assets/images/github-ribbons/white.png create mode 100644 assets/images/page-background.png create mode 100644 assets/javascript/html5.js create mode 100644 assets/javascript/lang-apollo.js create mode 100644 assets/javascript/lang-clj.js create mode 100644 assets/javascript/lang-css.js create mode 100644 assets/javascript/lang-go.js create mode 100644 assets/javascript/lang-hs.js create mode 100644 assets/javascript/lang-lisp.js create mode 100644 assets/javascript/lang-lua.js create mode 100644 assets/javascript/lang-ml.js create mode 100644 assets/javascript/lang-n.js create mode 100644 assets/javascript/lang-proto.js create mode 100644 assets/javascript/lang-scala.js create mode 100644 assets/javascript/lang-sql.js create mode 100644 assets/javascript/lang-tex.js create mode 100644 assets/javascript/lang-vb.js create mode 100644 assets/javascript/lang-vhdl.js create mode 100644 assets/javascript/lang-wiki.js create mode 100644 assets/javascript/lang-xq.js create mode 100644 assets/javascript/lang-yaml.js create mode 100644 assets/javascript/prettify.js create mode 100644 assets/logo.png create mode 100644 codebase/message.compressed.css create mode 100644 codebase/message.compressed.js diff --git a/assets/css/prettify.css b/assets/css/prettify.css new file mode 100644 index 0000000..d44b3a2 --- /dev/null +++ b/assets/css/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/assets/css/skeleton/404.html b/assets/css/skeleton/404.html new file mode 100644 index 0000000..a24448f --- /dev/null +++ b/assets/css/skeleton/404.html @@ -0,0 +1,47 @@ + + + + + + + + + + Your Page Title Here :) + + + + + + + + + + + + + + + + + + + + + + +
+

Sorry. Couldn't Find That Page!

+
+ + + + \ No newline at end of file diff --git a/assets/css/skeleton/images/apple-touch-icon-114x114.png b/assets/css/skeleton/images/apple-touch-icon-114x114.png new file mode 100644 index 0000000000000000000000000000000000000000..88a9d5e85cebcbb50947c480a380b213c700998b GIT binary patch literal 10118 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 literal 0 HcmV?d00001 diff --git a/assets/css/skeleton/images/apple-touch-icon-72x72.png b/assets/css/skeleton/images/apple-touch-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..bbca145e51c41c1c9a5ed0fdb3170fef7eefd7e3 GIT binary patch literal 3872 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 agC_LBxVb#f41AyBxoUmlnf?#Heg6d*C!a0= literal 0 HcmV?d00001 diff --git a/assets/css/skeleton/index.html b/assets/css/skeleton/index.html new file mode 100644 index 0000000..9f9d7d0 --- /dev/null +++ b/assets/css/skeleton/index.html @@ -0,0 +1,81 @@ + + + + + + + + + + Your Page Title Here :) + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Skeleton

+
Version 1.1
+
+
+ + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/assets/css/skeleton/javascripts/tabs.js b/assets/css/skeleton/javascripts/tabs.js new file mode 100644 index 0000000..8a74b10 --- /dev/null +++ b/assets/css/skeleton/javascripts/tabs.js @@ -0,0 +1,42 @@ +/* +* Skeleton V1.1 +* Copyright 2011, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 8/17/2011 +*/ + + +$(document).ready(function() { + + /* Tabs Activiation + ================================================== */ + + var tabs = $('ul.tabs'); + + tabs.each(function(i) { + + //Get all tabs + var tab = $(this).find('> li > a'); + tab.click(function(e) { + + //Get Location of tab's content + var contentLocation = $(this).attr('href'); + + //Let go if not a hashed one + if(contentLocation.charAt(0)=="#") { + + e.preventDefault(); + + //Make Tab Active + tab.removeClass('active'); + $(this).addClass('active'); + + //Show Tab Content & add active class + $(contentLocation).show().addClass('active').siblings().hide().removeClass('active'); + + } + }); + }); +}); \ No newline at end of file diff --git a/assets/css/skeleton/robots.txt b/assets/css/skeleton/robots.txt new file mode 100644 index 0000000..d310d07 --- /dev/null +++ b/assets/css/skeleton/robots.txt @@ -0,0 +1,5 @@ +# www.robotstxt.org/ +# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449 + +User-agent: * + diff --git a/assets/css/skeleton/stylesheets/base.css b/assets/css/skeleton/stylesheets/base.css new file mode 100644 index 0000000..2b4cb2a --- /dev/null +++ b/assets/css/skeleton/stylesheets/base.css @@ -0,0 +1,335 @@ +/* +* Skeleton V1.1 +* Copyright 2011, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 8/17/2011 +*/ + + +/* Table of Content +================================================== + #Reset & Basics + #Basic Styles + #Site Styles + #Typography + #Links + #Lists + #Images + #Buttons + #Tabs + #Forms + #Misc */ + + +/* #Reset & Basics (Inspired by E. Meyers) +================================================== */ + html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; } + article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { + display: block; } + body { + line-height: 1; } + ol, ul { + list-style: none; } + blockquote, q { + quotes: none; } + blockquote:before, blockquote:after, + q:before, q:after { + content: ''; + content: none; } + table { + border-collapse: collapse; + border-spacing: 0; } + + +/* #Basic Styles +================================================== */ + body { + background: #fff; + font: 14px/21px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #444; + -webkit-font-smoothing: antialiased; /* Fix for webkit rendering */ + -webkit-text-size-adjust: 100%; + } + + +/* #Typography +================================================== */ + h1, h2, h3, h4, h5, h6 { + color: #181818; + font-family: "Georgia", "Times New Roman", Helvetica, Arial, sans-serif; + font-weight: normal; } + h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; } + h1 { font-size: 46px; line-height: 50px; margin-bottom: 14px;} + h2 { font-size: 35px; line-height: 40px; margin-bottom: 10px; } + h3 { font-size: 28px; line-height: 34px; margin-bottom: 8px; } + h4 { font-size: 21px; line-height: 30px; margin-bottom: 4px; } + h5 { font-size: 17px; line-height: 24px; } + h6 { font-size: 14px; line-height: 21px; } + .subheader { color: #777; } + + p { margin: 0 0 20px 0; } + p img { margin: 0; } + p.lead { font-size: 21px; line-height: 27px; color: #777; } + + em { font-style: italic; } + strong { font-weight: bold; color: #333; } + small { font-size: 80%; } + +/* Blockquotes */ + blockquote, blockquote p { font-size: 17px; line-height: 24px; color: #777; font-style: italic; } + blockquote { margin: 0 0 20px; padding: 9px 20px 0 19px; border-left: 1px solid #ddd; } + blockquote cite { display: block; font-size: 12px; color: #555; } + blockquote cite:before { content: "\2014 \0020"; } + blockquote cite a, blockquote cite a:visited, blockquote cite a:visited { color: #555; } + + hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 10px 0 30px; height: 0; } + + +/* #Links +================================================== */ + a, a:visited { color: #333; text-decoration: underline; outline: 0; } + a:hover, a:focus { color: #000; } + p a, p a:visited { line-height: inherit; } + + +/* #Lists +================================================== */ + ul, ol { margin-bottom: 20px; } + ul { list-style: none outside; } + ol { list-style: decimal; } + ol, ul.square, ul.circle, ul.disc { margin-left: 30px; } + ul.square { list-style: square outside; } + ul.circle { list-style: circle outside; } + ul.disc { list-style: disc outside; } + ul ul, ul ol, + ol ol, ol ul { margin: 4px 0 5px 30px; font-size: 90%; } + ul ul li, ul ol li, + ol ol li, ol ul li { margin-bottom: 6px; } + li { line-height: 18px; margin-bottom: 12px; } + ul.large li { line-height: 21px; } + li p { line-height: 21px; } + +/* #Images +================================================== */ + + img.scale-with-grid { + max-width: 100%; + height: auto; } + + +/* #Buttons +================================================== */ + + a.button, + button, + input[type="submit"], + input[type="reset"], + input[type="button"] { + background: #eee; /* Old browsers */ + background: -moz-linear-gradient(top, rgba(255,255,255,.2) 0%, rgba(0,0,0,.2) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.2)), color-stop(100%,rgba(0,0,0,.2))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* IE10+ */ + background: linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* W3C */ + border: 1px solid #aaa; + border-top: 1px solid #ccc; + border-left: 1px solid #ccc; + padding: 4px 12px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + color: #AAA; + display: inline-block; + font-size: 12px; + font-weight: bold; + text-decoration: none; + + cursor: pointer; + margin-bottom: 20px; + line-height: 21px; + font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; } + + a.button:hover, + button:hover, + input[type="submit"]:hover, + input[type="reset"]:hover, + input[type="button"]:hover { + color: #EEE; + background: #ddd; /* Old browsers */ + background: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.3)), color-stop(100%,rgba(0,0,0,.3))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* IE10+ */ + background: linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* W3C */ + border: 1px solid #888; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; } + + a.button:active, + button:active, + input[type="submit"]:active, + input[type="reset"]:active, + input[type="button"]:active { + border: 1px solid #666; + background: #ccc; /* Old browsers */ + background: -moz-linear-gradient(top, rgba(255,255,255,.35) 0%, rgba(10,10,10,.4) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.35)), color-stop(100%,rgba(10,10,10,.4))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Opera11.10+ */ + background: -ms-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* IE10+ */ + background: linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* W3C */ } + + .button.full-width, + button.full-width, + input[type="submit"].full-width, + input[type="reset"].full-width, + input[type="button"].full-width { + width: 100%; + padding-left: 0 !important; + padding-right: 0 !important; + text-align: center; } + + +/* #Tabs (activate in tabs.js) +================================================== */ + ul.tabs { + display: block; + margin: 0 0 20px 0; + padding: 0; + border-bottom: solid 1px #ddd; } + ul.tabs li { + display: block; + width: auto; + height: 30px; + padding: 0; + float: left; + margin-bottom: 0; } + ul.tabs li a { + display: block; + text-decoration: none; + width: auto; + height: 29px; + padding: 0px 20px; + line-height: 30px; + border: solid 1px #ddd; + border-width: 1px 1px 0 0; + margin: 0; + background: #f5f5f5; + font-size: 13px; } + ul.tabs li a.active { + background: #fff; + height: 30px; + position: relative; + top: -4px; + padding-top: 4px; + border-left-width: 1px; + margin: 0 0 0 -1px; + color: #111; + -moz-border-radius-topleft: 2px; + -webkit-border-top-left-radius: 2px; + border-top-left-radius: 2px; + -moz-border-radius-topright: 2px; + -webkit-border-top-right-radius: 2px; + border-top-right-radius: 2px; } + ul.tabs li:first-child a.active { + margin-left: 0; } + ul.tabs li:first-child a { + border-width: 1px 1px 0 1px; + -moz-border-radius-topleft: 2px; + -webkit-border-top-left-radius: 2px; + border-top-left-radius: 2px; } + ul.tabs li:last-child a { + -moz-border-radius-topright: 2px; + -webkit-border-top-right-radius: 2px; + border-top-right-radius: 2px; } + + ul.tabs-content { margin: 0; display: block; } + ul.tabs-content > li { display:none; } + ul.tabs-content > li.active { display: block; } + + /* Clearfixing tabs for beautiful stacking */ + ul.tabs:before, + ul.tabs:after { + content: '\0020'; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; } + ul.tabs:after { + clear: both; } + ul.tabs { + zoom: 1; } + + +/* #Forms +================================================== */ + + form { + margin-bottom: 20px; } + fieldset { + margin-bottom: 20px; } + input[type="text"], + input[type="password"], + input[type="email"], + textarea, + select { + border: 1px solid #ccc; + padding: 6px 4px; + outline: none; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; + font: 13px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #777; + margin: 0; + width: 210px; + max-width: 100%; + display: block; + margin-bottom: 20px; + background: #fff; } + select { + padding: 0; } + input[type="text"]:focus, + input[type="password"]:focus, + input[type="email"]:focus, + textarea:focus { + border: 1px solid #aaa; + color: #444; + -moz-box-shadow: 0 0 3px rgba(0,0,0,.2); + -webkit-box-shadow: 0 0 3px rgba(0,0,0,.2); + box-shadow: 0 0 3px rgba(0,0,0,.2); } + textarea { + min-height: 60px; } + label, + legend { + display: block; + font-weight: bold; + font-size: 13px; } + select { + width: 220px; } + input[type="checkbox"] { + display: inline; } + label span, + legend span { + font-weight: normal; + font-size: 13px; + color: #444; } + +/* #Misc +================================================== */ + .remove-bottom { margin-bottom: 0 !important; } + .half-bottom { margin-bottom: 10px !important; } + .add-bottom { margin-bottom: 20px !important; } + + diff --git a/assets/css/skeleton/stylesheets/layout.css b/assets/css/skeleton/stylesheets/layout.css new file mode 100644 index 0000000..aff5b47 --- /dev/null +++ b/assets/css/skeleton/stylesheets/layout.css @@ -0,0 +1,58 @@ +/* +* Skeleton V1.1 +* Copyright 2011, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 8/17/2011 +*/ + +/* Table of Content +================================================== + #Site Styles + #Page Styles + #Media Queries + #Font-Face */ + +/* #Site Styles +================================================== */ + +/* #Page Styles +================================================== */ + +/* #Media Queries +================================================== */ + + /* Smaller than standard 960 (devices and browsers) */ + @media only screen and (max-width: 959px) {} + + /* Tablet Portrait size to standard 960 (devices and browsers) */ + @media only screen and (min-width: 768px) and (max-width: 959px) {} + + /* All Mobile Sizes (devices and browser) */ + @media only screen and (max-width: 767px) {} + + /* Mobile Landscape Size to Tablet Portrait (devices and browsers) */ + @media only screen and (min-width: 480px) and (max-width: 767px) {} + + /* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */ + @media only screen and (max-width: 479px) {} + + +/* #Font-Face +================================================== */ +/* This is the proper syntax for an @font-face file + Just create a "fonts" folder at the root, + copy your FontName into code below and remove + comment brackets */ + +/* @font-face { + font-family: 'FontName'; + src: url('../fonts/FontName.eot'); + src: url('../fonts/FontName.eot?iefix') format('eot'), + url('../fonts/FontName.woff') format('woff'), + url('../fonts/FontName.ttf') format('truetype'), + url('../fonts/FontName.svg#webfontZam02nTh') format('svg'); + font-weight: normal; + font-style: normal; } +*/ \ No newline at end of file diff --git a/assets/css/skeleton/stylesheets/skeleton.css b/assets/css/skeleton/stylesheets/skeleton.css new file mode 100644 index 0000000..d0264a4 --- /dev/null +++ b/assets/css/skeleton/stylesheets/skeleton.css @@ -0,0 +1,236 @@ +/* +* Skeleton V1.1 +* Copyright 2011, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 8/17/2011 +*/ + + +/* Table of Contents +================================================== + #Base 960 Grid + #Tablet (Portrait) + #Mobile (Portrait) + #Mobile (Landscape) + #Clearing */ + + + +/* #Base 960 Grid +================================================== */ + + .container { position: relative; width: 960px; margin: 0 auto; padding: 0; } + .column, .columns { float: left; display: inline; margin-left: 10px; margin-right: 10px; } + .row { margin-bottom: 20px; } + + /* Nested Column Classes */ + .column.alpha, .columns.alpha { margin-left: 0; } + .column.omega, .columns.omega { margin-right: 0; } + + /* Base Grid */ + .container .one.column { width: 40px; } + .container .two.columns { width: 100px; } + .container .three.columns { width: 160px; } + .container .four.columns { width: 220px; } + .container .five.columns { width: 280px; } + .container .six.columns { width: 340px; } + .container .seven.columns { width: 400px; } + .container .eight.columns { width: 460px; } + .container .nine.columns { width: 520px; } + .container .ten.columns { width: 580px; } + .container .eleven.columns { width: 640px; } + .container .twelve.columns { width: 700px; } + .container .thirteen.columns { width: 760px; } + .container .fourteen.columns { width: 820px; } + .container .fifteen.columns { width: 880px; } + .container .sixteen.columns { width: 940px; } + + .container .one-third.column { width: 300px; } + .container .two-thirds.column { width: 620px; } + + /* Offsets */ + .container .offset-by-one { padding-left: 60px; } + .container .offset-by-two { padding-left: 120px; } + .container .offset-by-three { padding-left: 180px; } + .container .offset-by-four { padding-left: 240px; } + .container .offset-by-five { padding-left: 300px; } + .container .offset-by-six { padding-left: 360px; } + .container .offset-by-seven { padding-left: 420px; } + .container .offset-by-eight { padding-left: 480px; } + .container .offset-by-nine { padding-left: 540px; } + .container .offset-by-ten { padding-left: 600px; } + .container .offset-by-eleven { padding-left: 660px; } + .container .offset-by-twelve { padding-left: 720px; } + .container .offset-by-thirteen { padding-left: 780px; } + .container .offset-by-fourteen { padding-left: 840px; } + .container .offset-by-fifteen { padding-left: 900px; } + + + +/* #Tablet (Portrait) +================================================== */ + + /* Note: Design for a width of 768px */ + + @media only screen and (min-width: 768px) and (max-width: 959px) { + .container { width: 768px; } + .container .column, + .container .columns { margin-left: 10px; margin-right: 10px; } + .column.alpha, .columns.alpha { margin-left: 0; margin-right: 10px; } + .column.omega, .columns.omega { margin-right: 0; margin-left: 10px; } + + .container .one.column { width: 28px; } + .container .two.columns { width: 76px; } + .container .three.columns { width: 124px; } + .container .four.columns { width: 172px; } + .container .five.columns { width: 220px; } + .container .six.columns { width: 268px; } + .container .seven.columns { width: 316px; } + .container .eight.columns { width: 364px; } + .container .nine.columns { width: 412px; } + .container .ten.columns { width: 460px; } + .container .eleven.columns { width: 508px; } + .container .twelve.columns { width: 556px; } + .container .thirteen.columns { width: 604px; } + .container .fourteen.columns { width: 652px; } + .container .fifteen.columns { width: 700px; } + .container .sixteen.columns { width: 748px; } + + .container .one-third.column { width: 236px; } + .container .two-thirds.column { width: 492px; } + + /* Offsets */ + .container .offset-by-one { padding-left: 48px; } + .container .offset-by-two { padding-left: 96px; } + .container .offset-by-three { padding-left: 144px; } + .container .offset-by-four { padding-left: 192px; } + .container .offset-by-five { padding-left: 240px; } + .container .offset-by-six { padding-left: 288px; } + .container .offset-by-seven { padding-left: 336px; } + .container .offset-by-eight { padding-left: 348px; } + .container .offset-by-nine { padding-left: 432px; } + .container .offset-by-ten { padding-left: 480px; } + .container .offset-by-eleven { padding-left: 528px; } + .container .offset-by-twelve { padding-left: 576px; } + .container .offset-by-thirteen { padding-left: 624px; } + .container .offset-by-fourteen { padding-left: 672px; } + .container .offset-by-fifteen { padding-left: 720px; } + } + + +/* #Mobile (Portrait) +================================================== */ + + /* Note: Design for a width of 320px */ + + @media only screen and (max-width: 767px) { + .container { width: 300px; } + .columns, .column { margin: 0; } + + .container .one.column, + .container .two.columns, + .container .three.columns, + .container .four.columns, + .container .five.columns, + .container .six.columns, + .container .seven.columns, + .container .eight.columns, + .container .nine.columns, + .container .ten.columns, + .container .eleven.columns, + .container .twelve.columns, + .container .thirteen.columns, + .container .fourteen.columns, + .container .fifteen.columns, + .container .sixteen.columns, + .container .one-third.column, + .container .two-thirds.column { width: 300px; } + + /* Offsets */ + .container .offset-by-one, + .container .offset-by-two, + .container .offset-by-three, + .container .offset-by-four, + .container .offset-by-five, + .container .offset-by-six, + .container .offset-by-seven, + .container .offset-by-eight, + .container .offset-by-nine, + .container .offset-by-ten, + .container .offset-by-eleven, + .container .offset-by-twelve, + .container .offset-by-thirteen, + .container .offset-by-fourteen, + .container .offset-by-fifteen { padding-left: 0; } + + } + + +/* #Mobile (Landscape) +================================================== */ + + /* Note: Design for a width of 480px */ + + @media only screen and (min-width: 480px) and (max-width: 767px) { + .container { width: 420px; } + .columns, .column { margin: 0; } + + .container .one.column, + .container .two.columns, + .container .three.columns, + .container .four.columns, + .container .five.columns, + .container .six.columns, + .container .seven.columns, + .container .eight.columns, + .container .nine.columns, + .container .ten.columns, + .container .eleven.columns, + .container .twelve.columns, + .container .thirteen.columns, + .container .fourteen.columns, + .container .fifteen.columns, + .container .sixteen.columns, + .container .one-third.column, + .container .two-thirds.column { width: 420px; } + } + + +/* #Clearing +================================================== */ + + /* Self Clearing Goodness */ + .container:after { content: "\0020"; display: block; height: 0; clear: both; visibility: hidden; } + + /* Use clearfix class on parent to clear nested columns, + or wrap each row of columns in a
*/ + .clearfix:before, + .clearfix:after, + .row:before, + .row:after { + content: '\0020'; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; } + .row:after, + .clearfix:after { + clear: both; } + .row, + .clearfix { + zoom: 1; } + + /* You can also use a
to clear columns */ + .clear { + clear: both; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; + } + + diff --git a/assets/css/style.css b/assets/css/style.css new file mode 100644 index 0000000..7278625 --- /dev/null +++ b/assets/css/style.css @@ -0,0 +1,163 @@ +/* Page */ +body { + background: #333333 url('../images/page-background.png') repeat top left; + font-family: arial,sans-serif; +} + +/* Header */ +header { + padding-top: 50px; + border-bottom: 2px solid #77746C; + padding-bottom: 28px; +} + +/* Footer */ +footer { + background-color: #FFFFFF; + margin-top: 50px; + -webkit-box-shadow: -10px 0 15px #000000; + -moz-box-shadow: -10px 0 15px #000000; + box-shadow: -10px 0 15px #000000; +} + +div.credits { + padding-top: 9px; + margin-top: 30px; + margin-bottom: 25px; + border-top: 1px solid #DDD2B2; + text-align: center; +} + +footer p { + color: #333333; +} + +div.repo-author { + padding-top: 30px; +} + +/* Text */ +p { + color: #CCCCCC; + font-size: 14px; +} + +a { + color: #0075B6; + text-decoration: none; +} + +a:visited { + color: #0075B6; +} + +a:hover { + text-decoration: underline; +} + +h1, h2 { + font-family: georgia,serif; +} + +h1 { + font-style: italic; + color: #FFFFFF; + font-size: 50px; + margin: 0; +} + +h2 { + color: #CCCCCC; + font-size: 20px; + line-height: 23px; + padding-top: 15px; +} + +h3, h4 { + color: #FFFFFF; + font-weight: bold; + font-family: inherit; +} + +h3 { + font-size: 28px; + margin-top: 40px; +} + +h4 { + font-size: 20px; + margin-top: 20px; +} + +/* Useful classes and styles */ +a.github-ribbon { + position: absolute; + top: 0; + left: 0; + border: 0; +} + +a.download-button { + display: block; + padding: 15px 20px 10px 20px; + color: #FFFFFF; + text-decoration: none; + font-size: 28px; + font-weight: bold; + background: #33A700 url('../images/github-logo.png') no-repeat 92% 50%; + border: 2px solid #339410; + -webkit-box-shadow: 3px 3px 5px #000000; + -moz-box-shadow: 3px 3px 5px #000000; + box-shadow: 3px 3px 5px #000000; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-transition: 350ms; + -moz-transition: 350ms; + -o-transition: 350ms; + transition: 350ms; +} + +a.download-button:hover { + background-color: #267C00; + background-position: 90% 50%; +} + +a.download-button span { + font-size: 14px; + display: block; + margin-top: 2px; +} + +code { + margin-top: 15px; + min-height: 220px; + border: 3px solid #FFFFFF; + background-color: #CCCC99; + display: block; + padding: 20px; + font-family: monospace; + -webkit-box-shadow: 3px 3px 5px #000000; + -moz-box-shadow: 3px 3px 5px #000000; + box-shadow: 3px 3px 5px #000000; + overflow-x: auto; +} + +pre.prettyprint { + border: 0; + padding: 0; + margin: 0; +} + +img.repo-author-logo { + float: left; + margin-right: 15px; +} + +/* Media queries */ +/* Hide the ribbon when we are on a phone, screen is too small */ +@media only screen and (max-width: 479px) { + a.github-ribbon { + display: none; + } +} \ No newline at end of file diff --git a/assets/images/fublo-logo.png b/assets/images/fublo-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..30647892c26f684f1ecb6107f741e84a99e039dd GIT binary patch literal 5379 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 literal 0 HcmV?d00001 diff --git a/assets/images/github-logo.png b/assets/images/github-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..479cf147e3fcd082905af2879c6de58f43f31e5f GIT binary patch literal 1851 zcmbVNX;2eq7!E`{5U2z%RKgk%1tHnp#9U2+A%}z#2uBNoQ(2M)GLURcRtbnosEAtc z1F95}svs6ctb=q^j1(0qo}dmz1+6D4f>=PYr5gp?A5MRCXLi5u{l52k-g|bPDr|wX z<1|MSiR7#ZmPQgQ!}g9HO?*wWw^tC0J1&dGqp&1A9WkOLu?9;-0fi1pMk7%~ldV+IX)uY#uv zX&;=5RjL39W<-H`bTB{-vO$0i(IF;_!{PV?FbIJR5N1Gd0L0-lVLk`~!w-$HX4E9{ zBc<|TTZAN}rQo=M&tRmdr_I?8{BWa|C<>A$#nel6s2*2Hg*4)ZuF-1vavnzx zK^zvyfk8GGg18`;DGTB}mgYr|xk>qwAgsRdZlpr}dBh1=Eh~*)(9^+TjOCGXIjqU5^jj zurD{?vV3c*M?#@LwBGS(`PD}*txx9oKDy@el61>S7Gv2=scl|o&e&v*sru8cV{Tk| zuGiv(v8yIe*SYph4aYaWKJ9ic%lh5k@LhGdj{%?*Gt(x>+P7!jOuuS*wxlP1!=eMU znm)=vwrF{974^c*ZfnQNw*CE~S@{rUa2x1YbYQ{Ig=^dK5QkP(R->h?e-vHaHW($+ zd0)?;ekC4vZ+(0GX?(-4@j0nWDl5m;HYeTXSY?MAHe}3rI3?$qn`6PY`dq)z9&&MC z(d_|!@Ulg-E@GXNgObVTD&tcQif@+XNE8R3CVKo*D&3?e2TWVinsY-HTEAo2BJHK`ri*mo>X`-DPb6%hDIXJPSIinUBjCSZO$}8Mz$GrRdkI&8G zhuOk~`#vu(f3T)>u5NFQePKdq=Fqy{T14NzZsW>Lb^F}kq%A(C;8Zo$Ry@JSn`J*$ zk>fVtP)S)yZ~Ynj_Vpp2Ys2rhH|}sT?AYv7e`{WD@itL7`xSybE=4M0CUpibI8J${ zZ>)-B$9YrF@>C5`V;ZZtFQCcZ_r%|XzVn;mzj_N5Z0PJYy*-=qW$x^aS+B=E&wQNj zb7SYY7+24tdKs2cX7TiO2wr`e_guESp}@m&Nbc5K)>xnnvyzQ&ZL>R8+?kj=*k#vc zh4;KUIYtt4EWfYIQsH$k-ZQpl=jlHz%k#PqZ}#mkT{UVd>4!@LSI$u;J+l4I6tXbs Jk)VW}zX3wc(Z2uy literal 0 HcmV?d00001 diff --git a/assets/images/github-ribbons/black.png b/assets/images/github-ribbons/black.png new file mode 100644 index 0000000000000000000000000000000000000000..95c6074a238f871365ac3ff09e7257579c13e88d GIT binary patch literal 7327 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 literal 0 HcmV?d00001 diff --git a/assets/images/github-ribbons/grey.png b/assets/images/github-ribbons/grey.png new file mode 100644 index 0000000000000000000000000000000000000000..99463f6d7108556e4b0bc0ec7767de1cfe069224 GIT binary patch literal 6789 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 literal 0 HcmV?d00001 diff --git a/assets/images/github-ribbons/red.png b/assets/images/github-ribbons/red.png new file mode 100644 index 0000000000000000000000000000000000000000..3aacaefd14818b996a8396b056a1c4d9cd3111b9 GIT binary patch literal 8146 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 literal 0 HcmV?d00001 diff --git a/assets/images/github-ribbons/white.png b/assets/images/github-ribbons/white.png new file mode 100644 index 0000000000000000000000000000000000000000..60c60a6342300f3a0674a805d14d0758fae79114 GIT binary patch literal 6727 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 K3k^t*g#QC$jE}_t literal 0 HcmV?d00001 diff --git a/assets/images/page-background.png b/assets/images/page-background.png new file mode 100644 index 0000000000000000000000000000000000000000..14f6a89ac2df6f5cf3053a76001ceab62b518e21 GIT binary patch literal 31492 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";return a.childNodes.length!==1}())){a.iepp=a.iepp||{};var c=a.iepp,d=c.html5elements||"abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",e=d.split("|"),f=e.length,g=new RegExp("(^|\\s)("+d+")","gi"),h=new RegExp("<(/*)("+d+")","gi"),i=/^\s*[\{\}]\s*$/,j=new RegExp("(^|[^\\n]*?\\s)("+d+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),k=b.createDocumentFragment(),l=b.documentElement,m=l.firstChild,n=b.createElement("body"),o=b.createElement("style"),p=/print|all/,q;c.getCSS=function(a,b){if(a+""===undefined)return"";var d=-1,e=a.length,f,g=[];while(++d)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); diff --git a/assets/javascript/lang-go.js b/assets/javascript/lang-go.js new file mode 100644 index 0000000..fc18dc0 --- /dev/null +++ b/assets/javascript/lang-go.js @@ -0,0 +1 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["pln",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])+(?:'|$)|`[^`]*(?:`|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\/\*[\S\s]*?\*\/)/],["pln",/^(?:[^"'/`]|\/(?![*/]))+/]]),["go"]); diff --git a/assets/javascript/lang-hs.js b/assets/javascript/lang-hs.js new file mode 100644 index 0000000..9d77b08 --- /dev/null +++ b/assets/javascript/lang-hs.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t-\r ]+/,null,"\t\n \r "],["str",/^"(?:[^\n\f\r"\\]|\\[\S\s])*(?:"|$)/,null,'"'],["str",/^'(?:[^\n\f\r'\\]|\\[^&])'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:--+[^\n\f\r]*|{-(?:[^-]|-+[^}-])*-})/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^\d'A-Za-z]|$)/, +null],["pln",/^(?:[A-Z][\w']*\.)*[A-Za-z][\w']*/],["pun",/^[^\d\t-\r "'A-Za-z]+/]]),["hs"]); diff --git a/assets/javascript/lang-lisp.js b/assets/javascript/lang-lisp.js new file mode 100644 index 0000000..02a30e8 --- /dev/null +++ b/assets/javascript/lang-lisp.js @@ -0,0 +1,3 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,a,"("],["clo",/^\)+/,a,")"],["com",/^;[^\n\r]*/,a,";"],["pln",/^[\t\n\r \xa0]+/,a,"\t\n\r \xa0"],["str",/^"(?:[^"\\]|\\[\S\s])*(?:"|$)/,a,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,a], +["lit",/^[+-]?(?:[#0]x[\da-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[de][+-]?\d+)?)/i],["lit",/^'(?:-*(?:\w|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?)?/],["pln",/^-*(?:[_a-z]|\\[!-~])(?:[\w-]*|\\[!-~])[!=?]?/i],["pun",/^[^\w\t\n\r "'-);\\\xa0]+/]]),["cl","el","lisp","scm"]); diff --git a/assets/javascript/lang-lua.js b/assets/javascript/lang-lua.js new file mode 100644 index 0000000..e83a3c4 --- /dev/null +++ b/assets/javascript/lang-lua.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\S\s]*?(?:]\1]|$)|[^\n\r]*)/],["str",/^\[(=*)\[[\S\s]*?(?:]\1]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i], +["pln",/^[_a-z]\w*/i],["pun",/^[^\w\t\n\r \xa0][^\w\t\n\r "'+=\xa0-]*/]]),["lua"]); diff --git a/assets/javascript/lang-ml.js b/assets/javascript/lang-ml.js new file mode 100644 index 0000000..6df02d7 --- /dev/null +++ b/assets/javascript/lang-ml.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["com",/^#(?:if[\t\n\r \xa0]+(?:[$_a-z][\w']*|``[^\t\n\r`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:"(?:[^"\\]|\\[\S\s])*(?:"|$)|'(?:[^'\\]|\\[\S\s])(?:'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\n\r]*|\(\*[\S\s]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/], +["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^(?:[_a-z][\w']*[!#?]?|``[^\t\n\r`]*(?:``|$))/i],["pun",/^[^\w\t\n\r "'\xa0]+/]]),["fs","ml"]); diff --git a/assets/javascript/lang-n.js b/assets/javascript/lang-n.js new file mode 100644 index 0000000..6c2e85b --- /dev/null +++ b/assets/javascript/lang-n.js @@ -0,0 +1,4 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:'(?:[^\n\r'\\]|\\.)*'|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,a,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,a,"#"],["pln",/^\s+/,a," \r\n\t\xa0"]],[["str",/^@"(?:[^"]|"")*(?:"|$)/,a],["str",/^<#[^#>]*(?:#>|$)/,a],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,a],["com",/^\/\/[^\n\r]*/,a],["com",/^\/\*[\S\s]*?(?:\*\/|$)/, +a],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/, +a],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,a],["lit",/^@[$_a-z][\w$@]*/i,a],["typ",/^@[A-Z]+[a-z][\w$@]*/,a],["pln",/^'?[$_a-z][\w$@]*/i,a],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,a,"0123456789"],["pun",/^.[^\s\w"-$'./@`]*/,a]]),["n","nemerle"]); diff --git a/assets/javascript/lang-proto.js b/assets/javascript/lang-proto.js new file mode 100644 index 0000000..f006ad8 --- /dev/null +++ b/assets/javascript/lang-proto.js @@ -0,0 +1 @@ +PR.registerLangHandler(PR.sourceDecorator({keywords:"bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",types:/^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,cStyleComments:!0}),["proto"]); diff --git a/assets/javascript/lang-scala.js b/assets/javascript/lang-scala.js new file mode 100644 index 0000000..60d034d --- /dev/null +++ b/assets/javascript/lang-scala.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^"(?:""(?:""?(?!")|[^"\\]|\\.)*"{0,3}|(?:[^\n\r"\\]|\\.)*"?)/,null,'"'],["lit",/^`(?:[^\n\r\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&(--:-@[-^{-~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\n\r'\\]|\\(?:'|[^\n\r']+))'/],["lit",/^'[$A-Z_a-z][\w$]*(?![\w$'])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/], +["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:0(?:[0-7]+|x[\da-f]+)l?|(?:0|[1-9]\d*)(?:(?:\.\d+)?(?:e[+-]?\d+)?f?|l?)|\\.\d+(?:e[+-]?\d+)?f?)/i],["typ",/^[$_]*[A-Z][\d$A-Z_]*[a-z][\w$]*/],["pln",/^[$A-Z_a-z][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"]); diff --git a/assets/javascript/lang-sql.js b/assets/javascript/lang-sql.js new file mode 100644 index 0000000..da705b0 --- /dev/null +++ b/assets/javascript/lang-sql.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\n\r]*|\/\*[\S\s]*?(?:\*\/|$))/],["kwd",/^(?:add|all|alter|and|any|as|asc|authorization|backup|begin|between|break|browse|bulk|by|cascade|case|check|checkpoint|close|clustered|coalesce|collate|column|commit|compute|constraint|contains|containstable|continue|convert|create|cross|current|current_date|current_time|current_timestamp|current_user|cursor|database|dbcc|deallocate|declare|default|delete|deny|desc|disk|distinct|distributed|double|drop|dummy|dump|else|end|errlvl|escape|except|exec|execute|exists|exit|fetch|file|fillfactor|for|foreign|freetext|freetexttable|from|full|function|goto|grant|group|having|holdlock|identity|identitycol|identity_insert|if|in|index|inner|insert|intersect|into|is|join|key|kill|left|like|lineno|load|match|merge|national|nocheck|nonclustered|not|null|nullif|of|off|offsets|on|open|opendatasource|openquery|openrowset|openxml|option|or|order|outer|over|percent|plan|precision|primary|print|proc|procedure|public|raiserror|read|readtext|reconfigure|references|replication|restore|restrict|return|revoke|right|rollback|rowcount|rowguidcol|rule|save|schema|select|session_user|set|setuser|shutdown|some|statistics|system_user|table|textsize|then|to|top|tran|transaction|trigger|truncate|tsequal|union|unique|update|updatetext|use|user|using|values|varying|view|waitfor|when|where|while|with|writetext)(?=[^\w-]|$)/i, +null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^[_a-z][\w-]*/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'+\xa0-]*/]]),["sql"]); diff --git a/assets/javascript/lang-tex.js b/assets/javascript/lang-tex.js new file mode 100644 index 0000000..ce96fbb --- /dev/null +++ b/assets/javascript/lang-tex.js @@ -0,0 +1 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["com",/^%[^\n\r]*/,null,"%"]],[["kwd",/^\\[@-Za-z]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[()=[\]{}]+/]]),["latex","tex"]); diff --git a/assets/javascript/lang-vb.js b/assets/javascript/lang-vb.js new file mode 100644 index 0000000..07506b0 --- /dev/null +++ b/assets/javascript/lang-vb.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0\u2028\u2029]+/,null,"\t\n\r Â\xa0

"],["str",/^(?:["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})(?:["\u201c\u201d]c|$)|["\u201c\u201d](?:[^"\u201c\u201d]|["\u201c\u201d]{2})*(?:["\u201c\u201d]|$))/i,null,'"“â€'],["com",/^['\u2018\u2019].*/,null,"'‘’"]],[["kwd",/^(?:addhandler|addressof|alias|and|andalso|ansi|as|assembly|auto|boolean|byref|byte|byval|call|case|catch|cbool|cbyte|cchar|cdate|cdbl|cdec|char|cint|class|clng|cobj|const|cshort|csng|cstr|ctype|date|decimal|declare|default|delegate|dim|directcast|do|double|each|else|elseif|end|endif|enum|erase|error|event|exit|finally|for|friend|function|get|gettype|gosub|goto|handles|if|implements|imports|in|inherits|integer|interface|is|let|lib|like|long|loop|me|mod|module|mustinherit|mustoverride|mybase|myclass|namespace|new|next|not|notinheritable|notoverridable|object|on|option|optional|or|orelse|overloads|overridable|overrides|paramarray|preserve|private|property|protected|public|raiseevent|readonly|redim|removehandler|resume|return|select|set|shadows|shared|short|single|static|step|stop|string|structure|sub|synclock|then|throw|to|try|typeof|unicode|until|variant|wend|when|while|with|withevents|writeonly|xor|endif|gosub|let|variant|wend)\b/i, +null],["com",/^rem.*/i],["lit",/^(?:true\b|false\b|nothing\b|\d+(?:e[+-]?\d+[dfr]?|[dfilrs])?|(?:&h[\da-f]+|&o[0-7]+)[ils]?|\d*\.\d+(?:e[+-]?\d+)?[dfr]?|#\s+(?:\d+[/-]\d+[/-]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:am|pm))?)?|\d+:\d+(?::\d+)?(\s*(?:am|pm))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*|\[(?:[a-z]|_\w)\w*])/i],["pun",/^[^\w\t\n\r "'[\]\xa0\u2018\u2019\u201c\u201d\u2028\u2029]+/],["pun",/^(?:\[|])/]]),["vb","vbs"]); diff --git a/assets/javascript/lang-vhdl.js b/assets/javascript/lang-vhdl.js new file mode 100644 index 0000000..128b5b6 --- /dev/null +++ b/assets/javascript/lang-vhdl.js @@ -0,0 +1,3 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"]],[["str",/^(?:[box]?"(?:[^"]|"")*"|'.')/i],["com",/^--[^\n\r]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i, +null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^'(?:active|ascending|base|delayed|driving|driving_value|event|high|image|instance_name|last_active|last_event|last_value|left|leftof|length|low|path_name|pos|pred|quiet|range|reverse_range|right|rightof|simple_name|stable|succ|transaction|val|value)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w.\\]+#(?:[+-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:e[+-]?\d+(?:_\d+)*)?)/i], +["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'\xa0-]*/]]),["vhdl","vhd"]); diff --git a/assets/javascript/lang-wiki.js b/assets/javascript/lang-wiki.js new file mode 100644 index 0000000..9b0b448 --- /dev/null +++ b/assets/javascript/lang-wiki.js @@ -0,0 +1,2 @@ +PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\d\t a-gi-z\xa0]+/,null,"\t Â\xa0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[*=[\]^~]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^[A-Z][a-z][\da-z]+[A-Z][a-z][^\W_]+\b/],["lang-",/^{{{([\S\s]+?)}}}/],["lang-",/^`([^\n\r`]+)`/],["str",/^https?:\/\/[^\s#/?]*(?:\/[^\s#?]*)?(?:\?[^\s#]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\S\s])[^\n\r#*=A-[^`h{~]*/]]),["wiki"]); +PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]); diff --git a/assets/javascript/lang-xq.js b/assets/javascript/lang-xq.js new file mode 100644 index 0000000..e323ae3 --- /dev/null +++ b/assets/javascript/lang-xq.js @@ -0,0 +1,3 @@ +PR.registerLangHandler(PR.createSimpleLexer([["var pln",/^\$[\w-]+/,null,"$"]],[["pln",/^[\s=][<>][\s=]/],["lit",/^@[\w-]+/],["tag",/^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["com",/^\(:[\S\s]*?:\)/],["pln",/^[(),/;[\]{}]$/],["str",/^(?:"(?:[^"\\{]|\\[\S\s])*(?:"|$)|'(?:[^'\\{]|\\[\S\s])*(?:'|$))/,null,"\"'"],["kwd",/^(?:xquery|where|version|variable|union|typeswitch|treat|to|then|text|stable|sortby|some|self|schema|satisfies|returns|return|ref|processing-instruction|preceding-sibling|preceding|precedes|parent|only|of|node|namespace|module|let|item|intersect|instance|in|import|if|function|for|follows|following-sibling|following|external|except|every|else|element|descending|descendant-or-self|descendant|define|default|declare|comment|child|cast|case|before|attribute|assert|ascending|as|ancestor-or-self|ancestor|after|eq|order|by|or|and|schema-element|document-node|node|at)\b/], +["typ",/^(?:xs:yearMonthDuration|xs:unsignedLong|xs:time|xs:string|xs:short|xs:QName|xs:Name|xs:long|xs:integer|xs:int|xs:gYearMonth|xs:gYear|xs:gMonthDay|xs:gDay|xs:float|xs:duration|xs:double|xs:decimal|xs:dayTimeDuration|xs:dateTime|xs:date|xs:byte|xs:boolean|xs:anyURI|xf:yearMonthDuration)\b/,null],["fun pln",/^(?:xp:dereference|xinc:node-expand|xinc:link-references|xinc:link-expand|xhtml:restructure|xhtml:clean|xhtml:add-lists|xdmp:zip-manifest|xdmp:zip-get|xdmp:zip-create|xdmp:xquery-version|xdmp:word-convert|xdmp:with-namespaces|xdmp:version|xdmp:value|xdmp:user-roles|xdmp:user-last-login|xdmp:user|xdmp:url-encode|xdmp:url-decode|xdmp:uri-is-file|xdmp:uri-format|xdmp:uri-content-type|xdmp:unquote|xdmp:unpath|xdmp:triggers-database|xdmp:trace|xdmp:to-json|xdmp:tidy|xdmp:subbinary|xdmp:strftime|xdmp:spawn-in|xdmp:spawn|xdmp:sleep|xdmp:shutdown|xdmp:set-session-field|xdmp:set-response-encoding|xdmp:set-response-content-type|xdmp:set-response-code|xdmp:set-request-time-limit|xdmp:set|xdmp:servers|xdmp:server-status|xdmp:server-name|xdmp:server|xdmp:security-database|xdmp:security-assert|xdmp:schema-database|xdmp:save|xdmp:role-roles|xdmp:role|xdmp:rethrow|xdmp:restart|xdmp:request-timestamp|xdmp:request-status|xdmp:request-cancel|xdmp:request|xdmp:redirect-response|xdmp:random|xdmp:quote|xdmp:query-trace|xdmp:query-meters|xdmp:product-edition|xdmp:privilege-roles|xdmp:privilege|xdmp:pretty-print|xdmp:powerpoint-convert|xdmp:platform|xdmp:permission|xdmp:pdf-convert|xdmp:path|xdmp:octal-to-integer|xdmp:node-uri|xdmp:node-replace|xdmp:node-kind|xdmp:node-insert-child|xdmp:node-insert-before|xdmp:node-insert-after|xdmp:node-delete|xdmp:node-database|xdmp:mul64|xdmp:modules-root|xdmp:modules-database|xdmp:merging|xdmp:merge-cancel|xdmp:merge|xdmp:md5|xdmp:logout|xdmp:login|xdmp:log-level|xdmp:log|xdmp:lock-release|xdmp:lock-acquire|xdmp:load|xdmp:invoke-in|xdmp:invoke|xdmp:integer-to-octal|xdmp:integer-to-hex|xdmp:http-put|xdmp:http-post|xdmp:http-options|xdmp:http-head|xdmp:http-get|xdmp:http-delete|xdmp:hosts|xdmp:host-status|xdmp:host-name|xdmp:host|xdmp:hex-to-integer|xdmp:hash64|xdmp:hash32|xdmp:has-privilege|xdmp:groups|xdmp:group-serves|xdmp:group-servers|xdmp:group-name|xdmp:group-hosts|xdmp:group|xdmp:get-session-field-names|xdmp:get-session-field|xdmp:get-response-encoding|xdmp:get-response-code|xdmp:get-request-username|xdmp:get-request-user|xdmp:get-request-url|xdmp:get-request-protocol|xdmp:get-request-path|xdmp:get-request-method|xdmp:get-request-header-names|xdmp:get-request-header|xdmp:get-request-field-names|xdmp:get-request-field-filename|xdmp:get-request-field-content-type|xdmp:get-request-field|xdmp:get-request-client-certificate|xdmp:get-request-client-address|xdmp:get-request-body|xdmp:get-current-user|xdmp:get-current-roles|xdmp:get|xdmp:function-name|xdmp:function-module|xdmp:function|xdmp:from-json|xdmp:forests|xdmp:forest-status|xdmp:forest-restore|xdmp:forest-restart|xdmp:forest-name|xdmp:forest-delete|xdmp:forest-databases|xdmp:forest-counts|xdmp:forest-clear|xdmp:forest-backup|xdmp:forest|xdmp:filesystem-file|xdmp:filesystem-directory|xdmp:exists|xdmp:excel-convert|xdmp:eval-in|xdmp:eval|xdmp:estimate|xdmp:email|xdmp:element-content-type|xdmp:elapsed-time|xdmp:document-set-quality|xdmp:document-set-property|xdmp:document-set-properties|xdmp:document-set-permissions|xdmp:document-set-collections|xdmp:document-remove-properties|xdmp:document-remove-permissions|xdmp:document-remove-collections|xdmp:document-properties|xdmp:document-locks|xdmp:document-load|xdmp:document-insert|xdmp:document-get-quality|xdmp:document-get-properties|xdmp:document-get-permissions|xdmp:document-get-collections|xdmp:document-get|xdmp:document-forest|xdmp:document-delete|xdmp:document-add-properties|xdmp:document-add-permissions|xdmp:document-add-collections|xdmp:directory-properties|xdmp:directory-locks|xdmp:directory-delete|xdmp:directory-create|xdmp:directory|xdmp:diacritic-less|xdmp:describe|xdmp:default-permissions|xdmp:default-collections|xdmp:databases|xdmp:database-restore-validate|xdmp:database-restore-status|xdmp:database-restore-cancel|xdmp:database-restore|xdmp:database-name|xdmp:database-forests|xdmp:database-backup-validate|xdmp:database-backup-status|xdmp:database-backup-purge|xdmp:database-backup-cancel|xdmp:database-backup|xdmp:database|xdmp:collection-properties|xdmp:collection-locks|xdmp:collection-delete|xdmp:collation-canonical-uri|xdmp:castable-as|xdmp:can-grant-roles|xdmp:base64-encode|xdmp:base64-decode|xdmp:architecture|xdmp:apply|xdmp:amp-roles|xdmp:amp|xdmp:add64|xdmp:add-response-header|xdmp:access|trgr:trigger-set-recursive|trgr:trigger-set-permissions|trgr:trigger-set-name|trgr:trigger-set-module|trgr:trigger-set-event|trgr:trigger-set-description|trgr:trigger-remove-permissions|trgr:trigger-module|trgr:trigger-get-permissions|trgr:trigger-enable|trgr:trigger-disable|trgr:trigger-database-online-event|trgr:trigger-data-event|trgr:trigger-add-permissions|trgr:remove-trigger|trgr:property-content|trgr:pre-commit|trgr:post-commit|trgr:get-trigger-by-id|trgr:get-trigger|trgr:document-scope|trgr:document-content|trgr:directory-scope|trgr:create-trigger|trgr:collection-scope|trgr:any-property-content|thsr:set-entry|thsr:remove-term|thsr:remove-synonym|thsr:remove-entry|thsr:query-lookup|thsr:lookup|thsr:load|thsr:insert|thsr:expand|thsr:add-synonym|spell:suggest-detailed|spell:suggest|spell:remove-word|spell:make-dictionary|spell:load|spell:levenshtein-distance|spell:is-correct|spell:insert|spell:double-metaphone|spell:add-word|sec:users-collection|sec:user-set-roles|sec:user-set-password|sec:user-set-name|sec:user-set-description|sec:user-set-default-permissions|sec:user-set-default-collections|sec:user-remove-roles|sec:user-privileges|sec:user-get-roles|sec:user-get-description|sec:user-get-default-permissions|sec:user-get-default-collections|sec:user-doc-permissions|sec:user-doc-collections|sec:user-add-roles|sec:unprotect-collection|sec:uid-for-name|sec:set-realm|sec:security-version|sec:security-namespace|sec:security-installed|sec:security-collection|sec:roles-collection|sec:role-set-roles|sec:role-set-name|sec:role-set-description|sec:role-set-default-permissions|sec:role-set-default-collections|sec:role-remove-roles|sec:role-privileges|sec:role-get-roles|sec:role-get-description|sec:role-get-default-permissions|sec:role-get-default-collections|sec:role-doc-permissions|sec:role-doc-collections|sec:role-add-roles|sec:remove-user|sec:remove-role-from-users|sec:remove-role-from-role|sec:remove-role-from-privileges|sec:remove-role-from-amps|sec:remove-role|sec:remove-privilege|sec:remove-amp|sec:protect-collection|sec:privileges-collection|sec:privilege-set-roles|sec:privilege-set-name|sec:privilege-remove-roles|sec:privilege-get-roles|sec:privilege-add-roles|sec:priv-doc-permissions|sec:priv-doc-collections|sec:get-user-names|sec:get-unique-elem-id|sec:get-role-names|sec:get-role-ids|sec:get-privilege|sec:get-distinct-permissions|sec:get-collection|sec:get-amp|sec:create-user-with-role|sec:create-user|sec:create-role|sec:create-privilege|sec:create-amp|sec:collections-collection|sec:collection-set-permissions|sec:collection-remove-permissions|sec:collection-get-permissions|sec:collection-add-permissions|sec:check-admin|sec:amps-collection|sec:amp-set-roles|sec:amp-remove-roles|sec:amp-get-roles|sec:amp-doc-permissions|sec:amp-doc-collections|sec:amp-add-roles|search:unparse|search:suggest|search:snippet|search:search|search:resolve-nodes|search:resolve|search:remove-constraint|search:parse|search:get-default-options|search:estimate|search:check-options|prof:value|prof:reset|prof:report|prof:invoke|prof:eval|prof:enable|prof:disable|prof:allowed|ppt:clean|pki:template-set-request|pki:template-set-name|pki:template-set-key-type|pki:template-set-key-options|pki:template-set-description|pki:template-in-use|pki:template-get-version|pki:template-get-request|pki:template-get-name|pki:template-get-key-type|pki:template-get-key-options|pki:template-get-id|pki:template-get-description|pki:need-certificate|pki:is-temporary|pki:insert-trusted-certificates|pki:insert-template|pki:insert-signed-certificates|pki:insert-certificate-revocation-list|pki:get-trusted-certificate-ids|pki:get-template-ids|pki:get-template-certificate-authority|pki:get-template-by-name|pki:get-template|pki:get-pending-certificate-requests-xml|pki:get-pending-certificate-requests-pem|pki:get-pending-certificate-request|pki:get-certificates-for-template-xml|pki:get-certificates-for-template|pki:get-certificates|pki:get-certificate-xml|pki:get-certificate-pem|pki:get-certificate|pki:generate-temporary-certificate-if-necessary|pki:generate-temporary-certificate|pki:generate-template-certificate-authority|pki:generate-certificate-request|pki:delete-template|pki:delete-certificate|pki:create-template|pdf:make-toc|pdf:insert-toc-headers|pdf:get-toc|pdf:clean|p:status-transition|p:state-transition|p:remove|p:pipelines|p:insert|p:get-by-id|p:get|p:execute|p:create|p:condition|p:collection|p:action|ooxml:runs-merge|ooxml:package-uris|ooxml:package-parts-insert|ooxml:package-parts|msword:clean|mcgm:polygon|mcgm:point|mcgm:geospatial-query-from-elements|mcgm:geospatial-query|mcgm:circle|math:tanh|math:tan|math:sqrt|math:sinh|math:sin|math:pow|math:modf|math:log10|math:log|math:ldexp|math:frexp|math:fmod|math:floor|math:fabs|math:exp|math:cosh|math:cos|math:ceil|math:atan2|math:atan|math:asin|math:acos|map:put|map:map|map:keys|map:get|map:delete|map:count|map:clear|lnk:to|lnk:remove|lnk:insert|lnk:get|lnk:from|lnk:create|kml:polygon|kml:point|kml:interior-polygon|kml:geospatial-query-from-elements|kml:geospatial-query|kml:circle|kml:box|gml:polygon|gml:point|gml:interior-polygon|gml:geospatial-query-from-elements|gml:geospatial-query|gml:circle|gml:box|georss:point|georss:geospatial-query|georss:circle|geo:polygon|geo:point|geo:interior-polygon|geo:geospatial-query-from-elements|geo:geospatial-query|geo:circle|geo:box|fn:zero-or-one|fn:years-from-duration|fn:year-from-dateTime|fn:year-from-date|fn:upper-case|fn:unordered|fn:true|fn:translate|fn:trace|fn:tokenize|fn:timezone-from-time|fn:timezone-from-dateTime|fn:timezone-from-date|fn:sum|fn:subtract-dateTimes-yielding-yearMonthDuration|fn:subtract-dateTimes-yielding-dayTimeDuration|fn:substring-before|fn:substring-after|fn:substring|fn:subsequence|fn:string-to-codepoints|fn:string-pad|fn:string-length|fn:string-join|fn:string|fn:static-base-uri|fn:starts-with|fn:seconds-from-time|fn:seconds-from-duration|fn:seconds-from-dateTime|fn:round-half-to-even|fn:round|fn:root|fn:reverse|fn:resolve-uri|fn:resolve-QName|fn:replace|fn:remove|fn:QName|fn:prefix-from-QName|fn:position|fn:one-or-more|fn:number|fn:not|fn:normalize-unicode|fn:normalize-space|fn:node-name|fn:node-kind|fn:nilled|fn:namespace-uri-from-QName|fn:namespace-uri-for-prefix|fn:namespace-uri|fn:name|fn:months-from-duration|fn:month-from-dateTime|fn:month-from-date|fn:minutes-from-time|fn:minutes-from-duration|fn:minutes-from-dateTime|fn:min|fn:max|fn:matches|fn:lower-case|fn:local-name-from-QName|fn:local-name|fn:last|fn:lang|fn:iri-to-uri|fn:insert-before|fn:index-of|fn:in-scope-prefixes|fn:implicit-timezone|fn:idref|fn:id|fn:hours-from-time|fn:hours-from-duration|fn:hours-from-dateTime|fn:floor|fn:false|fn:expanded-QName|fn:exists|fn:exactly-one|fn:escape-uri|fn:escape-html-uri|fn:error|fn:ends-with|fn:encode-for-uri|fn:empty|fn:document-uri|fn:doc-available|fn:doc|fn:distinct-values|fn:distinct-nodes|fn:default-collation|fn:deep-equal|fn:days-from-duration|fn:day-from-dateTime|fn:day-from-date|fn:data|fn:current-time|fn:current-dateTime|fn:current-date|fn:count|fn:contains|fn:concat|fn:compare|fn:collection|fn:codepoints-to-string|fn:codepoint-equal|fn:ceiling|fn:boolean|fn:base-uri|fn:avg|fn:adjust-time-to-timezone|fn:adjust-dateTime-to-timezone|fn:adjust-date-to-timezone|fn:abs|feed:unsubscribe|feed:subscription|feed:subscribe|feed:request|feed:item|feed:description|excel:clean|entity:enrich|dom:set-pipelines|dom:set-permissions|dom:set-name|dom:set-evaluation-context|dom:set-domain-scope|dom:set-description|dom:remove-pipeline|dom:remove-permissions|dom:remove|dom:get|dom:evaluation-context|dom:domains|dom:domain-scope|dom:create|dom:configuration-set-restart-user|dom:configuration-set-permissions|dom:configuration-set-evaluation-context|dom:configuration-set-default-domain|dom:configuration-get|dom:configuration-create|dom:collection|dom:add-pipeline|dom:add-permissions|dls:retention-rules|dls:retention-rule-remove|dls:retention-rule-insert|dls:retention-rule|dls:purge|dls:node-expand|dls:link-references|dls:link-expand|dls:documents-query|dls:document-versions-query|dls:document-version-uri|dls:document-version-query|dls:document-version-delete|dls:document-version-as-of|dls:document-version|dls:document-update|dls:document-unmanage|dls:document-set-quality|dls:document-set-property|dls:document-set-properties|dls:document-set-permissions|dls:document-set-collections|dls:document-retention-rules|dls:document-remove-properties|dls:document-remove-permissions|dls:document-remove-collections|dls:document-purge|dls:document-manage|dls:document-is-managed|dls:document-insert-and-manage|dls:document-include-query|dls:document-history|dls:document-get-permissions|dls:document-extract-part|dls:document-delete|dls:document-checkout-status|dls:document-checkout|dls:document-checkin|dls:document-add-properties|dls:document-add-permissions|dls:document-add-collections|dls:break-checkout|dls:author-query|dls:as-of-query|dbk:convert|dbg:wait|dbg:value|dbg:stopped|dbg:stop|dbg:step|dbg:status|dbg:stack|dbg:out|dbg:next|dbg:line|dbg:invoke|dbg:function|dbg:finish|dbg:expr|dbg:eval|dbg:disconnect|dbg:detach|dbg:continue|dbg:connect|dbg:clear|dbg:breakpoints|dbg:break|dbg:attached|dbg:attach|cvt:save-converted-documents|cvt:part-uri|cvt:destination-uri|cvt:basepath|cvt:basename|cts:words|cts:word-query-weight|cts:word-query-text|cts:word-query-options|cts:word-query|cts:word-match|cts:walk|cts:uris|cts:uri-match|cts:train|cts:tokenize|cts:thresholds|cts:stem|cts:similar-query-weight|cts:similar-query-nodes|cts:similar-query|cts:shortest-distance|cts:search|cts:score|cts:reverse-query-weight|cts:reverse-query-nodes|cts:reverse-query|cts:remainder|cts:registered-query-weight|cts:registered-query-options|cts:registered-query-ids|cts:registered-query|cts:register|cts:query|cts:quality|cts:properties-query-query|cts:properties-query|cts:polygon-vertices|cts:polygon|cts:point-longitude|cts:point-latitude|cts:point|cts:or-query-queries|cts:or-query|cts:not-query-weight|cts:not-query-query|cts:not-query|cts:near-query-weight|cts:near-query-queries|cts:near-query-options|cts:near-query-distance|cts:near-query|cts:highlight|cts:geospatial-co-occurrences|cts:frequency|cts:fitness|cts:field-words|cts:field-word-query-weight|cts:field-word-query-text|cts:field-word-query-options|cts:field-word-query-field-name|cts:field-word-query|cts:field-word-match|cts:entity-highlight|cts:element-words|cts:element-word-query-weight|cts:element-word-query-text|cts:element-word-query-options|cts:element-word-query-element-name|cts:element-word-query|cts:element-word-match|cts:element-values|cts:element-value-ranges|cts:element-value-query-weight|cts:element-value-query-text|cts:element-value-query-options|cts:element-value-query-element-name|cts:element-value-query|cts:element-value-match|cts:element-value-geospatial-co-occurrences|cts:element-value-co-occurrences|cts:element-range-query-weight|cts:element-range-query-value|cts:element-range-query-options|cts:element-range-query-operator|cts:element-range-query-element-name|cts:element-range-query|cts:element-query-query|cts:element-query-element-name|cts:element-query|cts:element-pair-geospatial-values|cts:element-pair-geospatial-value-match|cts:element-pair-geospatial-query-weight|cts:element-pair-geospatial-query-region|cts:element-pair-geospatial-query-options|cts:element-pair-geospatial-query-longitude-name|cts:element-pair-geospatial-query-latitude-name|cts:element-pair-geospatial-query-element-name|cts:element-pair-geospatial-query|cts:element-pair-geospatial-boxes|cts:element-geospatial-values|cts:element-geospatial-value-match|cts:element-geospatial-query-weight|cts:element-geospatial-query-region|cts:element-geospatial-query-options|cts:element-geospatial-query-element-name|cts:element-geospatial-query|cts:element-geospatial-boxes|cts:element-child-geospatial-values|cts:element-child-geospatial-value-match|cts:element-child-geospatial-query-weight|cts:element-child-geospatial-query-region|cts:element-child-geospatial-query-options|cts:element-child-geospatial-query-element-name|cts:element-child-geospatial-query-child-name|cts:element-child-geospatial-query|cts:element-child-geospatial-boxes|cts:element-attribute-words|cts:element-attribute-word-query-weight|cts:element-attribute-word-query-text|cts:element-attribute-word-query-options|cts:element-attribute-word-query-element-name|cts:element-attribute-word-query-attribute-name|cts:element-attribute-word-query|cts:element-attribute-word-match|cts:element-attribute-values|cts:element-attribute-value-ranges|cts:element-attribute-value-query-weight|cts:element-attribute-value-query-text|cts:element-attribute-value-query-options|cts:element-attribute-value-query-element-name|cts:element-attribute-value-query-attribute-name|cts:element-attribute-value-query|cts:element-attribute-value-match|cts:element-attribute-value-geospatial-co-occurrences|cts:element-attribute-value-co-occurrences|cts:element-attribute-range-query-weight|cts:element-attribute-range-query-value|cts:element-attribute-range-query-options|cts:element-attribute-range-query-operator|cts:element-attribute-range-query-element-name|cts:element-attribute-range-query-attribute-name|cts:element-attribute-range-query|cts:element-attribute-pair-geospatial-values|cts:element-attribute-pair-geospatial-value-match|cts:element-attribute-pair-geospatial-query-weight|cts:element-attribute-pair-geospatial-query-region|cts:element-attribute-pair-geospatial-query-options|cts:element-attribute-pair-geospatial-query-longitude-name|cts:element-attribute-pair-geospatial-query-latitude-name|cts:element-attribute-pair-geospatial-query-element-name|cts:element-attribute-pair-geospatial-query|cts:element-attribute-pair-geospatial-boxes|cts:document-query-uris|cts:document-query|cts:distance|cts:directory-query-uris|cts:directory-query-depth|cts:directory-query|cts:destination|cts:deregister|cts:contains|cts:confidence|cts:collections|cts:collection-query-uris|cts:collection-query|cts:collection-match|cts:classify|cts:circle-radius|cts:circle-center|cts:circle|cts:box-west|cts:box-south|cts:box-north|cts:box-east|cts:box|cts:bearing|cts:arc-intersection|cts:and-query-queries|cts:and-query-options|cts:and-query|cts:and-not-query-positive-query|cts:and-not-query-negative-query|cts:and-not-query|css:get|css:convert|cpf:success|cpf:failure|cpf:document-set-state|cpf:document-set-processing-status|cpf:document-set-last-updated|cpf:document-set-error|cpf:document-get-state|cpf:document-get-processing-status|cpf:document-get-last-updated|cpf:document-get-error|cpf:check-transition|alert:spawn-matching-actions|alert:rule-user-id-query|alert:rule-set-user-id|alert:rule-set-query|alert:rule-set-options|alert:rule-set-name|alert:rule-set-description|alert:rule-set-action|alert:rule-remove|alert:rule-name-query|alert:rule-insert|alert:rule-id-query|alert:rule-get-user-id|alert:rule-get-query|alert:rule-get-options|alert:rule-get-name|alert:rule-get-id|alert:rule-get-description|alert:rule-get-action|alert:rule-action-query|alert:remove-triggers|alert:make-rule|alert:make-log-action|alert:make-config|alert:make-action|alert:invoke-matching-actions|alert:get-my-rules|alert:get-all-rules|alert:get-actions|alert:find-matching-rules|alert:create-triggers|alert:config-set-uri|alert:config-set-trigger-ids|alert:config-set-options|alert:config-set-name|alert:config-set-description|alert:config-set-cpf-domain-names|alert:config-set-cpf-domain-ids|alert:config-insert|alert:config-get-uri|alert:config-get-trigger-ids|alert:config-get-options|alert:config-get-name|alert:config-get-id|alert:config-get-description|alert:config-get-cpf-domain-names|alert:config-get-cpf-domain-ids|alert:config-get|alert:config-delete|alert:action-set-options|alert:action-set-name|alert:action-set-module-root|alert:action-set-module-db|alert:action-set-module|alert:action-set-description|alert:action-remove|alert:action-insert|alert:action-get-options|alert:action-get-name|alert:action-get-module-root|alert:action-get-module-db|alert:action-get-module|alert:action-get-description|zero-or-one|years-from-duration|year-from-dateTime|year-from-date|upper-case|unordered|true|translate|trace|tokenize|timezone-from-time|timezone-from-dateTime|timezone-from-date|sum|subtract-dateTimes-yielding-yearMonthDuration|subtract-dateTimes-yielding-dayTimeDuration|substring-before|substring-after|substring|subsequence|string-to-codepoints|string-pad|string-length|string-join|string|static-base-uri|starts-with|seconds-from-time|seconds-from-duration|seconds-from-dateTime|round-half-to-even|round|root|reverse|resolve-uri|resolve-QName|replace|remove|QName|prefix-from-QName|position|one-or-more|number|not|normalize-unicode|normalize-space|node-name|node-kind|nilled|namespace-uri-from-QName|namespace-uri-for-prefix|namespace-uri|name|months-from-duration|month-from-dateTime|month-from-date|minutes-from-time|minutes-from-duration|minutes-from-dateTime|min|max|matches|lower-case|local-name-from-QName|local-name|last|lang|iri-to-uri|insert-before|index-of|in-scope-prefixes|implicit-timezone|idref|id|hours-from-time|hours-from-duration|hours-from-dateTime|floor|false|expanded-QName|exists|exactly-one|escape-uri|escape-html-uri|error|ends-with|encode-for-uri|empty|document-uri|doc-available|doc|distinct-values|distinct-nodes|default-collation|deep-equal|days-from-duration|day-from-dateTime|day-from-date|data|current-time|current-dateTime|current-date|count|contains|concat|compare|collection|codepoints-to-string|codepoint-equal|ceiling|boolean|base-uri|avg|adjust-time-to-timezone|adjust-dateTime-to-timezone|adjust-date-to-timezone|abs)\b/], +["pln",/^[\w:-]+/],["pln",/^[\t\n\r \xa0]+/]]),["xq","xquery"]); diff --git a/assets/javascript/lang-yaml.js b/assets/javascript/lang-yaml.js new file mode 100644 index 0000000..c38729b --- /dev/null +++ b/assets/javascript/lang-yaml.js @@ -0,0 +1,2 @@ +var a=null; +PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:>?|]+/,a,":|>?"],["dec",/^%(?:YAML|TAG)[^\n\r#]+/,a,"%"],["typ",/^&\S+/,a,"&"],["typ",/^!\S*/,a,"!"],["str",/^"(?:[^"\\]|\\.)*(?:"|$)/,a,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,a,"'"],["com",/^#[^\n\r]*/,a,"#"],["pln",/^\s+/,a," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\n\r]|$)/],["pun",/^-/],["kwd",/^\w+:[\n\r ]/],["pln",/^\w+/]]),["yaml","yml"]); diff --git a/assets/javascript/prettify.js b/assets/javascript/prettify.js new file mode 100644 index 0000000..eef5ad7 --- /dev/null +++ b/assets/javascript/prettify.js @@ -0,0 +1,28 @@ +var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= +[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), +l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, +q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, +"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), +a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} +for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), +["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p=0){var k=k.match(g),f,b;if(b= +!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p za`Yn=JN6Izhbm&?s+3%g~ea)BohG99Lqrf06Jb0 zmtMDth*Wi<03yyZk3RwcGIy;A0DyYD6aWAny`5DnN6XCj0gl}s&pEsmeLLk3bB>m` z?SISgZHI+RG7l~mFhV>80Z(}F`0diKPV7&6edLQ{Ig4K|_VXV3ZO+0ioG@MhP`Fq5 zB{du^Z|}{U_x|emv-bx5qykH*coc>Ik7>T1B~xuK|K4OcUeCWc*;L^q-aouO0lsn-PkKET~PtND4>U|-;Z~lBe_m=y|SF`)H1pxPxHcRVY%3DivV0rn4 zp`Da(=>(M9oQirm1adY@V#|VJy~{aSrGsG{PGUr4$Ok|WPFp2J)NG6~Kp-Nlj0O-@ zRYk4$K85HEr4)=eYM41IbPOs$7R`uAV4ONhB2H%5P5XJ!zCnsHcB_I@jv;vO4PX?V zm7h;#R<)2pqb4v;MNrU^W5{rn1Ex&MmYJ2NQ$<8r#5o5z$O1rwV1Phb6xb56Eb4>@ z;2ycN$7wQuJD?i8fCg)b1PVlKvR7n_^Awvtr67bvL_{bm0;);`M97eUSP%pi2$8HJ zh=@&5GaFJsa+U~GS&1NaKnzE`w;9_-UH^gAn80z!9 zW`CGQ%vDusOrc?rOhne&$dQzmBE?jslmNiFQdI*hq9N}_Q3~e~L1K_3W#LO#h7iy) zEL$zwt}p8QOQ8e+RLq%E%oX@mhRSwo&Kv+-So%~_2Vme}+9?@T1p|e1Ip-W0fGm-> z77;;^n*@ej;iJihoCqMJvZ^Mj0hyok~3Lvt(}OF zb;h9q1m!3hSWzMOdWhO+R#l(`M80 zs8!iCwe=1WZCZ}L(`3X{zCfjvQc-%tkqA(xvVLJ`zFdhZjV4X$yf6C7f{2Q|qiTw7 z!@<-^)j2ASlrb}6n#X;C_hCWjSpa>ODzQN&6E~yL#nrVq9w=h1tgZudYxV5Gu2<%o zRR~R48buIkvPgj)6&BFgPCXK^XpD)**_`5Vc)H&)no~+DAqj&~gSsT-)mDT6 zuw;P(fQ)8T!+1Q&EI=4JPsYt?GJZWYJA?h(gV8XiU?>?Em6*Azn^nSfKmPDm zNeGCL0SW*HPyk|Z2zvm3`**%_XOP$)(a>hRKUO}oxwU)st@l27Dc!vNsmo74d9hcS z6SrY+0(|qeYtMY`o2bcGzDbclyH%%&X<=L~Y99;xKlRBEUp##Z0R+GR5I{`YQ3L`o z5D{+G^1EMs?v-n|lXF8?Er33)^B%mv06hTI)NrLi)9zr;7|1zWOn_Om56gyTIj(tF zEj%D9f`U<4RnU)RR10H(HwXOU)$8B8e(Tm`oYe015bKGKZaZo^R6=S1p)kY|j1_A% z=YYOXXs!&e>4OiHftL1j#aDaVcYRS*8>{CpocjD1f9DrJ_cKN%nf_Arw|MmMnN#20 zSi3$6;)skhDxr>G4!3*ry2{$efBJ`=&6jRXG;`s7YJx#3ieeYX2x37)lfLu4*IvGI z-S@V@_bd-*oxF#>Pk=ZxCmUwGdK9uVwK#yT8=M;125%+INlHn$6j zjAIo<6v+heOF#d)G~B)N@{5z4T(`5mH|TWxDP;m=m8hwc-9F0QLO%20V?$_M%0*Fx z%qGFuVIPVKW*ZZMJlWfN_eb8px7S3@UC-FgYbhmX zPFzhF$UyTq$4Ru1qpB((BAuek%vo5CB63c(#6ZARQWq07!PQbF=wvJdyGcweAu6m&}HX`^}~Pqc}w2PF|Htjj?*yTvbl z_ERr^?W>XK?r_*yTWdlV0TD3PGD4Bvo`IeK*=_s)2mV^l;m#uSzcWXcSYj5v>lhr$44PEiENI%g3~4qf2KSF3;Pv!9VP z5{$-qQZN?Vrt~1)8~PRqAS}wxa5DCeOsaqU(MNvbeNQ~|r7r41V1DI0susbWWX82A*ez!4j6LIDRGvm z%B+$hryM58(Gwa1QB0y)3CMv)Nlm|F&cEyI?szDGDgvM)(xNXS^8`3i@(=;pCPizl zvRGtpM!)cxPx_|5`r2#WTQIf`Q2~HZ5E^G}Ewu#>aoDF%J^EA_4hc0O6iL0eYITdu zkG|)ryJ2jM3oIE>$OxH~xM`v)TI+xC!#BS1!i%TQpR;9UokKJ+MrZ7C_FbCj_}2@w z0q4ceK}vOC5kxddIi$MDOm<(XQ4`2V;{&;|xSCCd3Vers!ALo0R3-x%G%&;{xyBm;IeF01#rXI=vX9gyazlk$>-JfA-Dqd~3XW7f}Oe0W_|N zqE=*pxn#1Yyt=phz#|tQ?XIOfGDPaIN-1LeiOcVfT{oCCDI*wS(5xZ|WQ=uARJZTm z{mNIL+d6v=ohN7OlzmyCLfe_8?7wimsP7-Yoqv9Yg)KZfnS`1-_lsU{wfpjoo&WT2 z{tq=`<%9_)$iW9^|23qVEa%0V1l-$Nm)-G+1l7Vwef@DPSNQ{0kof zY?U~RaSjCx+Wpa}XX&s-n3Fsws6a#n04XI~bYoTuwOR)VrO0PL`k_C0+gv zhmoNuicFGCcH?H)@Awf6M@_dV?^g1Gt#i+84;u(8E7i|G{oz;YZ6q^_(U9j5thHo~ zurx8L>YY1xUVi!I2OoKoterGX(W!`NJeu^2Du?O50q*A~p!S1kW*;I;WZP>XgFu2} z3^FGGU{Fv>rm4hhrVu6j!kI}i9_aZ;y63i5&!1j9eR_4{RDa|2%DD&DAHKZ$*c1JS zp8BnqU;AtS;J049GxXrxcw&voOd4y}oJp7@=9(#$9oLM8AXRPIvlonN8H#Q~UnHFE|LR7^2*l7o53OFu4(jX+T`BeQ1Fm@})W zqI0fS*kAm~Pd)$4mptaCX{_-)n^ypepn^>d+q>hZ-v6UdJoVnH-yetA+R{Uctt&!U zz4y%A#PIC1&#tepudJ;uh;=x&I4$HaPT7TLj+dU#pI1T_uICrVg&ZQvJ=O1)0qn92%z52?xztQjY>N+tqt7L_&l317k$;QN377spld1o|=0O;&EL|c}1O6|x- zqmgs&xo4jbIjyd*k+TbMEfwHPS6!UfIPXy!=A_k9&=-I{zD}rWPzI&`+Ud^ucU=>F z=J{^{TF9ZTZ61A9HO7P-P(@Oftf<5>J7E{=+R@Sv^=&X|oSH^68)M2!6~m}u!JMfg8jR!A(?R!7??1w(kwZO{r&9zh{B84=b4EwZ#jzZ2P{OFl2*RS$I zaN0rI-rJ2Jh3L9q8jn*&3goSgtk%02MkN$01y!Ye?oXfp%%?w_IJCnt#;7F`Oxgy- zWsW%`p!I>pTALIMVUD?5R(I~)ec^={HcxGponGSX3eSqL;A>m>e_7H4ly#=wrO?uPEL%$^h1e^*VX!aOy>a8_`_6AhkXbO{yvSPXuiV-jaKEQYb(pNK zZT!Wb{E42k8+rM70)Sc|0W${gVJGe;1w&3**ps(bC%KVHZ>9h0-tPBbe);m_mjN-P z*g`CbgovVO3pP|YP1&hPB&J;WD#hrn9}dUQKmUAxb!BC30}X|oye}|o3(aiQ^XMN( zV?IY!-%d2uF}Y8Q03xDzuq8S$xwo3%Jhi6itCPa8G;tF8>#KDbyzu6gCr_`p8gE;& zeO5%;_9l}C`Y0$&xf$K<6{VY)iPTHcw*uJ|ge8O+6N|}YY|hc3pX5k}BIIwm42d>NYB5`_@H^}@I7y1sbv!Llry z9IL9Dq~uyZ^Zh)CdQ|H_6x7Gpils9Ej_EuLjm?C{Ou-@|V~n-dT8qXslF?JY+ld^< zR&Px9)j2p|`FV?ih?K@zq{z9Bp)3mvTyW^5I-_6u85H%vPA0BtY^=3GgN}@0MN}3U zhgfvFO~~Yns@F9JUwY}K?d@$=k(Rr_C?NpkoIBlq6EkO3)!}gHeVLP7zkdD7l`H4Y zovW&>C3s)%TE7FEqTD==qinKb7qZaHTJgQ_&! zL;w%~s-h}G^gybpxv3I$dgpG|!a0gaN~u+Kn3qvPB0n7=sB@i`cxbagdI{pxVN)NRRt?7F+SP zFoWi200JIJo+Ya{%t^y({}5YKNfK`BI^H?}7%{*iz)fldMNmXC6511@l*HI185IEt zlvGfaRaGz}y0)*Nnj{+oosHFVkiPSsZ+6#LtNseJRJKT=DGWvCkb*%&&Zu%>&2VSu z8_z!LPp?<~juik@wYHJu06o)!(;koR#^)Epg*8Cmj#qs?&DK~rqIZJA)bDb@8Bmds zh=Q`S+Upd1r5%sd!aY~XcSxL1vwL7y`mZcTSfPq8+tzwyV z;HK7_r5eXfx0$;*0?`uQKazv3=Xy@#RBesGEdfxEXq?A2sQGmU0F+P}h)5A+ZXsDj zAAp%f1eAeQa_st&vt-Ll%Nt2WyMF=AoKysi1)~hwN;5+sIidlzkU=Vt5C6!Ite-u1 zcN`cESvLvMAc?5+KBknF!J5c%V{PqU|LjkF{qlgr}w5BjrfqVR+M^fU9YN}#C)YR#Wg;N$$WI#qz zqH)Ms_3Q)Z9^W`)SpsK9F#@Gh1Q-`bAX<8H9Lf2#e7AL&gP_Ok2M2=ZV1ue6AT5QD z!`)u6DiIlZjU<3a>e& z6hcm2*O#0d&gub3J(<`9$jxIG2BE$+8IxLXtgvJf@dm=-7^ggbOuiqT0Y@~>`$ZBSJOD>`TSQacpAJ@CJ-XT~ zR@IvHfKbGd;jEjTzGY>z9R1N`6l1K4f`}T$ox1*qU-)8l&Yyt(n4~1*Li5DM2cCZX zkzVNm(Gwv9B1TT2WQ{=;it$XRU!7UGd3}Gt3A??JnN##+BnI)0LpDGFD2k@+OXi&z z&lY^{!uiQtZ%sl5?^)QRaT%sBj2)9UCqNG~2X$M(!U^WLgPi5Ivw7Vg=EVB(dZyi? zc5^`_XpxAeS5-zJ(@CqYGAC3CAxWo`efgc+H*sTAWk~=M0FXtK8Z#VkY-aIYbe2O6 z$||`m3n2}}5_4>t{`#q>AARikH@7Fu+O48U;_O|4ArW(pV1S4yGbCX?Yo%cNYXf&X0&^D2Xs3IC_*<`SDt5>Wg z%g&TJ#VTe0z@wXIA4tLgN8XGS1OPBX*{U56z`H`DGy@<*=$ecM)3(v4@dN-VM$TDP(GVIEgJKX2 zX=W#0qG@vKIsUN+&*AOc-J)z=^USKMtisGHm{J;zM&5fwZ1qkNan4z5%{|l1$T1sp zBZC#}#PMDt|GR(oXHP%;*eeOfDypbJfh8d_0jnrVuq zI$Yn?-qoD<{pu$!p4!tpU*t5YtG-cO{fA@pMAT*@2J}g|^1JC*VBL>prw3`3wIPV{qJd#xy z5DgI-K;%p*nUrKQG?Sf2D)={k^yy+aB!w|YMi9`%Sr|kF42j6z-e5Eut*orzf!LX~ zeiGuxM>R_^J9Ye9&%X5j_dNN7YGb0gsk+?c#5sy8QBnmo8uMglhX;ezGv|9NYyGmg z^VXY?Y6HrmiJ=h+s)`fvYu}peUGH>0dFIlfncSQA@4@~!lRR*2H8@T>I6>~ioMRRM zfUp(8770Wti)ZM9J;(UTty919q4&Y=HPk#D)Sy-zh=>XTKWuMQ zMqW_Nj<0MB{m}z8W0LjjFJH~pZanblHy{)&Njt(RsbqkpkXRA18I4D`@0=>jT&)D4 z^_4!Q@tx~eKocTHL4;h32dW21mDexb9(OLBf2`~rUuN%3h6MsF@zfnB)Y6e3Zx{eT zX$BdHbX;*}W9#7uF8h5snh=!;72DO5P*F9jP)4>)f`~%OqPA!0*FW(TR^6f~`rV2EaQcErGa8M?S6|yB zOa^luy``)ZM6nSD)y|rnh8n=h^})^WUw`wdhn`q1OGya;>J$qsK$JtU&WOkP&DnI; zwmBZwvfD#jR20MH0i>%$0G;1?_Wye7si&S@J9ir~Nv~iOZ9-A5P5iEKr_;e^&*c5^ z>Pt^-o~t+4PG{Vsn0j_KuAJMR3|@J?eD{;1QaVu@$sQdH3$QvVXs4Ec(p~?_Q#YQu zp%(qHKPGkE1_|;2Oi4@LebhO{e~SK6nk>yxRXu!P;ZVnKMYD+HobzZr8IJDWN+~6f zY>cslA_C|_NQmgmN|ncTAfj&7p%mh%?)Nr__5KTA|K_8Y-@CrLl2r%~0|=L

fs zH%(d#vXh7Y!Ht`f{l44y%In`BX0!G1BX5MdVbksOMw5MCd1&I0UB{Q>depUM_qD5? zPAB&}UNE6n&ZpS8PT5;q8I0?+KcJN^02<>EtqNq}L@<(kV=^3Hc+lmU7nWeBn*(Mwl3os(*!M@zwS>4#=mC`A)K`USx#M;hEzs!nfKZyHo z9S*I!Pk>G{_hVKp(`?|XigZ)4l6&h6rPyql!@(IoLas1;n`OJgwZhXBq=EecB&&9tTUSlaB!F= z(W{vN8o+Fo?{3?>duylG$@wBvLIo66Ee!H+000pyNkld!TBZ1#8l90M-#6 zzBV*F(g}|(1#QzgCR=zO*Is>^@IU_H%O834qb~s7O1xP*NE$g?YAtlWR`ro93&Sf{ zE)<39Rw7b>X$UZ}EsH2@ttAC0ac#9XymJ$VV_NAXf`mi}A__o;hzkh=_mAM(uU&lX zcbgy5uqjqdtTUJcV2|23=ew<{@8Eo%DH|TJgxLb?%4aX5EV&M_;F&3W!Add9@ufccJZ7gP_Uvv2sR0O zlX7;7AR3((E5*jXzj^hxf7e;*R$0^#WduTrim}#I#GL6%`}Kz(dhF}3y`+PrtE(9D zJjy3^{zRPzmWeG@#VHm?*5O0RV@ZVppowv3Z$G6Jv+VBf-eA6Sd;8Yi!9=ayI8|J{ zw0`=G>91@W7&Bo6mxNG5&S;H>1cv77pR>s>>mC3UhQ`gLk8a}m>h;^7{jpE|FT*zi zZTV51EgF(410&U%gU~wJhD^G;z1i!zwT@*XvJ=ft(E-&dq4V4%0D;nh;F-;h8&~%H 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"+K+""}function B(L){if(!I.area){I.area=document.createElement("DIV");I.area.className="dhtmlx_message_area";I.area.style[I.defPosition]="5px";document.body.appendChild(I.area)}I.hide(L.id);var K=document.createElement("DIV");K.innerHTML=L.text;K.className="dhtmlx-info dhtmlx-"+L.type;if(I.defPosition=="bottom"&&I.area.firstChild){I.area.insertBefore(K,I.area.firstChild)}else{I.area.appendChild(K)}I.timers[L.id]=window.setTimeout(function(){I.hide(L.id)},L.lifetime);I.pull[L.id]=K;return L.id}function J(M,N,P){var O=document.createElement("DIV");O.className=" dhtmlx_modal_box dhtmlx-"+M.type;var L='
'+M.title+'
'+M.text+'
';if(N){L+=E(M.ok||"Ok",true)}if(P){L+=E(M.cancel||"Cancel",false)}L+="
";O.innerHTML=L;O.onclick=function(S){S=S||event;var R=S.target||S.srcElement;if(R.className=="dhtmlx_popup_button"){if(M.callback){M.callback.call(window,R.getAttribute("result")=="true")}H(false);O.parentNode.removeChild(O);O=null}};H(true);document.body.appendChild(O);var K=Math.abs(Math.floor((document.body.clientWidth-O.offsetWidth)/2));var Q=Math.abs(Math.floor((document.body.clientHeight-O.offsetHeight)/2));O.style.top=Q+"px";O.style.left=K+"px"}function D(K,L){return function(){I.hide(K.id);if(typeof K.callback=="function"){K.callback(L)}}}function G(K){K.title=K.title||"Alert";var L=J(K,true,false)}function A(K){K.title=K.title||"Confirm";var L=J(K,true,true)}function F(L,K,M){if(typeof L!="object"){if(typeof K=="function"){M=K;K=""}L={text:L,type:K,callback:M}}return L}function C(M,L,K,N){if(typeof M!="object"){M={text:M,type:L,lifetime:K,id:N}}M.id=M.id||I.uid();M.lifetime=M.lifetime||I.defTimeout;return M}dhtmlx.alert=function(){text=F.apply(this,arguments);text.type=text.type||"confirm";G(text)};dhtmlx.confirm=function(){text=F.apply(this,arguments);text.type=text.type||"alert";A(text)};var I=dhtmlx.message=function(N,M,K,O){N=C.apply(this,arguments);N.type=N.type||"info";var L=N.type.split("-")[0];switch(L){case"alert":return G(N);break;case"confirm":return A(N);break;default:return B(N);break}};I.seed=(new Date()).valueOf();I.uid=function(){return I.seed++};I.defTimeout=5000;I.defPosition="top";I.pull={};I.timers={};I.hideAll=function(){for(var K in I.pull){I.hide(K)}};I.hide=function(L){var K=I.pull[L];if(K&&K.parentNode){window.setTimeout(function(){K.parentNode.removeChild(K);K=null},2000);K.className+=" hidden";if(I.timers[L]){window.clearTimeout(I.timers[L])}delete I.pull[L]}}})(); \ No newline at end of file diff --git a/index.html b/index.html index 0ece5da..ce7877e 100644 --- a/index.html +++ b/index.html @@ -1,79 +1,91 @@ - - - - - - DHTMLX/message @ GitHub - - - - - - Fork me on GitHub - -
- -
- - - - -
- -

Message library - by DHTMLX

- -
- Custom messages, alerts, confirmations -
- -

Message is a helper that simplifies creating of different message windows.

License

-

MIT

-

Authors

-

Stanislau (stanislau.wolski@gmail.com)

-

Contact

-

(support@dhtmlx.com)

- - -

Download

-

- You can download this project in either - zip or - tar formats. -

-

You can also clone the project with Git - by running: -

$ git clone git://github.com/DHTMLX/message
-

- - - -
- - - - + + + + Message library + + + + + + + + + + + + +
+
+
+

js Message

+

Custom messages, alerts, confirmations

+
+ + +
+ +
+

Usage and examples

+ +
+ +
+function codeExample() {
+	console.log('This is a code example.');
+}
+
+
+ +

Example number 1

+

Some example code here. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia, enim quis interdum accumsan, odio velit ultricies lectus, sit amet pellentesque eros velit.

+
+ +
+ +
+function codeExample() {
+	console.log('This is a code example.');
+}
+
+
+ +

Example number 2

+

Some example code here. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia, enim quis interdum accumsan, odio velit ultricies lectus, sit amet pellentesque eros velit venenatis leo. Morbi lacinia tempor metus in viverra.

+
+
+ +
+

See it in action

+
+
+
+
+
+ +
+
+ +
+
+
+ + +

+ DHTMLX is a JavaScript library that provides essential functionality for building cross-browser, Ajax-based user interfaces. Develop impressive web applications faster with a set of ready-to-use UI widgets. +

+
+ +
+

GitHub release template built with HTML5, CSS3 and JS by Fublo

+
+
+
+ + + + From bd3e34c52c120ccd56dedcb5c523eafa66ad40e1 Mon Sep 17 00:00:00 2001 From: Stanislau Date: Thu, 29 Sep 2011 18:43:45 +0300 Subject: [PATCH 03/15] [add] correct samples and description --- assets/css/skeleton/stylesheets/base.css | 6 ++-- assets/css/style.css | 15 ++++++++ codebase/message.compressed.css | 2 +- codebase/message.compressed.js | 2 +- index.html | 46 ++++++++++++++---------- 5 files changed, 47 insertions(+), 24 deletions(-) diff --git a/assets/css/skeleton/stylesheets/base.css b/assets/css/skeleton/stylesheets/base.css index 2b4cb2a..6de65b2 100644 --- a/assets/css/skeleton/stylesheets/base.css +++ b/assets/css/skeleton/stylesheets/base.css @@ -133,7 +133,7 @@ input[type="submit"], input[type="reset"], input[type="button"] { - background: #eee; /* Old browsers */ + background: #555; /* Old browsers */ background: -moz-linear-gradient(top, rgba(255,255,255,.2) 0%, rgba(0,0,0,.2) 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.2)), color-stop(100%,rgba(0,0,0,.2))); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Chrome10+,Safari5.1+ */ @@ -147,7 +147,7 @@ -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; - color: #AAA; + color: #BBB; display: inline-block; font-size: 12px; font-weight: bold; @@ -164,7 +164,7 @@ input[type="reset"]:hover, input[type="button"]:hover { color: #EEE; - background: #ddd; /* Old browsers */ + background: #333; /* Old browsers */ background: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.3)), color-stop(100%,rgba(0,0,0,.3))); /* Chrome,Safari4+ */ background: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Chrome10+,Safari5.1+ */ diff --git a/assets/css/style.css b/assets/css/style.css index 7278625..a9cf0ab 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -1,4 +1,19 @@ /* Page */ +.dhtmlx-error{ + font-weight:bold; + color:white; + background-color:red; +} + +a.dhtmlx, a.dhtmlx:visited, a.dhtmlx:hover{ + color: #0075B6; +} + +strong.dhtmlx{ + font-weight:bold; + color: #FFF; +} + body { background: #333333 url('../images/page-background.png') repeat top left; font-family: arial,sans-serif; diff --git a/codebase/message.compressed.css b/codebase/message.compressed.css index cf57e95..91e3d1f 100644 --- a/codebase/message.compressed.css +++ b/codebase/message.compressed.css @@ -1 +1 @@ -.dhtmlx_message_area{position:absolute;right:5px;width:250px;z-index:100;}.dhtmlx-info{color:#000080;border-radius:4px;min-width:120px;padding:4px 4px 4px 20px;background-color:#FFC;font-size:12px;font-family:Tahoma;z-index:10000;margin:5px;border:1px solid #d3d3d3;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease;}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden;}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:300px;width:300px!important;text-align:center;position:absolute;background-color:#ebebf5;z-index:20000;-moz-box-shadow:0 0 5px #AAA;-webkit-box-shadow:0 0 0 #AAA;box-shadow:0 0 5px #AAA;}.dhtmlx_modal_box div{padding:5px 0;}.dhtmlx_popup_title{font-size:22px;line-height:34px;font-family:helvetica;}.dhtmlx_popup_title,.dhtmlx_popup_button{-webkit-user-select:none;user-select:none;-moz-user-select:-moz-none;cursor:pointer;}.dhtmlx_popup_text{font-size:24px;font-family:utsaah;color:#616161;min-height:50px;padding:10px!important;overflow:hidden;}.dhtmlx_popup_controls{font-family:Tahoma;font-weight:bold;padding:10px!important;}.dhtmlx_popup_button{font-size:14px;font-family:Tahoma;font-weight:bold;min-width:120px;width:120px;height:30px;line-height:30px;display:inline-block;margin:0 5px;border-radius:4px;}div.dhx_modal_cover{background-color:#000;cursor:default;opacity:.2;filter:alpha(opacity = .2);position:absolute;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1;}.dhtmlx_popup_button{color:#2e3947;text-shadow:0 1px 0 #fff;border:1px solid #a4bed4;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAIAAABi9+OQAAAAQElEQVR4nE3LMQ7AIAxD0R9TxP3PydalW8xAQJ0i2y/M95ONTOxrlCC7MigdMtz92LxdlKPc/3d7jPqDRgv1xgLuDiwEIl5MZQAAAABJRU5ErkJggg==);}.dhtmlx_popup_button:active,.dhtmlx_popup_button:focus{box-shadow:inset 0 0 2px #aaa;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAIAAABi9+OQAAAARklEQVR4nE2LMQ6AIADEykUG3Nz9/yf4Ar8g7K4Oeg4KOFxyTVNyqUrbLoMwAgt4+dt0nT0+IP/cbD0ag0JAabm1xkvn0R7oABW07Ic3sQAAAABJRU5ErkJggg==);}.dhtmlx_popup_title{box-shadow:inset 0 0 2px #fff;display:block;}.dhtmlx-alert-error .dhtmlx_popup_title,.dhtmlx-confirm-error .dhtmlx_popup_title{color:white;border:1px solid #f00;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAATklEQVR4nIWLuw2AMBBDjVuQiBT2oWbRDATrnB0KQOJoqPzRe3BrHI6dcBASYREKovtK6/6DsDOX+stN+3H1YX9ciRgnYq5EWYhS2dftBIuLT4JyIrPCAAAAAElFTkSuQmCC);}.dhtmlx-alert-error .dhtmlx_popup_controls,.dhtmlx-confirm-error .dhtmlx_popup_controls{border:1px solid #f00;border-width:0 1px 1px 1px;}.dhtmlx-alert-error .dhtmlx_popup_text,.dhtmlx-confirm-error .dhtmlx_popup_text{border:1px solid #f00;border-width:0 1px 0 1px;}.dhtmlx-alert-warning .dhtmlx_popup_title,.dhtmlx-confirm-warning .dhtmlx_popup_title{color:#000;border:1px solid #d2b07f;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAASUlEQVR4nGP4d2MNE+Pba0wM//8xMfz/y8TwD0r//8fE8O8vGhuHHD61cPPQzP7/F0kdOh/KZuVmYuAQYGLgEGRi4BBg+i9rDwDadU/CBfIz5QAAAABJRU5ErkJggg==);}.dhtmlx-alert-warning .dhtmlx_popup_controls,.dhtmlx-confirm-warning .dhtmlx_popup_controls{border:1px solid #d5d5d5;border-width:0 1px 1px 1px;}.dhtmlx-alert-warning .dhtmlx_popup_text,.dhtmlx-confirm-warning .dhtmlx_popup_text{border:1px solid #d5d5d5;border-width:0 1px 0 1px;}.dhtmlx-alert .dhtmlx_popup_title,.dhtmlx-confirm .dhtmlx_popup_title{color:#000;border:1px solid #a4bed4;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAARElEQVR4nH3MMQqAQBQD0dnZBTvvf80tBBEhNh9EFKuERwhz2z3OGDA0EwxI5aelvDq/hkn54+O210dtujjEYXN0XJdc1CE1MA5mcdsAAAAASUVORK5CYII=);}.dhtmlx-alert .dhtmlx_popup_controls,.dhtmlx-confirm .dhtmlx_popup_controls{border:1px solid #d5d5d5;border-width:0 1px 1px 1px;}.dhtmlx-alert .dhtmlx_popup_text,.dhtmlx-confirm .dhtmlx_popup_text{border:1px solid #d5d5d5;border-width:0 1px 0 1px;} \ No newline at end of file +.dhtmlx_message_area{position:fixed;right:5px;width:250px;z-index:100;}.dhtmlx-info{color:#000080;border-radius:4px;min-width:120px;padding:4px 4px 4px 20px;background-color:#FFC;font-size:12px;font-family:Tahoma;z-index:10000;margin:5px;border:1px solid #d3d3d3;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease;}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden;}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:300px;width:300px!important;text-align:center;position:fixed;background-color:#ebebf5;z-index:20000;-moz-box-shadow:0 0 5px #AAA;-webkit-box-shadow:0 0 0 #AAA;box-shadow:0 0 5px #AAA;}.dhtmlx_modal_box div{padding:5px 0;}.dhtmlx_popup_title{font-size:22px;line-height:34px;font-family:helvetica;}.dhtmlx_popup_title,.dhtmlx_popup_button{-webkit-user-select:none;user-select:none;-moz-user-select:-moz-none;cursor:pointer;}.dhtmlx_popup_text{font-size:24px;font-family:utsaah;color:#616161;min-height:50px;padding:10px!important;overflow:hidden;}.dhtmlx_popup_controls{font-family:Tahoma;font-weight:bold;padding:10px!important;}.dhtmlx_popup_button{font-size:14px;font-family:Tahoma;font-weight:bold;min-width:120px;width:120px;height:30px;line-height:30px;display:inline-block;margin:0 5px;border-radius:4px;}div.dhx_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity = 20);opacity:.2;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1;}.dhtmlx_popup_button{color:#2e3947;text-shadow:0 1px 0 #fff;border:1px solid #a4bed4;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAIAAABi9+OQAAAAQElEQVR4nE3LMQ7AIAxD0R9TxP3PydalW8xAQJ0i2y/M95ONTOxrlCC7MigdMtz92LxdlKPc/3d7jPqDRgv1xgLuDiwEIl5MZQAAAABJRU5ErkJggg==);}.dhtmlx_popup_button:active,.dhtmlx_popup_button:focus{box-shadow:inset 0 0 2px #aaa;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAIAAABi9+OQAAAARklEQVR4nE2LMQ6AIADEykUG3Nz9/yf4Ar8g7K4Oeg4KOFxyTVNyqUrbLoMwAgt4+dt0nT0+IP/cbD0ag0JAabm1xkvn0R7oABW07Ic3sQAAAABJRU5ErkJggg==);}.dhtmlx_popup_title{box-shadow:inset 0 0 2px #fff;display:block;}.dhtmlx-alert-error .dhtmlx_popup_title,.dhtmlx-confirm-error .dhtmlx_popup_title{color:white;border:1px solid #f00;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAATklEQVR4nIWLuw2AMBBDjVuQiBT2oWbRDATrnB0KQOJoqPzRe3BrHI6dcBASYREKovtK6/6DsDOX+stN+3H1YX9ciRgnYq5EWYhS2dftBIuLT4JyIrPCAAAAAElFTkSuQmCC);}.dhtmlx-alert-error .dhtmlx_popup_controls,.dhtmlx-confirm-error .dhtmlx_popup_controls{border:1px solid #f00;border-width:0 1px 1px 1px;}.dhtmlx-alert-error .dhtmlx_popup_text,.dhtmlx-confirm-error .dhtmlx_popup_text{border:1px solid #f00;border-width:0 1px 0 1px;}.dhtmlx-alert-warning .dhtmlx_popup_title,.dhtmlx-confirm-warning .dhtmlx_popup_title{color:#000;border:1px solid #d2b07f;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAASUlEQVR4nGP4d2MNE+Pba0wM//8xMfz/y8TwD0r//8fE8O8vGhuHHD61cPPQzP7/F0kdOh/KZuVmYuAQYGLgEGRi4BBg+i9rDwDadU/CBfIz5QAAAABJRU5ErkJggg==);}.dhtmlx-alert-warning .dhtmlx_popup_controls,.dhtmlx-confirm-warning .dhtmlx_popup_controls{border:1px solid #d5d5d5;border-width:0 1px 1px 1px;}.dhtmlx-alert-warning .dhtmlx_popup_text,.dhtmlx-confirm-warning .dhtmlx_popup_text{border:1px solid #d5d5d5;border-width:0 1px 0 1px;}.dhtmlx-alert .dhtmlx_popup_title,.dhtmlx-confirm .dhtmlx_popup_title{color:#000;border:1px solid #a4bed4;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAARElEQVR4nH3MMQqAQBQD0dnZBTvvf80tBBEhNh9EFKuERwhz2z3OGDA0EwxI5aelvDq/hkn54+O210dtujjEYXN0XJdc1CE1MA5mcdsAAAAASUVORK5CYII=);}.dhtmlx-alert .dhtmlx_popup_controls,.dhtmlx-confirm .dhtmlx_popup_controls{border:1px solid #d5d5d5;border-width:0 1px 1px 1px;}.dhtmlx-alert .dhtmlx_popup_text,.dhtmlx-confirm .dhtmlx_popup_text{border:1px solid #d5d5d5;border-width:0 1px 0 1px;} \ No newline at end of file diff --git a/codebase/message.compressed.js b/codebase/message.compressed.js index 933b41a..54546f9 100644 --- a/codebase/message.compressed.js +++ b/codebase/message.compressed.js @@ -1 +1 @@ -(function(){if(!window.dhtmlx){window.dhtmlx={}}function H(K){if(!H.cover){H.cover=document.createElement("DIV");H.cover.className="dhx_modal_cover";document.body.appendChild(H.cover)}H.cover.style.display=K?"inline-block":"none"}function E(K,L){return""+K+""}function B(L){if(!I.area){I.area=document.createElement("DIV");I.area.className="dhtmlx_message_area";I.area.style[I.defPosition]="5px";document.body.appendChild(I.area)}I.hide(L.id);var K=document.createElement("DIV");K.innerHTML=L.text;K.className="dhtmlx-info dhtmlx-"+L.type;if(I.defPosition=="bottom"&&I.area.firstChild){I.area.insertBefore(K,I.area.firstChild)}else{I.area.appendChild(K)}I.timers[L.id]=window.setTimeout(function(){I.hide(L.id)},L.lifetime);I.pull[L.id]=K;return L.id}function J(M,N,P){var O=document.createElement("DIV");O.className=" dhtmlx_modal_box dhtmlx-"+M.type;var L='
'+M.title+'
'+M.text+'
';if(N){L+=E(M.ok||"Ok",true)}if(P){L+=E(M.cancel||"Cancel",false)}L+="
";O.innerHTML=L;O.onclick=function(S){S=S||event;var R=S.target||S.srcElement;if(R.className=="dhtmlx_popup_button"){if(M.callback){M.callback.call(window,R.getAttribute("result")=="true")}H(false);O.parentNode.removeChild(O);O=null}};H(true);document.body.appendChild(O);var K=Math.abs(Math.floor((document.body.clientWidth-O.offsetWidth)/2));var Q=Math.abs(Math.floor((document.body.clientHeight-O.offsetHeight)/2));O.style.top=Q+"px";O.style.left=K+"px"}function D(K,L){return function(){I.hide(K.id);if(typeof K.callback=="function"){K.callback(L)}}}function G(K){K.title=K.title||"Alert";var L=J(K,true,false)}function A(K){K.title=K.title||"Confirm";var L=J(K,true,true)}function F(L,K,M){if(typeof L!="object"){if(typeof K=="function"){M=K;K=""}L={text:L,type:K,callback:M}}return L}function C(M,L,K,N){if(typeof M!="object"){M={text:M,type:L,lifetime:K,id:N}}M.id=M.id||I.uid();M.lifetime=M.lifetime||I.defTimeout;return M}dhtmlx.alert=function(){text=F.apply(this,arguments);text.type=text.type||"confirm";G(text)};dhtmlx.confirm=function(){text=F.apply(this,arguments);text.type=text.type||"alert";A(text)};var I=dhtmlx.message=function(N,M,K,O){N=C.apply(this,arguments);N.type=N.type||"info";var L=N.type.split("-")[0];switch(L){case"alert":return G(N);break;case"confirm":return A(N);break;default:return B(N);break}};I.seed=(new Date()).valueOf();I.uid=function(){return I.seed++};I.defTimeout=5000;I.defPosition="top";I.pull={};I.timers={};I.hideAll=function(){for(var K in I.pull){I.hide(K)}};I.hide=function(L){var K=I.pull[L];if(K&&K.parentNode){window.setTimeout(function(){K.parentNode.removeChild(K);K=null},2000);K.className+=" hidden";if(I.timers[L]){window.clearTimeout(I.timers[L])}delete I.pull[L]}}})(); \ No newline at end of file +(function(){if(!window.dhtmlx){window.dhtmlx={}}function H(L){if(!H.cover){H.cover=document.createElement("DIV");H.cover.className="dhx_modal_cover";document.body.appendChild(H.cover)}var K=document.body.scrollHeight;H.cover.style.display=L?"inline-block":"none"}function E(K,L){return""+K+""}function B(L){if(!I.area){I.area=document.createElement("DIV");I.area.className="dhtmlx_message_area";I.area.style[I.defPosition]="5px";document.body.appendChild(I.area)}I.hide(L.id);var K=document.createElement("DIV");K.innerHTML=L.text;K.className="dhtmlx-info dhtmlx-"+L.type;if(I.defPosition=="bottom"&&I.area.firstChild){I.area.insertBefore(K,I.area.firstChild)}else{I.area.appendChild(K)}I.timers[L.id]=window.setTimeout(function(){I.hide(L.id)},L.lifetime);I.pull[L.id]=K;return L.id}function J(M,N,P){var O=document.createElement("DIV");O.className=" dhtmlx_modal_box dhtmlx-"+M.type;var L='
'+M.title+'
'+M.text+'
';if(N){L+=E(M.ok||"Ok",true)}if(P){L+=E(M.cancel||"Cancel",false)}L+="
";O.innerHTML=L;O.onclick=function(S){S=S||event;var R=S.target||S.srcElement;if(R.className=="dhtmlx_popup_button"){if(M.callback){M.callback.call(window,R.getAttribute("result")=="true")}H(false);O.parentNode.removeChild(O);O=null}};H(true);document.body.appendChild(O);var K=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-O.offsetWidth)/2));var Q=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-O.offsetHeight)/2));O.style.top=Q+"px";O.style.left=K+"px"}function D(K,L){return function(){I.hide(K.id);if(typeof K.callback=="function"){K.callback(L)}}}function G(K){K.title=K.title||"Alert";var L=J(K,true,false)}function A(K){K.title=K.title||"Confirm";var L=J(K,true,true)}function F(L,K,M){if(typeof L!="object"){if(typeof K=="function"){M=K;K=""}L={text:L,type:K,callback:M}}return L}function C(M,L,K,N){if(typeof M!="object"){M={text:M,type:L,lifetime:K,id:N}}M.id=M.id||I.uid();M.lifetime=M.lifetime||I.defTimeout;return M}dhtmlx.alert=function(){text=F.apply(this,arguments);text.type=text.type||"confirm";G(text)};dhtmlx.confirm=function(){text=F.apply(this,arguments);text.type=text.type||"alert";A(text)};var I=dhtmlx.message=function(N,M,K,O){N=C.apply(this,arguments);N.type=N.type||"info";var L=N.type.split("-")[0];switch(L){case"alert":return G(N);break;case"confirm":return A(N);break;default:return B(N);break}};I.seed=(new Date()).valueOf();I.uid=function(){return I.seed++};I.defTimeout=4000;I.defPosition="top";I.pull={};I.timers={};I.hideAll=function(){for(var K in I.pull){I.hide(K)}};I.hide=function(L){var K=I.pull[L];if(K&&K.parentNode){window.setTimeout(function(){K.parentNode.removeChild(K);K=null},2000);K.className+=" hidden";if(I.timers[L]){window.clearTimeout(I.timers[L])}delete I.pull[L]}}})(); \ No newline at end of file diff --git a/index.html b/index.html index ce7877e..d71d8cc 100644 --- a/index.html +++ b/index.html @@ -18,7 +18,9 @@

js Message

-

Custom messages, alerts, confirmations

+

Custom notifications, alerts, confirmations

+

This library was extracted from the code of DHTMLX suite .
The library can be used under terms of MIT license. (basically free)
+ Only 3kb gzipped, without external dependencies.

@@ -30,42 +32,48 @@

Custom messages, alerts, confirmations

-

Usage and examples

+

Examples

-function codeExample() {
-	console.log('This is a code example.');
-}
+dhtmlx.confirm({
+    type:"confirm",
+    text: "Continue?",
+    callback: function(result){
+        dhtmlx.message("Result: "+result);
+    }
+});
+//or
+dhtmlx.confirm("Continue?");
 
- -

Example number 1

-

Some example code here. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia, enim quis interdum accumsan, odio velit ultricies lectus, sit amet pellentesque eros velit.

-function codeExample() {
-	console.log('This is a code example.');
-}
+dhtmlx.alert({
+    text: "Download is completed.",
+    callback: function(){
+        dhtmlx.message("Alert clicked");
+    }
+});
+
+//or
+dhtmlx.alert("Download is completed.");
 
- -

Example number 2

-

Some example code here. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris lacinia, enim quis interdum accumsan, odio velit ultricies lectus, sit amet pellentesque eros velit venenatis leo. Morbi lacinia tempor metus in viverra.

See it in action


-
-
-
-
+
+
+
+

@@ -76,7 +84,7 @@

See it in action

- DHTMLX is a JavaScript library that provides essential functionality for building cross-browser, Ajax-based user interfaces. Develop impressive web applications faster with a set of ready-to-use UI widgets. + DHTMLX is a JavaScript library that provides essential functionality for building cross-browser, Ajax-based user interfaces. Develop impressive web applications faster with a set of ready-to-use UI widgets.

From 3696bf9f1666aae8243bfa589a43fab1ebff43df Mon Sep 17 00:00:00 2001 From: Stanislau Date: Tue, 18 Oct 2011 16:46:08 +0300 Subject: [PATCH 04/15] [add] new skins and live demos --- assets/alert_medium.png | Bin 0 -> 4050 bytes assets/alert_small.png | Bin 0 -> 1659 bytes codebase/message.compressed.css | 1 - codebase/message.compressed.js | 2 +- codebase/message.js | 173 ++++++++++++++++++++++ codebase/themes/message_default.css | 187 ++++++++++++++++++++++++ codebase/themes/message_growl_dark.css | 175 ++++++++++++++++++++++ codebase/themes/message_growl_shiny.css | 177 ++++++++++++++++++++++ codebase/themes/message_skyblue.css | 169 +++++++++++++++++++++ codebase/themes/message_solid.css | 174 ++++++++++++++++++++++ index.html | 105 ++++++++++++- 11 files changed, 1154 insertions(+), 9 deletions(-) create mode 100644 assets/alert_medium.png create mode 100644 assets/alert_small.png delete mode 100644 codebase/message.compressed.css create mode 100644 codebase/message.js create mode 100644 codebase/themes/message_default.css create mode 100644 codebase/themes/message_growl_dark.css create mode 100644 codebase/themes/message_growl_shiny.css create mode 100644 codebase/themes/message_skyblue.css create mode 100644 codebase/themes/message_solid.css diff --git a/assets/alert_medium.png b/assets/alert_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..4f02e0f9edf10badbce96f81192f9fba5a516a94 GIT binary patch literal 4050 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 Eg6Jm8iU0rr literal 0 HcmV?d00001 diff --git a/assets/alert_small.png b/assets/alert_small.png new file mode 100644 index 0000000000000000000000000000000000000000..bdb2bc77a6120ee18cd8b789e7764c638abe4efa GIT binary patch literal 1659 zcmV->288*EP)kM z0PDV1*jfMp1~5rPK~#90wU*0oTh|fBzqzDHQQ}jUXh{@nE3RLXRT(yH3sB_PFaq0& zKs%(PbA!7eTve(M<~!UKU-nbqk}lEyO@j*LqO097&W!Nu-|Ci=_Cv z#q z3QzO{`1r0j7(8#cIWNC;;cO=oiFkN?;B}H_Bcp5a`Qt}%=5!}G0p23ehrNverl&%h zR(L%mW^;Nf1mNz6O;(E&QiK?gY;*JB8*f7^s-weCUJofW@Hm@EUGAa7hfYE=W-*g` z_Nf>JkGVXEN( zE?qnVEO7Zh1|7E5)1@jX3IIXoYUM*wd3LV z;PBG3!NtMhWifSMBj+<#Q#W9i-hESd*P08l@cP=~eo3k1T5N8-#vwPa`ypjWd21o% zZgCPBwyKx(Tvn*$^p?^IH_VdHWAD9Ez)s)V7pYPlcW#o`QwJ`n2^B;&UInbXoK<@| zVF+BVykXkPg(9>_*RipK-t1a@es1Q)my;IeCzqFInh%;iU5#K>j8bN`;0siNb>VU_ zP+O5%EChWMg%`;6x#@m7ZRc#i!yLPHAp~H0G9@2bdLH6)q8Nj@Z{m1;~{Ery2EV03*udNL5tWRjtQ$6rJm8hDgUte$SuPo1m> z=Z%u7X5sVe5D|gs@fP3wHmO!%urR;`lU)3ys9Y4bTOhsXLl#A5XI|v8ssB#Wit21+ zR8i=I_Z$`oOl@lo&N?AQL3vfO|B%dI0=^ZGlK}YZ6k!4rnGhxmr|c5b?AO6K=3nnV z8UgV6=s#a3?Y-{LN1gz<)>8@w8in(v0t~}m?_NP}ShNYS4#vq=<^Hc6*}OE?DPTY# zOb|fGQGBfWe$0gd;*Iw^N1rboT3ncFU2bn~Ir7SxHaC{%qhYsGZd|E>l)>g!!s&I5 z$<`mGFbY$LNnnaC$8oWC-=%Qsqzsf!33GQJ^w`a_JXOwnSZB!48UY~=s%+u z9`6UxdsXwg9b)SFG%Osk>wkuk0|O=rLm24{9z8QY8!;dL%RuFlwr3I(*8Bh|PN_Zx zldc?}3V1Rb>xM1zg`o9EmjCTsJ#RN7nhVAl&|`{uj9W6=jZdcQZ- z=ibJc5C+U`YE|M-Tz?y4sV3vQ9U}myr-pUCyiKY+-rswV?KT_oPcw;pO;yB-Y$YsW z5=5P=9FAqGeks)UIR@|@%N-$~?l`$#0=pO1!5 zw4JwZZY%+~(W4?iC|V3ce#`H{B#iB#?aip9nJ`F5WKTds5W!9!Zm$&__N2OlbA8bh ziH&7zu5KFx7WWy-NRsK2TTxxpt29z5qPRK0L7we_4|XV|rSj5C)GyXp# z_^o42&8>9*;U=>=6%K7~EE$IJdKqrFui;?uaBCZYe*+>6psr-Vf$#tT002ovPDHLk FV1k*b8&UuO literal 0 HcmV?d00001 diff --git a/codebase/message.compressed.css b/codebase/message.compressed.css deleted file mode 100644 index 91e3d1f..0000000 --- a/codebase/message.compressed.css +++ /dev/null @@ -1 +0,0 @@ -.dhtmlx_message_area{position:fixed;right:5px;width:250px;z-index:100;}.dhtmlx-info{color:#000080;border-radius:4px;min-width:120px;padding:4px 4px 4px 20px;background-color:#FFC;font-size:12px;font-family:Tahoma;z-index:10000;margin:5px;border:1px solid #d3d3d3;-webkit-transition:all .5s ease;-moz-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease;}.dhtmlx-info.hidden{height:0;padding:0;border-width:0;margin:0;overflow:hidden;}.dhtmlx_modal_box{overflow:hidden;display:inline-block;min-width:300px;width:300px!important;text-align:center;position:fixed;background-color:#ebebf5;z-index:20000;-moz-box-shadow:0 0 5px #AAA;-webkit-box-shadow:0 0 0 #AAA;box-shadow:0 0 5px #AAA;}.dhtmlx_modal_box div{padding:5px 0;}.dhtmlx_popup_title{font-size:22px;line-height:34px;font-family:helvetica;}.dhtmlx_popup_title,.dhtmlx_popup_button{-webkit-user-select:none;user-select:none;-moz-user-select:-moz-none;cursor:pointer;}.dhtmlx_popup_text{font-size:24px;font-family:utsaah;color:#616161;min-height:50px;padding:10px!important;overflow:hidden;}.dhtmlx_popup_controls{font-family:Tahoma;font-weight:bold;padding:10px!important;}.dhtmlx_popup_button{font-size:14px;font-family:Tahoma;font-weight:bold;min-width:120px;width:120px;height:30px;line-height:30px;display:inline-block;margin:0 5px;border-radius:4px;}div.dhx_modal_cover{background-color:#000;cursor:default;filter:alpha(opacity = 20);opacity:.2;position:fixed;z-index:19999;left:0;top:0;width:100%;height:100%;border:none;zoom:1;}.dhtmlx_popup_button{color:#2e3947;text-shadow:0 1px 0 #fff;border:1px solid #a4bed4;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAIAAABi9+OQAAAAQElEQVR4nE3LMQ7AIAxD0R9TxP3PydalW8xAQJ0i2y/M95ONTOxrlCC7MigdMtz92LxdlKPc/3d7jPqDRgv1xgLuDiwEIl5MZQAAAABJRU5ErkJggg==);}.dhtmlx_popup_button:active,.dhtmlx_popup_button:focus{box-shadow:inset 0 0 2px #aaa;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAIAAABi9+OQAAAARklEQVR4nE2LMQ6AIADEykUG3Nz9/yf4Ar8g7K4Oeg4KOFxyTVNyqUrbLoMwAgt4+dt0nT0+IP/cbD0ag0JAabm1xkvn0R7oABW07Ic3sQAAAABJRU5ErkJggg==);}.dhtmlx_popup_title{box-shadow:inset 0 0 2px #fff;display:block;}.dhtmlx-alert-error .dhtmlx_popup_title,.dhtmlx-confirm-error .dhtmlx_popup_title{color:white;border:1px solid #f00;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAATklEQVR4nIWLuw2AMBBDjVuQiBT2oWbRDATrnB0KQOJoqPzRe3BrHI6dcBASYREKovtK6/6DsDOX+stN+3H1YX9ciRgnYq5EWYhS2dftBIuLT4JyIrPCAAAAAElFTkSuQmCC);}.dhtmlx-alert-error .dhtmlx_popup_controls,.dhtmlx-confirm-error .dhtmlx_popup_controls{border:1px solid #f00;border-width:0 1px 1px 1px;}.dhtmlx-alert-error .dhtmlx_popup_text,.dhtmlx-confirm-error .dhtmlx_popup_text{border:1px solid #f00;border-width:0 1px 0 1px;}.dhtmlx-alert-warning .dhtmlx_popup_title,.dhtmlx-confirm-warning .dhtmlx_popup_title{color:#000;border:1px solid #d2b07f;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAASUlEQVR4nGP4d2MNE+Pba0wM//8xMfz/y8TwD0r//8fE8O8vGhuHHD61cPPQzP7/F0kdOh/KZuVmYuAQYGLgEGRi4BBg+i9rDwDadU/CBfIz5QAAAABJRU5ErkJggg==);}.dhtmlx-alert-warning .dhtmlx_popup_controls,.dhtmlx-confirm-warning .dhtmlx_popup_controls{border:1px solid #d5d5d5;border-width:0 1px 1px 1px;}.dhtmlx-alert-warning .dhtmlx_popup_text,.dhtmlx-confirm-warning .dhtmlx_popup_text{border:1px solid #d5d5d5;border-width:0 1px 0 1px;}.dhtmlx-alert .dhtmlx_popup_title,.dhtmlx-confirm .dhtmlx_popup_title{color:#000;border:1px solid #a4bed4;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAARElEQVR4nH3MMQqAQBQD0dnZBTvvf80tBBEhNh9EFKuERwhz2z3OGDA0EwxI5aelvDq/hkn54+O210dtujjEYXN0XJdc1CE1MA5mcdsAAAAASUVORK5CYII=);}.dhtmlx-alert .dhtmlx_popup_controls,.dhtmlx-confirm .dhtmlx_popup_controls{border:1px solid #d5d5d5;border-width:0 1px 1px 1px;}.dhtmlx-alert .dhtmlx_popup_text,.dhtmlx-confirm .dhtmlx_popup_text{border:1px solid #d5d5d5;border-width:0 1px 0 1px;} \ No newline at end of file diff --git a/codebase/message.compressed.js b/codebase/message.compressed.js index 54546f9..9cf04ff 100644 --- a/codebase/message.compressed.js +++ b/codebase/message.compressed.js @@ -1 +1 @@ -(function(){if(!window.dhtmlx){window.dhtmlx={}}function H(L){if(!H.cover){H.cover=document.createElement("DIV");H.cover.className="dhx_modal_cover";document.body.appendChild(H.cover)}var K=document.body.scrollHeight;H.cover.style.display=L?"inline-block":"none"}function E(K,L){return""+K+""}function B(L){if(!I.area){I.area=document.createElement("DIV");I.area.className="dhtmlx_message_area";I.area.style[I.defPosition]="5px";document.body.appendChild(I.area)}I.hide(L.id);var K=document.createElement("DIV");K.innerHTML=L.text;K.className="dhtmlx-info dhtmlx-"+L.type;if(I.defPosition=="bottom"&&I.area.firstChild){I.area.insertBefore(K,I.area.firstChild)}else{I.area.appendChild(K)}I.timers[L.id]=window.setTimeout(function(){I.hide(L.id)},L.lifetime);I.pull[L.id]=K;return L.id}function J(M,N,P){var O=document.createElement("DIV");O.className=" dhtmlx_modal_box dhtmlx-"+M.type;var L='
'+M.title+'
'+M.text+'
';if(N){L+=E(M.ok||"Ok",true)}if(P){L+=E(M.cancel||"Cancel",false)}L+="
";O.innerHTML=L;O.onclick=function(S){S=S||event;var R=S.target||S.srcElement;if(R.className=="dhtmlx_popup_button"){if(M.callback){M.callback.call(window,R.getAttribute("result")=="true")}H(false);O.parentNode.removeChild(O);O=null}};H(true);document.body.appendChild(O);var K=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-O.offsetWidth)/2));var Q=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-O.offsetHeight)/2));O.style.top=Q+"px";O.style.left=K+"px"}function D(K,L){return function(){I.hide(K.id);if(typeof K.callback=="function"){K.callback(L)}}}function G(K){K.title=K.title||"Alert";var L=J(K,true,false)}function A(K){K.title=K.title||"Confirm";var L=J(K,true,true)}function F(L,K,M){if(typeof L!="object"){if(typeof K=="function"){M=K;K=""}L={text:L,type:K,callback:M}}return L}function C(M,L,K,N){if(typeof M!="object"){M={text:M,type:L,lifetime:K,id:N}}M.id=M.id||I.uid();M.lifetime=M.lifetime||I.defTimeout;return M}dhtmlx.alert=function(){text=F.apply(this,arguments);text.type=text.type||"confirm";G(text)};dhtmlx.confirm=function(){text=F.apply(this,arguments);text.type=text.type||"alert";A(text)};var I=dhtmlx.message=function(N,M,K,O){N=C.apply(this,arguments);N.type=N.type||"info";var L=N.type.split("-")[0];switch(L){case"alert":return G(N);break;case"confirm":return A(N);break;default:return B(N);break}};I.seed=(new Date()).valueOf();I.uid=function(){return I.seed++};I.defTimeout=4000;I.defPosition="top";I.pull={};I.timers={};I.hideAll=function(){for(var K in I.pull){I.hide(K)}};I.hide=function(L){var K=I.pull[L];if(K&&K.parentNode){window.setTimeout(function(){K.parentNode.removeChild(K);K=null},2000);K.className+=" hidden";if(I.timers[L]){window.clearTimeout(I.timers[L])}delete I.pull[L]}}})(); \ No newline at end of file +if(!window.dhtmlx){window.dhtmlx={}}(function(){function H(L){if(!H.cover){H.cover=document.createElement("DIV");H.cover.className="dhx_modal_cover";document.body.appendChild(H.cover)}var K=document.body.scrollHeight;H.cover.style.display=L?"inline-block":"none"}function E(K,L){return"
"+K+"
"}function B(L){if(!I.area){I.area=document.createElement("DIV");I.area.className="dhtmlx_message_area";I.area.style[I.position]="5px";document.body.appendChild(I.area)}I.hide(L.id);var K=document.createElement("DIV");K.innerHTML="
"+L.text+"
";K.className="dhtmlx-info dhtmlx-"+L.type;K.onclick=function(){I.hide(L.id);L=null};if(I.position=="bottom"&&I.area.firstChild){I.area.insertBefore(K,I.area.firstChild)}else{I.area.appendChild(K)}if(L.expire>0){I.timers[L.id]=window.setTimeout(function(){I.hide(L.id)},L.expire)}I.pull[L.id]=K;K=null;return L.id}function J(M,N,P){var O=document.createElement("DIV");O.className=" dhtmlx_modal_box dhtmlx-"+M.type;var L="";if(M.title){L+='
'+M.title+"
"}L+='
'+M.text+'
';if(N){L+=E(M.ok||"OK",true)}if(P){L+=E(M.cancel||"Cancel",false)}L+="
";O.innerHTML=L;O.onclick=function(S){S=S||event;var R=S.target||S.srcElement;if(!R.className){R=R.parentNode}if(R.className=="dhtmlx_popup_button"){if(M.callback){M.callback.call(window,R.getAttribute("result")=="true")}H(false);O.parentNode.removeChild(O);O=null}};H(true);document.body.appendChild(O);var K=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-O.offsetWidth)/2));var Q=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-O.offsetHeight)/2));O.style.top=Q+"px";O.style.left=K+"px"}function D(K,L){return function(){I.hide(K.id);if(typeof K.callback=="function"){K.callback(L)}}}function G(K){var L=J(K,true,false)}function A(K){var L=J(K,true,true)}function F(L,K,M){if(typeof L!="object"){if(typeof K=="function"){M=K;K=""}L={text:L,type:K,callback:M}}return L}function C(M,L,K,N){if(typeof M!="object"){M={text:M,type:L,expire:K,id:N}}M.id=M.id||I.uid();M.expire=M.expire||I.expire;return M}dhtmlx.alert=function(){text=F.apply(this,arguments);text.type=text.type||"confirm";G(text)};dhtmlx.confirm=function(){text=F.apply(this,arguments);text.type=text.type||"alert";A(text)};var I=dhtmlx.message=function(N,M,L,O){N=C.apply(this,arguments);N.type=N.type||"info";var K=N.type.split("-")[0];switch(K){case"alert":return G(N);break;case"confirm":return A(N);break;default:return B(N);break}};I.seed=(new Date()).valueOf();I.uid=function(){return I.seed++};I.expire=4000;I.position="top";I.pull={};I.timers={};I.hideAll=function(){for(var K in I.pull){I.hide(K)}};I.hide=function(L){var K=I.pull[L];if(K&&K.parentNode){window.setTimeout(function(){K.parentNode.removeChild(K);K=null},2000);K.className+=" hidden";if(I.timers[L]){window.clearTimeout(I.timers[L])}delete I.pull[L]}}})(); \ No newline at end of file diff --git a/codebase/message.js b/codebase/message.js new file mode 100644 index 0000000..8cfeb42 --- /dev/null +++ b/codebase/message.js @@ -0,0 +1,173 @@ +if(!window.dhtmlx) + window.dhtmlx = {}; + +(function(){ + + function modality(mode){ + if(!modality.cover){ + modality.cover = document.createElement("DIV"); + modality.cover.className = "dhx_modal_cover"; + document.body.appendChild(modality.cover); + } + var height = document.body.scrollHeight; + modality.cover.style.display = mode?"inline-block":"none"; + } + + function button(text, callback){ + return "
"+text+"
"; + } + + function info(text){ + if (!t.area){ + t.area = document.createElement("DIV"); + t.area.className = "dhtmlx_message_area"; + t.area.style[t.position]="5px"; + document.body.appendChild(t.area); + } + + t.hide(text.id); + var message = document.createElement("DIV"); + message.innerHTML = "
"+text.text+"
"; + message.className = "dhtmlx-info dhtmlx-" + text.type; + message.onclick = function(){ + t.hide(text.id); + text = null; + } + + if (t.position == "bottom" && t.area.firstChild) + t.area.insertBefore(message,t.area.firstChild); + else + t.area.appendChild(message); + + if (text.expire > 0) + t.timers[text.id]=window.setTimeout(function(){ + t.hide(text.id); + }, text.expire); + + t.pull[text.id] = message; + message = null; + + return text.id; + } + + function _createBox(config, ok, cancel){ + var box = document.createElement("DIV"); + box.className = " dhtmlx_modal_box dhtmlx-"+config.type; + + var inner = ''; + if (config.title) + inner+='
'+config.title+'
'; + inner+='
'+config.text+'
'; + if (ok) + inner += button(config.ok || "OK", true); + if (cancel) + inner += button(config.cancel || "Cancel", false); + inner += '
'; + box.innerHTML = inner; + + box.onclick = function(e){ + e = e ||event; + var source = e.target || e.srcElement; + if (!source.className) source = source.parentNode; + if (source.className == "dhtmlx_popup_button"){ + if (config.callback) + config.callback.call(window, source.getAttribute("result") == "true"); + modality(false); + box.parentNode.removeChild(box); + box = null; + } + }; + + modality(true); + document.body.appendChild(box); + var x = Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth) - box.offsetWidth)/2)); + var y = Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight) - box.offsetHeight)/2)); + box.style.top = y+'px'; + box.style.left = x+'px'; + } + + function _popupButtonClick(config, param){ + return function(){ + t.hide(config.id); + if(typeof config.callback == "function") + config.callback(param); + }; + } + function alertPopup(config){ + var box = _createBox(config, true, false); + } + function confirmPopup(config){ + var box = _createBox(config, true, true); + } + function box_params(text, type, callback){ + if (typeof text != "object"){ + if (typeof type == "function"){ + callback = type; + type = ""; + } + text = {text:text, type:type, callback:callback }; + } + return text; + } + function params(text, type, expire, id){ + if (typeof text != "object") + text = {text:text, type:type, expire:expire, id:id}; + text.id = text.id||t.uid(); + text.expire = text.expire||t.expire; + return text; + } + dhtmlx.alert = function(){ + text = box_params.apply(this, arguments); + text.type = text.type || "confirm"; + + alertPopup(text); + }; + dhtmlx.confirm = function(){ + text = box_params.apply(this, arguments); + text.type = text.type || "alert"; + confirmPopup(text); + }; + var t = dhtmlx.message = function(text, type, expire, id){ + text = params.apply(this, arguments); + text.type = text.type||"info"; + + var subtype = text.type.split("-")[0]; + switch (subtype){ + case "alert": + return alertPopup(text); + break; + case "confirm": + return confirmPopup(text); + break; + default: + return info(text); + break; + } + }; + + t.seed = (new Date()).valueOf(); + t.uid = function(){return t.seed++;}; + t.expire = 4000; + t.position = "top"; + t.pull = {}; + t.timers = {}; + + t.hideAll = function(){ + for (var key in t.pull) + t.hide(key); + }; + t.hide = function(id){ + var obj = t.pull[id]; + if (obj && obj.parentNode){ + window.setTimeout(function(){ + obj.parentNode.removeChild(obj); + obj = null; + },2000); + obj.className+=" hidden"; + + if(t.timers[id]) + window.clearTimeout(t.timers[id]); + delete t.pull[id]; + } + }; +})(); \ No newline at end of file diff --git a/codebase/themes/message_default.css b/codebase/themes/message_default.css new file mode 100644 index 0000000..35e4f69 --- /dev/null +++ b/codebase/themes/message_default.css @@ -0,0 +1,187 @@ +.dhtmlx_message_area{ + position:fixed; + right:5px; + width:250px; + z-index:1000; +} + +.dhtmlx-info{ + min-width: 120px; + padding:4px 4px 4px 20px; + font-family:Tahoma; + z-index: 10000; + + margin:5px; + margin-bottom:10px; + + -webkit-transition: all .5s ease; + -moz-transition: all .5s ease; + -o-transition: all .5s ease; + transition: all .5s ease; +} +.dhtmlx-info.hidden{ + height:0px; + padding:0px; + border-width:0px; + margin:0px; + overflow:hidden; +} + +.dhtmlx_modal_box{ + overflow:hidden; + display: inline-block; + min-width: 300px; + width: 300px !important; + text-align: center; + position:fixed; + + background-color: #fff; + background:-webkit-linear-gradient(top, #ffffff 1%, #d0d0d0 99%); + background:-moz-linear-gradient(top, #ffffff 1%, #d0d0d0 99%); + box-shadow: 0px 0px 14px #888; + + font-family: Tahoma; + + z-index:20000; + + border-radius:6px; + border: 1px solid #ffffff; +} + +.dhtmlx_popup_title{ + border-top-left-radius:5px; + border-top-right-radius:5px; + + border-width:0px; + + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAoCAMAAAAIaGBFAAAAhFBMVEVwcHBubm5sbGxqampoaGhmZmZlZWVjY2NhYWFfX19dXV1bW1taWlpYWFhWVlZUVFRSUlJRUVFPT09NTU1LS0tJSUlHR0dGRkZERERCQkJAQEA+Pj49PT09PT0+Pj5AQEBBQUFDQ0NERERGRkZHR0dJSUlKSkpMTExMTEw5OTk5OTk5OTkny8YEAAAAQklEQVQImQXBCRJCAAAAwKVSQqdyjSPXNP7/QLsIhA6OTiJnF7GrRCpzc/fw9PKW+/gqlCq1RqvTG/yMJrPF6m/bAVEhAxxnHG0oAAAAAElFTkSuQmCC); + background-image: -webkit-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 97%, #393939 97%); + background-image: -moz-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 97%, #393939 97%); +} + +.dhtmlx-info, .dhtmlx_popup_button{ + user-select: none; + -webkit-user-select: none; + -moz-user-select:-moz-none; + + cursor:pointer; +} + +.dhtmlx_popup_text{ + overflow:hidden; +} + +.dhtmlx_popup_controls{ + border-radius:6px; + padding:5px; +} + +.dhtmlx_popup_button{ + min-width: 120px; + width: 120px; + height: 30px; + line-height:30px; + + display: inline-block; + margin: 0 5px; + border-radius: 6px; + + color:#FFF; +} + +div.dhx_modal_cover { + background-color:#000; + cursor:default; + + filter:alpha(opacity = 20); + opacity: 0.2; + + position: fixed; + z-index:19999; + left: 0px; top: 0px; + width: 100%; height: 100%; + + border: none; + zoom: 1; +} + +.dhtmlx-info img, .dhtmlx_modal_box img{ + float:left; + margin-right:20px; +} + +.dhtmlx-alert-error .dhtmlx_popup_title, .dhtmlx-confirm-error .dhtmlx_popup_title{ + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAATklEQVR4nIWLuw2AMBBDjVuQiBT2oWbRDATrnB0KQOJoqPzRe3BrHI6dcBASYREKovtK6/6DsDOX+stN+3H1YX9ciRgnYq5EWYhS2dftBIuLT4JyIrPCAAAAAElFTkSuQmCC); +} +.dhtmlx-alert-error, .dhtmlx-confirm-error { + border: 1px solid #ff0000; +} + +/*Skin section*/ +.dhtmlx_popup_button{ + box-shadow: 0px 0px 4px #888; + border:1px solid #838383; +} +.dhtmlx_popup_button div{ + border:1px solid #FFF; + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAYFBMVEVwcHBtbW1ra2toaGhmZmZjY2NhYWFeXl5cXFxaWlpXV1dVVVVSUlJQUFBNTU1LS0tJSUlGRkZERERBQUE/Pz88PDw9PT0+Pj5AQEBCQkJDQ0NFRUVHR0dISEhKSkpMTEzqthaMAAAAMklEQVQImQXBhQ2AMAAAsOIMlwWH/8+kRSKVyRVKlVrQaHV6g9FktlhFm93hdLk9Xt8PIfgBvdUqyskAAAAASUVORK5CYII=); + background-image: -webkit-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 99%); + background-image: -moz-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 99%); + + border-radius:6px; + font-size:15px; + + height:28px; + line-height:28px; +} + +.dhtmlx_popup_button div:active, .dhtmlx_popup_button div:focus{ + + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAXVBMVEVwcHBubm5tbW1sbGxra2tpaWloaGhnZ2dmZmZlZWVjY2NiYmJhYWFgYGBfX19dXV1cXFxbW1taWlpZWVlXV1dWVlZVVVVUVFRTU1NRUVFQUFBPT09OTk5NTU1LS0tT9SY0AAAAMUlEQVQImQXBhQGAMAAAIGxnx2z9/00BiVQmVyhVakGj1ekNRpPZYhVtdofT5fZ4fT8hpwG05JjexgAAAABJRU5ErkJggg==); + background-image: -webkit-linear-gradient(top, #707070 1%, #4c4c4c 99%); + background-image: -moz-linear-gradient(top, #707070 1%, #4c4c4c 99%); +} +.dhtmlx_popup_title{ + color:#fff; + text-shadow: 1px 1px #000; + height:40px; line-height:40px; + font-size:20px; +} +.dhtmlx_popup_text{ + margin:15px 15px 5px 15px; + font-size:14px; + color:#000; + min-height:30px; + border-radius:6px; +} + + +.dhtmlx-info, .dhtmlx-error{ + font-size:14px; + color:#000; + box-shadow: 0px 0px 10px #888; + + padding:0px; + + background-color:#FFF; + border-radius:3px; + border:1px solid #ffffff; +} +.dhtmlx-info div{ + padding:5px 10px 5px 10px; + background-color: #fff; + + border-radius:3px; + border:1px solid #B8B8B8; +} +.dhtmlx-error{ + background-color: #d81b1b; + border:1px solid #ff3c3c; + box-shadow: 0px 0px 10px #000; +} +.dhtmlx-error div{ + background-color: #d81b1b; + border:1px solid #940000; + color:#FFF; +} + diff --git a/codebase/themes/message_growl_dark.css b/codebase/themes/message_growl_dark.css new file mode 100644 index 0000000..977f301 --- /dev/null +++ b/codebase/themes/message_growl_dark.css @@ -0,0 +1,175 @@ +.dhtmlx_message_area{ + position:fixed; + right:5px; + width:250px; + z-index:1000; +} + +.dhtmlx-info{ + min-width: 120px; + padding:4px 4px 4px 20px; + font-family:Tahoma; + z-index: 10000; + + margin:5px; + margin-bottom:10px; + + -webkit-transition: all .5s ease; + -moz-transition: all .5s ease; + -o-transition: all .5s ease; + transition: all .5s ease; +} +.dhtmlx-info.hidden{ + height:0px; + padding:0px; + border-width:0px; + margin:0px; + overflow:hidden; +} + +.dhtmlx_modal_box{ + overflow:hidden; + display: inline-block; + min-width: 300px; + width: 300px !important; + text-align: center; + position:fixed; + + background-color: #fff; + background:-webkit-linear-gradient(top, #ffffff 1%, #d0d0d0 99%); + background:-moz-linear-gradient(top, #ffffff 1%, #d0d0d0 99%); + box-shadow: 0px 0px 14px #888; + + font-family: Tahoma; + + z-index:20000; + + border-radius:6px; + border: 1px solid #ffffff; +} + +.dhtmlx_popup_title{ + border-top-left-radius:5px; + border-top-right-radius:5px; + + border-width:0px; + + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAoCAMAAAAIaGBFAAAAhFBMVEVwcHBubm5sbGxqampoaGhmZmZlZWVjY2NhYWFfX19dXV1bW1taWlpYWFhWVlZUVFRSUlJRUVFPT09NTU1LS0tJSUlHR0dGRkZERERCQkJAQEA+Pj49PT09PT0+Pj5AQEBBQUFDQ0NERERGRkZHR0dJSUlKSkpMTExMTEw5OTk5OTk5OTkny8YEAAAAQklEQVQImQXBCRJCAAAAwKVSQqdyjSPXNP7/QLsIhA6OTiJnF7GrRCpzc/fw9PKW+/gqlCq1RqvTG/yMJrPF6m/bAVEhAxxnHG0oAAAAAElFTkSuQmCC); + background-image: -webkit-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 97%, #393939 97%); + background-image: -moz-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 97%, #393939 97%); +} + +.dhtmlx-info, .dhtmlx_popup_button{ + user-select: none; + -webkit-user-select: none; + -moz-user-select:-moz-none; + + cursor:pointer; +} + +.dhtmlx_popup_text{ + overflow:hidden; +} + +.dhtmlx_popup_controls{ + border-radius:6px; + padding:5px; +} + +.dhtmlx_popup_button{ + min-width: 120px; + width: 120px; + height: 30px; + line-height:30px; + + display: inline-block; + margin: 0 5px; + border-radius: 6px; + + color:#FFF; +} + +div.dhx_modal_cover { + background-color:#000; + cursor:default; + + filter:alpha(opacity = 20); + opacity: 0.2; + + position: fixed; + z-index:19999; + left: 0px; top: 0px; + width: 100%; height: 100%; + + border: none; + zoom: 1; +} + +.dhtmlx-info img, .dhtmlx_modal_box img{ + float:left; + margin-left:-10px; + margin-right:20px; +} + +.dhtmlx-alert-error .dhtmlx_popup_title, .dhtmlx-confirm-error .dhtmlx_popup_title{ + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAATklEQVR4nIWLuw2AMBBDjVuQiBT2oWbRDATrnB0KQOJoqPzRe3BrHI6dcBASYREKovtK6/6DsDOX+stN+3H1YX9ciRgnYq5EWYhS2dftBIuLT4JyIrPCAAAAAElFTkSuQmCC); +} +.dhtmlx-alert-error, .dhtmlx-confirm-error { + border: 1px solid #ff0000; +} + +/*Skin section*/ + +.dhtmlx_popup_button{ + box-shadow: 0px 0px 4px #888; + border:1px solid #838383; +} +.dhtmlx_popup_button div{ + border:1px solid #FFF; + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAYFBMVEVwcHBtbW1ra2toaGhmZmZjY2NhYWFeXl5cXFxaWlpXV1dVVVVSUlJQUFBNTU1LS0tJSUlGRkZERERBQUE/Pz88PDw9PT0+Pj5AQEBCQkJDQ0NFRUVHR0dISEhKSkpMTEzqthaMAAAAMklEQVQImQXBhQ2AMAAAsOIMlwWH/8+kRSKVyRVKlVrQaHV6g9FktlhFm93hdLk9Xt8PIfgBvdUqyskAAAAASUVORK5CYII=); + background-image: -webkit-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 99%); + background-image: -moz-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 99%); + + border-radius:6px; + font-size:15px; + + height:28px; + line-height:28px; +} + +.dhtmlx_popup_button div:active, .dhtmlx_popup_button div:focus{ + + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAXVBMVEVwcHBubm5tbW1sbGxra2tpaWloaGhnZ2dmZmZlZWVjY2NiYmJhYWFgYGBfX19dXV1cXFxbW1taWlpZWVlXV1dWVlZVVVVUVFRTU1NRUVFQUFBPT09OTk5NTU1LS0tT9SY0AAAAMUlEQVQImQXBhQGAMAAAIGxnx2z9/00BiVQmVyhVakGj1ekNRpPZYhVtdofT5fZ4fT8hpwG05JjexgAAAABJRU5ErkJggg==); + background-image: -webkit-linear-gradient(top, #707070 1%, #4c4c4c 99%); + background-image: -moz-linear-gradient(top, #707070 1%, #4c4c4c 99%); +} +.dhtmlx_popup_title{ + color:#fff; + text-shadow: 1px 1px #000; + height:40px; line-height:40px; + font-size:20px; +} +.dhtmlx_popup_text{ + margin:15px 15px 5px 15px; + font-size:14px; + color:#000; + min-height:30px; + border-radius:6px; +} + + +.dhtmlx-info, .dhtmlx-error{ + font-size:14px; + color:#fff; + box-shadow: 0px 0px 4px #000; + margin-bottom:10px; + + background-color:#000; + background-color:rgba(0,0,0,0.8); + border-radius:5px; + border:2px solid #fff; +} + +.dhtmlx-error{ + background-color:#F00; +} diff --git a/codebase/themes/message_growl_shiny.css b/codebase/themes/message_growl_shiny.css new file mode 100644 index 0000000..d1a54d8 --- /dev/null +++ b/codebase/themes/message_growl_shiny.css @@ -0,0 +1,177 @@ +.dhtmlx_message_area{ + position:fixed; + right:5px; + width:250px; + z-index:1000; +} + +.dhtmlx-info{ + min-width: 120px; + padding:4px 4px 4px 20px; + font-family:Tahoma; + z-index: 10000; + + margin:5px; + margin-bottom:10px; + + -webkit-transition: all .5s ease; + -moz-transition: all .5s ease; + -o-transition: all .5s ease; + transition: all .5s ease; +} +.dhtmlx-info.hidden{ + height:0px; + padding:0px; + border-width:0px; + margin:0px; + overflow:hidden; +} + +.dhtmlx_modal_box{ + overflow:hidden; + display: inline-block; + min-width: 300px; + width: 300px !important; + text-align: center; + position:fixed; + + background-color: #fff; + background:-webkit-linear-gradient(top, #ffffff 1%, #d0d0d0 99%); + background:-moz-linear-gradient(top, #ffffff 1%, #d0d0d0 99%); + box-shadow: 0px 0px 14px #888; + + font-family: Tahoma; + + z-index:20000; + + border-radius:6px; + border: 1px solid #ffffff; +} + +.dhtmlx_popup_title{ + border-top-left-radius:5px; + border-top-right-radius:5px; + + border-width:0px; + + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAoCAMAAAAIaGBFAAAAhFBMVEVwcHBubm5sbGxqampoaGhmZmZlZWVjY2NhYWFfX19dXV1bW1taWlpYWFhWVlZUVFRSUlJRUVFPT09NTU1LS0tJSUlHR0dGRkZER + ERCQkJAQEA+Pj49PT09PT0+Pj5AQEBBQUFDQ0NERERGRkZHR0dJSUlKSkpMTExMTEw5OTk5OTk5OTkny8YEAAAAQklEQVQImQXBCRJCAAAAwKVSQqdyjSPXNP7/QLsIhA6OTiJnF7GrRCpzc/fw9PKW+/gqlCq1RqvTG/yMJrPF6m/bAVEhAxxnHG0oAAAAAElFTkSuQmCC); + background-image: -webkit-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 97%, #393939 97%); + background-image: -moz-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 97%, #393939 97%); +} + +.dhtmlx-info, .dhtmlx_popup_button{ + user-select: none; + -webkit-user-select: none; + -moz-user-select:-moz-none; + + cursor:pointer; +} + +.dhtmlx_popup_text{ + overflow:hidden; +} + +.dhtmlx_popup_controls{ + border-radius:6px; + padding:5px; +} + +.dhtmlx_popup_button{ + min-width: 120px; + width: 120px; + height: 30px; + line-height:30px; + + display: inline-block; + margin: 0 5px; + border-radius: 6px; + + color:#FFF; +} + +div.dhx_modal_cover { + background-color:#000; + cursor:default; + + filter:alpha(opacity = 20); + opacity: 0.2; + + position: fixed; + z-index:19999; + left: 0px; top: 0px; + width: 100%; height: 100%; + + border: none; + zoom: 1; +} + +.dhtmlx-info img, .dhtmlx_modal_box img{ + float:left; + margin-left:-10px; + margin-right:20px; +} + +.dhtmlx-alert-error .dhtmlx_popup_title, .dhtmlx-confirm-error .dhtmlx_popup_title{ + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAATklEQVR4nIWLuw2AMBBDjVuQiBT2oWbRDATrnB0KQOJoqPzRe3BrHI6dcBASYREKovtK6/6DsDOX+stN+3H1YX9ciRgnYq5EWYhS2dftBIuLT4JyIrPCAAAAAElFTkSuQmCC); +} +.dhtmlx-alert-error, .dhtmlx-confirm-error { + border: 1px solid #ff0000; +} + +/*Skin section*/ + +.dhtmlx_popup_button{ + box-shadow: 0px 0px 4px #888; + border:1px solid #838383; +} +.dhtmlx_popup_button div{ + border:1px solid #FFF; + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAYFBMVEVwcHBtbW1ra2toaGhmZmZjY2NhYWFeXl5cXFxaWlpXV1dVVVVSUlJQUFBNTU1LS0tJSUlGRkZERERBQUE/Pz88PDw9PT0+Pj5AQEBCQkJDQ0NFRUVHR0dISEhKSkpMTEzqthaMAAAAMklEQVQImQXBhQ2AMAAAsOIMlwWH/8+kRSKVyRVKlVrQaHV6g9FktlhFm93hdLk9Xt8PIfgBvdUqyskAAAAASUVORK5CYII=); + background-image: -webkit-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 99%); + background-image: -moz-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 99%); + + border-radius:6px; + font-size:15px; + + height:28px; + line-height:28px; +} + +.dhtmlx_popup_button div:active, .dhtmlx_popup_button div:focus{ + + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAXVBMVEVwcHBubm5tbW1sbGxra2tpaWloaGhnZ2dmZmZlZWVjY2NiYmJhYWFgYGBfX19dXV1cXFxbW1taWlpZWVlXV1dWVlZVVVVUVFRTU1NRUVFQUFBPT09OTk5NTU1LS0tT9SY0AAAAMUlEQVQImQXBhQGAMAAAIGxnx2z9/00BiVQmVyhVakGj1ekNRpPZYhVtdofT5fZ4fT8hpwG05JjexgAAAABJRU5ErkJggg==); + background-image: -webkit-linear-gradient(top, #707070 1%, #4c4c4c 99%); + background-image: -moz-linear-gradient(top, #707070 1%, #4c4c4c 99%); +} +.dhtmlx_popup_title{ + color:#fff; + text-shadow: 1px 1px #000; + height:40px; line-height:40px; + font-size:20px; +} +.dhtmlx_popup_text{ + margin:15px 15px 5px 15px; + font-size:14px; + color:#000; + min-height:30px; + border-radius:6px; +} + + +.dhtmlx-info, .dhtmlx-error{ + font-size:14px; + color:#000; + box-shadow: 0px 0px 4px #fff; + margin-bottom:10px; + + background-color:#fff; + + border-radius:5px; + border:2px solid #000; +} + +.dhtmlx-error{ + background-color:#F00; + color:white; +} diff --git a/codebase/themes/message_skyblue.css b/codebase/themes/message_skyblue.css new file mode 100644 index 0000000..527872a --- /dev/null +++ b/codebase/themes/message_skyblue.css @@ -0,0 +1,169 @@ +.dhtmlx_message_area{ + position:fixed; + right:5px; + width:250px; + z-index:1000; +} + +.dhtmlx-info{ + min-width: 120px; + padding:4px 4px 4px 20px; + font-family:Tahoma; + z-index: 10000; + + margin:5px; + margin-bottom:10px; + + -webkit-transition: all .5s ease; + -moz-transition: all .5s ease; + -o-transition: all .5s ease; + transition: all .5s ease; +} +.dhtmlx-info.hidden{ + height:0px; + padding:0px; + border-width:0px; + margin:0px; + overflow:hidden; +} + +.dhtmlx_modal_box{ + overflow:hidden; + display: inline-block; + min-width: 300px; + width: 300px !important; + text-align: center; + position:fixed; + + background-color: #fff; + background:-webkit-linear-gradient(top, #ffffff 1%, #d0d0d0 99%); + background:-moz-linear-gradient(top, #ffffff 1%, #d0d0d0 99%); + box-shadow: 0px 0px 14px #888; + + font-family: Tahoma; + + z-index:20000; + + border-radius:6px; + border: 1px solid #ffffff; +} + +.dhtmlx_popup_title{ + border-top-left-radius:5px; + border-top-right-radius:5px; + + border-width:0px; + background-color: #4c4c4c; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAARElEQVR4nH3MMQqAQBQD0dnZBTvvf80tBBEhNh9EFKuERwhz2z3OGDA0EwxI5aelvDq/hkn54+O210dtujjEYXN0XJdc1CE1MA5mcdsAAAAASUVORK5CYII=); +} + +.dhtmlx-info, .dhtmlx_popup_button{ + user-select: none; + -webkit-user-select: none; + -moz-user-select:-moz-none; + + cursor:pointer; +} + +.dhtmlx_popup_text{ + overflow:hidden; +} + +.dhtmlx_popup_controls{ + border-radius:6px; + padding:5px; +} + +.dhtmlx_popup_button{ + min-width: 120px; + width: 120px; + height: 30px; + line-height:30px; + + display: inline-block; + margin: 0 5px; + border-radius: 6px; + + color:#FFF; +} + +div.dhx_modal_cover { + background-color:#000; + cursor:default; + + filter:alpha(opacity = 20); + opacity: 0.2; + + position: fixed; + z-index:19999; + left: 0px; top: 0px; + width: 100%; height: 100%; + + border: none; + zoom: 1; +} + +.dhtmlx-info img, .dhtmlx_modal_box img{ + float:left; + margin-right:20px; + margin-left:-10px; +} + +.dhtmlx-alert-error .dhtmlx_popup_title, .dhtmlx-confirm-error .dhtmlx_popup_title{ + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAATklEQVR4nIWLuw2AMBBDjVuQiBT2oWbRDATrnB0KQOJoqPzRe3BrHI6dcBASYREKovtK6/6DsDOX+stN+3H1YX9ciRgnYq5EWYhS2dftBIuLT4JyIrPCAAAAAElFTkSuQmCC); +} +.dhtmlx-alert-error, .dhtmlx-confirm-error { + border: 1px solid #ff0000; +} + +/*Skin section*/ + +.dhtmlx_popup_button{ + box-shadow: 0px 0px 4px #888; + border:1px solid #838383; +} +.dhtmlx_popup_button div{ + border:1px solid #FFF; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAIAAABi9+OQAAAAQElEQVR4nE3LMQ7AIAxD0R9TxP3PydalW8xAQJ0i2y/M95ONTOxrlCC7MigdMtz92LxdlKPc/3d7jPqDRgv1xgLuDiwEIl5MZQAAAABJRU5ErkJggg==); + color:#000; + border-radius:6px; + font-size:15px; + + height:28px; + line-height:28px; +} + +.dhtmlx_popup_button div:active, .dhtmlx_popup_button div:focus{ + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAIAAABi9+OQAAAARklEQVR4nE2LMQ6AIADEykUG3Nz9/yf4Ar8g7K4Oeg4KOFxyTVNyqUrbLoMwAgt4+dt0nT0+IP/cbD0ag0JAabm1xkvn0R7oABW07Ic3sQAAAABJRU5ErkJggg==); +} +.dhtmlx_popup_title{ + color:#000; + + height:40px; line-height:40px; + font-size:20px; +} +.dhtmlx_popup_text{ + margin:15px 15px 5px 15px; + font-size:14px; + color:#000; + min-height:30px; + border-radius:6px; +} + + +.dhtmlx-info, .dhtmlx-error{ + font-size:14px; + color:#000; + box-shadow: 0px 0px 4px #000; + margin-bottom:10px; + + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAARElEQVR4nH3MMQqAQBQD0dnZBTvvf80tBBEhNh9EFKuERwhz2z3OGDA0EwxI5aelvDq/hkn54+O210dtujjEYXN0XJdc1CE1MA5mcdsAAAAASUVORK5CYII=); + + background-color:rgba(0,0,0,0.8); + border-radius:5px; + border:2px solid #fff; +} + +.dhtmlx-error{ + color:red; +} diff --git a/codebase/themes/message_solid.css b/codebase/themes/message_solid.css new file mode 100644 index 0000000..c94a144 --- /dev/null +++ b/codebase/themes/message_solid.css @@ -0,0 +1,174 @@ +.dhtmlx_message_area{ + position:fixed; + right:5px; + width:250px; + z-index:1000; +} + +.dhtmlx-info{ + min-width: 120px; + padding:4px 4px 4px 20px; + font-family:Tahoma; + z-index: 10000; + + margin:5px; + margin-bottom:10px; + + -webkit-transition: all .5s ease; + -moz-transition: all .5s ease; + -o-transition: all .5s ease; + transition: all .5s ease; +} +.dhtmlx-info.hidden{ + height:0px; + padding:0px; + border-width:0px; + margin:0px; + overflow:hidden; +} + +.dhtmlx_modal_box{ + overflow:hidden; + display: inline-block; + min-width: 300px; + width: 300px !important; + text-align: center; + position:fixed; + + background-color: #fff; + background:-webkit-linear-gradient(top, #ffffff 1%, #d0d0d0 99%); + background:-moz-linear-gradient(top, #ffffff 1%, #d0d0d0 99%); + box-shadow: 0px 0px 14px #888; + + font-family: Tahoma; + + z-index:20000; + + border-radius:6px; + border: 1px solid #ffffff; +} + +.dhtmlx_popup_title{ + border-top-left-radius:5px; + border-top-right-radius:5px; + + border-width:0px; + + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAoCAMAAAAIaGBFAAAAhFBMVEVwcHBubm5sbGxqampoaGhmZmZlZWVjY2NhYWFfX19dXV1bW1taWlpYWFhWVlZUVFRSUlJRUVFPT09NTU1LS0tJSUlHR0dGRkZERERCQkJAQEA+Pj49PT09PT0+Pj5AQEBBQUFDQ0NERERGRkZHR0dJSUlKSkpMTExMTEw5OTk5OTk5OTkny8YEAAAAQklEQVQImQXBCRJCAAAAwKVSQqdyjSPXNP7/QLsIhA6OTiJnF7GrRCpzc/fw9PKW+/gqlCq1RqvTG/yMJrPF6m/bAVEhAxxnHG0oAAAAAElFTkSuQmCC); + background-image: -webkit-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 97%, #393939 97%); + background-image: -moz-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 97%, #393939 97%); +} + +.dhtmlx-info, .dhtmlx_popup_button{ + user-select: none; + -webkit-user-select: none; + -moz-user-select:-moz-none; + + cursor:pointer; +} + +.dhtmlx_popup_text{ + overflow:hidden; +} + +.dhtmlx_popup_controls{ + border-radius:6px; + padding:5px; +} + +.dhtmlx_popup_button{ + min-width: 120px; + width: 120px; + height: 30px; + line-height:30px; + + display: inline-block; + margin: 0 5px; + border-radius: 6px; + + color:#FFF; +} + +div.dhx_modal_cover { + background-color:#000; + cursor:default; + + filter:alpha(opacity = 20); + opacity: 0.2; + + position: fixed; + z-index:19999; + left: 0px; top: 0px; + width: 100%; height: 100%; + + border: none; + zoom: 1; +} + +.dhtmlx-info img, .dhtmlx_modal_box img{ + float:left; + margin-left:-10px; + margin-right:20px; +} + +.dhtmlx-alert-error .dhtmlx_popup_title, .dhtmlx-confirm-error .dhtmlx_popup_title{ + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAATklEQVR4nIWLuw2AMBBDjVuQiBT2oWbRDATrnB0KQOJoqPzRe3BrHI6dcBASYREKovtK6/6DsDOX+stN+3H1YX9ciRgnYq5EWYhS2dftBIuLT4JyIrPCAAAAAElFTkSuQmCC); +} +.dhtmlx-alert-error, .dhtmlx-confirm-error { + border: 1px solid #ff0000; +} + +/*Skin section*/ + +.dhtmlx_popup_button{ + box-shadow: 0px 0px 4px #888; + border:1px solid #838383; +} +.dhtmlx_popup_button div{ + border:1px solid #FFF; + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAYFBMVEVwcHBtbW1ra2toaGhmZmZjY2NhYWFeXl5cXFxaWlpXV1dVVVVSUlJQUFBNTU1LS0tJSUlGRkZERERBQUE/Pz88PDw9PT0+Pj5AQEBCQkJDQ0NFRUVHR0dISEhKSkpMTEzqthaMAAAAMklEQVQImQXBhQ2AMAAAsOIMlwWH/8+kRSKVyRVKlVrQaHV6g9FktlhFm93hdLk9Xt8PIfgBvdUqyskAAAAASUVORK5CYII=); + background-image: -webkit-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 99%); + background-image: -moz-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 99%); + + border-radius:6px; + font-size:15px; + + height:28px; + line-height:28px; +} + +.dhtmlx_popup_button div:active, .dhtmlx_popup_button div:focus{ + + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAXVBMVEVwcHBubm5tbW1sbGxra2tpaWloaGhnZ2dmZmZlZWVjY2NiYmJhYWFgYGBfX19dXV1cXFxbW1taWlpZWVlXV1dWVlZVVVVUVFRTU1NRUVFQUFBPT09OTk5NTU1LS0tT9SY0AAAAMUlEQVQImQXBhQGAMAAAIGxnx2z9/00BiVQmVyhVakGj1ekNRpPZYhVtdofT5fZ4fT8hpwG05JjexgAAAABJRU5ErkJggg==); + background-image: -webkit-linear-gradient(top, #707070 1%, #4c4c4c 99%); + background-image: -moz-linear-gradient(top, #707070 1%, #4c4c4c 99%); +} +.dhtmlx_popup_title{ + color:#fff; + text-shadow: 1px 1px #000; + height:40px; line-height:40px; + font-size:20px; +} +.dhtmlx_popup_text{ + margin:15px 15px 5px 15px; + font-size:14px; + color:#000; + min-height:30px; + border-radius:6px; +} + + +.dhtmlx-info, .dhtmlx-error{ + font-size:14px; + color:#fff; + box-shadow: 0 4px 4px -4px #000; + + border-radius:5px; + + background-color:#000; + background-color:rgba(0,0,0,0.8); +} + +.dhtmlx-error{ + color:#F00; +} diff --git a/index.html b/index.html index d71d8cc..ac734cc 100644 --- a/index.html +++ b/index.html @@ -1,16 +1,73 @@ - + + Message library - - + + + + + + + + + + + + @@ -70,10 +127,39 @@

Examples

See it in action


-
-
-
-
+
+ Skin + +
+ +
+ Message + + + +
+ +
+ Alert + + + + +
+ +
+ Confirm + + + + +
@@ -95,5 +181,10 @@

See it in action

+ From 5ca98ba9f67916ba9175b977b175187d5eccfcdc Mon Sep 17 00:00:00 2001 From: Stanislau Date: Tue, 18 Oct 2011 16:48:33 +0300 Subject: [PATCH 05/15] [fix] incorrect demo messages --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index ac734cc..171d6e8 100644 --- a/index.html +++ b/index.html @@ -43,13 +43,13 @@ "Simple and Elegant", "Just 3kb (gziped)", "Easy customizable", - "Different styles", + { type:"error", text:"Different styles"}, "FF, Chrome, Safari, Opera, IE7+", "MIT license", { expire:-1, text:"Check other dhtmlx products" } ]; function show_message(){ - dhtmlx.message(lines[count%6]); + dhtmlx.message(lines[count%7]); count++; }; From abd9cf5fa406020bfe8c76f7301a3543880478d5 Mon Sep 17 00:00:00 2001 From: Stanislau Date: Tue, 18 Oct 2011 17:05:17 +0300 Subject: [PATCH 06/15] [fix] incorrect padding for images in the popup --- codebase/themes/message_growl_dark.css | 4 +++- codebase/themes/message_growl_shiny.css | 4 +++- codebase/themes/message_skyblue.css | 2 ++ codebase/themes/message_solid.css | 4 +++- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/codebase/themes/message_growl_dark.css b/codebase/themes/message_growl_dark.css index 977f301..83e0ed1 100644 --- a/codebase/themes/message_growl_dark.css +++ b/codebase/themes/message_growl_dark.css @@ -107,9 +107,11 @@ div.dhx_modal_cover { .dhtmlx-info img, .dhtmlx_modal_box img{ float:left; - margin-left:-10px; margin-right:20px; } +.dhtmlx-info img{ + margin-left:-10px; +} .dhtmlx-alert-error .dhtmlx_popup_title, .dhtmlx-confirm-error .dhtmlx_popup_title{ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAATklEQVR4nIWLuw2AMBBDjVuQiBT2oWbRDATrnB0KQOJoqPzRe3BrHI6dcBASYREKovtK6/6DsDOX+stN+3H1YX9ciRgnYq5EWYhS2dftBIuLT4JyIrPCAAAAAElFTkSuQmCC); diff --git a/codebase/themes/message_growl_shiny.css b/codebase/themes/message_growl_shiny.css index d1a54d8..bf08cbb 100644 --- a/codebase/themes/message_growl_shiny.css +++ b/codebase/themes/message_growl_shiny.css @@ -108,9 +108,11 @@ div.dhx_modal_cover { .dhtmlx-info img, .dhtmlx_modal_box img{ float:left; - margin-left:-10px; margin-right:20px; } +.dhtmlx-info img{ + margin-left:-10px; +} .dhtmlx-alert-error .dhtmlx_popup_title, .dhtmlx-confirm-error .dhtmlx_popup_title{ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAATklEQVR4nIWLuw2AMBBDjVuQiBT2oWbRDATrnB0KQOJoqPzRe3BrHI6dcBASYREKovtK6/6DsDOX+stN+3H1YX9ciRgnYq5EWYhS2dftBIuLT4JyIrPCAAAAAElFTkSuQmCC); diff --git a/codebase/themes/message_skyblue.css b/codebase/themes/message_skyblue.css index 527872a..8f756a3 100644 --- a/codebase/themes/message_skyblue.css +++ b/codebase/themes/message_skyblue.css @@ -106,6 +106,8 @@ div.dhx_modal_cover { .dhtmlx-info img, .dhtmlx_modal_box img{ float:left; margin-right:20px; +} +.dhtmlx-info img{ margin-left:-10px; } diff --git a/codebase/themes/message_solid.css b/codebase/themes/message_solid.css index c94a144..794e3ae 100644 --- a/codebase/themes/message_solid.css +++ b/codebase/themes/message_solid.css @@ -107,9 +107,11 @@ div.dhx_modal_cover { .dhtmlx-info img, .dhtmlx_modal_box img{ float:left; - margin-left:-10px; margin-right:20px; } +.dhtmlx-info img{ + margin-left:-10px; +} .dhtmlx-alert-error .dhtmlx_popup_title, .dhtmlx-confirm-error .dhtmlx_popup_title{ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAATklEQVR4nIWLuw2AMBBDjVuQiBT2oWbRDATrnB0KQOJoqPzRe3BrHI6dcBASYREKovtK6/6DsDOX+stN+3H1YX9ciRgnYq5EWYhS2dftBIuLT4JyIrPCAAAAAElFTkSuQmCC); From c796e011c65e244e41ee73176018316705b1740f Mon Sep 17 00:00:00 2001 From: Stanislau Date: Wed, 19 Oct 2011 19:06:33 +0300 Subject: [PATCH 07/15] [update] keyboard handling for modal messages --- codebase/message.compressed.js | 2 +- codebase/message.js | 48 +++++++++++++++++++++++++++------- 2 files changed, 39 insertions(+), 11 deletions(-) diff --git a/codebase/message.compressed.js b/codebase/message.compressed.js index 9cf04ff..063dd2f 100644 --- a/codebase/message.compressed.js +++ b/codebase/message.compressed.js @@ -1 +1 @@ -if(!window.dhtmlx){window.dhtmlx={}}(function(){function H(L){if(!H.cover){H.cover=document.createElement("DIV");H.cover.className="dhx_modal_cover";document.body.appendChild(H.cover)}var K=document.body.scrollHeight;H.cover.style.display=L?"inline-block":"none"}function E(K,L){return"
"+K+"
"}function B(L){if(!I.area){I.area=document.createElement("DIV");I.area.className="dhtmlx_message_area";I.area.style[I.position]="5px";document.body.appendChild(I.area)}I.hide(L.id);var K=document.createElement("DIV");K.innerHTML="
"+L.text+"
";K.className="dhtmlx-info dhtmlx-"+L.type;K.onclick=function(){I.hide(L.id);L=null};if(I.position=="bottom"&&I.area.firstChild){I.area.insertBefore(K,I.area.firstChild)}else{I.area.appendChild(K)}if(L.expire>0){I.timers[L.id]=window.setTimeout(function(){I.hide(L.id)},L.expire)}I.pull[L.id]=K;K=null;return L.id}function J(M,N,P){var O=document.createElement("DIV");O.className=" dhtmlx_modal_box dhtmlx-"+M.type;var L="";if(M.title){L+='
'+M.title+"
"}L+='
'+M.text+'
';if(N){L+=E(M.ok||"OK",true)}if(P){L+=E(M.cancel||"Cancel",false)}L+="
";O.innerHTML=L;O.onclick=function(S){S=S||event;var R=S.target||S.srcElement;if(!R.className){R=R.parentNode}if(R.className=="dhtmlx_popup_button"){if(M.callback){M.callback.call(window,R.getAttribute("result")=="true")}H(false);O.parentNode.removeChild(O);O=null}};H(true);document.body.appendChild(O);var K=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-O.offsetWidth)/2));var Q=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-O.offsetHeight)/2));O.style.top=Q+"px";O.style.left=K+"px"}function D(K,L){return function(){I.hide(K.id);if(typeof K.callback=="function"){K.callback(L)}}}function G(K){var L=J(K,true,false)}function A(K){var L=J(K,true,true)}function F(L,K,M){if(typeof L!="object"){if(typeof K=="function"){M=K;K=""}L={text:L,type:K,callback:M}}return L}function C(M,L,K,N){if(typeof M!="object"){M={text:M,type:L,expire:K,id:N}}M.id=M.id||I.uid();M.expire=M.expire||I.expire;return M}dhtmlx.alert=function(){text=F.apply(this,arguments);text.type=text.type||"confirm";G(text)};dhtmlx.confirm=function(){text=F.apply(this,arguments);text.type=text.type||"alert";A(text)};var I=dhtmlx.message=function(N,M,L,O){N=C.apply(this,arguments);N.type=N.type||"info";var K=N.type.split("-")[0];switch(K){case"alert":return G(N);break;case"confirm":return A(N);break;default:return B(N);break}};I.seed=(new Date()).valueOf();I.uid=function(){return I.seed++};I.expire=4000;I.position="top";I.pull={};I.timers={};I.hideAll=function(){for(var K in I.pull){I.hide(K)}};I.hide=function(L){var K=I.pull[L];if(K&&K.parentNode){window.setTimeout(function(){K.parentNode.removeChild(K);K=null},2000);K.className+=" hidden";if(I.timers[L]){window.clearTimeout(I.timers[L])}delete I.pull[L]}}})(); \ No newline at end of file +if(!window.dhtmlx){window.dhtmlx={}}(function(){var I=null;function K(P,N){var O=P.callback;J(false);P.box.parentNode.removeChild(P.box);I=box=P.box=null;if(O){O(N)}}function A(O){if(I){var N=O.which||event.keyCode;if(dhtmlx.message.keyboard){if(N==13||N==32){K(I,true)}if(N==27){K(I,false)}}if(O.preventDefault){O.preventDefault()}return !(O.cancelBubble=true)}}if(document.attachEvent){document.attachEvent("onkeydown",A)}else{document.addEventListener("keydown",A)}function J(O){if(!J.cover){J.cover=document.createElement("DIV");J.cover.className="dhx_modal_cover";document.body.appendChild(J.cover)}var N=document.body.scrollHeight;J.cover.style.display=O?"inline-block":"none"}function F(N,O){return"
"+N+"
"}function C(O){if(!L.area){L.area=document.createElement("DIV");L.area.className="dhtmlx_message_area";L.area.style[L.position]="5px";document.body.appendChild(L.area)}L.hide(O.id);var N=document.createElement("DIV");N.innerHTML="
"+O.text+"
";N.className="dhtmlx-info dhtmlx-"+O.type;N.onclick=function(){L.hide(O.id);O=null};if(L.position=="bottom"&&L.area.firstChild){L.area.insertBefore(N,L.area.firstChild)}else{L.area.appendChild(N)}if(O.expire>0){L.timers[O.id]=window.setTimeout(function(){L.hide(O.id)},O.expire)}L.pull[O.id]=N;N=null;return O.id}function M(P,Q,S){var R=document.createElement("DIV");R.className=" dhtmlx_modal_box dhtmlx-"+P.type;var O="";if(P.title){O+='
'+P.title+"
"}O+='
'+P.text+'
';if(Q){O+=F(P.ok||"OK",true)}if(S){O+=F(P.cancel||"Cancel",false)}O+="
";R.innerHTML=O;R.onclick=function(V){V=V||event;var U=V.target||V.srcElement;if(!U.className){U=U.parentNode}if(U.className=="dhtmlx_popup_button"){K(P,U.getAttribute("result")=="true")}};P.box=R;I=P;J(true,R);document.body.appendChild(R);var N=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-R.offsetWidth)/2));var T=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-R.offsetHeight)/2));R.style.top=T+"px";R.style.left=N+"px";R.focus()}function E(N,O){return function(){L.hide(N.id);if(typeof N.callback=="function"){N.callback(O)}}}function H(N){var O=M(N,true,false)}function B(N){var O=M(N,true,true)}function G(O,N,P){if(typeof O!="object"){if(typeof N=="function"){P=N;N=""}O={text:O,type:N,callback:P}}return O}function D(P,O,N,Q){if(typeof P!="object"){P={text:P,type:O,expire:N,id:Q}}P.id=P.id||L.uid();P.expire=P.expire||L.expire;return P}dhtmlx.alert=function(){text=G.apply(this,arguments);text.type=text.type||"confirm";H(text)};dhtmlx.confirm=function(){text=G.apply(this,arguments);text.type=text.type||"alert";B(text)};var L=dhtmlx.message=function(Q,P,O,R){Q=D.apply(this,arguments);Q.type=Q.type||"info";var N=Q.type.split("-")[0];switch(N){case"alert":return H(Q);break;case"confirm":return B(Q);break;default:return C(Q);break}};L.seed=(new Date()).valueOf();L.uid=function(){return L.seed++};L.expire=4000;L.keyboard=true;L.position="top";L.pull={};L.timers={};L.hideAll=function(){for(var N in L.pull){L.hide(N)}};L.hide=function(O){var N=L.pull[O];if(N&&N.parentNode){window.setTimeout(function(){N.parentNode.removeChild(N);N=null},2000);N.className+=" hidden";if(L.timers[O]){window.clearTimeout(L.timers[O])}delete L.pull[O]}}})(); \ No newline at end of file diff --git a/codebase/message.js b/codebase/message.js index 8cfeb42..f2985fa 100644 --- a/codebase/message.js +++ b/codebase/message.js @@ -2,7 +2,34 @@ if(!window.dhtmlx) window.dhtmlx = {}; (function(){ - + var _dhx_msg_cfg = null; + function callback(config, result){ + var usercall = config.callback; + modality(false); + config.box.parentNode.removeChild(config.box); + _dhx_msg_cfg = box = config.box = null; + if (usercall) + usercall(result); + } + function modal_key(e){ + if (_dhx_msg_cfg){ + var code = e.which||event.keyCode; + if (dhtmlx.message.keyboard){ + if (code == 13 || code == 32) + callback(_dhx_msg_cfg, true); + if (code == 27) + callback(_dhx_msg_cfg, false); + } + if (e.preventDefault) + e.preventDefault(); + return !(e.cancelBubble = true); + } + }; + if (document.attachEvent) + document.attachEvent("onkeydown", modal_key); + else + document.addEventListener("keydown", modal_key); + function modality(mode){ if(!modality.cover){ modality.cover = document.createElement("DIV"); @@ -32,7 +59,7 @@ if(!window.dhtmlx) message.onclick = function(){ t.hide(text.id); text = null; - } + }; if (t.position == "bottom" && t.area.firstChild) t.area.insertBefore(message,t.area.firstChild); @@ -65,25 +92,25 @@ if(!window.dhtmlx) inner += ''; box.innerHTML = inner; + + box.onclick = function(e){ e = e ||event; var source = e.target || e.srcElement; if (!source.className) source = source.parentNode; - if (source.className == "dhtmlx_popup_button"){ - if (config.callback) - config.callback.call(window, source.getAttribute("result") == "true"); - modality(false); - box.parentNode.removeChild(box); - box = null; - } + if (source.className == "dhtmlx_popup_button") + callback(config, source.getAttribute("result") == "true"); }; + config.box = box; + _dhx_msg_cfg = config; - modality(true); + modality(true,box); document.body.appendChild(box); var x = Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth) - box.offsetWidth)/2)); var y = Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight) - box.offsetHeight)/2)); box.style.top = y+'px'; box.style.left = x+'px'; + box.focus(); } function _popupButtonClick(config, param){ @@ -148,6 +175,7 @@ if(!window.dhtmlx) t.seed = (new Date()).valueOf(); t.uid = function(){return t.seed++;}; t.expire = 4000; + t.keyboard = true; t.position = "top"; t.pull = {}; t.timers = {}; From e909d54f2040cc564599a01502790b425ca60423 Mon Sep 17 00:00:00 2001 From: Stanislau Date: Wed, 19 Oct 2011 19:24:55 +0300 Subject: [PATCH 08/15] [fix] text of messages adjusted --- index.html | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/index.html b/index.html index 171d6e8..b6dbd3c 100644 --- a/index.html +++ b/index.html @@ -20,13 +20,6 @@ - @@ -76,7 +68,7 @@

js Message

Custom notifications, alerts, confirmations

-

This library was extracted from the code of DHTMLX suite .
The library can be used under terms of MIT license. (basically free)
+

This library was extracted from the code of DHTMLX suite.
The library can be used under terms of MIT license (basically free).
Only 3kb gzipped, without external dependencies.

From 1f92605b251105a9ac9b5cec39a896aff84d7c24 Mon Sep 17 00:00:00 2001 From: Stanislau Date: Mon, 24 Oct 2011 12:13:59 +0300 Subject: [PATCH 09/15] [fix] incompatibility with FF 3.6 --- assets/css/style.css | 23 +++++++++++++++++------ codebase/message.compressed.js | 2 +- codebase/message.js | 2 +- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/assets/css/style.css b/assets/css/style.css index a9cf0ab..bda3e2e 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -66,6 +66,13 @@ a:visited { color: #0075B6; } +legend{ + color:#DDD; font-weight:normal; +} +select{ + color:#222; +} + a:hover { text-decoration: underline; } @@ -145,23 +152,27 @@ a.download-button span { } code { + +} + +pre.prettyprint { + border: 0; + padding: 0; + margin: 0; + margin-top: 15px; min-height: 220px; border: 3px solid #FFFFFF; background-color: #CCCC99; - display: block; + padding: 20px; font-family: monospace; -webkit-box-shadow: 3px 3px 5px #000000; -moz-box-shadow: 3px 3px 5px #000000; box-shadow: 3px 3px 5px #000000; overflow-x: auto; -} -pre.prettyprint { - border: 0; - padding: 0; - margin: 0; + } img.repo-author-logo { diff --git a/codebase/message.compressed.js b/codebase/message.compressed.js index 063dd2f..83efdb8 100644 --- a/codebase/message.compressed.js +++ b/codebase/message.compressed.js @@ -1 +1 @@ -if(!window.dhtmlx){window.dhtmlx={}}(function(){var I=null;function K(P,N){var O=P.callback;J(false);P.box.parentNode.removeChild(P.box);I=box=P.box=null;if(O){O(N)}}function A(O){if(I){var N=O.which||event.keyCode;if(dhtmlx.message.keyboard){if(N==13||N==32){K(I,true)}if(N==27){K(I,false)}}if(O.preventDefault){O.preventDefault()}return !(O.cancelBubble=true)}}if(document.attachEvent){document.attachEvent("onkeydown",A)}else{document.addEventListener("keydown",A)}function J(O){if(!J.cover){J.cover=document.createElement("DIV");J.cover.className="dhx_modal_cover";document.body.appendChild(J.cover)}var N=document.body.scrollHeight;J.cover.style.display=O?"inline-block":"none"}function F(N,O){return"
"+N+"
"}function C(O){if(!L.area){L.area=document.createElement("DIV");L.area.className="dhtmlx_message_area";L.area.style[L.position]="5px";document.body.appendChild(L.area)}L.hide(O.id);var N=document.createElement("DIV");N.innerHTML="
"+O.text+"
";N.className="dhtmlx-info dhtmlx-"+O.type;N.onclick=function(){L.hide(O.id);O=null};if(L.position=="bottom"&&L.area.firstChild){L.area.insertBefore(N,L.area.firstChild)}else{L.area.appendChild(N)}if(O.expire>0){L.timers[O.id]=window.setTimeout(function(){L.hide(O.id)},O.expire)}L.pull[O.id]=N;N=null;return O.id}function M(P,Q,S){var R=document.createElement("DIV");R.className=" dhtmlx_modal_box dhtmlx-"+P.type;var O="";if(P.title){O+='
'+P.title+"
"}O+='
'+P.text+'
';if(Q){O+=F(P.ok||"OK",true)}if(S){O+=F(P.cancel||"Cancel",false)}O+="
";R.innerHTML=O;R.onclick=function(V){V=V||event;var U=V.target||V.srcElement;if(!U.className){U=U.parentNode}if(U.className=="dhtmlx_popup_button"){K(P,U.getAttribute("result")=="true")}};P.box=R;I=P;J(true,R);document.body.appendChild(R);var N=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-R.offsetWidth)/2));var T=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-R.offsetHeight)/2));R.style.top=T+"px";R.style.left=N+"px";R.focus()}function E(N,O){return function(){L.hide(N.id);if(typeof N.callback=="function"){N.callback(O)}}}function H(N){var O=M(N,true,false)}function B(N){var O=M(N,true,true)}function G(O,N,P){if(typeof O!="object"){if(typeof N=="function"){P=N;N=""}O={text:O,type:N,callback:P}}return O}function D(P,O,N,Q){if(typeof P!="object"){P={text:P,type:O,expire:N,id:Q}}P.id=P.id||L.uid();P.expire=P.expire||L.expire;return P}dhtmlx.alert=function(){text=G.apply(this,arguments);text.type=text.type||"confirm";H(text)};dhtmlx.confirm=function(){text=G.apply(this,arguments);text.type=text.type||"alert";B(text)};var L=dhtmlx.message=function(Q,P,O,R){Q=D.apply(this,arguments);Q.type=Q.type||"info";var N=Q.type.split("-")[0];switch(N){case"alert":return H(Q);break;case"confirm":return B(Q);break;default:return C(Q);break}};L.seed=(new Date()).valueOf();L.uid=function(){return L.seed++};L.expire=4000;L.keyboard=true;L.position="top";L.pull={};L.timers={};L.hideAll=function(){for(var N in L.pull){L.hide(N)}};L.hide=function(O){var N=L.pull[O];if(N&&N.parentNode){window.setTimeout(function(){N.parentNode.removeChild(N);N=null},2000);N.className+=" hidden";if(L.timers[O]){window.clearTimeout(L.timers[O])}delete L.pull[O]}}})(); \ No newline at end of file +if(!window.dhtmlx){window.dhtmlx={}}(function(){var I=null;function K(P,N){var O=P.callback;J(false);P.box.parentNode.removeChild(P.box);I=box=P.box=null;if(O){O(N)}}function A(O){if(I){var N=O.which||event.keyCode;if(dhtmlx.message.keyboard){if(N==13||N==32){K(I,true)}if(N==27){K(I,false)}}if(O.preventDefault){O.preventDefault()}return !(O.cancelBubble=true)}}if(document.attachEvent){document.attachEvent("onkeydown",A)}else{document.addEventListener("keydown",A,false)}function J(O){if(!J.cover){J.cover=document.createElement("DIV");J.cover.className="dhx_modal_cover";document.body.appendChild(J.cover)}var N=document.body.scrollHeight;J.cover.style.display=O?"inline-block":"none"}function F(N,O){return"
"+N+"
"}function C(O){if(!L.area){L.area=document.createElement("DIV");L.area.className="dhtmlx_message_area";L.area.style[L.position]="5px";document.body.appendChild(L.area)}L.hide(O.id);var N=document.createElement("DIV");N.innerHTML="
"+O.text+"
";N.className="dhtmlx-info dhtmlx-"+O.type;N.onclick=function(){L.hide(O.id);O=null};if(L.position=="bottom"&&L.area.firstChild){L.area.insertBefore(N,L.area.firstChild)}else{L.area.appendChild(N)}if(O.expire>0){L.timers[O.id]=window.setTimeout(function(){L.hide(O.id)},O.expire)}L.pull[O.id]=N;N=null;return O.id}function M(P,Q,S){var R=document.createElement("DIV");R.className=" dhtmlx_modal_box dhtmlx-"+P.type;var O="";if(P.title){O+='
'+P.title+"
"}O+='
'+P.text+'
';if(Q){O+=F(P.ok||"OK",true)}if(S){O+=F(P.cancel||"Cancel",false)}O+="
";R.innerHTML=O;R.onclick=function(V){V=V||event;var U=V.target||V.srcElement;if(!U.className){U=U.parentNode}if(U.className=="dhtmlx_popup_button"){K(P,U.getAttribute("result")=="true")}};P.box=R;I=P;J(true,R);document.body.appendChild(R);var N=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-R.offsetWidth)/2));var T=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-R.offsetHeight)/2));R.style.top=T+"px";R.style.left=N+"px";R.focus()}function E(N,O){return function(){L.hide(N.id);if(typeof N.callback=="function"){N.callback(O)}}}function H(N){var O=M(N,true,false)}function B(N){var O=M(N,true,true)}function G(O,N,P){if(typeof O!="object"){if(typeof N=="function"){P=N;N=""}O={text:O,type:N,callback:P}}return O}function D(P,O,N,Q){if(typeof P!="object"){P={text:P,type:O,expire:N,id:Q}}P.id=P.id||L.uid();P.expire=P.expire||L.expire;return P}dhtmlx.alert=function(){text=G.apply(this,arguments);text.type=text.type||"confirm";H(text)};dhtmlx.confirm=function(){text=G.apply(this,arguments);text.type=text.type||"alert";B(text)};var L=dhtmlx.message=function(Q,P,O,R){Q=D.apply(this,arguments);Q.type=Q.type||"info";var N=Q.type.split("-")[0];switch(N){case"alert":return H(Q);break;case"confirm":return B(Q);break;default:return C(Q);break}};L.seed=(new Date()).valueOf();L.uid=function(){return L.seed++};L.expire=4000;L.keyboard=true;L.position="top";L.pull={};L.timers={};L.hideAll=function(){for(var N in L.pull){L.hide(N)}};L.hide=function(O){var N=L.pull[O];if(N&&N.parentNode){window.setTimeout(function(){N.parentNode.removeChild(N);N=null},2000);N.className+=" hidden";if(L.timers[O]){window.clearTimeout(L.timers[O])}delete L.pull[O]}}})(); \ No newline at end of file diff --git a/codebase/message.js b/codebase/message.js index f2985fa..2ebb9a5 100644 --- a/codebase/message.js +++ b/codebase/message.js @@ -28,7 +28,7 @@ if(!window.dhtmlx) if (document.attachEvent) document.attachEvent("onkeydown", modal_key); else - document.addEventListener("keydown", modal_key); + document.addEventListener("keydown", modal_key, false); function modality(mode){ if(!modality.cover){ From 233b305399f44982920732df84af9a2b3b754322 Mon Sep 17 00:00:00 2001 From: Stanislau Date: Fri, 20 Jan 2012 15:43:28 +0300 Subject: [PATCH 10/15] [update] information about library size --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index b6dbd3c..1dedbcd 100644 --- a/index.html +++ b/index.html @@ -34,7 +34,7 @@ var count = 0; var lines = [ "Simple and Elegant", - "Just 3kb (gziped)", + "Just 4kb (gziped)", "Easy customizable", { type:"error", text:"Different styles"}, "FF, Chrome, Safari, Opera, IE7+", From 4180afd14a3b376ab3c964cf662755397d31ba2e Mon Sep 17 00:00:00 2001 From: Stanislau Date: Fri, 20 Jan 2012 15:44:56 +0300 Subject: [PATCH 11/15] [update] codebase updated to latest state --- codebase/message.compressed.js | 2 +- codebase/message.js | 92 ++++++++++++++++++------- codebase/themes/message_default.css | 21 +++--- codebase/themes/message_growl_dark.css | 2 +- codebase/themes/message_growl_shiny.css | 2 +- codebase/themes/message_skyblue.css | 2 +- codebase/themes/message_solid.css | 2 +- 7 files changed, 84 insertions(+), 39 deletions(-) diff --git a/codebase/message.compressed.js b/codebase/message.compressed.js index 83efdb8..7cd1d63 100644 --- a/codebase/message.compressed.js +++ b/codebase/message.compressed.js @@ -1 +1 @@ -if(!window.dhtmlx){window.dhtmlx={}}(function(){var I=null;function K(P,N){var O=P.callback;J(false);P.box.parentNode.removeChild(P.box);I=box=P.box=null;if(O){O(N)}}function A(O){if(I){var N=O.which||event.keyCode;if(dhtmlx.message.keyboard){if(N==13||N==32){K(I,true)}if(N==27){K(I,false)}}if(O.preventDefault){O.preventDefault()}return !(O.cancelBubble=true)}}if(document.attachEvent){document.attachEvent("onkeydown",A)}else{document.addEventListener("keydown",A,false)}function J(O){if(!J.cover){J.cover=document.createElement("DIV");J.cover.className="dhx_modal_cover";document.body.appendChild(J.cover)}var N=document.body.scrollHeight;J.cover.style.display=O?"inline-block":"none"}function F(N,O){return"
"+N+"
"}function C(O){if(!L.area){L.area=document.createElement("DIV");L.area.className="dhtmlx_message_area";L.area.style[L.position]="5px";document.body.appendChild(L.area)}L.hide(O.id);var N=document.createElement("DIV");N.innerHTML="
"+O.text+"
";N.className="dhtmlx-info dhtmlx-"+O.type;N.onclick=function(){L.hide(O.id);O=null};if(L.position=="bottom"&&L.area.firstChild){L.area.insertBefore(N,L.area.firstChild)}else{L.area.appendChild(N)}if(O.expire>0){L.timers[O.id]=window.setTimeout(function(){L.hide(O.id)},O.expire)}L.pull[O.id]=N;N=null;return O.id}function M(P,Q,S){var R=document.createElement("DIV");R.className=" dhtmlx_modal_box dhtmlx-"+P.type;var O="";if(P.title){O+='
'+P.title+"
"}O+='
'+P.text+'
';if(Q){O+=F(P.ok||"OK",true)}if(S){O+=F(P.cancel||"Cancel",false)}O+="
";R.innerHTML=O;R.onclick=function(V){V=V||event;var U=V.target||V.srcElement;if(!U.className){U=U.parentNode}if(U.className=="dhtmlx_popup_button"){K(P,U.getAttribute("result")=="true")}};P.box=R;I=P;J(true,R);document.body.appendChild(R);var N=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-R.offsetWidth)/2));var T=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-R.offsetHeight)/2));R.style.top=T+"px";R.style.left=N+"px";R.focus()}function E(N,O){return function(){L.hide(N.id);if(typeof N.callback=="function"){N.callback(O)}}}function H(N){var O=M(N,true,false)}function B(N){var O=M(N,true,true)}function G(O,N,P){if(typeof O!="object"){if(typeof N=="function"){P=N;N=""}O={text:O,type:N,callback:P}}return O}function D(P,O,N,Q){if(typeof P!="object"){P={text:P,type:O,expire:N,id:Q}}P.id=P.id||L.uid();P.expire=P.expire||L.expire;return P}dhtmlx.alert=function(){text=G.apply(this,arguments);text.type=text.type||"confirm";H(text)};dhtmlx.confirm=function(){text=G.apply(this,arguments);text.type=text.type||"alert";B(text)};var L=dhtmlx.message=function(Q,P,O,R){Q=D.apply(this,arguments);Q.type=Q.type||"info";var N=Q.type.split("-")[0];switch(N){case"alert":return H(Q);break;case"confirm":return B(Q);break;default:return C(Q);break}};L.seed=(new Date()).valueOf();L.uid=function(){return L.seed++};L.expire=4000;L.keyboard=true;L.position="top";L.pull={};L.timers={};L.hideAll=function(){for(var N in L.pull){L.hide(N)}};L.hide=function(O){var N=L.pull[O];if(N&&N.parentNode){window.setTimeout(function(){N.parentNode.removeChild(N);N=null},2000);N.className+=" hidden";if(L.timers[O]){window.clearTimeout(L.timers[O])}delete L.pull[O]}}})(); \ No newline at end of file +if(!window.dhtmlx){window.dhtmlx={}}(function(){var J=null;function L(Q,O){var P=Q.callback;K(false);Q.box.parentNode.removeChild(Q.box);J=box=Q.box=null;if(P){P(O)}}function A(P){if(J){var O=P.which||event.keyCode;if(dhtmlx.message.keyboard){if(O==13||O==32){L(J,true)}if(O==27){L(J,false)}}if(P.preventDefault){P.preventDefault()}return !(P.cancelBubble=true)}}if(document.attachEvent){document.attachEvent("onkeydown",A)}else{document.addEventListener("keydown",A,false)}function K(P){if(!K.cover){K.cover=document.createElement("DIV");K.cover.className="dhx_modal_cover";document.body.appendChild(K.cover)}var O=document.body.scrollHeight;K.cover.style.display=P?"inline-block":"none"}function F(P,O){return"
"+P+"
"}function C(P){if(!M.area){M.area=document.createElement("DIV");M.area.className="dhtmlx_message_area";M.area.style[M.position]="5px";document.body.appendChild(M.area)}M.hide(P.id);var O=document.createElement("DIV");O.innerHTML="
"+P.text+"
";O.className="dhtmlx-info dhtmlx-"+P.type;O.onclick=function(){M.hide(P.id);P=null};if(M.position=="bottom"&&M.area.firstChild){M.area.insertBefore(O,M.area.firstChild)}else{M.area.appendChild(O)}if(P.expire>0){M.timers[P.id]=window.setTimeout(function(){M.hide(P.id)},P.expire)}M.pull[P.id]=O;O=null;return P.id}function G(P,R,U){var T=document.createElement("DIV");T.className=" dhtmlx_modal_box dhtmlx-"+P.type;T.setAttribute("dhxbox",1);var O="";if(P.width){T.style.width=P.width}if(P.height){T.style.height=P.height}if(P.title){O+='
'+P.title+"
"}O+='
'+(P.content?"":P.text)+'
';if(R){O+=F(P.ok||"OK",true)}if(U){O+=F(P.cancel||"Cancel",false)}if(P.buttons){for(var Q=0;Q";T.innerHTML=O;if(P.content){var S=P.content;if(typeof S=="string"){S=document.getElementById(S)}T.childNodes[P.title?1:0].appendChild(S)}T.onclick=function(W){W=W||event;var V=W.target||W.srcElement;if(!V.className){V=V.parentNode}if(V.className=="dhtmlx_popup_button"){result=V.getAttribute("result");result=(result=="true")||(result=="false"?false:result);L(P,result)}};P.box=T;if(R||U){J=P}return T}function N(P,Q,S){var R=P.tagName?P:G(P,Q,S);if(!P.hidden){K(true)}document.body.appendChild(R);var O=Math.abs(Math.floor(((window.innerWidth||document.documentElement.offsetWidth)-R.offsetWidth)/2));var T=Math.abs(Math.floor(((window.innerHeight||document.documentElement.offsetHeight)-R.offsetHeight)/2));if(P.position=="top"){R.style.top="-3px"}else{R.style.top=T+"px"}R.style.left=O+"px";R.focus();if(P.hidden){dhtmlx.modalbox.hide(R)}return R}function I(O){return N(O,true,false)}function B(O){return N(O,true,true)}function E(O){return N(O)}function H(P,O,Q){if(typeof P!="object"){if(typeof O=="function"){Q=O;O=""}P={text:P,type:O,callback:Q}}return P}function D(Q,P,O,R){if(typeof Q!="object"){Q={text:Q,type:P,expire:O,id:R}}Q.id=Q.id||M.uid();Q.expire=Q.expire||M.expire;return Q}dhtmlx.alert=function(){text=H.apply(this,arguments);text.type=text.type||"confirm";return I(text)};dhtmlx.confirm=function(){text=H.apply(this,arguments);text.type=text.type||"alert";return B(text)};dhtmlx.modalbox=function(){text=H.apply(this,arguments);text.type=text.type||"alert";return E(text)};dhtmlx.modalbox.hide=function(O){while(O&&O.getAttribute&&!O.getAttribute("dhxbox")){O=O.parentNode}if(O){O.parentNode.removeChild(O);K(false)}};var M=dhtmlx.message=function(R,Q,P,S){R=D.apply(this,arguments);R.type=R.type||"info";var O=R.type.split("-")[0];switch(O){case"alert":return I(R);case"confirm":return B(R);case"modalbox":return E(R);default:return C(R);break}};M.seed=(new Date()).valueOf();M.uid=function(){return M.seed++};M.expire=4000;M.keyboard=true;M.position="top";M.pull={};M.timers={};M.hideAll=function(){for(var O in M.pull){M.hide(O)}};M.hide=function(P){var O=M.pull[P];if(O&&O.parentNode){window.setTimeout(function(){O.parentNode.removeChild(O);O=null},2000);O.className+=" hidden";if(M.timers[P]){window.clearTimeout(M.timers[P])}delete M.pull[P]}}})(); \ No newline at end of file diff --git a/codebase/message.js b/codebase/message.js index 2ebb9a5..8c0098c 100644 --- a/codebase/message.js +++ b/codebase/message.js @@ -24,7 +24,7 @@ if(!window.dhtmlx) e.preventDefault(); return !(e.cancelBubble = true); } - }; + } if (document.attachEvent) document.attachEvent("onkeydown", modal_key); else @@ -40,8 +40,8 @@ if(!window.dhtmlx) modality.cover.style.display = mode?"inline-block":"none"; } - function button(text, callback){ - return "
"+text+"
"; + function button(text, result){ + return "
"+text+"
"; } function info(text){ @@ -76,55 +76,83 @@ if(!window.dhtmlx) return text.id; } - - function _createBox(config, ok, cancel){ + function _boxStructure(config, ok, cancel){ var box = document.createElement("DIV"); box.className = " dhtmlx_modal_box dhtmlx-"+config.type; + box.setAttribute("dhxbox", 1); var inner = ''; + + if (config.width) + box.style.width = config.width; + if (config.height) + box.style.height = config.height; if (config.title) inner+='
'+config.title+'
'; - inner+='
'+config.text+'
'; + inner+='
'+(config.content?'':config.text)+'
'; if (ok) inner += button(config.ok || "OK", true); if (cancel) inner += button(config.cancel || "Cancel", false); + if (config.buttons){ + for (var i=0; i Date: Fri, 20 Jan 2012 15:57:23 +0300 Subject: [PATCH 12/15] [add] demos of modalbox --- index.html | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 1dedbcd..1fd7b84 100644 --- a/index.html +++ b/index.html @@ -69,7 +69,7 @@

js Message

Custom notifications, alerts, confirmations

This library was extracted from the code of DHTMLX suite.
The library can be used under terms of MIT license (basically free).
- Only 3kb gzipped, without external dependencies.

+ Only 4kb gzipped, without external dependencies.

@@ -153,6 +153,14 @@

See it in action

+
+ Modal Box + + + + +
+
@@ -172,11 +180,76 @@

See it in action

- - + + function boxA(){ + dhtmlx.modalbox({ + title:"Configuration", + text:"Height, widht and position can be redeined

You can use code like
onclick='dhtmlx.modalbox.hide(this)'
to close a modal box

click to close", + width:"450px", + height:"300px" + }); + } + function boxB(){ + dhtmlx.modalbox({ + text:"Some text here", + width:"450px", + position:"top", + buttons:["Ignore", "Confirm", "Deny"], + callback:function(index){ + dhtmlx.message("Button "+index+" was pressed") + } + }); + } + function boxC(){ + var box = dhtmlx.modalbox({ + title:"Configuration", + text:"
", + width:"250px" + }); + //timeout is necessary only in IE + setTimeout(function(){ + box.getElementsByTagName("input")[0].focus(); + },1); + } + function save_callback(box){ + dhtmlx.message("Saving..."); + dhtmlx.modalbox.hide(box); + } + + function boxD(){ + dhtmlx.modalbox({ + type:"alert-error", + title:"Critical error", + text:"Need more coffee!

You can use any type of html content here - links, images, etc.", + buttons:["Ok"] + }); + } + + + From c3512788391d15df732d22c8908fbff8d4f46c1b Mon Sep 17 00:00:00 2001 From: Stanislau Date: Fri, 20 Jan 2012 16:02:37 +0300 Subject: [PATCH 13/15] [fix] styling for buttons in custom form sample --- index.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/index.html b/index.html index 1fd7b84..2fcddc1 100644 --- a/index.html +++ b/index.html @@ -196,6 +196,9 @@

See it in action

#form_in_box div{ text-align:left; } + #form_in_box input[type="button"]:hover{ + background:#444444; + } .dhtmlx_button{ margin-top:10px; } From b8ca57e7b835e3fa52d7ea0ec2ad01b5a45f8e49 Mon Sep 17 00:00:00 2001 From: Stanislau Date: Fri, 20 Jan 2012 16:40:28 +0300 Subject: [PATCH 14/15] [update] themes and small fixes in samples logic --- assets/css/skeleton/stylesheets/base.css | 32 ++---------------------- codebase/themes/message_default.css | 1 - codebase/themes/message_growl_dark.css | 19 ++++++++------ codebase/themes/message_growl_shiny.css | 19 ++++++++------ codebase/themes/message_skyblue.css | 19 ++++++++------ codebase/themes/message_solid.css | 19 ++++++++------ index.html | 7 ++---- 7 files changed, 48 insertions(+), 68 deletions(-) diff --git a/assets/css/skeleton/stylesheets/base.css b/assets/css/skeleton/stylesheets/base.css index 6de65b2..fa46ba7 100644 --- a/assets/css/skeleton/stylesheets/base.css +++ b/assets/css/skeleton/stylesheets/base.css @@ -158,36 +158,8 @@ line-height: 21px; font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; } - a.button:hover, - button:hover, - input[type="submit"]:hover, - input[type="reset"]:hover, - input[type="button"]:hover { - color: #EEE; - background: #333; /* Old browsers */ - background: -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.3)), color-stop(100%,rgba(0,0,0,.3))); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Opera11.10+ */ - background: -ms-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* IE10+ */ - background: linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* W3C */ - border: 1px solid #888; - border-top: 1px solid #aaa; - border-left: 1px solid #aaa; } - - a.button:active, - button:active, - input[type="submit"]:active, - input[type="reset"]:active, - input[type="button"]:active { - border: 1px solid #666; - background: #ccc; /* Old browsers */ - background: -moz-linear-gradient(top, rgba(255,255,255,.35) 0%, rgba(10,10,10,.4) 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.35)), color-stop(100%,rgba(10,10,10,.4))); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Opera11.10+ */ - background: -ms-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* IE10+ */ - background: linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* W3C */ } + + .button.full-width, button.full-width, diff --git a/codebase/themes/message_default.css b/codebase/themes/message_default.css index a7fd85c..25a3dee 100644 --- a/codebase/themes/message_default.css +++ b/codebase/themes/message_default.css @@ -122,7 +122,6 @@ div.dhx_modal_cover { .dhtmlx_button, .dhtmlx_popup_button{ box-shadow: 0px 0px 4px #888; border:1px solid #838383; - } .dhtmlx_button input, .dhtmlx_popup_button div{ border:1px solid #FFF; diff --git a/codebase/themes/message_growl_dark.css b/codebase/themes/message_growl_dark.css index af036d6..c266077 100644 --- a/codebase/themes/message_growl_dark.css +++ b/codebase/themes/message_growl_dark.css @@ -59,7 +59,7 @@ background-image: -moz-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 97%, #393939 97%); } -.dhtmlx-info, .dhtmlx_popup_button{ +.dhtmlx-info, .dhtmlx_popup_button, .dhtmlx_button{ user-select: none; -webkit-user-select: none; -moz-user-select:-moz-none; @@ -76,9 +76,7 @@ padding:5px; } -.dhtmlx_popup_button{ - min-width: 120px; - width: 120px; +.dhtmlx_popup_button, .dhtmlx_button{ height: 30px; line-height:30px; @@ -88,6 +86,9 @@ color:#FFF; } +.dhtmlx_popup_button{ + min-width: 120px; +} div.dhx_modal_cover { background-color:#000; @@ -121,12 +122,11 @@ div.dhx_modal_cover { } /*Skin section*/ - -.dhtmlx_popup_button{ +.dhtmlx_button, .dhtmlx_popup_button{ box-shadow: 0px 0px 4px #888; border:1px solid #838383; } -.dhtmlx_popup_button div{ +.dhtmlx_button input, .dhtmlx_popup_button div{ border:1px solid #FFF; background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAYFBMVEVwcHBtbW1ra2toaGhmZmZjY2NhYWFeXl5cXFxaWlpXV1dVVVVSUlJQUFBNTU1LS0tJSUlGRkZERERBQUE/Pz88PDw9PT0+Pj5AQEBCQkJDQ0NFRUVHR0dISEhKSkpMTEzqthaMAAAAMklEQVQImQXBhQ2AMAAAsOIMlwWH/8+kRSKVyRVKlVrQaHV6g9FktlhFm93hdLk9Xt8PIfgBvdUqyskAAAAASUVORK5CYII=); background-image: -webkit-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 99%); @@ -135,11 +135,14 @@ div.dhx_modal_cover { border-radius:6px; font-size:15px; + color:#fff; padding:0px; margin:0px; box-sizing:content-box; + vertical-align:top; + height:28px; line-height:28px; } -.dhtmlx_popup_button div:active, .dhtmlx_popup_button div:focus{ +.dhtmlx_button input:focus, .dhtmlx_button input:active, .dhtmlx_popup_button div:active, .dhtmlx_popup_button div:focus{ background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAXVBMVEVwcHBubm5tbW1sbGxra2tpaWloaGhnZ2dmZmZlZWVjY2NiYmJhYWFgYGBfX19dXV1cXFxbW1taWlpZWVlXV1dWVlZVVVVUVFRTU1NRUVFQUFBPT09OTk5NTU1LS0tT9SY0AAAAMUlEQVQImQXBhQGAMAAAIGxnx2z9/00BiVQmVyhVakGj1ekNRpPZYhVtdofT5fZ4fT8hpwG05JjexgAAAABJRU5ErkJggg==); background-image: -webkit-linear-gradient(top, #707070 1%, #4c4c4c 99%); diff --git a/codebase/themes/message_growl_shiny.css b/codebase/themes/message_growl_shiny.css index 408630f..0eb6b5f 100644 --- a/codebase/themes/message_growl_shiny.css +++ b/codebase/themes/message_growl_shiny.css @@ -60,7 +60,7 @@ background-image: -moz-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 97%, #393939 97%); } -.dhtmlx-info, .dhtmlx_popup_button{ +.dhtmlx-info, .dhtmlx_popup_button, .dhtmlx_button{ user-select: none; -webkit-user-select: none; -moz-user-select:-moz-none; @@ -77,9 +77,7 @@ padding:5px; } -.dhtmlx_popup_button{ - min-width: 120px; - width: 120px; +.dhtmlx_popup_button, .dhtmlx_button{ height: 30px; line-height:30px; @@ -89,6 +87,9 @@ color:#FFF; } +.dhtmlx_popup_button{ + min-width: 120px; +} div.dhx_modal_cover { background-color:#000; @@ -122,12 +123,11 @@ div.dhx_modal_cover { } /*Skin section*/ - -.dhtmlx_popup_button{ +.dhtmlx_button, .dhtmlx_popup_button{ box-shadow: 0px 0px 4px #888; border:1px solid #838383; } -.dhtmlx_popup_button div{ +.dhtmlx_button input, .dhtmlx_popup_button div{ border:1px solid #FFF; background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAYFBMVEVwcHBtbW1ra2toaGhmZmZjY2NhYWFeXl5cXFxaWlpXV1dVVVVSUlJQUFBNTU1LS0tJSUlGRkZERERBQUE/Pz88PDw9PT0+Pj5AQEBCQkJDQ0NFRUVHR0dISEhKSkpMTEzqthaMAAAAMklEQVQImQXBhQ2AMAAAsOIMlwWH/8+kRSKVyRVKlVrQaHV6g9FktlhFm93hdLk9Xt8PIfgBvdUqyskAAAAASUVORK5CYII=); background-image: -webkit-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 99%); @@ -136,11 +136,14 @@ div.dhx_modal_cover { border-radius:6px; font-size:15px; + color:#fff; padding:0px; margin:0px; box-sizing:content-box; + vertical-align:top; + height:28px; line-height:28px; } -.dhtmlx_popup_button div:active, .dhtmlx_popup_button div:focus{ +.dhtmlx_button input:focus, .dhtmlx_button input:active, .dhtmlx_popup_button div:active, .dhtmlx_popup_button div:focus{ background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAXVBMVEVwcHBubm5tbW1sbGxra2tpaWloaGhnZ2dmZmZlZWVjY2NiYmJhYWFgYGBfX19dXV1cXFxbW1taWlpZWVlXV1dWVlZVVVVUVFRTU1NRUVFQUFBPT09OTk5NTU1LS0tT9SY0AAAAMUlEQVQImQXBhQGAMAAAIGxnx2z9/00BiVQmVyhVakGj1ekNRpPZYhVtdofT5fZ4fT8hpwG05JjexgAAAABJRU5ErkJggg==); background-image: -webkit-linear-gradient(top, #707070 1%, #4c4c4c 99%); diff --git a/codebase/themes/message_skyblue.css b/codebase/themes/message_skyblue.css index ee7e4ef..17a2603 100644 --- a/codebase/themes/message_skyblue.css +++ b/codebase/themes/message_skyblue.css @@ -57,7 +57,7 @@ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAsCAIAAAArRUU2AAAARElEQVR4nH3MMQqAQBQD0dnZBTvvf80tBBEhNh9EFKuERwhz2z3OGDA0EwxI5aelvDq/hkn54+O210dtujjEYXN0XJdc1CE1MA5mcdsAAAAASUVORK5CYII=); } -.dhtmlx-info, .dhtmlx_popup_button{ +.dhtmlx-info, .dhtmlx_popup_button, .dhtmlx_button{ user-select: none; -webkit-user-select: none; -moz-user-select:-moz-none; @@ -74,9 +74,7 @@ padding:5px; } -.dhtmlx_popup_button{ - min-width: 120px; - width: 120px; +.dhtmlx_popup_button, .dhtmlx_button{ height: 30px; line-height:30px; @@ -86,6 +84,9 @@ color:#FFF; } +.dhtmlx_popup_button{ + min-width: 120px; +} div.dhx_modal_cover { background-color:#000; @@ -119,23 +120,25 @@ div.dhx_modal_cover { } /*Skin section*/ - -.dhtmlx_popup_button{ +.dhtmlx_button, .dhtmlx_popup_button{ box-shadow: 0px 0px 4px #888; border:1px solid #838383; } -.dhtmlx_popup_button div{ +.dhtmlx_button input, .dhtmlx_popup_button div{ border:1px solid #FFF; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAIAAABi9+OQAAAAQElEQVR4nE3LMQ7AIAxD0R9TxP3PydalW8xAQJ0i2y/M95ONTOxrlCC7MigdMtz92LxdlKPc/3d7jPqDRgv1xgLuDiwEIl5MZQAAAABJRU5ErkJggg==); color:#000; border-radius:6px; font-size:15px; + color:#000; padding:0px; margin:0px; box-sizing:content-box; + vertical-align:top; + height:28px; line-height:28px; } -.dhtmlx_popup_button div:active, .dhtmlx_popup_button div:focus{ +.dhtmlx_button input:focus, .dhtmlx_button input:active, .dhtmlx_popup_button div:active, .dhtmlx_popup_button div:focus{ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAIAAABi9+OQAAAARklEQVR4nE2LMQ6AIADEykUG3Nz9/yf4Ar8g7K4Oeg4KOFxyTVNyqUrbLoMwAgt4+dt0nT0+IP/cbD0ag0JAabm1xkvn0R7oABW07Ic3sQAAAABJRU5ErkJggg==); } .dhtmlx_popup_title{ diff --git a/codebase/themes/message_solid.css b/codebase/themes/message_solid.css index 15ce287..1215f46 100644 --- a/codebase/themes/message_solid.css +++ b/codebase/themes/message_solid.css @@ -59,7 +59,7 @@ background-image: -moz-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 97%, #393939 97%); } -.dhtmlx-info, .dhtmlx_popup_button{ +.dhtmlx-info, .dhtmlx_popup_button, .dhtmlx_button{ user-select: none; -webkit-user-select: none; -moz-user-select:-moz-none; @@ -76,9 +76,7 @@ padding:5px; } -.dhtmlx_popup_button{ - min-width: 120px; - width: 120px; +.dhtmlx_popup_button, .dhtmlx_button{ height: 30px; line-height:30px; @@ -88,6 +86,9 @@ color:#FFF; } +.dhtmlx_popup_button{ + min-width: 120px; +} div.dhx_modal_cover { background-color:#000; @@ -121,12 +122,11 @@ div.dhx_modal_cover { } /*Skin section*/ - -.dhtmlx_popup_button{ +.dhtmlx_button, .dhtmlx_popup_button{ box-shadow: 0px 0px 4px #888; border:1px solid #838383; } -.dhtmlx_popup_button div{ +.dhtmlx_button input, .dhtmlx_popup_button div{ border:1px solid #FFF; background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAYFBMVEVwcHBtbW1ra2toaGhmZmZjY2NhYWFeXl5cXFxaWlpXV1dVVVVSUlJQUFBNTU1LS0tJSUlGRkZERERBQUE/Pz88PDw9PT0+Pj5AQEBCQkJDQ0NFRUVHR0dISEhKSkpMTEzqthaMAAAAMklEQVQImQXBhQ2AMAAAsOIMlwWH/8+kRSKVyRVKlVrQaHV6g9FktlhFm93hdLk9Xt8PIfgBvdUqyskAAAAASUVORK5CYII=); background-image: -webkit-linear-gradient(top, #707070 1%, #3d3d3d 70%, #4c4c4c 99%); @@ -135,11 +135,14 @@ div.dhx_modal_cover { border-radius:6px; font-size:15px; + color:#fff; padding:0px; margin:0px; box-sizing:content-box; + vertical-align:top; + height:28px; line-height:28px; } -.dhtmlx_popup_button div:active, .dhtmlx_popup_button div:focus{ +.dhtmlx_button input:focus, .dhtmlx_button input:active, .dhtmlx_popup_button div:active, .dhtmlx_popup_button div:focus{ background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAMAAADaS4T1AAAAXVBMVEVwcHBubm5tbW1sbGxra2tpaWloaGhnZ2dmZmZlZWVjY2NiYmJhYWFgYGBfX19dXV1cXFxbW1taWlpZWVlXV1dWVlZVVVVUVFRTU1NRUVFQUFBPT09OTk5NTU1LS0tT9SY0AAAAMUlEQVQImQXBhQGAMAAAIGxnx2z9/00BiVQmVyhVakGj1ekNRpPZYhVtdofT5fZ4fT8hpwG05JjexgAAAABJRU5ErkJggg==); background-image: -webkit-linear-gradient(top, #707070 1%, #4c4c4c 99%); diff --git a/index.html b/index.html index 2fcddc1..c9c349f 100644 --- a/index.html +++ b/index.html @@ -196,9 +196,6 @@

See it in action

#form_in_box div{ text-align:left; } - #form_in_box input[type="button"]:hover{ - background:#444444; - } .dhtmlx_button{ margin-top:10px; } @@ -211,7 +208,7 @@

See it in action

function boxA(){ dhtmlx.modalbox({ title:"Configuration", - text:"Height, widht and position can be redeined

You can use code like
onclick='dhtmlx.modalbox.hide(this)'
to close a modal box

click to close", + text:"Height, widht and position can be redeined

You can use code like
onclick='dhtmlx.modalbox.hide(this)'
to close a modal box

click to close", width:"450px", height:"300px" }); @@ -230,7 +227,7 @@

See it in action

function boxC(){ var box = dhtmlx.modalbox({ title:"Configuration", - text:"
", + text:"
", width:"250px" }); //timeout is necessary only in IE From 9855da7f32a5587349987553d3ec57854e8285fa Mon Sep 17 00:00:00 2001 From: Stanislau Date: Fri, 20 Jan 2012 17:17:05 +0300 Subject: [PATCH 15/15] [fix] buttons in FF --- codebase/themes/message_default.css | 5 ++++- codebase/themes/message_growl_dark.css | 5 ++++- codebase/themes/message_growl_shiny.css | 5 ++++- codebase/themes/message_skyblue.css | 5 ++++- codebase/themes/message_solid.css | 5 ++++- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/codebase/themes/message_default.css b/codebase/themes/message_default.css index 25a3dee..5f82fcd 100644 --- a/codebase/themes/message_default.css +++ b/codebase/themes/message_default.css @@ -131,8 +131,11 @@ div.dhx_modal_cover { border-radius:6px; font-size:15px; + font-weight:normal; + -moz-box-sizing:content-box; + box-sizing:content-box; - color:#fff; padding:0px; margin:0px; box-sizing:content-box; + color:#fff; padding:0px; margin:0px; vertical-align:top; height:28px; diff --git a/codebase/themes/message_growl_dark.css b/codebase/themes/message_growl_dark.css index c266077..c4330c8 100644 --- a/codebase/themes/message_growl_dark.css +++ b/codebase/themes/message_growl_dark.css @@ -135,7 +135,10 @@ div.dhx_modal_cover { border-radius:6px; font-size:15px; - color:#fff; padding:0px; margin:0px; box-sizing:content-box; + -moz-box-sizing:content-box; + box-sizing:content-box; + + color:#fff; padding:0px; margin:0px; vertical-align:top; height:28px; diff --git a/codebase/themes/message_growl_shiny.css b/codebase/themes/message_growl_shiny.css index 0eb6b5f..9178fc0 100644 --- a/codebase/themes/message_growl_shiny.css +++ b/codebase/themes/message_growl_shiny.css @@ -136,7 +136,10 @@ div.dhx_modal_cover { border-radius:6px; font-size:15px; - color:#fff; padding:0px; margin:0px; box-sizing:content-box; + -moz-box-sizing:content-box; + box-sizing:content-box; + + color:#fff; padding:0px; margin:0px; vertical-align:top; height:28px; diff --git a/codebase/themes/message_skyblue.css b/codebase/themes/message_skyblue.css index 17a2603..49dc9dd 100644 --- a/codebase/themes/message_skyblue.css +++ b/codebase/themes/message_skyblue.css @@ -131,7 +131,10 @@ div.dhx_modal_cover { border-radius:6px; font-size:15px; - color:#000; padding:0px; margin:0px; box-sizing:content-box; + -moz-box-sizing:content-box; + box-sizing:content-box; + + color:#000; padding:0px; margin:0px; vertical-align:top; height:28px; diff --git a/codebase/themes/message_solid.css b/codebase/themes/message_solid.css index 1215f46..8802ee3 100644 --- a/codebase/themes/message_solid.css +++ b/codebase/themes/message_solid.css @@ -135,7 +135,10 @@ div.dhx_modal_cover { border-radius:6px; font-size:15px; - color:#fff; padding:0px; margin:0px; box-sizing:content-box; + -moz-box-sizing:content-box; + box-sizing:content-box; + + color:#fff; padding:0px; margin:0px; vertical-align:top; height:28px;