+
+
+
+ {{#settings}}
+
+
+
+
{{setting}}
+ {{^override}}
+
+ {{defaultvalue}}
+
{{lang_settingActive}}
+ {{/override}}
+ {{#override}}
+
{{lang_enableOverride}}
+ {{/override}}
-
-
-
-
-
{{{description}}}
-
-
-
+
+ {{{item}}}
+
+
+
+
+
+ {{/settings}}
- {{/categories}}
+ {{/categories}}
{{lang_save}}
{{lang_reset}}
+ {{^override}}
Download
+ {{/override}}
+ {{#override}}
+
Download
+ {{/override}}
diff --git a/modules-available/locations/baseconfig/getconfig.inc.php b/modules-available/locations/baseconfig/getconfig.inc.php
index d4a4f40b..2cf5495d 100644
--- a/modules-available/locations/baseconfig/getconfig.inc.php
+++ b/modules-available/locations/baseconfig/getconfig.inc.php
@@ -1,7 +1,14 @@
getIdentifier()) + 1;
- $want = array();
- foreach (Module::getAll() as $module) {
- $cat = $module->getCategory();
- if (is_string($cat)) {
- $want[substr($cat, $skip)] = true;
- }
- }
- return $want;
-};
-
/**
* Global tags.
* This just returns the union of global tags of all languages, as there is no
diff --git a/modules-available/translation/lang/de/template-tags.json b/modules-available/translation/lang/de/template-tags.json
index 3f381751..b8497bd9 100644
--- a/modules-available/translation/lang/de/template-tags.json
+++ b/modules-available/translation/lang/de/template-tags.json
@@ -2,6 +2,7 @@
"lang_createTag": "Tag erstellen",
"lang_global": "Global",
"lang_globalTooltip": "Dieser Tag ist global verf\u00fcgbar und braucht normalerweise nicht explizit f\u00fcr dieses Modul \u00fcbersetzt zu werden",
+ "lang_menuCategories": "Men\u00fckategorien",
"lang_messages": "Benachrichtigungen",
"lang_missing": "Fehlend",
"lang_module": "Modul",
diff --git a/modules-available/translation/lang/en/template-tags.json b/modules-available/translation/lang/en/template-tags.json
index 5aee54c3..ec2a26a3 100644
--- a/modules-available/translation/lang/en/template-tags.json
+++ b/modules-available/translation/lang/en/template-tags.json
@@ -2,6 +2,7 @@
"lang_createTag": "Create Tag",
"lang_global": "Global",
"lang_globalTooltip": "This tag is global; usually there is no need to translate it explicitly for this module",
+ "lang_menuCategories": "Menu categories",
"lang_messages": "Messages",
"lang_missing": "Missing",
"lang_module": "Module",
diff --git a/modules-available/translation/page.inc.php b/modules-available/translation/page.inc.php
index 5b2d24e1..74cf27a8 100644
--- a/modules-available/translation/page.inc.php
+++ b/modules-available/translation/page.inc.php
@@ -42,7 +42,7 @@ class Page_Translation extends Page
public function __construct()
{
- $this->builtInSections = array('template', 'messages', 'module', 'custom');
+ $this->builtInSections = array('template', 'messages', 'module', 'menucategory', 'custom');
}
private function isValidSection($section)
@@ -167,6 +167,13 @@ class Page_Translation extends Page
return;
}
+ // Menu Category
+ if ($this->section === 'menucategory') {
+ $this->ensureValidDestLanguage();
+ $this->showMenuCategoryEdit();
+ return;
+ }
+
// Custom
if ($this->section === 'custom') {
$this->ensureValidDestLanguage();
@@ -174,7 +181,7 @@ class Page_Translation extends Page
return;
}
- $this->redirect();
+ $this->redirect(1);
}
private function showListOfModules()
@@ -212,6 +219,8 @@ class Page_Translation extends Page
$this->showModuleMessages();
// Other/hardcoded strings
$this->showModuleStrings();
+ // Menu categories
+ $this->showModuleMenuCategories();
// Module specific
$this->showModuleCustom();
Render::closeTag('div');
@@ -285,6 +294,23 @@ class Page_Translation extends Page
}
Render::addTemplate('string-list', $data);
}
+
+ private function showModuleMenuCategories()
+ {
+ $moduleTags = $this->loadUsedMenuCategories();
+ $data = array('module' => $this->module->getIdentifier());
+ $data['tagcount'] = count($moduleTags);
+ foreach (Dictionary::getLanguages(true) as $lang) {
+ list($missing, $unused) = $this->getModuleTranslationStatus($lang['cc'], 'menucategory', true, $moduleTags);
+ $data['langs'][] = array(
+ 'cc' => $lang['cc'],
+ 'name' => $lang['name'],
+ 'missing' => $missing,
+ 'unused' => $unused
+ );
+ }
+ Render::addTemplate('menu-category-list', $data);
+ }
private function showModuleCustom()
{
@@ -352,6 +378,17 @@ class Page_Translation extends Page
));
}
+ private function showMenuCategoryEdit()
+ {
+ Render::addTemplate('edit', array(
+ 'destlang' => $this->destLang,
+ 'language' => Dictionary::getLanguageName($this->destLang),
+ 'tags' => $this->loadMenuCategoryEditArray(),
+ 'module' => $this->module->getIdentifier(),
+ 'section' => $this->section
+ ));
+ }
+
private function showCustomEdit()
{
Render::addTemplate('edit', array(
@@ -453,6 +490,23 @@ class Page_Translation extends Page
}
return $tags;
}
+
+ private function loadUsedMenuCategories($module = false)
+ {
+ if ($module === false) {
+ $module = $this->module;
+ }
+ $skip = strlen($module->getIdentifier()) + 1;
+ $match = $module->getIdentifier() . '.';
+ $want = array();
+ foreach (Module::getAll() as $module) {
+ $cat = $module->getCategory();
+ if (is_string($cat) && substr($cat, 0, $skip) === $match) {
+ $want[substr($cat, $skip)] = true;
+ }
+ }
+ return $want;
+ }
private function loadUsedCustomTags($subsection)
{
@@ -657,6 +711,13 @@ class Page_Translation extends Page
$table = $this->buildTranslationTable('module', array_keys($tags), true);
return $table;
}
+
+ private function loadMenuCategoryEditArray()
+ {
+ $tags = $this->loadUsedMenuCategories();
+ $table = $this->buildTranslationTable('categories', array_keys($tags), true);
+ return $table;
+ }
/**
* Get array to pass to edit page with all the message ids.
@@ -865,6 +926,9 @@ class Page_Translation extends Page
if ($this->section === 'module') {
return $prefix . '/module.json';
}
+ if ($this->section === 'menucategory') {
+ return $prefix . '/categories.json';
+ }
// Custom submodule
if ($this->section === 'custom') {
if ($this->customHandler === false || !isset($this->customHandler['subsections'])) {
diff --git a/modules-available/translation/templates/menu-category-list.html b/modules-available/translation/templates/menu-category-list.html
new file mode 100644
index 00000000..4a0df819
--- /dev/null
+++ b/modules-available/translation/templates/menu-category-list.html
@@ -0,0 +1,23 @@
+
+
+
+ {{lang_menuCategories}}
+
+
+
+
+ {{#langs}}
+
{{name}} »
+
+ {{lang_missing}}: {{missing}}
+ {{lang_unused}}: {{unused}}
+
+ {{/langs}}
+
+
+ {{lang_tags}}: {{tagcount}}
+
+
+
+
+
\ No newline at end of file
--
cgit v1.2.3-55-g7522
From 1692a395d90e5ff4c9b826ab2b126b9572f05cd9 Mon Sep 17 00:00:00 2001
From: Simon Rettberg
Date: Tue, 14 Jun 2016 16:13:27 +0200
Subject: [citymanagement] Create new menu categories in cities module (mostly
as an example)
---
modules-available/citymanagement/config.json | 2 +-
modules-available/citymanagement/lang/de/categories.json | 3 +++
modules-available/citymanagement/lang/en/categories.json | 3 +++
3 files changed, 7 insertions(+), 1 deletion(-)
create mode 100644 modules-available/citymanagement/lang/de/categories.json
create mode 100644 modules-available/citymanagement/lang/en/categories.json
(limited to 'modules-available')
diff --git a/modules-available/citymanagement/config.json b/modules-available/citymanagement/config.json
index 2eb2d680..e87cbf7d 100644
--- a/modules-available/citymanagement/config.json
+++ b/modules-available/citymanagement/config.json
@@ -1,4 +1,4 @@
{
- "category":"main.settings-server",
+ "category":"citymanagement.cities",
"permission":"0"
}
diff --git a/modules-available/citymanagement/lang/de/categories.json b/modules-available/citymanagement/lang/de/categories.json
new file mode 100644
index 00000000..0c348a06
--- /dev/null
+++ b/modules-available/citymanagement/lang/de/categories.json
@@ -0,0 +1,3 @@
+{
+ "cities": "St\u00e4dte"
+}
\ No newline at end of file
diff --git a/modules-available/citymanagement/lang/en/categories.json b/modules-available/citymanagement/lang/en/categories.json
new file mode 100644
index 00000000..2233db93
--- /dev/null
+++ b/modules-available/citymanagement/lang/en/categories.json
@@ -0,0 +1,3 @@
+{
+ "cities": "Cities"
+}
\ No newline at end of file
--
cgit v1.2.3-55-g7522
From 326fef724effa79b4a1900f7a155163f9cf50b7e Mon Sep 17 00:00:00 2001
From: Simon Rettberg
Date: Tue, 14 Jun 2016 17:50:56 +0200
Subject: [bootstrap_switch] New module for bootstrap-switch plugin
---
modules-available/bootstrap_switch/README | 19 ++++++++++++++++
modules-available/bootstrap_switch/clientscript.js | 25 ++++++++++++++++++++++
modules-available/bootstrap_switch/config.json | 1 +
modules-available/bootstrap_switch/style.css | 22 +++++++++++++++++++
4 files changed, 67 insertions(+)
create mode 100644 modules-available/bootstrap_switch/README
create mode 100644 modules-available/bootstrap_switch/clientscript.js
create mode 100644 modules-available/bootstrap_switch/config.json
create mode 100644 modules-available/bootstrap_switch/style.css
(limited to 'modules-available')
diff --git a/modules-available/bootstrap_switch/README b/modules-available/bootstrap_switch/README
new file mode 100644
index 00000000..405ce13a
--- /dev/null
+++ b/modules-available/bootstrap_switch/README
@@ -0,0 +1,19 @@
+This is basically just bootstrap-switch (js + css), with
+the addition of these three lines in the .js file:
+
+// SLX-Admin: Enable for class bs-switch
+$.fn.bootstrapSwitch.defaults.size = 'mini';
+$("input.bs-switch").bootstrapSwitch();
+
+
+This makes sure any checkboxes or radio buttons with the
+class "bs-switch" will automatically be turned into
+bootstrap switches.
+
+To apply bootstrap-switch to your checkboxes you need to
+a) give them the class bs-switch
+b) either make bootstrap_switch a dependency of your module (config.json)
+ or, as a "soft dependency", just call
+ Module::isAvailable('boostrap_switch')
+ somewhere in your code. If bootstrap_switch is not activated, your
+ page will still load and show old fashioned checkboxes
\ No newline at end of file
diff --git a/modules-available/bootstrap_switch/clientscript.js b/modules-available/bootstrap_switch/clientscript.js
new file mode 100644
index 00000000..43259451
--- /dev/null
+++ b/modules-available/bootstrap_switch/clientscript.js
@@ -0,0 +1,25 @@
+/* ========================================================================
+ * bootstrap-switch - v3.3.2
+ * http://www.bootstrap-switch.org
+ * ========================================================================
+ * Copyright 2012-2013 Mattia Larentis
+ *
+ * ========================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================================
+ */
+
+(function(){var t=[].slice;!function(e,i){"use strict";var n;return n=function(){function t(t,i){null==i&&(i={}),this.$element=e(t),this.options=e.extend({},e.fn.bootstrapSwitch.defaults,{state:this.$element.is(":checked"),size:this.$element.data("size"),animate:this.$element.data("animate"),disabled:this.$element.is(":disabled"),readonly:this.$element.is("[readonly]"),indeterminate:this.$element.data("indeterminate"),inverse:this.$element.data("inverse"),radioAllOff:this.$element.data("radio-all-off"),onColor:this.$element.data("on-color"),offColor:this.$element.data("off-color"),onText:this.$element.data("on-text"),offText:this.$element.data("off-text"),labelText:this.$element.data("label-text"),handleWidth:this.$element.data("handle-width"),labelWidth:this.$element.data("label-width"),baseClass:this.$element.data("base-class"),wrapperClass:this.$element.data("wrapper-class")},i),this.prevOptions={},this.$wrapper=e("
",{"class":function(t){return function(){var e;return e=[""+t.options.baseClass].concat(t._getClasses(t.options.wrapperClass)),e.push(t.options.state?t.options.baseClass+"-on":t.options.baseClass+"-off"),null!=t.options.size&&e.push(t.options.baseClass+"-"+t.options.size),t.options.disabled&&e.push(t.options.baseClass+"-disabled"),t.options.readonly&&e.push(t.options.baseClass+"-readonly"),t.options.indeterminate&&e.push(t.options.baseClass+"-indeterminate"),t.options.inverse&&e.push(t.options.baseClass+"-inverse"),t.$element.attr("id")&&e.push(t.options.baseClass+"-id-"+t.$element.attr("id")),e.join(" ")}}(this)()}),this.$container=e("
",{"class":this.options.baseClass+"-container"}),this.$on=e("
",{html:this.options.onText,"class":this.options.baseClass+"-handle-on "+this.options.baseClass+"-"+this.options.onColor}),this.$off=e("",{html:this.options.offText,"class":this.options.baseClass+"-handle-off "+this.options.baseClass+"-"+this.options.offColor}),this.$label=e("",{html:this.options.labelText,"class":this.options.baseClass+"-label"}),this.$element.on("init.bootstrapSwitch",function(e){return function(){return e.options.onInit.apply(t,arguments)}}(this)),this.$element.on("switchChange.bootstrapSwitch",function(i){return function(n){return!1===i.options.onSwitchChange.apply(t,arguments)?i.$element.is(":radio")?e("[name='"+i.$element.attr("name")+"']").trigger("previousState.bootstrapSwitch",!0):i.$element.trigger("previousState.bootstrapSwitch",!0):void 0}}(this)),this.$container=this.$element.wrap(this.$container).parent(),this.$wrapper=this.$container.wrap(this.$wrapper).parent(),this.$element.before(this.options.inverse?this.$off:this.$on).before(this.$label).before(this.options.inverse?this.$on:this.$off),this.options.indeterminate&&this.$element.prop("indeterminate",!0),this._init(),this._elementHandlers(),this._handleHandlers(),this._labelHandlers(),this._formHandler(),this._externalLabelHandler(),this.$element.trigger("init.bootstrapSwitch",this.options.state)}return t.prototype._constructor=t,t.prototype.setPrevOptions=function(){return this.prevOptions=e.extend(!0,{},this.options)},t.prototype.state=function(t,i){return"undefined"==typeof t?this.options.state:this.options.disabled||this.options.readonly?this.$element:this.options.state&&!this.options.radioAllOff&&this.$element.is(":radio")?this.$element:(this.$element.is(":radio")?e("[name='"+this.$element.attr("name")+"']").trigger("setPreviousOptions.bootstrapSwitch"):this.$element.trigger("setPreviousOptions.bootstrapSwitch"),this.options.indeterminate&&this.indeterminate(!1),t=!!t,this.$element.prop("checked",t).trigger("change.bootstrapSwitch",i),this.$element)},t.prototype.toggleState=function(t){return this.options.disabled||this.options.readonly?this.$element:this.options.indeterminate?(this.indeterminate(!1),this.state(!0)):this.$element.prop("checked",!this.options.state).trigger("change.bootstrapSwitch",t)},t.prototype.size=function(t){return"undefined"==typeof t?this.options.size:(null!=this.options.size&&this.$wrapper.removeClass(this.options.baseClass+"-"+this.options.size),t&&this.$wrapper.addClass(this.options.baseClass+"-"+t),this._width(),this._containerPosition(),this.options.size=t,this.$element)},t.prototype.animate=function(t){return"undefined"==typeof t?this.options.animate:(t=!!t,t===this.options.animate?this.$element:this.toggleAnimate())},t.prototype.toggleAnimate=function(){return this.options.animate=!this.options.animate,this.$wrapper.toggleClass(this.options.baseClass+"-animate"),this.$element},t.prototype.disabled=function(t){return"undefined"==typeof t?this.options.disabled:(t=!!t,t===this.options.disabled?this.$element:this.toggleDisabled())},t.prototype.toggleDisabled=function(){return this.options.disabled=!this.options.disabled,this.$element.prop("disabled",this.options.disabled),this.$wrapper.toggleClass(this.options.baseClass+"-disabled"),this.$element},t.prototype.readonly=function(t){return"undefined"==typeof t?this.options.readonly:(t=!!t,t===this.options.readonly?this.$element:this.toggleReadonly())},t.prototype.toggleReadonly=function(){return this.options.readonly=!this.options.readonly,this.$element.prop("readonly",this.options.readonly),this.$wrapper.toggleClass(this.options.baseClass+"-readonly"),this.$element},t.prototype.indeterminate=function(t){return"undefined"==typeof t?this.options.indeterminate:(t=!!t,t===this.options.indeterminate?this.$element:this.toggleIndeterminate())},t.prototype.toggleIndeterminate=function(){return this.options.indeterminate=!this.options.indeterminate,this.$element.prop("indeterminate",this.options.indeterminate),this.$wrapper.toggleClass(this.options.baseClass+"-indeterminate"),this._containerPosition(),this.$element},t.prototype.inverse=function(t){return"undefined"==typeof t?this.options.inverse:(t=!!t,t===this.options.inverse?this.$element:this.toggleInverse())},t.prototype.toggleInverse=function(){var t,e;return this.$wrapper.toggleClass(this.options.baseClass+"-inverse"),e=this.$on.clone(!0),t=this.$off.clone(!0),this.$on.replaceWith(t),this.$off.replaceWith(e),this.$on=t,this.$off=e,this.options.inverse=!this.options.inverse,this.$element},t.prototype.onColor=function(t){var e;return e=this.options.onColor,"undefined"==typeof t?e:(null!=e&&this.$on.removeClass(this.options.baseClass+"-"+e),this.$on.addClass(this.options.baseClass+"-"+t),this.options.onColor=t,this.$element)},t.prototype.offColor=function(t){var e;return e=this.options.offColor,"undefined"==typeof t?e:(null!=e&&this.$off.removeClass(this.options.baseClass+"-"+e),this.$off.addClass(this.options.baseClass+"-"+t),this.options.offColor=t,this.$element)},t.prototype.onText=function(t){return"undefined"==typeof t?this.options.onText:(this.$on.html(t),this._width(),this._containerPosition(),this.options.onText=t,this.$element)},t.prototype.offText=function(t){return"undefined"==typeof t?this.options.offText:(this.$off.html(t),this._width(),this._containerPosition(),this.options.offText=t,this.$element)},t.prototype.labelText=function(t){return"undefined"==typeof t?this.options.labelText:(this.$label.html(t),this._width(),this.options.labelText=t,this.$element)},t.prototype.handleWidth=function(t){return"undefined"==typeof t?this.options.handleWidth:(this.options.handleWidth=t,this._width(),this._containerPosition(),this.$element)},t.prototype.labelWidth=function(t){return"undefined"==typeof t?this.options.labelWidth:(this.options.labelWidth=t,this._width(),this._containerPosition(),this.$element)},t.prototype.baseClass=function(t){return this.options.baseClass},t.prototype.wrapperClass=function(t){return"undefined"==typeof t?this.options.wrapperClass:(t||(t=e.fn.bootstrapSwitch.defaults.wrapperClass),this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(" ")),this.$wrapper.addClass(this._getClasses(t).join(" ")),this.options.wrapperClass=t,this.$element)},t.prototype.radioAllOff=function(t){return"undefined"==typeof t?this.options.radioAllOff:(t=!!t,t===this.options.radioAllOff?this.$element:(this.options.radioAllOff=t,this.$element))},t.prototype.onInit=function(t){return"undefined"==typeof t?this.options.onInit:(t||(t=e.fn.bootstrapSwitch.defaults.onInit),this.options.onInit=t,this.$element)},t.prototype.onSwitchChange=function(t){return"undefined"==typeof t?this.options.onSwitchChange:(t||(t=e.fn.bootstrapSwitch.defaults.onSwitchChange),this.options.onSwitchChange=t,this.$element)},t.prototype.destroy=function(){var t;return t=this.$element.closest("form"),t.length&&t.off("reset.bootstrapSwitch").removeData("bootstrap-switch"),this.$container.children().not(this.$element).remove(),this.$element.unwrap().unwrap().off(".bootstrapSwitch").removeData("bootstrap-switch"),this.$element},t.prototype._width=function(){var t,e;return t=this.$on.add(this.$off),t.add(this.$label).css("width",""),e="auto"===this.options.handleWidth?Math.max(this.$on.width(),this.$off.width()):this.options.handleWidth,t.width(e),this.$label.width(function(t){return function(i,n){return"auto"!==t.options.labelWidth?t.options.labelWidth:e>n?e:n}}(this)),this._handleWidth=this.$on.outerWidth(),this._labelWidth=this.$label.outerWidth(),this.$container.width(2*this._handleWidth+this._labelWidth),this.$wrapper.width(this._handleWidth+this._labelWidth)},t.prototype._containerPosition=function(t,e){return null==t&&(t=this.options.state),this.$container.css("margin-left",function(e){return function(){var i;return i=[0,"-"+e._handleWidth+"px"],e.options.indeterminate?"-"+e._handleWidth/2+"px":t?e.options.inverse?i[1]:i[0]:e.options.inverse?i[0]:i[1]}}(this)),e?setTimeout(function(){return e()},50):void 0},t.prototype._init=function(){var t,e;return t=function(t){return function(){return t.setPrevOptions(),t._width(),t._containerPosition(null,function(){return t.options.animate?t.$wrapper.addClass(t.options.baseClass+"-animate"):void 0})}}(this),this.$wrapper.is(":visible")?t():e=i.setInterval(function(n){return function(){return n.$wrapper.is(":visible")?(t(),i.clearInterval(e)):void 0}}(this),50)},t.prototype._elementHandlers=function(){return this.$element.on({"setPreviousOptions.bootstrapSwitch":function(t){return function(e){return t.setPrevOptions()}}(this),"previousState.bootstrapSwitch":function(t){return function(e){return t.options=t.prevOptions,t.options.indeterminate&&t.$wrapper.addClass(t.options.baseClass+"-indeterminate"),t.$element.prop("checked",t.options.state).trigger("change.bootstrapSwitch",!0)}}(this),"change.bootstrapSwitch":function(t){return function(i,n){var o;return i.preventDefault(),i.stopImmediatePropagation(),o=t.$element.is(":checked"),t._containerPosition(o),o!==t.options.state?(t.options.state=o,t.$wrapper.toggleClass(t.options.baseClass+"-off").toggleClass(t.options.baseClass+"-on"),n?void 0:(t.$element.is(":radio")&&e("[name='"+t.$element.attr("name")+"']").not(t.$element).prop("checked",!1).trigger("change.bootstrapSwitch",!0),t.$element.trigger("switchChange.bootstrapSwitch",[o]))):void 0}}(this),"focus.bootstrapSwitch":function(t){return function(e){return e.preventDefault(),t.$wrapper.addClass(t.options.baseClass+"-focused")}}(this),"blur.bootstrapSwitch":function(t){return function(e){return e.preventDefault(),t.$wrapper.removeClass(t.options.baseClass+"-focused")}}(this),"keydown.bootstrapSwitch":function(t){return function(e){if(e.which&&!t.options.disabled&&!t.options.readonly)switch(e.which){case 37:return e.preventDefault(),e.stopImmediatePropagation(),t.state(!1);case 39:return e.preventDefault(),e.stopImmediatePropagation(),t.state(!0)}}}(this)})},t.prototype._handleHandlers=function(){return this.$on.on("click.bootstrapSwitch",function(t){return function(e){return e.preventDefault(),e.stopPropagation(),t.state(!1),t.$element.trigger("focus.bootstrapSwitch")}}(this)),this.$off.on("click.bootstrapSwitch",function(t){return function(e){return e.preventDefault(),e.stopPropagation(),t.state(!0),t.$element.trigger("focus.bootstrapSwitch")}}(this))},t.prototype._labelHandlers=function(){return this.$label.on({click:function(t){return t.stopPropagation()},"mousedown.bootstrapSwitch touchstart.bootstrapSwitch":function(t){return function(e){return t._dragStart||t.options.disabled||t.options.readonly?void 0:(e.preventDefault(),e.stopPropagation(),t._dragStart=(e.pageX||e.originalEvent.touches[0].pageX)-parseInt(t.$container.css("margin-left"),10),t.options.animate&&t.$wrapper.removeClass(t.options.baseClass+"-animate"),t.$element.trigger("focus.bootstrapSwitch"))}}(this),"mousemove.bootstrapSwitch touchmove.bootstrapSwitch":function(t){return function(e){var i;if(null!=t._dragStart&&(e.preventDefault(),i=(e.pageX||e.originalEvent.touches[0].pageX)-t._dragStart,!(i<-t._handleWidth||i>0)))return t._dragEnd=i,t.$container.css("margin-left",t._dragEnd+"px")}}(this),"mouseup.bootstrapSwitch touchend.bootstrapSwitch":function(t){return function(e){var i;if(t._dragStart)return e.preventDefault(),t.options.animate&&t.$wrapper.addClass(t.options.baseClass+"-animate"),t._dragEnd?(i=t._dragEnd>-(t._handleWidth/2),t._dragEnd=!1,t.state(t.options.inverse?!i:i)):t.state(!t.options.state),t._dragStart=!1}}(this),"mouseleave.bootstrapSwitch":function(t){return function(e){return t.$label.trigger("mouseup.bootstrapSwitch")}}(this)})},t.prototype._externalLabelHandler=function(){var t;return t=this.$element.closest("label"),t.on("click",function(e){return function(i){return i.preventDefault(),i.stopImmediatePropagation(),i.target===t[0]?e.toggleState():void 0}}(this))},t.prototype._formHandler=function(){var t;return t=this.$element.closest("form"),t.data("bootstrap-switch")?void 0:t.on("reset.bootstrapSwitch",function(){return i.setTimeout(function(){return t.find("input").filter(function(){return e(this).data("bootstrap-switch")}).each(function(){return e(this).bootstrapSwitch("state",this.checked)})},1)}).data("bootstrap-switch",!0)},t.prototype._getClasses=function(t){var i,n,o,s;if(!e.isArray(t))return[this.options.baseClass+"-"+t];for(n=[],o=0,s=t.length;s>o;o++)i=t[o],n.push(this.options.baseClass+"-"+i);return n},t}(),e.fn.bootstrapSwitch=function(){var i,o,s;return o=arguments[0],i=2<=arguments.length?t.call(arguments,1):[],s=this,this.each(function(){var t,a;return t=e(this),a=t.data("bootstrap-switch"),a||t.data("bootstrap-switch",a=new n(this,o)),"string"==typeof o?s=a[o].apply(a,i):void 0}),s},e.fn.bootstrapSwitch.Constructor=n,e.fn.bootstrapSwitch.defaults={state:!0,size:null,animate:!0,disabled:!1,readonly:!1,indeterminate:!1,inverse:!1,radioAllOff:!1,onColor:"primary",offColor:"default",onText:"ON",offText:"OFF",labelText:" ",handleWidth:"auto",labelWidth:"auto",baseClass:"bootstrap-switch",wrapperClass:"wrapper",onInit:function(){},onSwitchChange:function(){}}}(window.jQuery,window)}).call(this);
+// SLX-Admin: Enable for class bs-switch
+$.fn.bootstrapSwitch.defaults.size = 'mini';
+$("input.bs-switch").bootstrapSwitch();
\ No newline at end of file
diff --git a/modules-available/bootstrap_switch/config.json b/modules-available/bootstrap_switch/config.json
new file mode 100644
index 00000000..9e26dfee
--- /dev/null
+++ b/modules-available/bootstrap_switch/config.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/modules-available/bootstrap_switch/style.css b/modules-available/bootstrap_switch/style.css
new file mode 100644
index 00000000..c63cfe2f
--- /dev/null
+++ b/modules-available/bootstrap_switch/style.css
@@ -0,0 +1,22 @@
+/* ========================================================================
+ * bootstrap-switch - v3.3.2
+ * http://www.bootstrap-switch.org
+ * ========================================================================
+ * Copyright 2012-2013 Mattia Larentis
+ *
+ * ========================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================================
+ */
+
+.bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;border-radius:4px;border:1px solid #ccc;position:relative;text-align:left;overflow:hidden;line-height:8px;z-index:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch .bootstrap-switch-container{display:inline-block;top:0;border-radius:4px;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block!important;height:100%;padding:6px 12px;font-size:14px;line-height:20px}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on{text-align:center;z-index:1}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background:#337ab7}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;background:#5bc0de}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;background:#5cb85c}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{background:#f0ad4e;color:#fff}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;background:#d9534f}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#000;background:#eee}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;color:#333;background:#fff}.bootstrap-switch .bootstrap-switch-handle-on{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch .bootstrap-switch-handle-off{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch input[type=radio],.bootstrap-switch input[type=checkbox]{position:absolute!important;top:0;left:0;margin:0;z-index:-1;opacity:0;filter:alpha(opacity=0)}.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label{padding:1px 5px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{padding:5px 10px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label{padding:6px 16px;font-size:18px;line-height:1.3333333}.bootstrap-switch.bootstrap-switch-disabled,.bootstrap-switch.bootstrap-switch-indeterminate,.bootstrap-switch.bootstrap-switch-readonly{cursor:default!important}.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label{opacity:.5;filter:alpha(opacity=50);cursor:default!important}.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container{-webkit-transition:margin-left .5s;-o-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on{border-radius:0 3px 3px 0}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off{border-radius:3px 0 0 3px}.bootstrap-switch.bootstrap-switch-focused{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label{border-bottom-left-radius:3px;border-top-left-radius:3px}
\ No newline at end of file
--
cgit v1.2.3-55-g7522
From 3b5497dcabe52ff99e787979e39acb734012e041 Mon Sep 17 00:00:00 2001
From: Simon Rettberg
Date: Tue, 14 Jun 2016 17:51:17 +0200
Subject: [baseconfig] Use bootstap-switch for checkboxes
---
modules-available/baseconfig/page.inc.php | 1 +
modules-available/baseconfig/templates/_page.html | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
(limited to 'modules-available')
diff --git a/modules-available/baseconfig/page.inc.php b/modules-available/baseconfig/page.inc.php
index 6f3ed806..056dbab1 100644
--- a/modules-available/baseconfig/page.inc.php
+++ b/modules-available/baseconfig/page.inc.php
@@ -193,6 +193,7 @@ class Page_BaseConfig extends Page
'categories' => array_values($settings),
'target_module' => $this->targetModule,
) + $this->qry_extra);
+ Module::isAvailable('bootstrap_switch');
}
private function getCurrentModuleName()
diff --git a/modules-available/baseconfig/templates/_page.html b/modules-available/baseconfig/templates/_page.html
index 5c89213f..4d4c05aa 100644
--- a/modules-available/baseconfig/templates/_page.html
+++ b/modules-available/baseconfig/templates/_page.html
@@ -29,10 +29,10 @@
{{defaultvalue}}
- {{lang_settingActive}}
+ {{lang_settingActive}}
{{/override}}
{{#override}}
- {{lang_enableOverride}}
+ {{lang_enableOverride}}
{{/override}}
--
cgit v1.2.3-55-g7522
From 2180db9debec5ad86dd2d089be7ece80bee064a0 Mon Sep 17 00:00:00 2001
From: Simon Rettberg
Date: Wed, 15 Jun 2016 15:09:21 +0200
Subject: [sysconfignew] Move css from global file to module specific one
---
modules-available/sysconfignew/style.css | 59 +++++++++++++++++++++++++
style/default.css | 74 --------------------------------
2 files changed, 59 insertions(+), 74 deletions(-)
create mode 100644 modules-available/sysconfignew/style.css
(limited to 'modules-available')
diff --git a/modules-available/sysconfignew/style.css b/modules-available/sysconfignew/style.css
new file mode 100644
index 00000000..43f708d1
--- /dev/null
+++ b/modules-available/sysconfignew/style.css
@@ -0,0 +1,59 @@
+.mod-nav {
+ width: 250px;
+ float: left;
+ margin-right: 4px;
+ border-right: solid 1px #DDD;
+ padding: 4px;
+ height: 545px;
+ overflow: auto;
+}
+
+.item {
+ padding: 4px;
+ margin: 3px 0;
+ border-radius: 3px;
+}
+
+.item:HOVER {
+ background-color: #EEE;
+ cursor: pointer;
+}
+
+.item-link {
+ color: #5893C6;
+}
+
+.item-lock {
+ color: #939393;
+}
+
+.dir-icon {
+ color: #2E6DA4;
+}
+
+.folder {
+ padding-left: 16px;
+ display: none;
+ border-left: dashed 1px #CCC;
+}
+
+#editor-header{
+ display: block;
+ float: none;
+ width: 875px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.mod-editor{
+ display: block;
+ float: none;
+ resize: none;
+ width: 875px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+
+textarea.form-control .editor-box{
+ height: 520px;
+}
diff --git a/style/default.css b/style/default.css
index bf1834d6..ab9eca08 100644
--- a/style/default.css
+++ b/style/default.css
@@ -478,77 +478,3 @@ li.slx-submenu a {
nav.navbar.sidebar {
color: #eee;
}
-
-/*
- * Sysconfig Module Editor
- */
-
-.mod-nav {
- width: 250px;
- float: left;
- margin-right: 4px;
- border-right: solid 1px #DDD;
- padding: 4px;
- height: 545px;
- overflow: auto;
-}
-
-.item {
- padding: 4px;
- margin: 3px 0;
- border-radius: 3px;
-}
-
-.item:HOVER {
- background-color: #EEE;
- cursor: pointer;
-}
-
-.item-link {
- color: #5893C6;
-}
-
-.item-lock {
- color: #939393;
-}
-
-.dir-icon {
- color: #2E6DA4;
-}
-
-.folder {
- padding-left: 16px;
- display: none;
- border-left: dashed 1px #CCC;
-}
-
-#editor-header{
- display: block;
- float: none;
- width: 875px;
- border-bottom-right-radius: 0;
- border-bottom-left-radius: 0;
-}
-
-.mod-editor{
- display: block;
- float: none;
- resize: none;
- width: 875px;
- border-top-right-radius: 0;
- border-top-left-radius: 0;
-}
-
-.slx-cfg-toggle > input[type=checkbox] ~ label {
- font-weight: normal;
-}
-
-.slx-cfg-toggle > input[type=checkbox]:checked ~ label {
- font-weight: bold;
-}
-
-/* what's this?
-textarea.form-control .editor-box{
- height: 520px;
-}
-*/
--
cgit v1.2.3-55-g7522