├── index.html ├── admin ├── menus │ ├── index.html │ ├── 100_main.php │ └── 50_main.php ├── actions │ └── index.html ├── plugins │ └── index.html ├── support │ ├── jquery.textcounter.css │ ├── flex_forms_error.png │ ├── content-tools │ │ ├── images │ │ │ ├── icons.woff │ │ │ ├── icons-barebones.woff │ │ │ ├── embed.svg │ │ │ ├── video.svg │ │ │ ├── drop-horz.svg │ │ │ ├── drop-vert-above.svg │ │ │ └── drop-vert-below.svg │ │ └── barebones.css │ ├── multiselect-select2 │ │ ├── select2.png │ │ ├── select2x2.png │ │ ├── select2-spinner.gif │ │ ├── select2_locale_zh-CN.js │ │ ├── select2_locale_zh-TW.js │ │ ├── select2_locale_ja.js │ │ ├── select2_locale_ko.js │ │ ├── select2_locale_ug-CN.js │ │ ├── select2_locale_hu.js │ │ ├── select2_locale_he.js │ │ ├── select2_locale_is.js │ │ ├── select2_locale_th.js │ │ ├── select2_locale_nl.js │ │ ├── select2_locale_ka.js │ │ ├── select2_locale_sv.js │ │ ├── select2_locale_da.js │ │ ├── select2_locale_it.js │ │ ├── select2_locale_vi.js │ │ ├── select2_locale_ro.js │ │ ├── select2_locale_pt-PT.js │ │ ├── select2_locale_et.js │ │ ├── select2_locale_mk.js │ │ ├── LICENSE │ │ ├── select2_locale_ca.js │ │ ├── select2_locale_bg.js │ │ ├── select2_locale_el.js │ │ ├── select2_locale_pt-BR.js │ │ ├── select2_locale_az.js │ │ ├── select2_locale_fi.js │ │ ├── select2_locale_lv.js │ │ ├── select2_locale_de.js │ │ ├── select2_locale_hr.js │ │ ├── select2_locale_fa.js │ │ ├── select2_locale_rs.js │ │ ├── select2_locale_tr.js │ │ ├── select2_locale_fr.js │ │ ├── select2_locale_ru.js │ │ ├── select2_locale_en.js.template │ │ ├── select2.jquery.json │ │ ├── select2_locale_id.js │ │ ├── select2_locale_ar.js │ │ ├── select2_locale_ms.js │ │ ├── select2_locale_nb.js │ │ ├── select2_locale_es.js │ │ ├── select2_locale_lt.js │ │ ├── select2_locale_uk.js │ │ ├── select2_locale_eu.js │ │ ├── select2_locale_gl.js │ │ ├── release.sh │ │ ├── select2_locale_sk.js │ │ ├── select2_locale_cs.js │ │ ├── select2_locale_pl.js │ │ ├── select2-bootstrap.css │ │ ├── README.md │ │ └── CONTRIBUTING.md │ ├── fancy-file-uploader │ │ ├── fancy_okay.png │ │ ├── fancy_remove.png │ │ ├── fancy_upload.png │ │ └── cors │ │ │ ├── jquery.xdr-transport.js │ │ │ └── jquery.postmessage-transport.js │ ├── jquery_ui_themes │ │ └── adminpack │ │ │ └── images │ │ │ ├── ui-icons_333333_256x240.png │ │ │ ├── ui-icons_777620_256x240.png │ │ │ ├── ui-icons_777777_256x240.png │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ ├── ui-icons_fafafa_256x240.png │ │ │ └── ui-icons_ffffff_256x240.png │ ├── jquery.tablecards.css │ ├── jquery.previewurl.css │ ├── install.css │ ├── multiselect-flat │ │ ├── MIT-LICENSE.txt │ │ ├── js │ │ │ └── locales │ │ │ │ ├── jquery.uix.multiselect_et.js │ │ │ │ ├── jquery.uix.multiselect_nl.js │ │ │ │ ├── jquery.uix.multiselect_sv.js │ │ │ │ ├── jquery.uix.multiselect_en.js │ │ │ │ ├── jquery.uix.multiselect_ru.js │ │ │ │ ├── jquery.uix.multiselect_es.js │ │ │ │ ├── jquery.uix.multiselect_pt.js │ │ │ │ ├── jquery.uix.multiselect_fr.js │ │ │ │ ├── jquery.uix.multiselect_it.js │ │ │ │ └── jquery.uix.multiselect_de.js │ │ ├── css │ │ │ ├── jquery.uix.multiselect.css │ │ │ └── common.css │ │ └── README.md │ ├── admin_print.css │ ├── admin.js │ ├── jquery.textcounter.js │ ├── event_manager.php │ ├── sdk_remotedapi.php │ ├── flex_forms_previewurl.php │ ├── flex_forms_textcounter.php │ ├── jquery.previewurl.js │ ├── crc32_stream.php │ ├── flex_forms.css │ ├── str_basics.php │ └── cropperjs │ │ └── cropper.css └── lang │ └── en_us │ └── main.php ├── api └── support │ ├── flex_forms_error.png │ ├── install.css │ ├── sdk_cloud_storage_server_feeds.php │ ├── bb_feeds_api_base.php.template │ ├── csdb │ ├── db_mysql_lite.php │ ├── db_sqlite_lite.php │ └── db_pgsql_lite.php │ ├── flex_forms.css │ └── str_basics.php ├── docs ├── images │ ├── architecture_diagram.png │ └── admin_interface_screenshot.png ├── README.md ├── asset-tagging.md └── overview.md ├── sdks └── php │ └── support │ ├── sdk_remotedapi.php │ ├── request.php │ └── crc32_stream.php └── README.md /index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/menus/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/actions/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/plugins/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/support/jquery.textcounter.css: -------------------------------------------------------------------------------- 1 | .textcounter_okay { color: #3C763D; } 2 | .textcounter_error { color: #A94442; } 3 | -------------------------------------------------------------------------------- /api/support/flex_forms_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/api/support/flex_forms_error.png -------------------------------------------------------------------------------- /admin/support/flex_forms_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/flex_forms_error.png -------------------------------------------------------------------------------- /docs/images/architecture_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/docs/images/architecture_diagram.png -------------------------------------------------------------------------------- /docs/images/admin_interface_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/docs/images/admin_interface_screenshot.png -------------------------------------------------------------------------------- /admin/support/content-tools/images/icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/content-tools/images/icons.woff -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/multiselect-select2/select2.png -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/multiselect-select2/select2x2.png -------------------------------------------------------------------------------- /admin/support/fancy-file-uploader/fancy_okay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/fancy-file-uploader/fancy_okay.png -------------------------------------------------------------------------------- /admin/support/fancy-file-uploader/fancy_remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/fancy-file-uploader/fancy_remove.png -------------------------------------------------------------------------------- /admin/support/fancy-file-uploader/fancy_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/fancy-file-uploader/fancy_upload.png -------------------------------------------------------------------------------- /admin/support/content-tools/images/icons-barebones.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/content-tools/images/icons-barebones.woff -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2-spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/multiselect-select2/select2-spinner.gif -------------------------------------------------------------------------------- /admin/support/jquery_ui_themes/adminpack/images/ui-icons_333333_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/jquery_ui_themes/adminpack/images/ui-icons_333333_256x240.png -------------------------------------------------------------------------------- /admin/support/jquery_ui_themes/adminpack/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/jquery_ui_themes/adminpack/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /admin/support/jquery_ui_themes/adminpack/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/jquery_ui_themes/adminpack/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /admin/support/jquery_ui_themes/adminpack/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/jquery_ui_themes/adminpack/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /admin/support/jquery_ui_themes/adminpack/images/ui-icons_fafafa_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/jquery_ui_themes/adminpack/images/ui-icons_fafafa_256x240.png -------------------------------------------------------------------------------- /admin/support/jquery_ui_themes/adminpack/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cubiclesoft/barebones-cms/master/admin/support/jquery_ui_themes/adminpack/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /admin/lang/en_us/main.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/support/content-tools/images/embed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /admin/support/jquery.tablecards.css: -------------------------------------------------------------------------------- 1 | .tablecard-col, .tablecard-show th, .tablecard-show td { display: none; } 2 | .tablecard-show th.tablecard-mode-card, .tablecard-show td.tablecard-mode-card { display: table-cell; } 3 | .tablecard-show.tablecard-show-nohead > thead { display: none; } 4 | .tablecard-show.tablecard-show-nofoot > tfoot { display: none; } 5 | -------------------------------------------------------------------------------- /admin/menus/100_main.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/menus/50_main.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/support/content-tools/images/video.svg: -------------------------------------------------------------------------------- 1 | 6 | 7 | 18 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /admin/support/jquery.previewurl.css: -------------------------------------------------------------------------------- 1 | .previewurl_dialog_background { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.85); z-index: 10000; } 2 | .previewurl_dialog_main { position: absolute; top: 10%; left: 10%; width: 80%; height: 80%; text-align: center; } 3 | .previewurl_dialog_main img { position: relative; top: 50%; transform: perspective(1px) translateY(-50%); max-width: 100%; max-height: 100%; } 4 | .previewurl_dialog_main audio { position: relative; top: 50%; transform: perspective(1px) translateY(-50%); width: 100%; } 5 | .previewurl_dialog_main video { position: relative; top: 50%; transform: perspective(1px) translateY(-50%); max-width: 100%; max-height: 100%; } 6 | .previewurl_dialog_main iframe { position: relative; width: 100%; height: 100%; } 7 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_zh-CN.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Chinese translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | $.fn.select2.locales['zh-CN'] = { 7 | formatNoMatches: function () { return "没有找到匹配项"; }, 8 | formatInputTooShort: function (input, min) { var n = min - input.length; return "请再输入" + n + "个字符";}, 9 | formatInputTooLong: function (input, max) { var n = input.length - max; return "请删掉" + n + "个字符";}, 10 | formatSelectionTooBig: function (limit) { return "你只能选择最多" + limit + "项"; }, 11 | formatLoadMore: function (pageNumber) { return "加载结果中…"; }, 12 | formatSearching: function () { return "搜索中…"; } 13 | }; 14 | 15 | $.extend($.fn.select2.defaults, $.fn.select2.locales['zh-CN']); 16 | })(jQuery); 17 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_zh-TW.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Traditional Chinese translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | $.fn.select2.locales['zh-TW'] = { 7 | formatNoMatches: function () { return "沒有找到相符的項目"; }, 8 | formatInputTooShort: function (input, min) { var n = min - input.length; return "請再輸入" + n + "個字元";}, 9 | formatInputTooLong: function (input, max) { var n = input.length - max; return "請刪掉" + n + "個字元";}, 10 | formatSelectionTooBig: function (limit) { return "你只能選擇最多" + limit + "項"; }, 11 | formatLoadMore: function (pageNumber) { return "載入中…"; }, 12 | formatSearching: function () { return "搜尋中…"; } 13 | }; 14 | 15 | $.extend($.fn.select2.defaults, $.fn.select2.locales['zh-TW']); 16 | })(jQuery); 17 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_ja.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Japanese translation. 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.fn.select2.locales['ja'] = { 8 | formatNoMatches: function () { return "該当なし"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "後" + n + "文字入れてください"; }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "検索文字列が" + n + "文字長すぎます"; }, 11 | formatSelectionTooBig: function (limit) { return "最多で" + limit + "項目までしか選択できません"; }, 12 | formatLoadMore: function (pageNumber) { return "読込中・・・"; }, 13 | formatSearching: function () { return "検索中・・・"; } 14 | }; 15 | 16 | $.extend($.fn.select2.defaults, $.fn.select2.locales['ja']); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /admin/support/content-tools/images/drop-horz.svg: -------------------------------------------------------------------------------- 1 | 6 | 7 | 16 | 24 | 33 | 34 | -------------------------------------------------------------------------------- /admin/support/content-tools/images/drop-vert-above.svg: -------------------------------------------------------------------------------- 1 | 6 | 7 | 16 | 24 | 33 | 34 | -------------------------------------------------------------------------------- /admin/support/content-tools/images/drop-vert-below.svg: -------------------------------------------------------------------------------- 1 | 6 | 7 | 16 | 24 | 33 | 34 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_ko.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Korean translation. 3 | * 4 | * @author Swen Mun 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['ko'] = { 10 | formatNoMatches: function () { return "결과 없음"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "너무 짧습니다. "+n+"글자 더 입력해주세요."; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "너무 깁니다. "+n+"글자 지워주세요."; }, 13 | formatSelectionTooBig: function (limit) { return "최대 "+limit+"개까지만 선택하실 수 있습니다."; }, 14 | formatLoadMore: function (pageNumber) { return "불러오는 중…"; }, 15 | formatSearching: function () { return "검색 중…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['ko']); 19 | })(jQuery); 20 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_ug-CN.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Uyghur translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | $.fn.select2.locales['ug-CN'] = { 7 | formatNoMatches: function () { return "ماس كېلىدىغان ئۇچۇر تېپىلمىدى"; }, 8 | formatInputTooShort: function (input, min) { var n = min - input.length; return "يەنە " + n + " ھەرپ كىرگۈزۈڭ";}, 9 | formatInputTooLong: function (input, max) { var n = input.length - max; return "" + n + "ھەرپ ئۆچۈرۈڭ";}, 10 | formatSelectionTooBig: function (limit) { return "ئەڭ كۆپ بولغاندا" + limit + " تال ئۇچۇر تاللىيالايسىز"; }, 11 | formatLoadMore: function (pageNumber) { return "ئۇچۇرلار ئوقۇلىۋاتىدۇ…"; }, 12 | formatSearching: function () { return "ئىزدەۋاتىدۇ…"; } 13 | }; 14 | 15 | $.extend($.fn.select2.defaults, $.fn.select2.locales['ug-CN']); 16 | })(jQuery); 17 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_hu.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Hungarian translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.fn.select2.locales['hu'] = { 8 | formatNoMatches: function () { return "Nincs találat."; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Túl rövid. Még " + n + " karakter hiányzik."; }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Túl hosszú. " + n + " karakterrel több, mint kellene."; }, 11 | formatSelectionTooBig: function (limit) { return "Csak " + limit + " elemet lehet kiválasztani."; }, 12 | formatLoadMore: function (pageNumber) { return "Töltés…"; }, 13 | formatSearching: function () { return "Keresés…"; } 14 | }; 15 | 16 | $.extend($.fn.select2.defaults, $.fn.select2.locales['hu']); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_he.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Hebrew translation. 3 | * 4 | * Author: Yakir Sitbon 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['he'] = { 10 | formatNoMatches: function () { return "לא נמצאו התאמות"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "נא להזין עוד " + n + " תווים נוספים"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "נא להזין פחות " + n + " תווים"; }, 13 | formatSelectionTooBig: function (limit) { return "ניתן לבחור " + limit + " פריטים"; }, 14 | formatLoadMore: function (pageNumber) { return "טוען תוצאות נוספות…"; }, 15 | formatSearching: function () { return "מחפש…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['he']); 19 | })(jQuery); 20 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_is.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Icelandic translation. 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.fn.select2.locales['is'] = { 8 | formatNoMatches: function () { return "Ekkert fannst"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Vinsamlegast skrifið " + n + " staf" + (n > 1 ? "i" : "") + " í viðbót"; }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Vinsamlegast styttið texta um " + n + " staf" + (n > 1 ? "i" : ""); }, 11 | formatSelectionTooBig: function (limit) { return "Þú getur aðeins valið " + limit + " atriði"; }, 12 | formatLoadMore: function (pageNumber) { return "Sæki fleiri niðurstöður…"; }, 13 | formatSearching: function () { return "Leita…"; } 14 | }; 15 | 16 | $.extend($.fn.select2.defaults, $.fn.select2.locales['is']); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_th.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Thai translation. 3 | * 4 | * Author: Atsawin Chaowanakritsanakul 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['th'] = { 10 | formatNoMatches: function () { return "ไม่พบข้อมูล"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "โปรดพิมพ์เพิ่มอีก " + n + " ตัวอักษร"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "โปรดลบออก " + n + " ตัวอักษร"; }, 13 | formatSelectionTooBig: function (limit) { return "คุณสามารถเลือกได้ไม่เกิน " + limit + " รายการ"; }, 14 | formatLoadMore: function (pageNumber) { return "กำลังค้นข้อมูลเพิ่ม…"; }, 15 | formatSearching: function () { return "กำลังค้นข้อมูล…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['th']); 19 | })(jQuery); 20 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_nl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Dutch translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.fn.select2.locales['nl'] = { 8 | formatNoMatches: function () { return "Geen resultaten gevonden"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Vul nog " + n + " karakter" + (n == 1? "" : "s") + " in"; }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Haal " + n + " karakter" + (n == 1? "" : "s") + " weg"; }, 11 | formatSelectionTooBig: function (limit) { return "Maximaal " + limit + " item" + (limit == 1 ? "" : "s") + " toegestaan"; }, 12 | formatLoadMore: function (pageNumber) { return "Meer resultaten laden…"; }, 13 | formatSearching: function () { return "Zoeken…"; } 14 | }; 15 | 16 | $.extend($.fn.select2.defaults, $.fn.select2.locales['nl']); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /admin/support/install.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | margin: 0; 3 | padding: 0; 4 | background-color: #FFFFFF; 5 | color: #222222; 6 | font-family: Verdana, Arial, Helvetica, sans-serif; 7 | } 8 | 9 | #headerwrap { 10 | padding: 0.5em; 11 | background-color: #222222; 12 | color: #FEFEFE; 13 | font-size: 1.7em; 14 | -webkit-box-shadow: 0px 3px 3px 0px rgba(0,0,0,0.15); 15 | -moz-box-shadow: 0px 3px 3px 0px rgba(0,0,0,0.15); 16 | box-shadow: 0px 3px 3px 0px rgba(0,0,0,0.15); 17 | } 18 | 19 | #header { 20 | max-width: 800px; 21 | margin-left: auto; 22 | margin-right: auto; 23 | } 24 | 25 | #contentwrap { 26 | padding: 0em 0.5em; 27 | } 28 | 29 | #content { 30 | max-width: 800px; 31 | margin-left: auto; 32 | margin-right: auto; 33 | } 34 | 35 | #footerwrap { 36 | margin-top: 3.0em; 37 | border-top: 1px dashed #CCCCCC; 38 | padding: 1.0em 0.5em 1.0em; 39 | } 40 | 41 | #footer { 42 | max-width: 800px; 43 | margin-left: auto; 44 | margin-right: auto; 45 | } -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_ka.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Georgian (Kartuli) translation. 3 | * 4 | * Author: Dimitri Kurashvili dimakura@gmail.com 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['ka'] = { 10 | formatNoMatches: function () { return "ვერ მოიძებნა"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "გთხოვთ შეიყვანოთ კიდევ " + n + " სიმბოლო"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "გთხოვთ წაშალოთ " + n + " სიმბოლო"; }, 13 | formatSelectionTooBig: function (limit) { return "თქვენ შეგიძლიათ მხოლოდ " + limit + " ჩანაწერის მონიშვნა"; }, 14 | formatLoadMore: function (pageNumber) { return "შედეგის ჩატვირთვა…"; }, 15 | formatSearching: function () { return "ძებნა…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['ka']); 19 | })(jQuery); 20 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_sv.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Swedish translation. 3 | * 4 | * Author: Jens Rantil 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['sv'] = { 10 | formatNoMatches: function () { return "Inga träffar"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Var god skriv in " + n + (n>1 ? " till tecken" : " tecken till"); }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Var god sudda ut " + n + " tecken"; }, 13 | formatSelectionTooBig: function (limit) { return "Du kan max välja " + limit + " element"; }, 14 | formatLoadMore: function (pageNumber) { return "Laddar fler resultat…"; }, 15 | formatSearching: function () { return "Söker…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['sv']); 19 | })(jQuery); 20 | -------------------------------------------------------------------------------- /api/support/install.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | margin: 0; 3 | padding: 0; 4 | background-color: #FFFFFF; 5 | color: #222222; 6 | font-family: Verdana, Arial, Helvetica, sans-serif; 7 | } 8 | 9 | #headerwrap { 10 | padding: 0.5em; 11 | background-color: #222222; 12 | color: #FEFEFE; 13 | font-size: 1.7em; 14 | -webkit-box-shadow: 0px 3px 3px 0px rgba(0,0,0,0.15); 15 | -moz-box-shadow: 0px 3px 3px 0px rgba(0,0,0,0.15); 16 | box-shadow: 0px 3px 3px 0px rgba(0,0,0,0.15); 17 | } 18 | 19 | #header { 20 | max-width: 800px; 21 | margin-left: auto; 22 | margin-right: auto; 23 | } 24 | 25 | #contentwrap { 26 | padding: 0em 0.5em; 27 | } 28 | 29 | #content { 30 | max-width: 800px; 31 | margin-left: auto; 32 | margin-right: auto; 33 | } 34 | 35 | #footerwrap { 36 | margin-top: 3.0em; 37 | border-top: 1px dashed #CCCCCC; 38 | padding: 1.0em 0.5em 1.0em; 39 | } 40 | 41 | #footer { 42 | max-width: 800px; 43 | margin-left: auto; 44 | margin-right: auto; 45 | } -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_da.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Danish translation. 3 | * 4 | * Author: Anders Jenbo 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['da'] = { 10 | formatNoMatches: function () { return "Ingen resultater fundet"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Angiv venligst " + n + " tegn mere"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Angiv venligst " + n + " tegn mindre"; }, 13 | formatSelectionTooBig: function (limit) { return "Du kan kun vælge " + limit + " emne" + (limit === 1 ? "" : "r"); }, 14 | formatLoadMore: function (pageNumber) { return "Indlæser flere resultater…"; }, 15 | formatSearching: function () { return "Søger…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['da']); 19 | })(jQuery); 20 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_it.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Italian translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.fn.select2.locales['it'] = { 8 | formatNoMatches: function () { return "Nessuna corrispondenza trovata"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Inserisci ancora " + n + " caratter" + (n == 1? "e" : "i"); }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Inserisci " + n + " caratter" + (n == 1? "e" : "i") + " in meno"; }, 11 | formatSelectionTooBig: function (limit) { return "Puoi selezionare solo " + limit + " element" + (limit == 1 ? "o" : "i"); }, 12 | formatLoadMore: function (pageNumber) { return "Caricamento in corso…"; }, 13 | formatSearching: function () { return "Ricerca…"; } 14 | }; 15 | 16 | $.extend($.fn.select2.defaults, $.fn.select2.locales['it']); 17 | })(jQuery); -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_vi.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Vietnamese translation. 3 | * 4 | * Author: Long Nguyen , Nguyen Chien Cong 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['vi'] = { 10 | formatNoMatches: function () { return "Không tìm thấy kết quả"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Vui lòng nhập nhiều hơn " + n + " ký tự"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Vui lòng nhập ít hơn " + n + " ký tự"; }, 13 | formatSelectionTooBig: function (limit) { return "Chỉ có thể chọn được " + limit + " lựa chọn"; }, 14 | formatLoadMore: function (pageNumber) { return "Đang lấy thêm kết quả…"; }, 15 | formatSearching: function () { return "Đang tìm…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['vi']); 19 | })(jQuery); 20 | 21 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_ro.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Romanian translation. 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.fn.select2.locales['ro'] = { 8 | formatNoMatches: function () { return "Nu a fost găsit nimic"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Vă rugăm să introduceți incă " + n + " caracter" + (n == 1 ? "" : "e"); }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Vă rugăm să introduceți mai puțin de " + n + " caracter" + (n == 1? "" : "e"); }, 11 | formatSelectionTooBig: function (limit) { return "Aveți voie să selectați cel mult " + limit + " element" + (limit == 1 ? "" : "e"); }, 12 | formatLoadMore: function (pageNumber) { return "Se încarcă…"; }, 13 | formatSearching: function () { return "Căutare…"; } 14 | }; 15 | 16 | $.extend($.fn.select2.defaults, $.fn.select2.locales['ro']); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_pt-PT.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Portuguese (Portugal) translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.fn.select2.locales['pt-PT'] = { 8 | formatNoMatches: function () { return "Nenhum resultado encontrado"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Introduza " + n + " car" + (n == 1 ? "ácter" : "acteres"); }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " car" + (n == 1 ? "ácter" : "acteres"); }, 11 | formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, 12 | formatLoadMore: function (pageNumber) { return "A carregar mais resultados…"; }, 13 | formatSearching: function () { return "A pesquisar…"; } 14 | }; 15 | 16 | $.extend($.fn.select2.defaults, $.fn.select2.locales['pt-PT']); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_et.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Estonian translation. 3 | * 4 | * Author: Kuldar Kalvik 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['et'] = { 10 | formatNoMatches: function () { return "Tulemused puuduvad"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Sisesta " + n + " täht" + (n == 1 ? "" : "e") + " rohkem"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Sisesta " + n + " täht" + (n == 1? "" : "e") + " vähem"; }, 13 | formatSelectionTooBig: function (limit) { return "Saad vaid " + limit + " tulemus" + (limit == 1 ? "e" : "t") + " valida"; }, 14 | formatLoadMore: function (pageNumber) { return "Laen tulemusi.."; }, 15 | formatSearching: function () { return "Otsin.."; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['et']); 19 | })(jQuery); 20 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_mk.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Macedonian translation. 3 | * 4 | * Author: Marko Aleksic 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['mk'] = { 10 | formatNoMatches: function () { return "Нема пронајдено совпаѓања"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Ве молиме внесете уште " + n + " карактер" + (n == 1 ? "" : "и"); }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Ве молиме внесете " + n + " помалку карактер" + (n == 1? "" : "и"); }, 13 | formatSelectionTooBig: function (limit) { return "Можете да изберете само " + limit + " ставк" + (limit == 1 ? "а" : "и"); }, 14 | formatLoadMore: function (pageNumber) { return "Вчитување резултати…"; }, 15 | formatSearching: function () { return "Пребарување…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['mk']); 19 | })(jQuery); -------------------------------------------------------------------------------- /admin/support/multiselect-select2/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2014 Igor Vaynberg 2 | 3 | Version: @@ver@@ Timestamp: @@timestamp@@ 4 | 5 | This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU 6 | General Public License version 2 (the "GPL License"). You may choose either license to govern your 7 | use of this software only upon the condition that you accept all of the terms of either the Apache 8 | License or the GPL License. 9 | 10 | You may obtain a copy of the Apache License and the GPL License at: 11 | 12 | http://www.apache.org/licenses/LICENSE-2.0 13 | http://www.gnu.org/licenses/gpl-2.0.html 14 | 15 | Unless required by applicable law or agreed to in writing, software distributed under the Apache License 16 | or the GPL License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 17 | either express or implied. See the Apache License and the GPL License for the specific language governing 18 | permissions and limitations under the Apache License and the GPL License. 19 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_ca.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Catalan translation. 3 | * 4 | * Author: David Planella 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['ca'] = { 10 | formatNoMatches: function () { return "No s'ha trobat cap coincidència"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Introduïu " + n + " caràcter" + (n == 1 ? "" : "s") + " més"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Introduïu " + n + " caràcter" + (n == 1? "" : "s") + "menys"; }, 13 | formatSelectionTooBig: function (limit) { return "Només podeu seleccionar " + limit + " element" + (limit == 1 ? "" : "s"); }, 14 | formatLoadMore: function (pageNumber) { return "S'estan carregant més resultats…"; }, 15 | formatSearching: function () { return "S'està cercant…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['ca']); 19 | })(jQuery); 20 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_bg.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Bulgarian translation. 3 | * 4 | * @author Lubomir Vikev 5 | * @author Uriy Efremochkin 6 | */ 7 | (function ($) { 8 | "use strict"; 9 | 10 | $.fn.select2.locales['bg'] = { 11 | formatNoMatches: function () { return "Няма намерени съвпадения"; }, 12 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Моля въведете още " + n + " символ" + (n > 1 ? "а" : ""); }, 13 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Моля въведете с " + n + " по-малко символ" + (n > 1 ? "а" : ""); }, 14 | formatSelectionTooBig: function (limit) { return "Можете да направите до " + limit + (limit > 1 ? " избора" : " избор"); }, 15 | formatLoadMore: function (pageNumber) { return "Зареждат се още…"; }, 16 | formatSearching: function () { return "Търсене…"; } 17 | }; 18 | 19 | $.extend($.fn.select2.defaults, $.fn.select2.locales['bg']); 20 | })(jQuery); 21 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_el.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Greek translation. 3 | * 4 | * @author Uriy Efremochkin 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['el'] = { 10 | formatNoMatches: function () { return "Δεν βρέθηκαν αποτελέσματα"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Παρακαλούμε εισάγετε " + n + " περισσότερο" + (n > 1 ? "υς" : "") + " χαρακτήρ" + (n > 1 ? "ες" : "α"); }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Παρακαλούμε διαγράψτε " + n + " χαρακτήρ" + (n > 1 ? "ες" : "α"); }, 13 | formatSelectionTooBig: function (limit) { return "Μπορείτε να επιλέξετε μόνο " + limit + " αντικείμεν" + (limit > 1 ? "α" : "ο"); }, 14 | formatLoadMore: function (pageNumber) { return "Φόρτωση περισσότερων…"; }, 15 | formatSearching: function () { return "Αναζήτηση…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['el']); 19 | })(jQuery); -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_pt-BR.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Brazilian Portuguese translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.fn.select2.locales['pt-BR'] = { 8 | formatNoMatches: function () { return "Nenhum resultado encontrado"; }, 9 | formatAjaxError: function () { return "Erro na busca"; }, 10 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Digite " + (min == 1 ? "" : "mais") + " " + n + " caracter" + (n == 1? "" : "es"); }, 11 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " caracter" + (n == 1? "" : "es"); }, 12 | formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, 13 | formatLoadMore: function (pageNumber) { return "Carregando mais resultados…"; }, 14 | formatSearching: function () { return "Buscando…"; } 15 | }; 16 | 17 | $.extend($.fn.select2.defaults, $.fn.select2.locales['pt-BR']); 18 | })(jQuery); 19 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_az.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Azerbaijani translation. 3 | * 4 | * Author: Farhad Safarov 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['az'] = { 10 | formatMatches: function (matches) { return matches + " nəticə mövcuddur, hərəkət etdirmək üçün yuxarı və aşağı düymələrindən istifadə edin."; }, 11 | formatNoMatches: function () { return "Nəticə tapılmadı"; }, 12 | formatInputTooShort: function (input, min) { var n = min - input.length; return n + " simvol daxil edin"; }, 13 | formatInputTooLong: function (input, max) { var n = input.length - max; return n + " simvol silin"; }, 14 | formatSelectionTooBig: function (limit) { return "Sadəcə " + limit + " element seçə bilərsiniz"; }, 15 | formatLoadMore: function (pageNumber) { return "Daha çox nəticə yüklənir…"; }, 16 | formatSearching: function () { return "Axtarılır…"; } 17 | }; 18 | 19 | $.extend($.fn.select2.defaults, $.fn.select2.locales['az']); 20 | })(jQuery); 21 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_fi.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Finnish translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | $.fn.select2.locales['fi'] = { 7 | formatNoMatches: function () { 8 | return "Ei tuloksia"; 9 | }, 10 | formatInputTooShort: function (input, min) { 11 | var n = min - input.length; 12 | return "Ole hyvä ja anna " + n + " merkkiä lisää"; 13 | }, 14 | formatInputTooLong: function (input, max) { 15 | var n = input.length - max; 16 | return "Ole hyvä ja anna " + n + " merkkiä vähemmän"; 17 | }, 18 | formatSelectionTooBig: function (limit) { 19 | return "Voit valita ainoastaan " + limit + " kpl"; 20 | }, 21 | formatLoadMore: function (pageNumber) { 22 | return "Ladataan lisää tuloksia…"; 23 | }, 24 | formatSearching: function () { 25 | return "Etsitään…"; 26 | } 27 | }; 28 | 29 | $.extend($.fn.select2.defaults, $.fn.select2.locales['fi']); 30 | })(jQuery); 31 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_lv.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Latvian translation. 3 | * 4 | * @author Uriy Efremochkin 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['lv'] = { 10 | formatNoMatches: function () { return "Sakritību nav"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Lūdzu ievadiet vēl " + n + " simbol" + (n == 11 ? "us" : n%10 == 1 ? "u" : "us"); }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Lūdzu ievadiet par " + n + " simbol" + (n == 11 ? "iem" : n%10 == 1 ? "u" : "iem") + " mazāk"; }, 13 | formatSelectionTooBig: function (limit) { return "Jūs varat izvēlēties ne vairāk kā " + limit + " element" + (limit == 11 ? "us" : limit%10 == 1 ? "u" : "us"); }, 14 | formatLoadMore: function (pageNumber) { return "Datu ielāde…"; }, 15 | formatSearching: function () { return "Meklēšana…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['lv']); 19 | })(jQuery); 20 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_de.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 German translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.fn.select2.locales['de'] = { 8 | formatNoMatches: function () { return "Keine Übereinstimmungen gefunden"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Bitte " + n + " Zeichen mehr eingeben"; }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Bitte " + n + " Zeichen weniger eingeben"; }, 11 | formatSelectionTooBig: function (limit) { return "Sie können nur " + limit + " Eintr" + (limit === 1 ? "ag" : "äge") + " auswählen"; }, 12 | formatLoadMore: function (pageNumber) { return "Lade mehr Ergebnisse…"; }, 13 | formatSearching: function () { return "Suche…"; }, 14 | formatMatches: function (matches) { return matches + " Ergebnis " + (matches > 1 ? "se" : "") + " verfügbar, zum Navigieren die Hoch-/Runter-Pfeiltasten verwenden."; } 15 | }; 16 | 17 | $.extend($.fn.select2.defaults, $.fn.select2.locales['de']); 18 | })(jQuery); -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_hr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Croatian translation. 3 | * 4 | * @author Edi Modrić 5 | * @author Uriy Efremochkin 6 | */ 7 | (function ($) { 8 | "use strict"; 9 | 10 | $.fn.select2.locales['hr'] = { 11 | formatNoMatches: function () { return "Nema rezultata"; }, 12 | formatInputTooShort: function (input, min) { return "Unesite još" + character(min - input.length); }, 13 | formatInputTooLong: function (input, max) { return "Unesite" + character(input.length - max) + " manje"; }, 14 | formatSelectionTooBig: function (limit) { return "Maksimalan broj odabranih stavki je " + limit; }, 15 | formatLoadMore: function (pageNumber) { return "Učitavanje rezultata…"; }, 16 | formatSearching: function () { return "Pretraga…"; } 17 | }; 18 | 19 | $.extend($.fn.select2.defaults, $.fn.select2.locales['hr']); 20 | 21 | function character (n) { 22 | return " " + n + " znak" + (n%10 < 5 && n%10 > 0 && (n%100 < 5 || n%100 > 19) ? n%10 > 1 ? "a" : "" : "ova"); 23 | } 24 | })(jQuery); 25 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_fa.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Persian translation. 3 | * 4 | * Author: Ali Choopan 5 | * Author: Ebrahim Byagowi 6 | */ 7 | (function ($) { 8 | "use strict"; 9 | 10 | $.fn.select2.locales['fa'] = { 11 | formatMatches: function (matches) { return matches + " نتیجه موجود است، کلیدهای جهت بالا و پایین را برای گشتن استفاده کنید."; }, 12 | formatNoMatches: function () { return "نتیجه‌ای یافت نشد."; }, 13 | formatInputTooShort: function (input, min) { var n = min - input.length; return "لطفاً " + n + " نویسه بیشتر وارد نمایید"; }, 14 | formatInputTooLong: function (input, max) { var n = input.length - max; return "لطفاً " + n + " نویسه را حذف کنید."; }, 15 | formatSelectionTooBig: function (limit) { return "شما فقط می‌توانید " + limit + " مورد را انتخاب کنید"; }, 16 | formatLoadMore: function (pageNumber) { return "در حال بارگیری موارد بیشتر…"; }, 17 | formatSearching: function () { return "در حال جستجو…"; } 18 | }; 19 | 20 | $.extend($.fn.select2.defaults, $.fn.select2.locales['fa']); 21 | })(jQuery); 22 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_rs.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Serbian translation. 3 | * 4 | * @author Limon Monte 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['rs'] = { 10 | formatNoMatches: function () { return "Ništa nije pronađeno"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Ukucajte bar još " + n + " simbol" + (n % 10 == 1 && n % 100 != 11 ? "" : "a"); }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Obrišite " + n + " simbol" + (n % 10 == 1 && n % 100 != 11 ? "" : "a"); }, 13 | formatSelectionTooBig: function (limit) { return "Možete izabrati samo " + limit + " stavk" + (limit % 10 == 1 && limit % 100 != 11 ? "u" : (limit % 10 >= 2 && limit % 10 <= 4 && (limit % 100 < 12 || limit % 100 > 14)? "e" : "i")); }, 14 | formatLoadMore: function (pageNumber) { return "Preuzimanje još rezultata…"; }, 15 | formatSearching: function () { return "Pretraga…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['rs']); 19 | })(jQuery); 20 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_tr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Turkish translation. 3 | * 4 | * Author: Salim KAYABAŞI 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['tr'] = { 10 | formatMatches: function (matches) { if (matches === 1) { return "Sadece bir sonuç bulundu, seçmek için enter tuşuna basabilirsiniz."; } return matches + " sonuç bulundu, yukarı ve aşağı tuşları ile seçebilirsiniz."; }, 11 | formatNoMatches: function () { return "Sonuç bulunamadı"; }, 12 | formatInputTooShort: function (input, min) { var n = min - input.length; return "En az " + n + " karakter daha girmelisiniz"; }, 13 | formatInputTooLong: function (input, max) { var n = input.length - max; return n + " karakter azaltmalısınız"; }, 14 | formatSelectionTooBig: function (limit) { return "Sadece " + limit + " seçim yapabilirsiniz"; }, 15 | formatLoadMore: function (pageNumber) { return "Daha fazla…"; }, 16 | formatSearching: function () { return "Aranıyor…"; } 17 | }; 18 | 19 | $.extend($.fn.select2.defaults, $.fn.select2.locales['tr']); 20 | })(jQuery); 21 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_fr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 French translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.fn.select2.locales['fr'] = { 8 | formatMatches: function (matches) { return matches + " résultats sont disponibles, utilisez les flèches haut et bas pour naviguer."; }, 9 | formatNoMatches: function () { return "Aucun résultat trouvé"; }, 10 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Saisissez " + n + " caractère" + (n == 1? "" : "s") + " supplémentaire" + (n == 1? "" : "s") ; }, 11 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Supprimez " + n + " caractère" + (n == 1? "" : "s"); }, 12 | formatSelectionTooBig: function (limit) { return "Vous pouvez seulement sélectionner " + limit + " élément" + (limit == 1 ? "" : "s"); }, 13 | formatLoadMore: function (pageNumber) { return "Chargement de résultats supplémentaires…"; }, 14 | formatSearching: function () { return "Recherche en cours…"; } 15 | }; 16 | 17 | $.extend($.fn.select2.defaults, $.fn.select2.locales['fr']); 18 | })(jQuery); 19 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_ru.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Russian translation. 3 | * 4 | * @author Uriy Efremochkin 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['ru'] = { 10 | formatNoMatches: function () { return "Совпадений не найдено"; }, 11 | formatInputTooShort: function (input, min) { return "Пожалуйста, введите еще хотя бы" + character(min - input.length); }, 12 | formatInputTooLong: function (input, max) { return "Пожалуйста, введите на" + character(input.length - max) + " меньше"; }, 13 | formatSelectionTooBig: function (limit) { return "Вы можете выбрать не более " + limit + " элемент" + (limit%10 == 1 && limit%100 != 11 ? "а" : "ов"); }, 14 | formatLoadMore: function (pageNumber) { return "Загрузка данных…"; }, 15 | formatSearching: function () { return "Поиск…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['ru']); 19 | 20 | function character (n) { 21 | return " " + n + " символ" + (n%10 < 5 && n%10 > 0 && (n%100 < 5 || n%100 > 20) ? n%10 > 1 ? "a" : "" : "ов"); 22 | } 23 | })(jQuery); 24 | -------------------------------------------------------------------------------- /admin/support/multiselect-flat/MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 yanick.rochon at gmail.com 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_en.js.template: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 translation. 3 | * 4 | * Author: Your Name 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['en'] = { 10 | formatMatches: function (matches) { if (matches === 1) { return "One result is available, press enter to select it."; } return matches + " results are available, use up and down arrow keys to navigate."; }, 11 | formatNoMatches: function () { return "No matches found"; }, 12 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " or more character" + (n == 1 ? "" : "s"); }, 13 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1 ? "" : "s"); }, 14 | formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); }, 15 | formatLoadMore: function (pageNumber) { return "Loading more results…"; }, 16 | formatSearching: function () { return "Searching…"; } 17 | }; 18 | 19 | $.extend($.fn.select2.defaults, $.fn.select2.locales['en']); 20 | })(jQuery); 21 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2.jquery.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "select2", 3 | "title": "Select2", 4 | "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", 5 | "keywords": [ 6 | "select", 7 | "autocomplete", 8 | "typeahead", 9 | "dropdown", 10 | "multiselect", 11 | "tag", 12 | "tagging" 13 | ], 14 | "version": "3.5.4", 15 | "author": { 16 | "name": "Igor Vaynberg", 17 | "url": "https://github.com/ivaynberg" 18 | }, 19 | "licenses": [ 20 | { 21 | "type": "Apache", 22 | "url": "http://www.apache.org/licenses/LICENSE-2.0" 23 | }, 24 | { 25 | "type": "GPL v2", 26 | "url": "http://www.gnu.org/licenses/gpl-2.0.html" 27 | } 28 | ], 29 | "bugs": "https://github.com/ivaynberg/select2/issues", 30 | "homepage": "http://ivaynberg.github.com/select2", 31 | "docs": "http://ivaynberg.github.com/select2/", 32 | "download": "https://github.com/ivaynberg/select2/tags", 33 | "dependencies": { 34 | "jquery": ">=1.7.1" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_id.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Indonesian translation. 3 | * 4 | * Author: Ibrahim Yusuf 5 | * Author: Salahuddin Hairai 6 | */ 7 | (function ($) { 8 | "use strict"; 9 | 10 | $.fn.select2.locales['id'] = { 11 | formatMatches: function (matches) { if (matches === 1) { return "Satu keputusan ditemui, tekan enter untuk memilih."; } return matches + " keputusan ditemui, gunakan kekunci anak panah ke atas dan ke bawah untuk menavigasi."; }, 12 | formatNoMatches: function () { return "Tidak ada data yang sesuai"; }, 13 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Masukkan " + n + " huruf lagi"; }, 14 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Hapuskan " + n + " huruf" ; }, 15 | formatSelectionTooBig: function (limit) { return "Anda hanya dapat memilih " + limit + " pilihan"; }, 16 | formatLoadMore: function (pageNumber) { return "Mengambil data…"; }, 17 | formatSearching: function () { return "Mencari…"; } 18 | }; 19 | 20 | $.extend($.fn.select2.defaults, $.fn.select2.locales['id']); 21 | })(jQuery); 22 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_ar.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Arabic translation. 3 | * 4 | * Author: Adel KEDJOUR 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['ar'] = { 10 | formatNoMatches: function () { return "لم يتم العثور على مطابقات"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; if (n == 1){ return "الرجاء إدخال حرف واحد على الأكثر"; } return n == 2 ? "الرجاء إدخال حرفين على الأكثر" : "الرجاء إدخال " + n + " على الأكثر"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; if (n == 1){ return "الرجاء إدخال حرف واحد على الأقل"; } return n == 2 ? "الرجاء إدخال حرفين على الأقل" : "الرجاء إدخال " + n + " على الأقل "; }, 13 | formatSelectionTooBig: function (limit) { if (limit == 1){ return "يمكنك أن تختار إختيار واحد فقط"; } return limit == 2 ? "يمكنك أن تختار إختيارين فقط" : "يمكنك أن تختار " + limit + " إختيارات فقط"; }, 14 | formatLoadMore: function (pageNumber) { return "تحميل المزيد من النتائج…"; }, 15 | formatSearching: function () { return "البحث…"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['ar']); 19 | })(jQuery); 20 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_ms.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Malay translation. 3 | * 4 | * Author: Kepoweran 5 | * Author: Salahuddin Hairai 6 | */ 7 | (function ($) { 8 | "use strict"; 9 | 10 | $.fn.select2.locales['ms'] = { 11 | formatMatches: function (matches) { if (matches === 1) { return "Satu keputusan ditemui, tekan enter untuk memilih."; } return matches + " keputusan ditemui, gunakan kekunci anak panah ke atas dan ke bawah untuk menavigasi."; }, 12 | formatNoMatches: function () { return "Tiada padanan yang ditemui"; }, 13 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Sila masukkan " + n + " aksara lagi"; }, 14 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Sila hapuskan " + n + " aksara"; }, 15 | formatSelectionTooBig: function (limit) { return "Anda hanya boleh memilih " + limit + " pilihan"; }, 16 | formatLoadMore: function (pageNumber) { return "Sedang memuatkan keputusan…"; }, 17 | formatSearching: function () { return "Mencari…"; } 18 | }; 19 | 20 | $.extend($.fn.select2.defaults, $.fn.select2.locales['ms']); 21 | })(jQuery); 22 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_nb.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Norwegian Bokmål translation. 3 | * 4 | * Author: Torgeir Veimo 5 | * Author: Bjørn Johansen 6 | */ 7 | (function ($) { 8 | "use strict"; 9 | 10 | $.fn.select2.locales['nb'] = { 11 | formatMatches: function (matches) { if (matches === 1) { return "Ett resultat er tilgjengelig, trykk enter for å velge det."; } return matches + " resultater er tilgjengelig. Bruk piltastene opp og ned for å navigere."; }, 12 | formatNoMatches: function () { return "Ingen treff"; }, 13 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Vennligst skriv inn " + n + (n>1 ? " flere tegn" : " tegn til"); }, 14 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Vennligst fjern " + n + " tegn"; }, 15 | formatSelectionTooBig: function (limit) { return "Du kan velge maks " + limit + " elementer"; }, 16 | formatLoadMore: function (pageNumber) { return "Laster flere resultater …"; }, 17 | formatSearching: function () { return "Søker …"; } 18 | }; 19 | 20 | $.extend($.fn.select2.defaults, $.fn.select2.locales['no']); 21 | })(jQuery); 22 | 23 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_es.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Spanish translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.fn.select2.locales['es'] = { 8 | formatMatches: function (matches) { if (matches === 1) { return "Un resultado disponible, presione enter para seleccionarlo."; } return matches + " resultados disponibles, use las teclas de dirección para navegar."; }, 9 | formatNoMatches: function () { return "No se encontraron resultados"; }, 10 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Por favor, introduzca " + n + " car" + (n == 1? "ácter" : "acteres"); }, 11 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Por favor, elimine " + n + " car" + (n == 1? "ácter" : "acteres"); }, 12 | formatSelectionTooBig: function (limit) { return "Sólo puede seleccionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, 13 | formatLoadMore: function (pageNumber) { return "Cargando más resultados…"; }, 14 | formatSearching: function () { return "Buscando…"; }, 15 | formatAjaxError: function() { return "La carga falló"; } 16 | }; 17 | 18 | $.extend($.fn.select2.defaults, $.fn.select2.locales['es']); 19 | })(jQuery); 20 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_lt.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Lithuanian translation. 3 | * 4 | * @author CRONUS Karmalakas 5 | * @author Uriy Efremochkin 6 | */ 7 | (function ($) { 8 | "use strict"; 9 | 10 | $.fn.select2.locales['lt'] = { 11 | formatNoMatches: function () { return "Atitikmenų nerasta"; }, 12 | formatInputTooShort: function (input, min) { return "Įrašykite dar" + character(min - input.length); }, 13 | formatInputTooLong: function (input, max) { return "Pašalinkite" + character(input.length - max); }, 14 | formatSelectionTooBig: function (limit) { 15 | return "Jūs galite pasirinkti tik " + limit + " element" + ((limit%100 > 9 && limit%100 < 21) || limit%10 == 0 ? "ų" : limit%10 > 1 ? "us" : "ą"); 16 | }, 17 | formatLoadMore: function (pageNumber) { return "Kraunama daugiau rezultatų…"; }, 18 | formatSearching: function () { return "Ieškoma…"; } 19 | }; 20 | 21 | $.extend($.fn.select2.defaults, $.fn.select2.locales['lt']); 22 | 23 | function character (n) { 24 | return " " + n + " simbol" + ((n%100 > 9 && n%100 < 21) || n%10 == 0 ? "ių" : n%10 > 1 ? "ius" : "į"); 25 | } 26 | })(jQuery); 27 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_uk.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Ukrainian translation. 3 | * 4 | * @author bigmihail 5 | * @author Uriy Efremochkin 6 | */ 7 | (function ($) { 8 | "use strict"; 9 | 10 | $.fn.select2.locales['uk'] = { 11 | formatMatches: function (matches) { return character(matches, "результат") + " знайдено, використовуйте клавіші зі стрілками вверх та вниз для навігації."; }, 12 | formatNoMatches: function () { return "Нічого не знайдено"; }, 13 | formatInputTooShort: function (input, min) { return "Введіть буль ласка ще " + character(min - input.length, "символ"); }, 14 | formatInputTooLong: function (input, max) { return "Введіть буль ласка на " + character(input.length - max, "символ") + " менше"; }, 15 | formatSelectionTooBig: function (limit) { return "Ви можете вибрати лише " + character(limit, "елемент"); }, 16 | formatLoadMore: function (pageNumber) { return "Завантаження даних…"; }, 17 | formatSearching: function () { return "Пошук…"; } 18 | }; 19 | 20 | $.extend($.fn.select2.defaults, $.fn.select2.locales['uk']); 21 | 22 | function character (n, word) { 23 | return n + " " + word + (n%10 < 5 && n%10 > 0 && (n%100 < 5 || n%100 > 19) ? n%10 > 1 ? "и" : "" : "ів"); 24 | } 25 | })(jQuery); 26 | -------------------------------------------------------------------------------- /admin/support/admin_print.css: -------------------------------------------------------------------------------- 1 | html, body { height: auto; overflow: visible; } 2 | 3 | #menuwrap { display: none; } 4 | #menuwrap.showmenu { display: none; } 5 | 6 | #contentwrap { height: auto; overflow: hidden; } 7 | #contentwrap .proptitlewrap { background-color: #222222; color: #FAFAFA; padding: 0.85em; box-shadow: none; border-bottom: 1px solid #CCCCCC; } 8 | #contentwrap.showmenu #navoverflowwrap { display: none; } 9 | #contentwrap #navbutton { display: none; } 10 | #contentwrap .proptitletext { padding-left: 0em; } 11 | 12 | .formitemdata table.formitemtable > thead > tr > th, .formitemdata table.formitemtable > tbody > tr > td { border-top: 1px solid #CCCCCC; } 13 | .formitemdata table.formitemtable > thead > tr > th:first-child { border-left: 1px solid #CCCCCC; } 14 | .formitemdata table.formitemtable > thead > tr > th:last-child { border-right: 1px solid #CCCCCC; } 15 | .formitemdata table.formitemtable > tbody > tr:first-child > td { border-top: 1px solid #CCCCCC; } 16 | 17 | form.ff_form .formsubmit input { background-color: #FAFAFA; color: #222222; border: 1px solid #222222; } 18 | 19 | .ui-multiselect { width: 100% !important; } 20 | .formitemdata .ui-multiselect.ui-widget { border: 1px solid #c5c5c5 !important; background: #ffffff !important; color: #222222 !important; } 21 | 22 | .multiselect-available-list { display: none; } 23 | .multiselect-selected-list { left: 0 !important; width: 100% !important; } 24 | 25 | .no-print { display: none; } 26 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_eu.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Basque translation. 3 | * 4 | * Author: Julen Ruiz Aizpuru 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['eu'] = { 10 | formatNoMatches: function () { 11 | return "Ez da bat datorrenik aurkitu"; 12 | }, 13 | formatInputTooShort: function (input, min) { 14 | var n = min - input.length; 15 | if (n === 1) { 16 | return "Idatzi karaktere bat gehiago"; 17 | } else { 18 | return "Idatzi " + n + " karaktere gehiago"; 19 | } 20 | }, 21 | formatInputTooLong: function (input, max) { 22 | var n = input.length - max; 23 | if (n === 1) { 24 | return "Idatzi karaktere bat gutxiago"; 25 | } else { 26 | return "Idatzi " + n + " karaktere gutxiago"; 27 | } 28 | }, 29 | formatSelectionTooBig: function (limit) { 30 | if (limit === 1 ) { 31 | return "Elementu bakarra hauta dezakezu"; 32 | } else { 33 | return limit + " elementu hauta ditzakezu soilik"; 34 | } 35 | }, 36 | formatLoadMore: function (pageNumber) { 37 | return "Emaitza gehiago kargatzen…"; 38 | }, 39 | formatSearching: function () { 40 | return "Bilatzen…"; 41 | } 42 | }; 43 | 44 | $.extend($.fn.select2.defaults, $.fn.select2.locales['eu']); 45 | })(jQuery); 46 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_gl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Galician translation 3 | * 4 | * Author: Leandro Regueiro 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.fn.select2.locales['gl'] = { 10 | formatNoMatches: function () { 11 | return "Non se atoparon resultados"; 12 | }, 13 | formatInputTooShort: function (input, min) { 14 | var n = min - input.length; 15 | if (n === 1) { 16 | return "Engada un carácter"; 17 | } else { 18 | return "Engada " + n + " caracteres"; 19 | } 20 | }, 21 | formatInputTooLong: function (input, max) { 22 | var n = input.length - max; 23 | if (n === 1) { 24 | return "Elimine un carácter"; 25 | } else { 26 | return "Elimine " + n + " caracteres"; 27 | } 28 | }, 29 | formatSelectionTooBig: function (limit) { 30 | if (limit === 1 ) { 31 | return "Só pode seleccionar un elemento"; 32 | } else { 33 | return "Só pode seleccionar " + limit + " elementos"; 34 | } 35 | }, 36 | formatLoadMore: function (pageNumber) { 37 | return "Cargando máis resultados…"; 38 | }, 39 | formatSearching: function () { 40 | return "Buscando…"; 41 | } 42 | }; 43 | 44 | $.extend($.fn.select2.defaults, $.fn.select2.locales['gl']); 45 | })(jQuery); 46 | -------------------------------------------------------------------------------- /admin/support/admin.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | // For handling menu scroll. 3 | function GetScrollLineHeight() { 4 | var iframe = document.createElement('iframe'); 5 | iframe.src = '#'; 6 | document.body.appendChild(iframe); 7 | var iwin = iframe.contentWindow; 8 | var idoc = iwin.document; 9 | idoc.open(); 10 | idoc.write('a'); 11 | idoc.close(); 12 | var span = idoc.body.firstElementChild; 13 | var r = span.offsetHeight; 14 | document.body.removeChild(iframe); 15 | 16 | return r; 17 | } 18 | 19 | var scrolllineheight = GetScrollLineHeight(); 20 | var showingmenu = false; 21 | 22 | $('.proptitlewrap').after($('').click(function() { 23 | $('#menuwrap').toggleClass('showmenu'); 24 | $('#contentwrap').toggleClass('showmenu'); 25 | 26 | showingmenu = !showingmenu; 27 | })); 28 | 29 | $('#navbutton').click(function() { 30 | $('#menuwrap').toggleClass('showmenu'); 31 | $('#contentwrap').toggleClass('showmenu'); 32 | 33 | showingmenu = !showingmenu; 34 | }); 35 | 36 | var scrolltarget = $('#contentwrap').get(0); 37 | 38 | $('#menuwrap').on('wheel', function(e) { 39 | var $this = $(this); 40 | 41 | if (!showingmenu && $this.get(0).scrollHeight <= $this.innerHeight()) 42 | { 43 | var o = e.originalEvent; 44 | var mult = (o.deltaMode == 1 ? scrolllineheight * 2 : (o.deltaMode == 2 ? $(window).height() - (2 * scrolllineheight) : 1)); 45 | 46 | scrolltarget.scrollTop += o.deltaY * mult; 47 | scrolltarget.scrollLeft += o.deltaX * mult; 48 | } 49 | }); 50 | 51 | $('#contentwrap').focus(); 52 | }); -------------------------------------------------------------------------------- /admin/support/multiselect-flat/js/locales/jquery.uix.multiselect_et.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery UI Multiselect 2.0 3 | * 4 | * Authors: 5 | * Yanick Rochon (yanick.rochon[at]gmail[dot]com) 6 | * karmux (https://github.com/karmux) 7 | * 8 | * Dual licensed under the MIT (MIT-LICENSE.txt) 9 | * and GPL (GPL-LICENSE.txt) licenses. 10 | * 11 | * http://mind2soft.com/labs/jquery/multiselect/ 12 | * 13 | * 14 | * Localization : ET 15 | * 16 | */ 17 | 18 | (function($) { 19 | 20 | $.uix.multiselect.i18n['et'] = { 21 | itemsSelected_nil: 'midagi pole valitud', // 0 22 | itemsSelected: '{count} valitud', // 0, 1 23 | itemsSelected_plural: '{count} valitud', // n 24 | //itemsSelected_plural_two: ... // 2 25 | //itemsSelected_plural_few: ... // 3, 4 26 | itemsAvailable_nil: 'valikuid pole saadaval', 27 | itemsAvailable: '{count} valik saadaval', 28 | itemsAvailable_plural: '{count} valikut saadaval', 29 | //itemsAvailable_plural_two: ... 30 | //itemsAvailable_plural_few: ... 31 | itemsFiltered_nil: 'valikuid pole filtreeritud', 32 | itemsFiltered: '{count} valik filtreeritud', 33 | itemsFiltered_plural: '{count} valikut filtreeritud', 34 | //itemsFiltered_plural_two: ... 35 | //itemsFiltered_plural_few: ... 36 | selectAll: 'Vali kõik', 37 | deselectAll: 'Tühista kõik', 38 | search: 'Otsi', 39 | collapseGroup: 'Kahanda grupp', 40 | expandGroup: 'Laienda grupp', 41 | selectAllGroup: 'Vali kogu grupp', 42 | deselectAllGroup: 'Tühista kogu grupp' 43 | }; 44 | 45 | // link locales 46 | $.uix.multiselect.i18n['et_EE'] = $.uix.multiselect.i18n['et']; 47 | // ... 48 | 49 | })(jQuery); 50 | -------------------------------------------------------------------------------- /admin/support/multiselect-flat/js/locales/jquery.uix.multiselect_nl.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery UI Multiselect 2.0 3 | * 4 | * Authors: 5 | * Yanick Rochon (yanick.rochon[at]gmail[dot]com) 6 | * 7 | * Dual licensed under the MIT (MIT-LICENSE.txt) 8 | * and GPL (GPL-LICENSE.txt) licenses. 9 | * 10 | * http://mind2soft.com/labs/jquery/multiselect/ 11 | * 12 | * 13 | * Localization : NL 14 | * 15 | */ 16 | 17 | (function($) { 18 | 19 | $.uix.multiselect.i18n['nl'] = { 20 | itemsSelected_nil: 'Geen geselecteerde items', // 0 21 | itemsSelected: '{count} geselecteerde item', // 0, 1 22 | itemsSelected_plural: '{count} geselecteerde items', // n 23 | //itemsSelected_plural_two: ... // 2 24 | //itemsSelected_plural_few: ... // 3, 4 25 | itemsAvailable_nil: 'Geen item beschikbaar', 26 | itemsAvailable: '{count} beschikbare item', 27 | itemsAvailable_plural: '{count} beschikbare items', 28 | //itemsAvailable_plural_two: ... 29 | //itemsAvailable_plural_few: ... 30 | itemsFiltered_nil: 'Geen gefilterde item', 31 | itemsFiltered: '{count} item gefilterd', 32 | itemsFiltered_plural: '{count} items fgeilterd', 33 | //itemsFiltered_plural_two: ... 34 | //itemsFiltered_plural_few: ... 35 | selectAll: 'Selecteer Alles', 36 | deselectAll: 'Deselecteer Alles', 37 | search: 'Zoek opties', 38 | collapseGroup: 'Klap groep in', 39 | expandGroup: 'Klap Group uit', 40 | selectAllGroup: 'Selecteer alle groepen', 41 | deselectAllGroup: 'Deselecteer alle groepen' 42 | }; 43 | 44 | // link locales 45 | $.uix.multiselect.i18n['nl_NL'] = $.uix.multiselect.i18n['nl']; 46 | // ... 47 | 48 | })(jQuery); 49 | -------------------------------------------------------------------------------- /admin/support/multiselect-flat/js/locales/jquery.uix.multiselect_sv.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery UI Multiselect 2.0 3 | * 4 | * Authors: 5 | * Yanick Rochon (yanick.rochon[at]gmail[dot]com) 6 | * 7 | * Dual licensed under the MIT (MIT-LICENSE.txt) 8 | * and GPL (GPL-LICENSE.txt) licenses. 9 | * 10 | * http://mind2soft.com/labs/jquery/multiselect/ 11 | * 12 | * 13 | * Localization : EN 14 | * 15 | */ 16 | 17 | (function($) { 18 | 19 | $.uix.multiselect.i18n['sv'] = { 20 | itemsSelected_nil: 'inga alternativ valda', // 0 21 | itemsSelected: '{count} valt alternativ', // 0, 1 22 | itemsSelected_plural: '{count} valda alternativ', // n 23 | //itemsSelected_plural_two: ... // 2 24 | //itemsSelected_plural_few: ... // 3, 4 25 | itemsAvailable_nil: 'inga alternativ tillgängliga', 26 | itemsAvailable: '{count} tillgängligt alternativ', 27 | itemsAvailable_plural: '{count} tillgängliga alternativ', 28 | //itemsAvailable_plural_two: ... 29 | //itemsAvailable_plural_few: ... 30 | itemsFiltered_nil: 'inga alternativ filtrerade', 31 | itemsFiltered: '{count} alternativ filtrerat', 32 | itemsFiltered_plural: '{count} alternativ filtrerade', 33 | //itemsFiltered_plural_two: ... 34 | //itemsFiltered_plural_few: ... 35 | selectAll: 'Markera alla', 36 | deselectAll: 'Avmarkera alla', 37 | search: 'Sök alternativ', 38 | collapseGroup: 'Dölj grupp', 39 | expandGroup: 'Visa grupp', 40 | selectAllGroup: 'Markera alla i gruppen', 41 | deselectAllGroup: 'Avmarkera alla i gruppen' 42 | }; 43 | 44 | // link locales 45 | $.uix.multiselect.i18n['sv_SE'] = $.uix.multiselect.i18n['sv']; 46 | // ... 47 | 48 | })(jQuery); 49 | -------------------------------------------------------------------------------- /admin/support/multiselect-flat/js/locales/jquery.uix.multiselect_en.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery UI Multiselect 2.0 3 | * 4 | * Authors: 5 | * Yanick Rochon (yanick.rochon[at]gmail[dot]com) 6 | * 7 | * Dual licensed under the MIT (MIT-LICENSE.txt) 8 | * and GPL (GPL-LICENSE.txt) licenses. 9 | * 10 | * http://mind2soft.com/labs/jquery/multiselect/ 11 | * 12 | * 13 | * Localization : EN 14 | * 15 | */ 16 | 17 | (function($) { 18 | 19 | $.uix.multiselect.i18n['en'] = { 20 | itemsSelected_nil: 'No options selected', // 0 21 | itemsSelected: '{count} selected option', // 0, 1 22 | itemsSelected_plural: '{count} options selected', // n 23 | //itemsSelected_plural_two: ... // 2 24 | //itemsSelected_plural_few: ... // 3, 4 25 | itemsAvailable_nil: 'No items available', 26 | itemsAvailable: '{count} options available', 27 | itemsAvailable_plural: '{count} options available', 28 | //itemsAvailable_plural_two: ... 29 | //itemsAvailable_plural_few: ... 30 | itemsFiltered_nil: 'No options found', 31 | itemsFiltered: '{count} option found', 32 | itemsFiltered_plural: '{count} options found', 33 | //itemsFiltered_plural_two: ... 34 | //itemsFiltered_plural_few: ... 35 | selectAll: 'Select All', 36 | deselectAll: 'Deselect All', 37 | search: 'Search Options', 38 | collapseGroup: 'Collapse Group', 39 | expandGroup: 'Expand Group', 40 | selectAllGroup: 'Select All Group', 41 | deselectAllGroup: 'Deselect All Group' 42 | }; 43 | 44 | // link locales 45 | $.uix.multiselect.i18n['en_CA'] = $.uix.multiselect.i18n['en']; 46 | $.uix.multiselect.i18n['en_GB'] = $.uix.multiselect.i18n['en']; 47 | $.uix.multiselect.i18n['en_US'] = $.uix.multiselect.i18n['en']; 48 | // ... 49 | 50 | })(jQuery); 51 | -------------------------------------------------------------------------------- /admin/support/multiselect-flat/js/locales/jquery.uix.multiselect_ru.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery UI Multiselect 2.0 3 | * 4 | * Authors: 5 | * Yanick Rochon (yanick.rochon[at]gmail[dot]com) 6 | * 7 | * Dual licensed under the MIT (MIT-LICENSE.txt) 8 | * and GPL (GPL-LICENSE.txt) licenses. 9 | * 10 | * http://mind2soft.com/labs/jquery/multiselect/ 11 | * 12 | * 13 | * Localization : RU 14 | * 15 | */ 16 | 17 | (function($) { 18 | 19 | $.uix.multiselect.i18n['ru'] = { 20 | itemsSelected_nil: 'Варианты не выбраны', // 0 21 | itemsSelected: 'Выбран 1 вариант', // 1 22 | itemsSelected_plural: 'Выбрано {count} вариантов', // n 23 | itemsSelected_plural_two: 'Выбрано 2 варианта', // 2 24 | itemsSelected_plural_few: 'Выбрано {count} варианта',// 3, 4 25 | itemsAvailable_nil: 'Нет вариантов для выбора', 26 | itemsAvailable: 'Доступен один вариант', 27 | itemsAvailable_plural: 'Доступно {count} вариантов', 28 | itemsAvailable_plural_two: 'Доступно 2 варианта', 29 | itemsAvailable_plural_few: 'Доступно {count} варианта', 30 | itemsFiltered_nil: 'Нет отфильтрованных вариантов', 31 | itemsFiltered: 'Отфильтрован 1 вариант', 32 | itemsFiltered_plural: 'Отфильтровано {count} вариантов', 33 | itemsFiltered_plural_two: 'Отфильтровано 2 варианта', 34 | itemsFiltered_plural_few: 'Отфильтровано {count} варианта', 35 | selectAll: 'Выбрать все', 36 | deselectAll: 'Отменить выбор для всех', 37 | search: 'Поиск...', 38 | collapseGroup: 'Свернуть группу', 39 | expandGroup: 'Развернуть группу', 40 | selectAllGroup: 'Выбрать всю группу', 41 | deselectAllGroup: 'Отменить выбор группы' 42 | }; 43 | 44 | // link locales 45 | $.uix.multiselect.i18n['ru_RU'] = $.uix.multiselect.i18n['ru']; 46 | 47 | })(jQuery); 48 | -------------------------------------------------------------------------------- /admin/support/multiselect-flat/js/locales/jquery.uix.multiselect_es.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery UI Multiselect 2.0 3 | * 4 | * Authors: 5 | * Yanick Rochon (yanick.rochon[at]gmail[dot]com) 6 | * 7 | * Dual licensed under the MIT (MIT-LICENSE.txt) 8 | * and GPL (GPL-LICENSE.txt) licenses. 9 | * 10 | * http://mind2soft.com/labs/jquery/multiselect/ 11 | * 12 | * 13 | * Localization : ES 14 | * 15 | */ 16 | 17 | (function($) { 18 | 19 | $.uix.multiselect.i18n['es'] = { 20 | itemsSelected_nil: 'no hay opciones seleccionadas', // 0 21 | itemsSelected: '{count} opción seleccionada', // 0, 1 22 | itemsSelected_plural: '{count} opciones seleccionadas', // n 23 | //itemsSelected_plural_two: ... // 2 24 | //itemsSelected_plural_few: ... // 3, 4 25 | itemsAvailable_nil: 'no hay opciones disponibles', 26 | itemsAvailable: '{count} opción disponible', 27 | itemsAvailable_plural: '{count} opciones disponibles', 28 | //itemsAvailable_plural_two: ... 29 | //itemsAvailable_plural_few: ... 30 | itemsFiltered_nil: 'ninguna opción filtrada', 31 | itemsFiltered: '{count} opción filtrada', 32 | itemsFiltered_plural: '{count} opciones filtradas', 33 | //itemsFiltered_plural_two: ... 34 | //itemsFiltered_plural_few: ... 35 | selectAll: 'Seleccionar Todo', 36 | deselectAll: 'Deseleccionar Todo', 37 | search: 'Buscar opciones', 38 | collapseGroup: 'Plegar Grupo', 39 | expandGroup: 'Expandir Grupo', 40 | selectAllGroup: 'Seleccionar Grupo Entero', 41 | deselectAllGroup: 'Deseleccionar Grupo Entero' 42 | }; 43 | 44 | // link locales 45 | $.uix.multiselect.i18n['es_ES'] = $.uix.multiselect.i18n['es']; 46 | $.uix.multiselect.i18n['es_AR'] = $.uix.multiselect.i18n['es']; 47 | // ... 48 | 49 | })(jQuery); 50 | -------------------------------------------------------------------------------- /admin/support/multiselect-flat/js/locales/jquery.uix.multiselect_pt.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery UI Multiselect 2.0 3 | * 4 | * Authors: 5 | * Yanick Rochon (yanick.rochon[at]gmail[dot]com) 6 | * Translation: Alexander Bulei 7 | * 8 | * Dual licensed under the MIT (MIT-LICENSE.txt) 9 | * and GPL (GPL-LICENSE.txt) licenses. 10 | * 11 | * http://mind2soft.com/labs/jquery/multiselect/ 12 | * 13 | * 14 | * Localization : PT 15 | * 16 | */ 17 | 18 | (function($) { 19 | 20 | $.uix.multiselect.i18n['pt'] = { 21 | itemsSelected_nil: 'Nenhuma opção selecionada', // 0 22 | itemsSelected: '{count} opção seleccionada', // 0, 1 23 | itemsSelected_plural: '{count} opções seleccionadas', // n 24 | //itemsSelected_plural_two: ... // 2 25 | //itemsSelected_plural_few: ... // 3, 4 26 | itemsAvailable_nil: 'Nenhuma opção disponível', 27 | itemsAvailable: '{count} opção disponível', 28 | itemsAvailable_plural: '{count} opções disponíveis', 29 | //itemsAvailable_plural_two: ... 30 | //itemsAvailable_plural_few: ... 31 | itemsFiltered_nil: 'Nenhuma opção filtrada', 32 | itemsFiltered: '{count} opção filtrada', 33 | itemsFiltered_plural: '{count} opções filtradas', 34 | //itemsFiltered_plural_two: ... 35 | //itemsFiltered_plural_few: ... 36 | selectAll: 'Seleccionar todos', 37 | deselectAll: 'Desseleccionar todos', 38 | search: 'Opções de pesquisa', 39 | collapseGroup: 'Ocultar grupo', 40 | expandGroup: 'Expandir grupo', 41 | selectAllGroup: 'Seleccionar grupo', 42 | deselectAllGroup: 'Desseleccionar grupo' 43 | }; 44 | 45 | // link locales 46 | $.uix.multiselect.i18n['pt_PT'] = $.uix.multiselect.i18n['pt']; 47 | $.uix.multiselect.i18n['pt_BR'] = $.uix.multiselect.i18n['pt']; 48 | // ... 49 | 50 | })(jQuery); 51 | -------------------------------------------------------------------------------- /admin/support/multiselect-flat/js/locales/jquery.uix.multiselect_fr.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery UI Multiselect 2.0 3 | * 4 | * Authors: 5 | * Yanick Rochon (yanick.rochon[at]gmail[dot]com) 6 | * 7 | * Dual licensed under the MIT (MIT-LICENSE.txt) 8 | * and GPL (GPL-LICENSE.txt) licenses. 9 | * 10 | * http://mind2soft.com/labs/jquery/multiselect/ 11 | * 12 | * 13 | * Localization : FR 14 | * 15 | */ 16 | 17 | (function($) { 18 | 19 | $.uix.multiselect.i18n['fr'] = { 20 | itemsSelected_nil: 'aucune option sélectionnée', // 0 21 | itemsSelected: '{count} option sélectionnée', // 0, 1 22 | itemsSelected_plural: '{count} options sélectionnées', // n 23 | //itemsSelected_plural_two: ... // 2 24 | //itemsSelected_plural_few: ... // 3, 4 25 | itemsAvailable_nil: 'aucune option disponible', 26 | itemsAvailable: '{count} option disponible', 27 | itemsAvailable_plural: '{count} options disponibles', 28 | //itemsAvailable_plural_two: ... 29 | //itemsAvailable_plural_few: ... 30 | itemsFiltered_nil: 'aucune option masquée', 31 | itemsFiltered: '{count} option masquée', 32 | itemsFiltered_plural: '{count} options masquées', 33 | //itemsFiltered_plural_two: ... 34 | //itemsFiltered_plural_few: ... 35 | selectAll: 'Sélectionner tout', 36 | deselectAll: 'Désélectionner tout', 37 | search: 'Rechercher les options', 38 | collapseGroup: 'Masquer le groupe', 39 | expandGroup: 'Afficher le groupe', 40 | selectAllGroup: 'Sélectionner tout le groupe', 41 | deselectAllGroup: 'Déselectionner tout le groupe' 42 | }; 43 | 44 | // link locales 45 | $.uix.multiselect.i18n['fr_CA'] = $.uix.multiselect.i18n['fr']; 46 | $.uix.multiselect.i18n['fr_FR'] = $.uix.multiselect.i18n['fr']; 47 | // ... 48 | 49 | })(jQuery); 50 | -------------------------------------------------------------------------------- /admin/support/multiselect-flat/js/locales/jquery.uix.multiselect_it.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery UI Multiselect 2.0 3 | * 4 | * Authors: 5 | * Yanick Rochon (yanick.rochon[at]gmail[dot]com) 6 | * Manuel Dalla Lana (endelwar[at]aregar[dot]it) 7 | * 8 | * Dual licensed under the MIT (MIT-LICENSE.txt) 9 | * and GPL (GPL-LICENSE.txt) licenses. 10 | * 11 | * http://mind2soft.com/labs/jquery/multiselect/ 12 | * 13 | * 14 | * Localization : IT 15 | * 16 | */ 17 | 18 | (function($) { 19 | 20 | $.uix.multiselect.i18n['it'] = { 21 | itemsSelected_nil: 'nessuna opzione selezionata', // 0 22 | itemsSelected: '{count} opzione selezionata', // 0, 1 23 | itemsSelected_plural: '{count} opzioni selezionate', // n 24 | //itemsSelected_plural_two: ... // 2 25 | //itemsSelected_plural_few: ... // 3, 4 26 | itemsAvailable_nil: 'nessuna opzione disponibile', 27 | itemsAvailable: '{count} opzione disponibile', 28 | itemsAvailable_plural: '{count} opzioni disponibili', 29 | //itemsAvailable_plural_two: ... 30 | //itemsAvailable_plural_few: ... 31 | itemsFiltered_nil: 'nessuna opzione filtrata', 32 | itemsFiltered: '{count} opzione filtrata', 33 | itemsFiltered_plural: '{count} opzioni filtrate', 34 | //itemsFiltered_plural_two: ... 35 | //itemsFiltered_plural_few: ... 36 | selectAll: 'Seleziona Tutto', 37 | deselectAll: 'Deseleziona Tutto', 38 | search: 'Cerca Opzioni', 39 | collapseGroup: 'Collassa Gruppo', 40 | expandGroup: 'Espandi Gruppo', 41 | selectAllGroup: 'Seleziona Tutto il Gruppo', 42 | deselectAllGroup: 'Deseleziona Tutto il Gruppo' 43 | }; 44 | 45 | // link locales 46 | $.uix.multiselect.i18n['it_IT'] = $.uix.multiselect.i18n['it']; 47 | $.uix.multiselect.i18n['it_CH'] = $.uix.multiselect.i18n['it']; 48 | // ... 49 | 50 | })(jQuery); 51 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | echo -n "Enter the version for this release: " 5 | 6 | read ver 7 | 8 | if [ ! $ver ]; then 9 | echo "Invalid version." 10 | exit 11 | fi 12 | 13 | name="select2" 14 | js="$name.js" 15 | mini="$name.min.js" 16 | css="$name.css" 17 | release="$name-$ver" 18 | tag="$ver" 19 | branch="build-$ver" 20 | curbranch=`git branch | grep "*" | sed "s/* //"` 21 | timestamp=$(date) 22 | tokens="s/@@ver@@/$ver/g;s/\@@timestamp@@/$timestamp/g" 23 | remote="origin" 24 | 25 | echo "Pulling from origin" 26 | 27 | git pull 28 | 29 | echo "Updating Version Identifiers" 30 | 31 | sed -E -e "s/\"version\": \"([0-9\.]+)\",/\"version\": \"$ver\",/g" -i -- bower.json select2.jquery.json component.json composer.json package.json 32 | 33 | git add bower.json 34 | git add select2.jquery.json 35 | git add component.json 36 | git add composer.json 37 | git add package.json 38 | 39 | git commit -m "modified version identifiers in descriptors for release $ver" 40 | git push 41 | 42 | git branch "$branch" 43 | git checkout "$branch" 44 | 45 | echo "Tokenizing..." 46 | 47 | find . -name "$js" | xargs -I{} sed -e "$tokens" -i -- {} 48 | find . -name "$css" | xargs -I{} sed -e "$tokens" -i -- {} 49 | 50 | sed -e "s/latest/$ver/g" -i -- bower.json 51 | 52 | git add "$js" 53 | git add "$css" 54 | 55 | echo "Minifying..." 56 | 57 | echo "/*" > "$mini" 58 | cat LICENSE | sed "$tokens" >> "$mini" 59 | echo "*/" >> "$mini" 60 | 61 | curl -s \ 62 | --data-urlencode "js_code@$js" \ 63 | http://marijnhaverbeke.nl/uglifyjs \ 64 | >> "$mini" 65 | 66 | git add "$mini" 67 | 68 | git commit -m "release $ver" 69 | 70 | echo "Tagging..." 71 | git tag -a "$tag" -m "tagged version $ver" 72 | git push "$remote" --tags 73 | 74 | echo "Cleaning Up..." 75 | 76 | git checkout "$curbranch" 77 | git branch -D "$branch" 78 | 79 | echo "Done" 80 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | Barebones CMS Documentation 2 | =========================== 3 | 4 | This directory contains the release distribution documentation for Barebones CMS. 5 | 6 | [![Donate](https://cubiclesoft.com/res/donate-shield.png)](https://cubiclesoft.com/donate/) [![Discord](https://img.shields.io/discord/777282089980526602?label=chat&logo=discord)](https://cubiclesoft.com/product-support/github/) 7 | 8 | Features 9 | -------- 10 | 11 | * All the documentation for Barebones CMS in one place. 12 | * Has a liberal open source license. MIT or LGPL, your choice. 13 | * Designed for relatively painless integration into your project. 14 | * Sits on GitHub for all of that pull request and issue tracker goodness to easily submit changes and ideas respectively. 15 | 16 | Getting Started 17 | --------------- 18 | 19 | * [Release overview](overview.md) - High-level architecture overview of the release distribution. 20 | * [Install Barebones CMS](install.md) - Download and installation information. 21 | * [Asset tagging](asset-tagging.md) - Tips and tricks for tagging assets. 22 | * [Frontend patterns](frontend-patterns.md) - Static page pattern, news pattern, file caching and delivery, etc. 23 | * [Creating extentions](creating-extensions.md) - Content editor CSS classes, custom embed dialog templates, cache busting, etc. 24 | * [Using the SDK](sdk.md) - Basic content retrieval examples, create and modify content, perform bulk data retrieval, and PHP SDK class documentation. 25 | * [Barebones CMS API](api.md) - Raw API access examples for building SDKs, in-depth configuration file details, endpoints and helper class documentation, and instructions for adding functionality (e.g. integrating with a CDN). 26 | * [Available extensions](https://github.com/cubiclesoft/barebones-cms-extensions) - A list of available plugins, language packs, and other extensions for Barebones CMS. 27 | 28 | More Information 29 | ---------------- 30 | 31 | * [Official website](http://barebonescms.com/) 32 | -------------------------------------------------------------------------------- /admin/support/multiselect-flat/js/locales/jquery.uix.multiselect_de.js: -------------------------------------------------------------------------------- 1 | /** 2 | * jQuery UI Multiselect 2.0 3 | * 4 | * Authors: 5 | * Yanick Rochon (yanick.rochon[at]gmail[dot]com) 6 | * 7 | * Dual licensed under the MIT (MIT-LICENSE.txt) 8 | * and GPL (GPL-LICENSE.txt) licenses. 9 | * 10 | * http://mind2soft.com/labs/jquery/multiselect/ 11 | * 12 | * 13 | * Localization : DE 14 | */ 15 | 16 | (function($) { 17 | 18 | $.uix.multiselect.i18n['de'] = { 19 | itemsSelected_nil: 'keine Option ausgewählt', // 0 20 | itemsSelected: 'eine Option ausgewählt', // 0, 1 21 | itemsSelected_plural: '{count} Optionen ausgewählt', // n 22 | itemsSelected_plural_two: '2 Optionen ausgewählt', // 2 23 | itemsSelected_plural_few: '{count} Optionen ausgewählt', // 3, 4 24 | itemsAvailable_nil: 'keine Option verfügbar', 25 | itemsAvailable: 'eine Option verfügbar', 26 | itemsAvailable_plural: '{count} Optionen verfügbar', 27 | itemsAvailable_plural_two: '2 Optionen verfügbar', 28 | itemsAvailable_plural_few: '{count} Optionen verfügbar', 29 | itemsFiltered_nil: 'keine Option gefiltert', 30 | itemsFiltered: 'eine Option gefiltert', 31 | itemsFiltered_plural: '{count} Optionen gefiltert', 32 | itemsFiltered_plural_two: '2 Optionen gefiltert', 33 | itemsFiltered_plural_few: '{count} Optionen gefiltert', 34 | selectAll: 'Alle Optionen auswählen', 35 | deselectAll: 'Komplette Auswahl aufheben', 36 | search: 'Suchen', 37 | collapseGroup: 'Gruppe ausblenden', 38 | expandGroup: 'Gruppe anzeigen', 39 | selectAllGroup: 'Gruppe auswählen', 40 | deselectAllGroup: 'Gruppenauswahl aufheben' 41 | }; 42 | 43 | // link locales 44 | $.uix.multiselect.i18n['de_DE'] = $.uix.multiselect.i18n['de']; 45 | $.uix.multiselect.i18n['de_CH'] = $.uix.multiselect.i18n['de']; 46 | $.uix.multiselect.i18n['de_AT'] = $.uix.multiselect.i18n['de']; 47 | // ... 48 | 49 | })(jQuery); 50 | -------------------------------------------------------------------------------- /admin/support/multiselect-flat/css/jquery.uix.multiselect.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | .uix-multiselect-original { position: absolute; left:-999999px; } 4 | .uix-multiselect { position: relative; float:left; } 5 | .uix-multiselect .multiselect-selected-list, .uix-multiselect .multiselect-available-list { position:absolute; overflow:hidden; } 6 | .uix-multiselect .ui-widget-header { overflow:hidden; white-space:nowrap; padding:2px 4px; } 7 | .uix-multiselect .ui-widget-header div.header-text { white-space: nowrap; } 8 | .uix-multiselect .ui-widget-header .uix-control-right, .uix-multiselect .ui-widget-header .uix-control-left { width:16px; height:16px; } 9 | .uix-multiselect .ui-widget-header .uix-control-right { float:right; } 10 | .uix-multiselect .ui-widget-header .uix-control-left { float:left; } 11 | .uix-multiselect .ui-widget-header .uix-search { float:right; height:14px; font-size:80%; } 12 | .uix-multiselect .uix-list-container { position:relative; overflow:auto; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } 13 | .uix-multiselect .uix-list-container .ui-priority-secondary { padding-right:0; } 14 | .uix-multiselect .group-element { position:relative; padding-left:0; white-space:nowrap; overflow:hidden; } 15 | .uix-multiselect .group-element-collapsable { padding-left:16px; } 16 | .uix-multiselect .group-element span.collapse-handle { position:absolute; margin-top:-8px; top:50%; left:0; } 17 | .uix-multiselect .group-element .label { margin:0 3px; white-space:nowrap; overflow:hidden; } 18 | .uix-multiselect .group-element .ui-icon { float:left; cursor:pointer; } 19 | .uix-multiselect .option-element, .dragged-element { cursor:pointer; padding:0 2px; } 20 | .uix-multiselect .option-element.ui-state-disabled { font-style:italic; } 21 | .dragged-element, .dragged-grouped-element { padding:1px 3px; } 22 | .dragged-grouped-element { padding-left:16px; } 23 | .uix-multiselect .grouped-option { position:relative; padding-left:16px } 24 | .uix-multiselect .grouped-option .ui-icon { position:absolute; left:0; } 25 | -------------------------------------------------------------------------------- /api/support/sdk_cloud_storage_server_feeds.php: -------------------------------------------------------------------------------- 1 | apiprefix = "/feeds/v1"; 16 | } 17 | 18 | public function Notify($name, $type, $id, $data = array(), $queue = false, $queuesize = -1) 19 | { 20 | $options = array( 21 | "name" => $name, 22 | "type" => $type, 23 | "id" => (string)$id, 24 | "data" => $data, 25 | "queuesize" => $queuesize 26 | ); 27 | 28 | if ($queue !== false) $options["queue"] = (int)$queue; 29 | 30 | return $this->RunAPI("POST", "notify", $options); 31 | } 32 | 33 | public function InitMonitor() 34 | { 35 | return $this->InitWebSocket(); 36 | } 37 | 38 | public static function AddMonitor($ws, $sequence, $name, $filters = array()) 39 | { 40 | $options = array( 41 | "api_method" => "GET", 42 | "api_path" => $this->apiprefix . "/monitor", 43 | "api_sequence" => $sequence, 44 | "name" => $name, 45 | "filters" => $filters 46 | ); 47 | 48 | return $ws->Write(json_encode($options), WebSocket::FRAMETYPE_TEXT); 49 | } 50 | 51 | public function CreateGuest($name, $notify, $monitor, $expires) 52 | { 53 | $options = array( 54 | "name" => $name, 55 | "notify" => (int)(bool)$notify, 56 | "monitor" => (int)(bool)$monitor, 57 | "expires" => (int)$expires 58 | ); 59 | 60 | return $this->RunAPI("POST", "guest/create", $options); 61 | } 62 | 63 | public function GetGuestList() 64 | { 65 | return $this->RunAPI("GET", "guest/list"); 66 | } 67 | 68 | public function DeleteGuest($id) 69 | { 70 | return $this->RunAPI("DELETE", "guest/delete/" . $id); 71 | } 72 | } 73 | ?> -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_sk.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Slovak translation. 3 | * 4 | * Author: David Vallner 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | // use text for the numbers 2 through 4 9 | var smallNumbers = { 10 | 2: function(masc) { return (masc ? "dva" : "dve"); }, 11 | 3: function() { return "tri"; }, 12 | 4: function() { return "štyri"; } 13 | }; 14 | $.fn.select2.locales['sk'] = { 15 | formatNoMatches: function () { return "Nenašli sa žiadne položky"; }, 16 | formatInputTooShort: function (input, min) { 17 | var n = min - input.length; 18 | if (n == 1) { 19 | return "Prosím, zadajte ešte jeden znak"; 20 | } else if (n <= 4) { 21 | return "Prosím, zadajte ešte ďalšie "+smallNumbers[n](true)+" znaky"; 22 | } else { 23 | return "Prosím, zadajte ešte ďalších "+n+" znakov"; 24 | } 25 | }, 26 | formatInputTooLong: function (input, max) { 27 | var n = input.length - max; 28 | if (n == 1) { 29 | return "Prosím, zadajte o jeden znak menej"; 30 | } else if (n >= 2 && n <= 4) { 31 | return "Prosím, zadajte o "+smallNumbers[n](true)+" znaky menej"; 32 | } else { 33 | return "Prosím, zadajte o "+n+" znakov menej"; 34 | } 35 | }, 36 | formatSelectionTooBig: function (limit) { 37 | if (limit == 1) { 38 | return "Môžete zvoliť len jednu položku"; 39 | } else if (limit >= 2 && limit <= 4) { 40 | return "Môžete zvoliť najviac "+smallNumbers[limit](false)+" položky"; 41 | } else { 42 | return "Môžete zvoliť najviac "+limit+" položiek"; 43 | } 44 | }, 45 | formatLoadMore: function (pageNumber) { return "Načítavajú sa ďalšie výsledky…"; }, 46 | formatSearching: function () { return "Vyhľadávanie…"; } 47 | }; 48 | 49 | $.extend($.fn.select2.defaults, $.fn.select2.locales['sk']); 50 | })(jQuery); 51 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_cs.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Czech translation. 3 | * 4 | * Author: Michal Marek 5 | * Author - sklonovani: David Vallner 6 | */ 7 | (function ($) { 8 | "use strict"; 9 | // use text for the numbers 2 through 4 10 | var smallNumbers = { 11 | 2: function(masc) { return (masc ? "dva" : "dvě"); }, 12 | 3: function() { return "tři"; }, 13 | 4: function() { return "čtyři"; } 14 | } 15 | $.fn.select2.locales['cs'] = { 16 | formatNoMatches: function () { return "Nenalezeny žádné položky"; }, 17 | formatInputTooShort: function (input, min) { 18 | var n = min - input.length; 19 | if (n == 1) { 20 | return "Prosím zadejte ještě jeden znak"; 21 | } else if (n <= 4) { 22 | return "Prosím zadejte ještě další "+smallNumbers[n](true)+" znaky"; 23 | } else { 24 | return "Prosím zadejte ještě dalších "+n+" znaků"; 25 | } 26 | }, 27 | formatInputTooLong: function (input, max) { 28 | var n = input.length - max; 29 | if (n == 1) { 30 | return "Prosím zadejte o jeden znak méně"; 31 | } else if (n <= 4) { 32 | return "Prosím zadejte o "+smallNumbers[n](true)+" znaky méně"; 33 | } else { 34 | return "Prosím zadejte o "+n+" znaků méně"; 35 | } 36 | }, 37 | formatSelectionTooBig: function (limit) { 38 | if (limit == 1) { 39 | return "Můžete zvolit jen jednu položku"; 40 | } else if (limit <= 4) { 41 | return "Můžete zvolit maximálně "+smallNumbers[limit](false)+" položky"; 42 | } else { 43 | return "Můžete zvolit maximálně "+limit+" položek"; 44 | } 45 | }, 46 | formatLoadMore: function (pageNumber) { return "Načítají se další výsledky…"; }, 47 | formatSearching: function () { return "Vyhledávání…"; } 48 | }; 49 | 50 | $.extend($.fn.select2.defaults, $.fn.select2.locales['cs']); 51 | })(jQuery); 52 | -------------------------------------------------------------------------------- /admin/support/jquery.textcounter.js: -------------------------------------------------------------------------------- 1 | // jQuery plugin to display a character count in text boxes. 2 | // (C) 2017 CubicleSoft. All Rights Reserved. 3 | 4 | (function($) { 5 | $.fn.TextCounter = function(options) { 6 | this.each(function() { 7 | var $this = $(this); 8 | 9 | // Remove event handlers. 10 | $this.off('keydown.textcounter'); 11 | $this.off('keyup.textcounter'); 12 | $this.off('change.textcounter'); 13 | 14 | // Remove created element (if any). 15 | if ($this.data('textcountertarget') && typeof($this.data('textcountertarget')) === 'object') 16 | { 17 | $this.data('textcountertarget').remove(); 18 | $this.removeData('textcountertarget'); 19 | } 20 | }); 21 | 22 | if (typeof(options) === 'string' && options === 'destroy') return this; 23 | 24 | var settings = $.extend({ 'target' : null }, $.fn.TextCounter.defaults, options); 25 | 26 | return this.each(function() { 27 | var $this = $(this); 28 | var dest = (settings.target === null ? $this.append($('
')) : $(settings.target)); 29 | 30 | if (settings.target === null) $this.data('textcountertarget', dest); 31 | 32 | var CounterHandler = function(e) { 33 | var val = $this.val(); 34 | var vallen = (settings.unit === 'words' ? val.split(/\s+/).length : val.length); 35 | var valid = (settings.limit == 0 || vallen <= settings.limit); 36 | 37 | dest.removeClass(settings.okayClass).removeClass(settings.errorClass); 38 | dest.addClass(valid ? settings.okayClass : settings.errorClass); 39 | dest.html((valid ? '' : settings.errorMsg + ' ') + (vallen == 1 ? settings.mainMsgOne : settings.mainMsg).replace('{x}', vallen).replace('{y}', settings.limit)); 40 | }; 41 | 42 | $this.on('keydown.textcounter', CounterHandler).on('keyup.textcounter', CounterHandler).on('change.textcounter', CounterHandler).change(); 43 | }); 44 | } 45 | 46 | $.fn.TextCounter.defaults = { 47 | 'limit' : 0, 48 | 'unit' : 'characters', 49 | 'okayClass' : 'textcounter_okay', 50 | 'errorClass' : 'textcounter_error', 51 | 'mainMsg' : '{x} of {y} characters entered.', 52 | 'mainMsgOne' : '{x} of {y} characters entered.', 53 | 'errorMsg' : 'Too many characters entered.' 54 | }; 55 | }(jQuery)); 56 | -------------------------------------------------------------------------------- /admin/support/multiselect-select2/select2_locale_pl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Polish translation. 3 | * 4 | * @author Jan Kondratowicz 5 | * @author Uriy Efremochkin 6 | * @author Michał Połtyn 7 | * @author Damian Zajkowski 8 | */ 9 | (function($) { 10 | "use strict"; 11 | 12 | $.fn.select2.locales['pl'] = { 13 | formatNoMatches: function() { 14 | return "Brak wyników"; 15 | }, 16 | formatInputTooShort: function(input, min) { 17 | return "Wpisz co najmniej" + character(min - input.length, "znak", "i"); 18 | }, 19 | formatInputTooLong: function(input, max) { 20 | return "Wpisana fraza jest za długa o" + character(input.length - max, "znak", "i"); 21 | }, 22 | formatSelectionTooBig: function(limit) { 23 | return "Możesz zaznaczyć najwyżej" + character(limit, "element", "y"); 24 | }, 25 | formatLoadMore: function(pageNumber) { 26 | return "Ładowanie wyników…"; 27 | }, 28 | formatSearching: function() { 29 | return "Szukanie…"; 30 | } 31 | }; 32 | 33 | $.extend($.fn.select2.defaults, $.fn.select2.locales['pl']); 34 | 35 | function character(n, word, pluralSuffix) { 36 | //Liczba pojedyncza - brak suffiksu 37 | //jeden znak 38 | //jeden element 39 | var suffix = ''; 40 | if (n > 1 && n < 5) { 41 | //Liczaba mnoga ilość od 2 do 4 - własny suffiks 42 | //Dwa znaki, trzy znaki, cztery znaki. 43 | //Dwa elementy, trzy elementy, cztery elementy 44 | suffix = pluralSuffix; 45 | } else if (n == 0 || n >= 5) { 46 | //Ilość 0 suffiks ów 47 | //Liczaba mnoga w ilości 5 i więcej - suffiks ów (nie poprawny dla wszystkich wyrazów, np. 100 wiadomości) 48 | //Zero znaków, Pięć znaków, sześć znaków, siedem znaków, osiem znaków. 49 | //Zero elementów Pięć elementów, sześć elementów, siedem elementów, osiem elementów. 50 | suffix = 'ów'; 51 | } 52 | return " " + n + " " + word + suffix; 53 | } 54 | })(jQuery); 55 | -------------------------------------------------------------------------------- /admin/support/event_manager.php: -------------------------------------------------------------------------------- 1 | events = array(); 12 | $this->nextid = 1; 13 | } 14 | 15 | public function Register($eventname, $objorfuncname, $funcname = false) 16 | { 17 | if ($objorfuncname === false) 18 | { 19 | $objorfuncname = $funcname; 20 | $funcname = false; 21 | } 22 | 23 | if (!isset($this->events[$eventname])) $this->events[$eventname] = array("used" => 0, "callbacks" => array()); 24 | $this->events[$eventname]["callbacks"][$this->nextid] = ($funcname === false ? $objorfuncname : array($objorfuncname, $funcname)); 25 | 26 | $id = $this->nextid; 27 | $this->nextid++; 28 | 29 | return $id; 30 | } 31 | 32 | public function Unregister($eventname, $id) 33 | { 34 | if (isset($this->events[$eventname])) unset($this->events[$eventname]["callbacks"][$id]); 35 | } 36 | 37 | public function GetAllUsedCounts() 38 | { 39 | $result = array(); 40 | foreach ($this->events as $eventname => $info) $result[$eventname] = $info["used"]; 41 | 42 | return $result; 43 | } 44 | 45 | public function GetUsedCount($eventname) 46 | { 47 | return (isset($this->events[$eventname]) ? $this->events[$eventname]["used"] : 0); 48 | } 49 | 50 | public function Fire($eventname, $options) 51 | { 52 | $results = array(); 53 | if ($eventname !== "" && isset($this->events[$eventname])) 54 | { 55 | foreach ($this->events[$eventname]["callbacks"] as $id => $func) 56 | { 57 | if (!is_callable($func)) unset($this->events[$eventname]["callbacks"][$id]); 58 | else 59 | { 60 | $result = call_user_func_array($func, $options); 61 | if (isset($result)) $results[] = $result; 62 | } 63 | } 64 | 65 | if (count($this->events[$eventname]["callbacks"])) $this->events[$eventname]["used"]++; 66 | else unset($this->events[$eventname]); 67 | } 68 | 69 | if (isset($this->events[""])) 70 | { 71 | foreach ($this->events[""]["callbacks"] as $id => $func) 72 | { 73 | if (!is_callable($func)) unset($this->events[""]["callbacks"][$id]); 74 | else 75 | { 76 | $result = call_user_func_array($func, array_merge(array($eventname), $options)); 77 | if (isset($result)) $results[] = $result; 78 | } 79 | } 80 | 81 | if (count($this->events[""]["callbacks"])) $this->events[""]["used"]++; 82 | else unset($this->events[""]); 83 | } 84 | 85 | return $results; 86 | } 87 | } 88 | ?> -------------------------------------------------------------------------------- /admin/support/sdk_remotedapi.php: -------------------------------------------------------------------------------- 1 | false, "error" => WebRoute::WRTranslate("Invalid Remoted API URL scheme."), "errorcode" => "invalid_scheme"); 45 | 46 | $result["url"] = $url; 47 | 48 | return $result; 49 | } 50 | 51 | if ($url2["loginusername"] === "") return array("success" => false, "error" => WebRoute::WRTranslate("Remoted API URL is missing client key."), "errorcode" => "missing_client_key"); 52 | 53 | $options["headers"]["X-Remoted-APIKey"] = $url2["loginusername"]; 54 | 55 | $url2["scheme"] = ($url2["scheme"] === "rwr" ? "wr" : "wrs"); 56 | unset($url2["loginusername"]); 57 | unset($url2["login"]); 58 | 59 | $url = HTTP::CondenseURL($url2); 60 | 61 | $result = $wr->Connect($url, false, $timeout, $options, $web); 62 | if (!$result["success"]) return $result; 63 | 64 | $options["fp"] = $result["fp"]; 65 | } 66 | 67 | return $result; 68 | } 69 | } 70 | ?> -------------------------------------------------------------------------------- /sdks/php/support/sdk_remotedapi.php: -------------------------------------------------------------------------------- 1 | false, "error" => WebRoute::WRTranslate("Invalid Remoted API URL scheme."), "errorcode" => "invalid_scheme"); 45 | 46 | $result["url"] = $url; 47 | 48 | return $result; 49 | } 50 | 51 | if ($url2["loginusername"] === "") return array("success" => false, "error" => WebRoute::WRTranslate("Remoted API URL is missing client key."), "errorcode" => "missing_client_key"); 52 | 53 | $options["headers"]["X-Remoted-APIKey"] = $url2["loginusername"]; 54 | 55 | $url2["scheme"] = ($url2["scheme"] === "rwr" ? "wr" : "wrs"); 56 | unset($url2["loginusername"]); 57 | unset($url2["login"]); 58 | 59 | $url = HTTP::CondenseURL($url2); 60 | 61 | $result = $wr->Connect($url, false, $timeout, $options, $web); 62 | if (!$result["success"]) return $result; 63 | 64 | $options["fp"] = $result["fp"]; 65 | } 66 | 67 | return $result; 68 | } 69 | } 70 | ?> -------------------------------------------------------------------------------- /admin/support/multiselect-flat/css/common.css: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | Copyright (c) 2007, Yahoo! Inc. All rights reserved. 4 | Code licensed under the BSD License: 5 | http://developer.yahoo.net/yui/license.txt 6 | version: 2.2.0 7 | */ 8 | body {font:13px 'Helvetica',arial,clean,sans-serif;*font-size:small;*font:x-small;}table {font-size:inherit;font:100%;}select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}pre, code {font:115% monospace;*font-size:100%;}body * {line-height:1.22em;} 9 | body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}/*ol,ul {list-style:none;}*/caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym {border:0;} 10 | 11 | /* end of yahoo reset and fonts */ 12 | 13 | body {color:#333; background: #232f2e; line-height:1.3;} 14 | p {margin:0 0 20px;} 15 | a {color:#636363;} 16 | a:hover {text-decoration:none;} 17 | strong {font-weight:bold;} 18 | em {font-style: italic;} 19 | h1,h2,h3,h4,h5,h6 {font-weight:bold;} 20 | h1 {font-size:197%; margin:30px 0; color: #4f6f6c;} 21 | h2 {font-size:174%; margin:20px 0; color:#4f6f6c;} 22 | h3 {font-size:152%; margin:10px 0;} 23 | h4 {font-size:129%; margin:10px 0;} 24 | pre {background:#eee; margin:0 0 20px; padding:20px; border:1px solid #ccc; font-size:100%; overflow:auto;} 25 | code {font-size:100%; margin:0; padding:0;} 26 | ul, ol {margin:10px 0 10px 25px;} 27 | ol li {margin:0 0 10px;} 28 | 29 | div#wrapper {background:#fff; width:560px; margin:0 auto; padding:20px; border:10px solid #0f1616; border-width:0 10px 10px 10px;} 30 | div#header {position:relative; border-bottom:1px dotted; margin:0 0 10px; padding:0 0 10px;} 31 | div#header p {margin:0; padding:0;} 32 | div#header h1 {margin:0; padding:0;} 33 | ul#nav {position:absolute; top:0; right:0; list-style:none; margin:0; padding:0;} 34 | ul#nav li {display:inline; padding:0 0 0 5px;} 35 | ul#nav li a {} 36 | div#content {} 37 | div#footer {margin:40px 0 0; border-top:1px dotted; padding:10px 0 0;} 38 | .left {float:left;} 39 | .right {float:right;} 40 | .clear {clear:both;} 41 | 42 | 43 | #content { width: 900px; margin: auto; padding: 1px 16px 64px 16px; background-color: white; } 44 | 45 | /* multiselect styles */ 46 | #switcher { 47 | 48 | } 49 | 50 | form {margin: 0; padding: 0;} 51 | -------------------------------------------------------------------------------- /admin/support/flex_forms_previewurl.php: -------------------------------------------------------------------------------- 1 | "link", "dependency" => false, "src" => $state["supporturl"] . "/jquery.previewurl.css"); 21 | $state["js"]["modules-previewurl"] = array("mode" => "src", "dependency" => "jquery", "src" => $state["supporturl"] . "/jquery.previewurl.js", "detect" => "jQuery.fn.PreviewURL"); 22 | 23 | $state["modules_previewurl"] = true; 24 | } 25 | 26 | $options = array( 27 | "__flexforms" => true 28 | ); 29 | 30 | // Allow each PreviewURL instance to be fully customized beyond basic support. 31 | // Valid options: See 'jquery.previewurl.js' file. 32 | if (isset($field["previewurl_options"])) 33 | { 34 | foreach ($field["previewurl_options"] as $key => $val) $options[$key] = $val; 35 | } 36 | 37 | // Queue up the necessary Javascript for later output. 38 | ob_start(); 39 | ?> 40 | jQuery(function() { 41 | var options = ; 42 | 43 | $val) 47 | { 48 | ?> 49 | options[''] = ; 50 | 58 | jQuery('#').on('table:columnschanged', function() { 59 | jQuery('#').closest('.formitem').find('[data-preview-type]').PreviewURL(options); 60 | }); 61 | 64 | 65 | jQuery('#').closest('.formitem').find('[data-preview-type]').PreviewURL(options); 66 | }); 67 | "inline", "dependency" => "modules-previewurl", "src" => ob_get_contents()); 69 | ob_end_clean(); 70 | } 71 | } 72 | } 73 | 74 | // Register form handlers. 75 | if (is_callable("FlexForms::RegisterFormHandler")) 76 | { 77 | FlexForms::RegisterFormHandler("init", "FlexForms_PreviewURL::Init"); 78 | FlexForms::RegisterFormHandler("field_type", "FlexForms_PreviewURL::FieldType"); 79 | } 80 | ?> -------------------------------------------------------------------------------- /admin/support/flex_forms_textcounter.php: -------------------------------------------------------------------------------- 1 | "; 24 | else $field["htmldesc"] = ""; 25 | 26 | $field["htmldesc"] .= ""; 27 | 28 | if ($state["modules_textcounter"] === false) 29 | { 30 | $state["css"]["modules-textcounter"] = array("mode" => "link", "dependency" => false, "src" => $state["supporturl"] . "/jquery.textcounter.css"); 31 | $state["js"]["modules-textcounter"] = array("mode" => "src", "dependency" => "jquery", "src" => $state["supporturl"] . "/jquery.textcounter.js", "detect" => "jQuery.fn.TextCounter"); 32 | 33 | $state["modules_textcounter"] = true; 34 | } 35 | 36 | $options = array( 37 | "target" => "#" . $id . "_textcounter" 38 | ); 39 | 40 | if (is_int($field["counter"])) $options["limit"] = $field["counter"]; 41 | 42 | // Allow each TextCounter instance to be fully customized beyond basic support. 43 | // Valid options: See 'jquery.textcounter.js' file. 44 | if (isset($field["counter_options"])) 45 | { 46 | foreach ($field["counter_options"] as $key => $val) $options[$key] = $val; 47 | } 48 | 49 | // Queue up the necessary Javascript for later output. 50 | ob_start(); 51 | ?> 52 | jQuery(function() { 53 | var options = ; 54 | 55 | $val) 59 | { 60 | ?> 61 | options[''] = ; 62 | 66 | 67 | jQuery('#').TextCounter(options); 68 | }); 69 | "inline", "dependency" => "modules-textcounter", "src" => ob_get_contents()); 71 | ob_end_clean(); 72 | } 73 | } 74 | } 75 | 76 | // Register form handlers. 77 | if (is_callable("FlexForms::RegisterFormHandler")) 78 | { 79 | FlexForms::RegisterFormHandler("init", "FlexForms_TextCounter::Init"); 80 | FlexForms::RegisterFormHandler("field_type", "FlexForms_TextCounter::FieldType"); 81 | } 82 | ?> -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Barebones CMS Release Distribution 2 | ================================== 3 | 4 | Barebones CMS pushes the limits of content management and solves many of today's problems with delivering content to the browser that were previously unsolved. Let Barebones CMS power your next website. You'll be glad you did. 5 | 6 | [Try the demo](http://barebonescms.com/demo/) 7 | 8 | [![Screenshot of the Barebones CMS administrative interface](docs/images/admin_interface_screenshot.png?raw=true "Barebones CMS administrative interface")](http://barebonescms.com/demo/) 9 | 10 | [![Donate](https://cubiclesoft.com/res/donate-shield.png)](https://cubiclesoft.com/donate/) [![Discord](https://img.shields.io/discord/777282089980526602?label=chat&logo=discord)](https://cubiclesoft.com/product-support/github/) 11 | 12 | Features 13 | -------- 14 | 15 | * [API-driven architecture](docs/api.md). 16 | * [Uniquely immersive content editor](https://www.youtube.com/watch?v=5xIIzc_i7g0 "Barebones CMS Demo Video"). 17 | * Beautiful and elegant fully-responsive user interface for any device. 18 | * Extensive and flexible multilingual support. 19 | * A great revision system. 20 | * Comprehensive plugin support. 21 | * Never lose control of your content. Your content is yours. 22 | * Integrates with the [/feeds extension](https://github.com/cubiclesoft/cloud-storage-server-ext-feeds) of [Cloud Storage Server](https://github.com/cubiclesoft/cloud-storage-server) for realtime time-based content change notifications (e.g. the moment content reaches publish time). 23 | * Has a liberal open source license. MIT or LGPL, your choice. 24 | * Designed for relatively painless integration into your project. 25 | * Sits on GitHub for all of that pull request and issue tracker goodness to easily submit changes and ideas respectively. 26 | 27 | Getting Started 28 | --------------- 29 | 30 | * [Release overview](docs/overview.md) - High-level architecture overview of the release distribution. 31 | * [Install Barebones CMS](docs/install.md) - Download and installation information. 32 | * [Asset tagging](docs/asset-tagging.md) - Tips and tricks for tagging assets. 33 | * [Frontend patterns](docs/frontend-patterns.md) - Static page pattern, news pattern, file caching and delivery, etc. 34 | * [Creating extentions](docs/creating-extensions.md) - Content editor CSS classes, custom embed dialog templates, cache busting, etc. 35 | * [Using the SDK](docs/sdk.md) - Basic content retrieval examples, create and modify content, perform bulk data retrieval, and PHP SDK class documentation. 36 | * [Barebones CMS API](docs/api.md) - Raw API access examples for building SDKs, in-depth configuration file details, endpoints and helper class documentation, and instructions for adding functionality (e.g. integrating with a CDN). 37 | * [Available extensions](https://github.com/cubiclesoft/barebones-cms-extensions) - A list of available plugins, language packs, and other extensions for Barebones CMS. 38 | 39 | More Information 40 | ---------------- 41 | 42 | * [Official website](http://barebonescms.com/) 43 | -------------------------------------------------------------------------------- /docs/asset-tagging.md: -------------------------------------------------------------------------------- 1 | Asset Tagging 2 | ============= 3 | 4 | The assets in Barebones CMS are incredibly flexible and Barebones CMS easily supports handling anything from a few assets to millions. Tags help organize and group assets into sensible structures. 5 | 6 | Tags can be anything. Sections, categories, keywords, etc. 7 | 8 | The Barebones CMS API has special high-performance logic for looking up assets based on tag searches. Optimizing tag structures for the API helps to maximize website performance. 9 | 10 | You can choose to tag your assets in whatever way you want. The following are just suggestions for tag structures based on extensive experience with working with millions of assets across various CMS products. 11 | 12 | Tag Prefixes 13 | ------------ 14 | 15 | Let's say you are writing a story about gardening and how much fun it is. An example tag might be: 16 | 17 | `/gardening/fun/` 18 | 19 | For this tag, the prefix is the '/' character. Another choice might be: 20 | 21 | `s:gardening/fun/` 22 | 23 | Where 's:' might mean "section". Choosing what prefix is used is entirely up to whoever is writing content but tag prefixes should be consistent across all of the content in the system. 24 | 25 | What's the purpose of all of this? Well, let's say a URL exists on the website like: 26 | 27 | `http://yourdomain.com/gardening/` 28 | 29 | When a user visits the URL, the code for the page uses the Barebones CMS SDK to run a prefix query against the API for: 30 | 31 | `~/gardening/` 32 | 33 | The tilde '~' character at the beginning of that string tells the API to perform a "starts with" match against all of the tags in the system. The above will match anything that starts with the string `/gardening/`, including the story with the `/gardening/fun/` tag. 34 | 35 | Databases are optimized around shortcut logic. The fewer comparisons that a database has to do, the faster it will operate. The same is true for tags and tag prefixes. 36 | 37 | Common Prefixes 38 | --------------- 39 | 40 | * '/' - Use for defining a section or path in a URL (e.g. `/gardening/fun/`). 41 | * '#' - A keyword or hashtag (e.g. `#firewalls`). 42 | * '\*' - A special flag that might change how the asset is shown to the user (e.g. `*sponsored`). 43 | * '\*/' - Used when multiple sections are defined to define which section should be the one used for a permalink. 44 | * '@' - An author (e.g. `@MarkMatthews`). 45 | * 'u:' - Asset owner for use with extensions that restrict asset access in a shared system (e.g. 'u:1234'). 46 | * 'g:' - Asset group for use with extensions that restrict asset access in a shared system (e.g. 'g:finance'). 47 | 48 | Reserved Characters 49 | ------------------- 50 | 51 | * '~' - Not allowed at the start of a tag. Used for "starts with" tag prefix matching. 52 | * '!' - Not allowed at the start of a tag. Used for "is not" tag matching. 53 | * '\_' - Not allowed in a tag for SQL performance reasons (i.e. wildcard query). Automatically converted to a hyphen '-' character. 54 | * '%' - Not allowed in a tag for SQL performance reasons (i.e. wildcard query). Automatically converted to a hyphen '-' character. 55 | -------------------------------------------------------------------------------- /docs/overview.md: -------------------------------------------------------------------------------- 1 | Release Overview 2 | ================ 3 | 4 | Barebones CMS is a free and open source content management system. There are thousands of CMS products out there, so thank you for taking the time to look at Barebones CMS. 5 | 6 | There are three major components to the release distribution: The Barebones CMS API, the Barebones CMS SDK, and the Barebones CMS administrative interface. 7 | 8 | [![Barebones CMS Architecture Overview video](https://user-images.githubusercontent.com/1432111/41880502-399f51f8-7893-11e8-907d-18519c23c23c.png)](https://www.youtube.com/watch?v=uybGZ0V-tYY "Barebones CMS Architecture Overview") 9 | 10 | Barebones CMS API 11 | ----------------- 12 | 13 | Barebones CMS has always been about getting to the essence of content management. As such, the [Barebones CMS API](api.md) is solely responsible for storing, retrieving, and managing content and files. 14 | 15 | The API can be installed anywhere in the world and in a variety of configurations. The API integrates with the [/feeds extension](https://github.com/cubiclesoft/cloud-storage-server-ext-feeds) of [Cloud Storage Server](https://github.com/cubiclesoft/cloud-storage-server) for realtime time-based content change notifications (e.g. the moment content reaches publish time). 16 | 17 | The API can also be extended in a variety of ways such as transparent integration with a CDN. 18 | 19 | Barebones CMS is actually the API. However, an API by itself is not terribly useful. It needs to be part of a larger ecosystem of tools such as SDKs and various user-friendly interfaces. 20 | 21 | Barebones CMS SDK 22 | ----------------- 23 | 24 | The [Barebones CMS SDK](sdk.md) communicates with the API to store, retrieve, and manage content. 25 | 26 | A variety of [frontend patterns](frontend-patterns.md) are available to make it easy to build frontends that utilize the SDK to efficiently deliver content to website visitors. 27 | 28 | The SDK also provides convenient routines for accessing binary data managed by the API including images, audio, and video and delivering them to a web browser or even caching them on the local file system for faster delivery later. 29 | 30 | The SDK can be used for a number of purposes including creating assets automatically from data and syndication from other sources. 31 | 32 | However, the Barebones CMS SDK by itself is also not terribly useful for most users. Which brings us to the last component. 33 | 34 | Barebones CMS Admin Interface 35 | ----------------------------- 36 | 37 | The Barebones CMS administrative interface utilizes the Barebones CMS SDK to communicate with the Barebones CMS API. 38 | 39 | ![Screenshot of the Barebones CMS administrative interface](images/admin_interface_screenshot.png?raw=true "Barebones CMS administrative interface") 40 | 41 | [Try the demo](http://barebonescms.com/demo/) 42 | 43 | The admin interface can be [installed anywhere](install.md), including a personal computer or behind a corporate firewall. 44 | 45 | The included fullscreen content editor provides powerful editing tools in one compact fully responsive interface that works equally well on desktops and mobile devices. The entire admin interface is also fully extensible via the [powerful plugin system](creating-extensions.md). 46 | -------------------------------------------------------------------------------- /admin/support/jquery.previewurl.js: -------------------------------------------------------------------------------- 1 | // jQuery plugin to display a referenced URL in a preview dialog. 2 | // (C) 2018 CubicleSoft. All Rights Reserved. 3 | 4 | (function($) { 5 | // Create some extra DOM nodes for preview checking. 6 | var audioelem = document.createElement('audio'); 7 | var videoelem = document.createElement('video'); 8 | 9 | var DisplayPreviewDialog = function(preview, settings) { 10 | var url; 11 | if (preview[0].hasAttribute('data-preview-url')) url = preview.attr('data-preview-url'); 12 | else if (preview[0].hasAttribute('href')) url = preview.attr('href'); 13 | else if (preview[0].hasAttribute('src')) url = preview.attr('src'); 14 | else return false; 15 | 16 | var previewtype = preview.attr('data-preview-type'); 17 | 18 | var previewclone; 19 | if (previewtype && previewtype === 'image/gif' || previewtype === 'image/jpeg' || previewtype === 'image/png') previewclone = $('').attr('src', url); 20 | else if (previewtype && previewtype.lastIndexOf('audio/', 0) > -1 && audioelem.canPlayType && audioelem.canPlayType(previewtype)) previewclone = $('