]> git.mxchange.org Git - friendica.git/commitdiff
Frio: implent switcher element
authorrabuzarus <>
Tue, 3 Jan 2017 16:33:01 +0000 (17:33 +0100)
committerrabuzarus <>
Tue, 3 Jan 2017 16:33:01 +0000 (17:33 +0100)
19 files changed:
view/theme/frio/css/style.css
view/theme/frio/frameworks/bootstrap-toggle/Gruntfile.js [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/LICENSE [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/README.md [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/bower.json [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.css [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.min.css [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap2-toggle.css [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap2-toggle.min.css [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap-toggle.js [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap-toggle.min.js [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap-toggle.min.js.map [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap2-toggle.js [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap2-toggle.min.js [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap2-toggle.min.js.map [new file with mode: 0644]
view/theme/frio/frameworks/bootstrap-toggle/package.json [new file with mode: 0644]
view/theme/frio/js/theme.js
view/theme/frio/templates/field_yesno.tpl [new file with mode: 0644]
view/theme/frio/templates/head.tpl

index 6f1fcf74adaea7c1975f4e7deba924b7ccd50f23..74eb25d08b321890d267c0bd88f7ce2ced59e507 100644 (file)
@@ -169,6 +169,10 @@ a#item-delete-selected {
     line-height: 1.5;
     border-radius: 3px;
 }
+.btn-xs {
+    padding: 1px 5px;
+    font-size: 12px;
+}
 .btn-primary {
     background: $nav_bg;
     color: $btn_primary_color !important;
@@ -191,7 +195,6 @@ a#item-delete-selected {
 }
 
 .btn-link {
-/*    color: #6fdbe8;*/
     color: $link_color;
 }
 .btn-link:focus, .btn-link:hover {
@@ -220,20 +223,49 @@ a#item-delete-selected {
 }*/
 
 .btn-main {
-    /*background: #6fdbe8;*/
     background: $link_color;
     color: #fff!important;
 }
 .btn-main:hover, .btn-main:focus {
-    /*background: #59d6e4!important;*/
     background: $link_hover_color !important;
     text-decoration: none;
 }
 .btn-main:active, .btn-main.active {
     outline: 0;
-    /*background: #59d6e4;*/
     background: $link_hover_color;
 }
+.toggle.btn {
+    border: 1px solid transparent;
+}
+.toggle.btn-xs {
+    min-width: 45px;
+}
+.toggle.off {
+    border-color: #ccc;
+}
+.toggle .toggle-off,
+.toggle .toggle-off:hover {
+    color: #ccc;
+    background-color: #eee;
+    box-shadow: none;
+}
+.toggle.off .toggle-handle {
+    background-color: #eee;
+}
+.toggle-handle {
+    background-color: #fff;
+    border-width: 0 1px;
+    border: 1px solid transparent;
+    border-color: #ccc;
+}
+.field.yesno:hover .toggle {
+    border-color: $link_hover_color;
+    transition: all 0.25s ease-in-out;
+}
+.field.yesno:hover .toggle-handle {
+    background-color: #fff;
+    transition: all 0.25s ease-in-out;
+}
 
 .form-control-sm, .input-group-sm>.form-control, .input-group-sm>.input-group-addon, .input-group-sm>.input-group-btn>.btn {
     padding: .275rem .75rem;
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/Gruntfile.js b/view/theme/frio/frameworks/bootstrap-toggle/Gruntfile.js
new file mode 100644 (file)
index 0000000..9ac6fc5
--- /dev/null
@@ -0,0 +1,37 @@
+module.exports = function(grunt) {
+       'use strict';
+
+       grunt.initConfig({
+               clean: ['dist'],
+               uglify: {
+                       options: {
+                               preserveComments: 'some',
+                               sourceMap: true
+                       },
+                       build: {
+                               expand: true,
+                               cwd: 'js',
+                               src: ['**/*.js', ['!**/*.min.js']],
+                               dest: 'js',
+                               ext: '.min.js',
+                       }
+               },
+               cssmin: {
+                       options: {
+                               keepBreaks: true
+                       },
+                       build: {
+                               expand: true,
+                               cwd: 'css',
+                               src: ['**/*.css', ['!**/*.min.css']],
+                               dest: 'css',
+                               ext: '.min.css',
+                       }
+               }
+       });
+       grunt.loadNpmTasks('grunt-contrib-clean');
+       grunt.loadNpmTasks('grunt-contrib-uglify');
+       grunt.loadNpmTasks('grunt-contrib-cssmin');
+       grunt.registerTask('default', ['clean', 'uglify', 'cssmin']);
+
+};
\ No newline at end of file
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/LICENSE b/view/theme/frio/frameworks/bootstrap-toggle/LICENSE
new file mode 100644 (file)
index 0000000..88bb5ab
--- /dev/null
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2011-2014 Min Hur, The New York Times Company
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/README.md b/view/theme/frio/frameworks/bootstrap-toggle/README.md
new file mode 100644 (file)
index 0000000..301ff03
--- /dev/null
@@ -0,0 +1,175 @@
+# Bootstrap Toggle
+Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles.
+
+Visit http://www.bootstraptoggle.com for demos.
+
+## Getting Started
+
+### Installation
+You can [download](https://github.com/minhur/bootstrap-toggle/archive/master.zip) the latest version of Bootstrap Toggle or use CDN to load the library.
+
+`Warning` If you are using Bootstrap v2.3.2, use `bootstrap2-toggle.min.js` and `bootstrap2-toggle.min.css` instead.
+
+```html
+<link href="https://gitcdn.github.io/bootstrap-toggle/2.2.2/css/bootstrap-toggle.min.css" rel="stylesheet">
+<script src="https://gitcdn.github.io/bootstrap-toggle/2.2.2/js/bootstrap-toggle.min.js"></script>
+```
+
+### Bower Install
+```bash
+bower install bootstrap-toggle
+```
+
+## Usage
+
+### Basic example
+Simply add `data-toggle="toggle"` to convert checkboxes into toggles.
+
+```html
+<input type="checkbox" checked data-toggle="toggle">
+```
+
+### Stacked checkboxes
+Refer to Bootstrap Form Controls documentation to create stacked checkboxes. Simply add `data-toggle="toggle"` to convert checkboxes into toggles.
+
+```html
+<div class="checkbox">
+  <label>
+    <input type="checkbox" data-toggle="toggle">
+    Option one is enabled
+  </label>
+</div>
+<div class="checkbox disabled">
+  <label>
+    <input type="checkbox" disabled data-toggle="toggle">
+    Option two is disabled
+  </label>
+</div>
+```
+
+### Inline Checkboxes
+Refer to Bootstrap Form Controls documentation to create inline checkboxes. Simply add `data-toggle="toggle"` to a convert checkboxes into toggles.
+
+```html
+<label class="checkbox-inline">
+  <input type="checkbox" checked data-toggle="toggle"> First
+</label>
+<label class="checkbox-inline">
+  <input type="checkbox" data-toggle="toggle"> Second
+</label>
+<label class="checkbox-inline">
+  <input type="checkbox" data-toggle="toggle"> Third
+</label>
+```
+
+## API
+
+### Initialize by JavaScript
+Initialize toggles with id `toggle-one` with a single line of JavaScript.
+
+```html
+<input id="toggle-one" checked type="checkbox">
+<script>
+  $(function() {
+    $('#toggle-one').bootstrapToggle();
+  })
+</script>
+```
+
+### Options
+Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`, as in `data-on="Enabled"`.
+
+```html
+<input type="checkbox" data-toggle="toggle" data-on="Enabled" data-off="Disabled">
+<input type="checkbox" id="toggle-two">
+<script>
+  $(function() {
+    $('#toggle-two').bootstrapToggle({
+      on: 'Enabled',
+      off: 'Disabled'
+    });
+  })
+</script>
+```
+
+Name|Type|Default|Description|
+---|---|---|---
+on|string/html|"On"|Text of the on toggle
+off|string/html|"Off"|Text of the off toggle
+size|string|"normal"|Size of the toggle. Possible values are `large`, `normal`, `small`, `mini`.
+onstyle|string|"primary"|Style of the on toggle. Possible values are `default`, `primary`, `success`, `info`, `warning`, `danger`
+offstyle|string|"default"|Style of the off toggle. Possible values are `default`, `primary`, `success`, `info`, `warning`, `danger`
+style|string| |Appends the value to the class attribute of the toggle. This can be used to apply custom styles. Refer to Custom Styles for reference.
+width|integer|*null*|Sets the width of the toggle. if set to *null*, width will be calculated.
+height|integer|*null*|Sets the height of the toggle. if set to *null*, height will be calculated.
+
+### Methods
+Methods can be used to control toggles directly.
+
+```html
+<input id="toggle-demo" type="checkbox" data-toggle="toggle">
+```
+
+Method|Example|Description
+---|---|---
+initialize|$('#toggle-demo').bootstrapToggle()|Initializes the toggle plugin with options
+destroy|$('#toggle-demo').bootstrapToggle('destroy')|Destroys the toggle
+on|$('#toggle-demo').bootstrapToggle('on')|Sets the toggle to 'On' state
+off|$('#toggle-demo').bootstrapToggle('off')|Sets the toggle to 'Off' state
+toggle|$('#toggle-demo').bootstrapToggle('toggle')|Toggles the state of the toggle
+enable|$('#toggle-demo').bootstrapToggle('enable')|Enables the toggle
+disable|$('#toggle-demo').bootstrapToggle('disable')|Disables the toggle
+
+## Events
+
+### Event Propagation
+Note All events are propagated to and from input element to the toggle.
+
+You should listen to events from the `<input type="checkbox">` directly rather than look for custom events.
+
+```html
+<input id="toggle-event" type="checkbox" data-toggle="toggle">
+<div id="console-event"></div>
+<script>
+  $(function() {
+    $('#toggle-event').change(function() {
+      $('#console-event').html('Toggle: ' + $(this).prop('checked'))
+    })
+  })
+</script>
+```
+
+### API vs Input
+This also means that using the API or Input to trigger events will work both ways.
+
+```html
+<input id="toggle-trigger" type="checkbox" data-toggle="toggle">
+<button class="btn btn-success" onclick="toggleOn()">On by API</button>
+<button class="btn btn-danger" onclick="toggleOff()">Off by API</button>
+<button class="btn btn-success" onclick="toggleOnByInput()">On by Input</button>
+<button class="btn btn-danger" onclick="toggleOffByInput()">Off by Input</button>
+<script>
+  function toggleOn() {
+    $('#toggle-trigger').bootstrapToggle('on')
+  }
+  function toggleOff() {
+    $('#toggle-trigger').bootstrapToggle('off')  
+  }
+  function toggleOnByInput() {
+    $('#toggle-trigger').prop('checked', true).change()
+  }
+  function toggleOffByInput() {
+    $('#toggle-trigger').prop('checked', false).change()
+  }
+</script>
+```
+
+### Integration
+
+#### [KnockoutJS](http://knockoutjs.com)
+
+A binding for knockout is available here: [aAXEe/knockout-bootstrap-toggle](https://github.com/aAXEe/knockout-bootstrap-toggle)
+
+## Demos
+
+Visit http://www.bootstraptoggle.com for demos.
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/bower.json b/view/theme/frio/frameworks/bootstrap-toggle/bower.json
new file mode 100644 (file)
index 0000000..9d941df
--- /dev/null
@@ -0,0 +1,32 @@
+{
+  "name": "bootstrap-toggle",
+  "description": "Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles",
+  "version": "2.2.1",
+  "keywords": [
+    "bootstrap",
+    "toggle",
+    "bootstrap-toggle",
+    "switch",
+    "bootstrap-switch"
+  ],
+  "homepage": "http://www.bootstraptoggle.com",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/minhur/bootstrap-toggle.git"
+  },
+  "license": "MIT",
+  "authors": [
+    "Min Hur <min.hur@gmail.com>"
+  ],
+  "main": [
+    "./js/bootstrap-toggle.min.js",
+    "./css/bootstrap-toggle.min.css"
+  ],
+  "ignore": [
+    "**/.*",
+    "node_modules",
+    "bower_components",
+    "test",
+    "tests"
+  ]
+}
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.css b/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.css
new file mode 100644 (file)
index 0000000..057d08b
--- /dev/null
@@ -0,0 +1,83 @@
+/*! ========================================================================
+ * Bootstrap Toggle: bootstrap-toggle.css v2.2.0
+ * http://www.bootstraptoggle.com
+ * ========================================================================
+ * Copyright 2014 Min Hur, The New York Times Company
+ * Licensed under MIT
+ * ======================================================================== */
+
+
+.checkbox label .toggle,
+.checkbox-inline .toggle {
+       margin-left: -20px;
+       margin-right: 5px;
+}
+
+.toggle {
+       position: relative;
+       overflow: hidden;
+}
+.toggle input[type="checkbox"] {
+       display: none;
+}
+.toggle-group {
+       position: absolute;
+       width: 200%;
+       top: 0;
+       bottom: 0;
+       left: 0;
+       transition: left 0.35s;
+       -webkit-transition: left 0.35s;
+       -moz-user-select: none;
+       -webkit-user-select: none;
+}
+.toggle.off .toggle-group {
+       left: -100%;
+}
+.toggle-on {
+       position: absolute;
+       top: 0;
+       bottom: 0;
+       left: 0;
+       right: 50%;
+       margin: 0;
+       border: 0;
+       border-radius: 0;
+}
+.toggle-off {
+       position: absolute;
+       top: 0;
+       bottom: 0;
+       left: 50%;
+       right: 0;
+       margin: 0;
+       border: 0;
+       border-radius: 0;
+}
+.toggle-handle {
+       position: relative;
+       margin: 0 auto;
+       padding-top: 0px;
+       padding-bottom: 0px;
+       height: 100%;
+       width: 0px;
+       border-width: 0 1px;
+}
+
+.toggle.btn { min-width: 59px; min-height: 34px; }
+.toggle-on.btn { padding-right: 24px; }
+.toggle-off.btn { padding-left: 24px; }
+
+.toggle.btn-lg { min-width: 79px; min-height: 45px; }
+.toggle-on.btn-lg { padding-right: 31px; }
+.toggle-off.btn-lg { padding-left: 31px; }
+.toggle-handle.btn-lg { width: 40px; }
+
+.toggle.btn-sm { min-width: 50px; min-height: 30px;}
+.toggle-on.btn-sm { padding-right: 20px; }
+.toggle-off.btn-sm { padding-left: 20px; }
+
+.toggle.btn-xs { min-width: 35px; min-height: 22px;}
+.toggle-on.btn-xs { padding-right: 12px; }
+.toggle-off.btn-xs { padding-left: 12px; }
+
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.min.css b/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.min.css
new file mode 100644 (file)
index 0000000..0d42ed0
--- /dev/null
@@ -0,0 +1,28 @@
+/*! ========================================================================
+ * Bootstrap Toggle: bootstrap-toggle.css v2.2.0
+ * http://www.bootstraptoggle.com
+ * ========================================================================
+ * Copyright 2014 Min Hur, The New York Times Company
+ * Licensed under MIT
+ * ======================================================================== */
+.checkbox label .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px}
+.toggle{position:relative;overflow:hidden}
+.toggle input[type=checkbox]{display:none}
+.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none}
+.toggle.off .toggle-group{left:-100%}
+.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}
+.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0}
+.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px}
+.toggle.btn{min-width:59px;min-height:34px}
+.toggle-on.btn{padding-right:24px}
+.toggle-off.btn{padding-left:24px}
+.toggle.btn-lg{min-width:79px;min-height:45px}
+.toggle-on.btn-lg{padding-right:31px}
+.toggle-off.btn-lg{padding-left:31px}
+.toggle-handle.btn-lg{width:40px}
+.toggle.btn-sm{min-width:50px;min-height:30px}
+.toggle-on.btn-sm{padding-right:20px}
+.toggle-off.btn-sm{padding-left:20px}
+.toggle.btn-xs{min-width:35px;min-height:22px}
+.toggle-on.btn-xs{padding-right:12px}
+.toggle-off.btn-xs{padding-left:12px}
\ No newline at end of file
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap2-toggle.css b/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap2-toggle.css
new file mode 100644 (file)
index 0000000..3f48927
--- /dev/null
@@ -0,0 +1,85 @@
+/*! ========================================================================
+ * Bootstrap Toggle: bootstrap2-toggle.css v2.2.0
+ * http://www.bootstraptoggle.com
+ * ========================================================================
+ * Copyright 2014 Min Hur, The New York Times Company
+ * Licensed under MIT
+ * ======================================================================== */
+
+
+label.checkbox .toggle,
+label.checkbox.inline .toggle {
+       margin-left: -20px;
+       margin-right: 5px;
+}
+.toggle {
+       min-width: 40px;
+       height: 20px;
+       position: relative;
+       overflow: hidden;
+}
+.toggle input[type="checkbox"] {
+       display: none;
+}
+.toggle-group {
+       position: absolute;
+       width: 200%;
+       top: 0;
+       bottom: 0;
+       left: 0;
+       transition: left 0.35s;
+       -webkit-transition: left 0.35s;
+       -moz-user-select: none;
+       -webkit-user-select: none;
+}
+.toggle.off .toggle-group {
+       left: -100%;
+}
+.toggle-on {
+       position: absolute;
+       top: 0;
+       bottom: 0;
+       left: 0;
+       right: 50%;
+       margin: 0;
+       border: 0;
+       border-radius: 0;
+}
+.toggle-off {
+       position: absolute;
+       top: 0;
+       bottom: 0;
+       left: 50%;
+       right: 0;
+       margin: 0;
+       border: 0;
+       border-radius: 0;
+}
+.toggle-handle {
+       position: relative;
+       margin: 0 auto;
+       padding-top: 0px;
+       padding-bottom: 0px;
+       height: 100%;
+       width: 0px;
+       border-width: 0 1px;
+}
+.toggle-handle.btn-mini {
+       top: -1px;
+}
+.toggle.btn { min-width: 30px; }
+.toggle-on.btn { padding-right: 24px; }
+.toggle-off.btn { padding-left: 24px; }
+
+.toggle.btn-large { min-width: 40px; }
+.toggle-on.btn-large { padding-right: 35px; }
+.toggle-off.btn-large { padding-left: 35px; }
+
+.toggle.btn-small { min-width: 25px; }
+.toggle-on.btn-small { padding-right: 20px; }
+.toggle-off.btn-small { padding-left: 20px; }
+
+.toggle.btn-mini { min-width: 20px; }
+.toggle-on.btn-mini { padding-right: 12px; }
+.toggle-off.btn-mini { padding-left: 12px; }
+
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap2-toggle.min.css b/view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap2-toggle.min.css
new file mode 100644 (file)
index 0000000..1509c57
--- /dev/null
@@ -0,0 +1,28 @@
+/*! ========================================================================
+ * Bootstrap Toggle: bootstrap2-toggle.css v2.2.0
+ * http://www.bootstraptoggle.com
+ * ========================================================================
+ * Copyright 2014 Min Hur, The New York Times Company
+ * Licensed under MIT
+ * ======================================================================== */
+label.checkbox .toggle,label.checkbox.inline .toggle{margin-left:-20px;margin-right:5px}
+.toggle{min-width:40px;height:20px;position:relative;overflow:hidden}
+.toggle input[type=checkbox]{display:none}
+.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none}
+.toggle.off .toggle-group{left:-100%}
+.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}
+.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0}
+.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px}
+.toggle-handle.btn-mini{top:-1px}
+.toggle.btn{min-width:30px}
+.toggle-on.btn{padding-right:24px}
+.toggle-off.btn{padding-left:24px}
+.toggle.btn-large{min-width:40px}
+.toggle-on.btn-large{padding-right:35px}
+.toggle-off.btn-large{padding-left:35px}
+.toggle.btn-small{min-width:25px}
+.toggle-on.btn-small{padding-right:20px}
+.toggle-off.btn-small{padding-left:20px}
+.toggle.btn-mini{min-width:20px}
+.toggle-on.btn-mini{padding-right:12px}
+.toggle-off.btn-mini{padding-left:12px}
\ No newline at end of file
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap-toggle.js b/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap-toggle.js
new file mode 100644 (file)
index 0000000..533914e
--- /dev/null
@@ -0,0 +1,180 @@
+/*! ========================================================================
+ * Bootstrap Toggle: bootstrap-toggle.js v2.2.0
+ * http://www.bootstraptoggle.com
+ * ========================================================================
+ * Copyright 2014 Min Hur, The New York Times Company
+ * Licensed under MIT
+ * ======================================================================== */
+
+
+ +function ($) {
+       'use strict';
+
+       // TOGGLE PUBLIC CLASS DEFINITION
+       // ==============================
+
+       var Toggle = function (element, options) {
+               this.$element  = $(element)
+               this.options   = $.extend({}, this.defaults(), options)
+               this.render()
+       }
+
+       Toggle.VERSION  = '2.2.0'
+
+       Toggle.DEFAULTS = {
+               on: 'On',
+               off: 'Off',
+               onstyle: 'primary',
+               offstyle: 'default',
+               size: 'normal',
+               style: '',
+               width: null,
+               height: null
+       }
+
+       Toggle.prototype.defaults = function() {
+               return {
+                       on: this.$element.attr('data-on') || Toggle.DEFAULTS.on,
+                       off: this.$element.attr('data-off') || Toggle.DEFAULTS.off,
+                       onstyle: this.$element.attr('data-onstyle') || Toggle.DEFAULTS.onstyle,
+                       offstyle: this.$element.attr('data-offstyle') || Toggle.DEFAULTS.offstyle,
+                       size: this.$element.attr('data-size') || Toggle.DEFAULTS.size,
+                       style: this.$element.attr('data-style') || Toggle.DEFAULTS.style,
+                       width: this.$element.attr('data-width') || Toggle.DEFAULTS.width,
+                       height: this.$element.attr('data-height') || Toggle.DEFAULTS.height
+               }
+       }
+
+       Toggle.prototype.render = function () {
+               this._onstyle = 'btn-' + this.options.onstyle
+               this._offstyle = 'btn-' + this.options.offstyle
+               var size = this.options.size === 'large' ? 'btn-lg'
+                       : this.options.size === 'small' ? 'btn-sm'
+                       : this.options.size === 'mini' ? 'btn-xs'
+                       : ''
+               var $toggleOn = $('<label class="btn">').html(this.options.on)
+                       .addClass(this._onstyle + ' ' + size)
+               var $toggleOff = $('<label class="btn">').html(this.options.off)
+                       .addClass(this._offstyle + ' ' + size + ' active')
+               var $toggleHandle = $('<span class="toggle-handle btn btn-default">')
+                       .addClass(size)
+               var $toggleGroup = $('<div class="toggle-group">')
+                       .append($toggleOn, $toggleOff, $toggleHandle)
+               var $toggle = $('<div class="toggle btn" data-toggle="toggle">')
+                       .addClass( this.$element.prop('checked') ? this._onstyle : this._offstyle+' off' )
+                       .addClass(size).addClass(this.options.style)
+
+               this.$element.wrap($toggle)
+               $.extend(this, {
+                       $toggle: this.$element.parent(),
+                       $toggleOn: $toggleOn,
+                       $toggleOff: $toggleOff,
+                       $toggleGroup: $toggleGroup
+               })
+               this.$toggle.append($toggleGroup)
+
+               var width = this.options.width || Math.max($toggleOn.outerWidth(), $toggleOff.outerWidth())+($toggleHandle.outerWidth()/2)
+               var height = this.options.height || Math.max($toggleOn.outerHeight(), $toggleOff.outerHeight())
+               $toggleOn.addClass('toggle-on')
+               $toggleOff.addClass('toggle-off')
+               this.$toggle.css({ width: width, height: height })
+               if (this.options.height) {
+                       $toggleOn.css('line-height', $toggleOn.height() + 'px')
+                       $toggleOff.css('line-height', $toggleOff.height() + 'px')
+               }
+               this.update(true)
+               this.trigger(true)
+       }
+
+       Toggle.prototype.toggle = function () {
+               if (this.$element.prop('checked')) this.off()
+               else this.on()
+       }
+
+       Toggle.prototype.on = function (silent) {
+               if (this.$element.prop('disabled')) return false
+               this.$toggle.removeClass(this._offstyle + ' off').addClass(this._onstyle)
+               this.$element.prop('checked', true)
+               if (!silent) this.trigger()
+       }
+
+       Toggle.prototype.off = function (silent) {
+               if (this.$element.prop('disabled')) return false
+               this.$toggle.removeClass(this._onstyle).addClass(this._offstyle + ' off')
+               this.$element.prop('checked', false)
+               if (!silent) this.trigger()
+       }
+
+       Toggle.prototype.enable = function () {
+               this.$toggle.removeAttr('disabled')
+               this.$element.prop('disabled', false)
+       }
+
+       Toggle.prototype.disable = function () {
+               this.$toggle.attr('disabled', 'disabled')
+               this.$element.prop('disabled', true)
+       }
+
+       Toggle.prototype.update = function (silent) {
+               if (this.$element.prop('disabled')) this.disable()
+               else this.enable()
+               if (this.$element.prop('checked')) this.on(silent)
+               else this.off(silent)
+       }
+
+       Toggle.prototype.trigger = function (silent) {
+               this.$element.off('change.bs.toggle')
+               if (!silent) this.$element.change()
+               this.$element.on('change.bs.toggle', $.proxy(function() {
+                       this.update()
+               }, this))
+       }
+
+       Toggle.prototype.destroy = function() {
+               this.$element.off('change.bs.toggle')
+               this.$toggleGroup.remove()
+               this.$element.removeData('bs.toggle')
+               this.$element.unwrap()
+       }
+
+       // TOGGLE PLUGIN DEFINITION
+       // ========================
+
+       function Plugin(option) {
+               return this.each(function () {
+                       var $this   = $(this)
+                       var data    = $this.data('bs.toggle')
+                       var options = typeof option == 'object' && option
+
+                       if (!data) $this.data('bs.toggle', (data = new Toggle(this, options)))
+                       if (typeof option == 'string' && data[option]) data[option]()
+               })
+       }
+
+       var old = $.fn.bootstrapToggle
+
+       $.fn.bootstrapToggle             = Plugin
+       $.fn.bootstrapToggle.Constructor = Toggle
+
+       // TOGGLE NO CONFLICT
+       // ==================
+
+       $.fn.toggle.noConflict = function () {
+               $.fn.bootstrapToggle = old
+               return this
+       }
+
+       // TOGGLE DATA-API
+       // ===============
+
+       $(function() {
+               $('input[type=checkbox][data-toggle^=toggle]').bootstrapToggle()
+       })
+
+       $(document).on('click.bs.toggle', 'div[data-toggle^=toggle]', function(e) {
+               var $checkbox = $(this).find('input[type=checkbox]')
+               $checkbox.bootstrapToggle('toggle')
+               e.preventDefault()
+       })
+
+}(jQuery);
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap-toggle.min.js b/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap-toggle.min.js
new file mode 100644 (file)
index 0000000..3711320
--- /dev/null
@@ -0,0 +1,9 @@
+/*! ========================================================================
+ * Bootstrap Toggle: bootstrap-toggle.js v2.2.0
+ * http://www.bootstraptoggle.com
+ * ========================================================================
+ * Copyright 2014 Min Hur, The New York Times Company
+ * Licensed under MIT
+ * ======================================================================== */
++function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.toggle"),f="object"==typeof b&&b;e||d.data("bs.toggle",e=new c(this,f)),"string"==typeof b&&e[b]&&e[b]()})}var c=function(b,c){this.$element=a(b),this.options=a.extend({},this.defaults(),c),this.render()};c.VERSION="2.2.0",c.DEFAULTS={on:"On",off:"Off",onstyle:"primary",offstyle:"default",size:"normal",style:"",width:null,height:null},c.prototype.defaults=function(){return{on:this.$element.attr("data-on")||c.DEFAULTS.on,off:this.$element.attr("data-off")||c.DEFAULTS.off,onstyle:this.$element.attr("data-onstyle")||c.DEFAULTS.onstyle,offstyle:this.$element.attr("data-offstyle")||c.DEFAULTS.offstyle,size:this.$element.attr("data-size")||c.DEFAULTS.size,style:this.$element.attr("data-style")||c.DEFAULTS.style,width:this.$element.attr("data-width")||c.DEFAULTS.width,height:this.$element.attr("data-height")||c.DEFAULTS.height}},c.prototype.render=function(){this._onstyle="btn-"+this.options.onstyle,this._offstyle="btn-"+this.options.offstyle;var b="large"===this.options.size?"btn-lg":"small"===this.options.size?"btn-sm":"mini"===this.options.size?"btn-xs":"",c=a('<label class="btn">').html(this.options.on).addClass(this._onstyle+" "+b),d=a('<label class="btn">').html(this.options.off).addClass(this._offstyle+" "+b+" active"),e=a('<span class="toggle-handle btn btn-default">').addClass(b),f=a('<div class="toggle-group">').append(c,d,e),g=a('<div class="toggle btn" data-toggle="toggle">').addClass(this.$element.prop("checked")?this._onstyle:this._offstyle+" off").addClass(b).addClass(this.options.style);this.$element.wrap(g),a.extend(this,{$toggle:this.$element.parent(),$toggleOn:c,$toggleOff:d,$toggleGroup:f}),this.$toggle.append(f);var h=this.options.width||Math.max(c.outerWidth(),d.outerWidth())+e.outerWidth()/2,i=this.options.height||Math.max(c.outerHeight(),d.outerHeight());c.addClass("toggle-on"),d.addClass("toggle-off"),this.$toggle.css({width:h,height:i}),this.options.height&&(c.css("line-height",c.height()+"px"),d.css("line-height",d.height()+"px")),this.update(!0),this.trigger(!0)},c.prototype.toggle=function(){this.$element.prop("checked")?this.off():this.on()},c.prototype.on=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._offstyle+" off").addClass(this._onstyle),this.$element.prop("checked",!0),void(a||this.trigger()))},c.prototype.off=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._onstyle).addClass(this._offstyle+" off"),this.$element.prop("checked",!1),void(a||this.trigger()))},c.prototype.enable=function(){this.$toggle.removeAttr("disabled"),this.$element.prop("disabled",!1)},c.prototype.disable=function(){this.$toggle.attr("disabled","disabled"),this.$element.prop("disabled",!0)},c.prototype.update=function(a){this.$element.prop("disabled")?this.disable():this.enable(),this.$element.prop("checked")?this.on(a):this.off(a)},c.prototype.trigger=function(b){this.$element.off("change.bs.toggle"),b||this.$element.change(),this.$element.on("change.bs.toggle",a.proxy(function(){this.update()},this))},c.prototype.destroy=function(){this.$element.off("change.bs.toggle"),this.$toggleGroup.remove(),this.$element.removeData("bs.toggle"),this.$element.unwrap()};var d=a.fn.bootstrapToggle;a.fn.bootstrapToggle=b,a.fn.bootstrapToggle.Constructor=c,a.fn.toggle.noConflict=function(){return a.fn.bootstrapToggle=d,this},a(function(){a("input[type=checkbox][data-toggle^=toggle]").bootstrapToggle()}),a(document).on("click.bs.toggle","div[data-toggle^=toggle]",function(b){var c=a(this).find("input[type=checkbox]");c.bootstrapToggle("toggle"),b.preventDefault()})}(jQuery);
+//# sourceMappingURL=bootstrap-toggle.min.js.map
\ No newline at end of file
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap-toggle.min.js.map b/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap-toggle.min.js.map
new file mode 100644 (file)
index 0000000..ac388af
--- /dev/null
@@ -0,0 +1 @@
+{"version":3,"file":"bootstrap-toggle.min.js","sources":["bootstrap-toggle.js"],"names":["$","Plugin","option","this","each","$this","data","options","Toggle","element","$element","extend","defaults","render","VERSION","DEFAULTS","on","off","onstyle","offstyle","size","style","width","height","prototype","attr","_onstyle","_offstyle","$toggleOn","html","addClass","$toggleOff","$toggleHandle","$toggleGroup","append","$toggle","prop","wrap","parent","Math","max","outerWidth","outerHeight","css","update","trigger","toggle","silent","removeClass","enable","removeAttr","disable","change","proxy","destroy","remove","removeData","unwrap","old","fn","bootstrapToggle","Constructor","noConflict","document","e","$checkbox","find","preventDefault","jQuery"],"mappings":"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"}
\ No newline at end of file
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap2-toggle.js b/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap2-toggle.js
new file mode 100644 (file)
index 0000000..93a541c
--- /dev/null
@@ -0,0 +1,180 @@
+/*! ========================================================================
+ * Bootstrap Toggle: bootstrap2-toggle.js v2.2.0
+ * http://www.bootstraptoggle.com
+ * ========================================================================
+ * Copyright 2014 Min Hur, The New York Times Company
+ * Licensed under MIT
+ * ======================================================================== */
+
+
+ +function ($) {
+       'use strict';
+
+       // TOGGLE PUBLIC CLASS DEFINITION
+       // ==============================
+
+       var Toggle = function (element, options) {
+               this.$element  = $(element)
+               this.options   = $.extend({}, this.defaults(), options)
+               this.render()
+       }
+
+       Toggle.VERSION  = '2.2.0'
+
+       Toggle.DEFAULTS = {
+               on: 'On',
+               off: 'Off',
+               onstyle: 'primary',
+               offstyle: 'default',
+               size: 'normal',
+               style: '',
+               width: null,
+               height: null
+       }
+
+       Toggle.prototype.defaults = function() {
+               return {
+                       on: this.$element.attr('data-on') || Toggle.DEFAULTS.on,
+                       off: this.$element.attr('data-off') || Toggle.DEFAULTS.off,
+                       onstyle: this.$element.attr('data-onstyle') || Toggle.DEFAULTS.onstyle,
+                       offstyle: this.$element.attr('data-offstyle') || Toggle.DEFAULTS.offstyle,
+                       size: this.$element.attr('data-size') || Toggle.DEFAULTS.size,
+                       style: this.$element.attr('data-style') || Toggle.DEFAULTS.style,
+                       width: this.$element.attr('data-width') || Toggle.DEFAULTS.width,
+                       height: this.$element.attr('data-height') || Toggle.DEFAULTS.height
+               }
+       }
+
+       Toggle.prototype.render = function () {
+               this._onstyle = 'btn-' + this.options.onstyle
+               this._offstyle = 'btn-' + this.options.offstyle
+               var size = this.options.size === 'large' ? 'btn-large'
+                       : this.options.size === 'small' ? 'btn-small'
+                       : this.options.size === 'mini' ? 'btn-mini'
+                       : ''
+               var $toggleOn = $('<label class="btn">').html(this.options.on)
+                       .addClass(this._onstyle + ' ' + size)
+               var $toggleOff = $('<label class="btn">').html(this.options.off)
+                       .addClass(this._offstyle + ' ' + size + ' active')
+               var $toggleHandle = $('<span class="toggle-handle btn btn-default">')
+                       .addClass(size)
+               var $toggleGroup = $('<div class="toggle-group">')
+                       .append($toggleOn, $toggleOff, $toggleHandle)
+               var $toggle = $('<div class="toggle btn" data-toggle="toggle">')
+                       .addClass( this.$element.prop('checked') ? this._onstyle : this._offstyle+' off' )
+                       .addClass(size).addClass(this.options.style)
+
+               this.$element.wrap($toggle)
+               $.extend(this, {
+                       $toggle: this.$element.parent(),
+                       $toggleOn: $toggleOn,
+                       $toggleOff: $toggleOff,
+                       $toggleGroup: $toggleGroup
+               })
+               this.$toggle.append($toggleGroup)
+
+               var width = this.options.width || Math.max($toggleOn.width(), $toggleOff.width())+($toggleHandle.outerWidth()/2)
+               var height = this.options.height || Math.max($toggleOn.height(), $toggleOff.height())
+               $toggleOn.addClass('toggle-on')
+               $toggleOff.addClass('toggle-off')
+               this.$toggle.css({ width: width, height: height })
+               if (this.options.height) {
+                       $toggleOn.css('line-height', $toggleOn.height() + 'px')
+                       $toggleOff.css('line-height', $toggleOff.height() + 'px')
+               }
+               this.update(true)
+               this.trigger(true)
+       }
+
+       Toggle.prototype.toggle = function () {
+               if (this.$element.prop('checked')) this.off()
+               else this.on()
+       }
+
+       Toggle.prototype.on = function (silent) {
+               if (this.$element.prop('disabled')) return false
+               this.$toggle.removeClass(this._offstyle + ' off').addClass(this._onstyle)
+               this.$element.prop('checked', true)
+               if (!silent) this.trigger()
+       }
+
+       Toggle.prototype.off = function (silent) {
+               if (this.$element.prop('disabled')) return false
+               this.$toggle.removeClass(this._onstyle).addClass(this._offstyle + ' off')
+               this.$element.prop('checked', false)
+               if (!silent) this.trigger()
+       }
+
+       Toggle.prototype.enable = function () {
+               this.$toggle.removeAttr('disabled')
+               this.$element.prop('disabled', false)
+       }
+
+       Toggle.prototype.disable = function () {
+               this.$toggle.attr('disabled', 'disabled')
+               this.$element.prop('disabled', true)
+       }
+
+       Toggle.prototype.update = function (silent) {
+               if (this.$element.prop('disabled')) this.disable()
+               else this.enable()
+               if (this.$element.prop('checked')) this.on(silent)
+               else this.off(silent)
+       }
+
+       Toggle.prototype.trigger = function (silent) {
+               this.$element.off('change.bs.toggle')
+               if (!silent) this.$element.change()
+               this.$element.on('change.bs.toggle', $.proxy(function() {
+                       this.update()
+               }, this))
+       }
+
+       Toggle.prototype.destroy = function() {
+               this.$element.off('change.bs.toggle')
+               this.$toggleGroup.remove()
+               this.$element.removeData('bs.toggle')
+               this.$element.unwrap()
+       }
+
+       // TOGGLE PLUGIN DEFINITION
+       // ========================
+
+       function Plugin(option) {
+               return this.each(function () {
+                       var $this   = $(this)
+                       var data    = $this.data('bs.toggle')
+                       var options = typeof option == 'object' && option
+
+                       if (!data) $this.data('bs.toggle', (data = new Toggle(this, options)))
+                       if (typeof option == 'string' && data[option]) data[option]()
+               })
+       }
+
+       var old = $.fn.bootstrapToggle
+
+       $.fn.bootstrapToggle             = Plugin
+       $.fn.bootstrapToggle.Constructor = Toggle
+
+       // TOGGLE NO CONFLICT
+       // ==================
+
+       $.fn.toggle.noConflict = function () {
+               $.fn.bootstrapToggle = old
+               return this
+       }
+
+       // TOGGLE DATA-API
+       // ===============
+
+       $(function() {
+               $('input[type=checkbox][data-toggle^=toggle]').bootstrapToggle()
+       })
+
+       $(document).on('click.bs.toggle', 'div[data-toggle^=toggle]', function(e) {
+               var $checkbox = $(this).find('input[type=checkbox]')
+               $checkbox.bootstrapToggle('toggle')
+               e.preventDefault()
+       })
+
+}(jQuery);
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap2-toggle.min.js b/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap2-toggle.min.js
new file mode 100644 (file)
index 0000000..2aa60aa
--- /dev/null
@@ -0,0 +1,9 @@
+/*! ========================================================================
+ * Bootstrap Toggle: bootstrap2-toggle.js v2.2.0
+ * http://www.bootstraptoggle.com
+ * ========================================================================
+ * Copyright 2014 Min Hur, The New York Times Company
+ * Licensed under MIT
+ * ======================================================================== */
++function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.toggle"),f="object"==typeof b&&b;e||d.data("bs.toggle",e=new c(this,f)),"string"==typeof b&&e[b]&&e[b]()})}var c=function(b,c){this.$element=a(b),this.options=a.extend({},this.defaults(),c),this.render()};c.VERSION="2.2.0",c.DEFAULTS={on:"On",off:"Off",onstyle:"primary",offstyle:"default",size:"normal",style:"",width:null,height:null},c.prototype.defaults=function(){return{on:this.$element.attr("data-on")||c.DEFAULTS.on,off:this.$element.attr("data-off")||c.DEFAULTS.off,onstyle:this.$element.attr("data-onstyle")||c.DEFAULTS.onstyle,offstyle:this.$element.attr("data-offstyle")||c.DEFAULTS.offstyle,size:this.$element.attr("data-size")||c.DEFAULTS.size,style:this.$element.attr("data-style")||c.DEFAULTS.style,width:this.$element.attr("data-width")||c.DEFAULTS.width,height:this.$element.attr("data-height")||c.DEFAULTS.height}},c.prototype.render=function(){this._onstyle="btn-"+this.options.onstyle,this._offstyle="btn-"+this.options.offstyle;var b="large"===this.options.size?"btn-large":"small"===this.options.size?"btn-small":"mini"===this.options.size?"btn-mini":"",c=a('<label class="btn">').html(this.options.on).addClass(this._onstyle+" "+b),d=a('<label class="btn">').html(this.options.off).addClass(this._offstyle+" "+b+" active"),e=a('<span class="toggle-handle btn btn-default">').addClass(b),f=a('<div class="toggle-group">').append(c,d,e),g=a('<div class="toggle btn" data-toggle="toggle">').addClass(this.$element.prop("checked")?this._onstyle:this._offstyle+" off").addClass(b).addClass(this.options.style);this.$element.wrap(g),a.extend(this,{$toggle:this.$element.parent(),$toggleOn:c,$toggleOff:d,$toggleGroup:f}),this.$toggle.append(f);var h=this.options.width||Math.max(c.width(),d.width())+e.outerWidth()/2,i=this.options.height||Math.max(c.height(),d.height());c.addClass("toggle-on"),d.addClass("toggle-off"),this.$toggle.css({width:h,height:i}),this.options.height&&(c.css("line-height",c.height()+"px"),d.css("line-height",d.height()+"px")),this.update(!0),this.trigger(!0)},c.prototype.toggle=function(){this.$element.prop("checked")?this.off():this.on()},c.prototype.on=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._offstyle+" off").addClass(this._onstyle),this.$element.prop("checked",!0),void(a||this.trigger()))},c.prototype.off=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._onstyle).addClass(this._offstyle+" off"),this.$element.prop("checked",!1),void(a||this.trigger()))},c.prototype.enable=function(){this.$toggle.removeAttr("disabled"),this.$element.prop("disabled",!1)},c.prototype.disable=function(){this.$toggle.attr("disabled","disabled"),this.$element.prop("disabled",!0)},c.prototype.update=function(a){this.$element.prop("disabled")?this.disable():this.enable(),this.$element.prop("checked")?this.on(a):this.off(a)},c.prototype.trigger=function(b){this.$element.off("change.bs.toggle"),b||this.$element.change(),this.$element.on("change.bs.toggle",a.proxy(function(){this.update()},this))},c.prototype.destroy=function(){this.$element.off("change.bs.toggle"),this.$toggleGroup.remove(),this.$element.removeData("bs.toggle"),this.$element.unwrap()};var d=a.fn.bootstrapToggle;a.fn.bootstrapToggle=b,a.fn.bootstrapToggle.Constructor=c,a.fn.toggle.noConflict=function(){return a.fn.bootstrapToggle=d,this},a(function(){a("input[type=checkbox][data-toggle^=toggle]").bootstrapToggle()}),a(document).on("click.bs.toggle","div[data-toggle^=toggle]",function(b){var c=a(this).find("input[type=checkbox]");c.bootstrapToggle("toggle"),b.preventDefault()})}(jQuery);
+//# sourceMappingURL=bootstrap2-toggle.min.js.map
\ No newline at end of file
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap2-toggle.min.js.map b/view/theme/frio/frameworks/bootstrap-toggle/js/bootstrap2-toggle.min.js.map
new file mode 100644 (file)
index 0000000..9160909
--- /dev/null
@@ -0,0 +1 @@
+{"version":3,"file":"bootstrap2-toggle.min.js","sources":["bootstrap2-toggle.js"],"names":["$","Plugin","option","this","each","$this","data","options","Toggle","element","$element","extend","defaults","render","VERSION","DEFAULTS","on","off","onstyle","offstyle","size","style","width","height","prototype","attr","_onstyle","_offstyle","$toggleOn","html","addClass","$toggleOff","$toggleHandle","$toggleGroup","append","$toggle","prop","wrap","parent","Math","max","outerWidth","css","update","trigger","toggle","silent","removeClass","enable","removeAttr","disable","change","proxy","destroy","remove","removeData","unwrap","old","fn","bootstrapToggle","Constructor","noConflict","document","e","$checkbox","find","preventDefault","jQuery"],"mappings":";;;;;;;CASE,SAAUA,GACV,YAoID,SAASC,GAAOC,GACf,MAAOC,MAAKC,KAAK,WAChB,GAAIC,GAAUL,EAAEG,MACZG,EAAUD,EAAMC,KAAK,aACrBC,EAA2B,gBAAVL,IAAsBA,CAEtCI,IAAMD,EAAMC,KAAK,YAAcA,EAAO,GAAIE,GAAOL,KAAMI,IACvC,gBAAVL,IAAsBI,EAAKJ,IAASI,EAAKJ,OAtItD,GAAIM,GAAS,SAAUC,EAASF,GAC/BJ,KAAKO,SAAYV,EAAES,GACnBN,KAAKI,QAAYP,EAAEW,UAAWR,KAAKS,WAAYL,GAC/CJ,KAAKU,SAGNL,GAAOM,QAAW,QAElBN,EAAOO,UACNC,GAAI,KACJC,IAAK,MACLC,QAAS,UACTC,SAAU,UACVC,KAAM,SACNC,MAAO,GACPC,MAAO,KACPC,OAAQ,MAGTf,EAAOgB,UAAUZ,SAAW,WAC3B,OACCI,GAAIb,KAAKO,SAASe,KAAK,YAAcjB,EAAOO,SAASC,GACrDC,IAAKd,KAAKO,SAASe,KAAK,aAAejB,EAAOO,SAASE,IACvDC,QAASf,KAAKO,SAASe,KAAK,iBAAmBjB,EAAOO,SAASG,QAC/DC,SAAUhB,KAAKO,SAASe,KAAK,kBAAoBjB,EAAOO,SAASI,SACjEC,KAAMjB,KAAKO,SAASe,KAAK,cAAgBjB,EAAOO,SAASK,KACzDC,MAAOlB,KAAKO,SAASe,KAAK,eAAiBjB,EAAOO,SAASM,MAC3DC,MAAOnB,KAAKO,SAASe,KAAK,eAAiBjB,EAAOO,SAASO,MAC3DC,OAAQpB,KAAKO,SAASe,KAAK,gBAAkBjB,EAAOO,SAASQ,SAI/Df,EAAOgB,UAAUX,OAAS,WACzBV,KAAKuB,SAAW,OAASvB,KAAKI,QAAQW,QACtCf,KAAKwB,UAAY,OAASxB,KAAKI,QAAQY,QACvC,IAAIC,GAA6B,UAAtBjB,KAAKI,QAAQa,KAAmB,YAClB,UAAtBjB,KAAKI,QAAQa,KAAmB,YACV,SAAtBjB,KAAKI,QAAQa,KAAkB,WAC/B,GACCQ,EAAY5B,EAAE,uBAAuB6B,KAAK1B,KAAKI,QAAQS,IACzDc,SAAS3B,KAAKuB,SAAW,IAAMN,GAC7BW,EAAa/B,EAAE,uBAAuB6B,KAAK1B,KAAKI,QAAQU,KAC1Da,SAAS3B,KAAKwB,UAAY,IAAMP,EAAO,WACrCY,EAAgBhC,EAAE,gDACpB8B,SAASV,GACPa,EAAejC,EAAE,8BACnBkC,OAAON,EAAWG,EAAYC,GAC5BG,EAAUnC,EAAE,iDACd8B,SAAU3B,KAAKO,SAAS0B,KAAK,WAAajC,KAAKuB,SAAWvB,KAAKwB,UAAU,QACzEG,SAASV,GAAMU,SAAS3B,KAAKI,QAAQc,MAEvClB,MAAKO,SAAS2B,KAAKF,GACnBnC,EAAEW,OAAOR,MACRgC,QAAShC,KAAKO,SAAS4B,SACvBV,UAAWA,EACXG,WAAYA,EACZE,aAAcA,IAEf9B,KAAKgC,QAAQD,OAAOD,EAEpB,IAAIX,GAAQnB,KAAKI,QAAQe,OAASiB,KAAKC,IAAIZ,EAAUN,QAASS,EAAWT,SAAUU,EAAcS,aAAa,EAC1GlB,EAASpB,KAAKI,QAAQgB,QAAUgB,KAAKC,IAAIZ,EAAUL,SAAUQ,EAAWR,SAC5EK,GAAUE,SAAS,aACnBC,EAAWD,SAAS,cACpB3B,KAAKgC,QAAQO,KAAMpB,MAAOA,EAAOC,OAAQA,IACrCpB,KAAKI,QAAQgB,SAChBK,EAAUc,IAAI,cAAed,EAAUL,SAAW,MAClDQ,EAAWW,IAAI,cAAeX,EAAWR,SAAW,OAErDpB,KAAKwC,QAAO,GACZxC,KAAKyC,SAAQ,IAGdpC,EAAOgB,UAAUqB,OAAS,WACrB1C,KAAKO,SAAS0B,KAAK,WAAYjC,KAAKc,MACnCd,KAAKa,MAGXR,EAAOgB,UAAUR,GAAK,SAAU8B,GAC/B,MAAI3C,MAAKO,SAAS0B,KAAK,aAAoB,GAC3CjC,KAAKgC,QAAQY,YAAY5C,KAAKwB,UAAY,QAAQG,SAAS3B,KAAKuB,UAChEvB,KAAKO,SAAS0B,KAAK,WAAW,QACzBU,GAAQ3C,KAAKyC,aAGnBpC,EAAOgB,UAAUP,IAAM,SAAU6B,GAChC,MAAI3C,MAAKO,SAAS0B,KAAK,aAAoB,GAC3CjC,KAAKgC,QAAQY,YAAY5C,KAAKuB,UAAUI,SAAS3B,KAAKwB,UAAY,QAClExB,KAAKO,SAAS0B,KAAK,WAAW,QACzBU,GAAQ3C,KAAKyC,aAGnBpC,EAAOgB,UAAUwB,OAAS,WACzB7C,KAAKgC,QAAQc,WAAW,YACxB9C,KAAKO,SAAS0B,KAAK,YAAY,IAGhC5B,EAAOgB,UAAU0B,QAAU,WAC1B/C,KAAKgC,QAAQV,KAAK,WAAY,YAC9BtB,KAAKO,SAAS0B,KAAK,YAAY,IAGhC5B,EAAOgB,UAAUmB,OAAS,SAAUG,GAC/B3C,KAAKO,SAAS0B,KAAK,YAAajC,KAAK+C,UACpC/C,KAAK6C,SACN7C,KAAKO,SAAS0B,KAAK,WAAYjC,KAAKa,GAAG8B,GACtC3C,KAAKc,IAAI6B,IAGftC,EAAOgB,UAAUoB,QAAU,SAAUE,GACpC3C,KAAKO,SAASO,IAAI,oBACb6B,GAAQ3C,KAAKO,SAASyC,SAC3BhD,KAAKO,SAASM,GAAG,mBAAoBhB,EAAEoD,MAAM,WAC5CjD,KAAKwC,UACHxC,QAGJK,EAAOgB,UAAU6B,QAAU,WAC1BlD,KAAKO,SAASO,IAAI,oBAClBd,KAAK8B,aAAaqB,SAClBnD,KAAKO,SAAS6C,WAAW,aACzBpD,KAAKO,SAAS8C,SAiBf,IAAIC,GAAMzD,EAAE0D,GAAGC,eAEf3D,GAAE0D,GAAGC,gBAA8B1D,EACnCD,EAAE0D,GAAGC,gBAAgBC,YAAcpD,EAKnCR,EAAE0D,GAAGb,OAAOgB,WAAa,WAExB,MADA7D,GAAE0D,GAAGC,gBAAkBF,EAChBtD,MAMRH,EAAE,WACDA,EAAE,6CAA6C2D,oBAGhD3D,EAAE8D,UAAU9C,GAAG,kBAAmB,2BAA4B,SAAS+C,GACtE,GAAIC,GAAYhE,EAAEG,MAAM8D,KAAK,uBAC7BD,GAAUL,gBAAgB,UAC1BI,EAAEG,oBAGFC"}
\ No newline at end of file
diff --git a/view/theme/frio/frameworks/bootstrap-toggle/package.json b/view/theme/frio/frameworks/bootstrap-toggle/package.json
new file mode 100644 (file)
index 0000000..b67456b
--- /dev/null
@@ -0,0 +1,28 @@
+{
+  "name": "bootstrap-toggle",
+  "description": "Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles",
+  "version": "2.2.2",
+  "main": "js/bootstrap-toggle.js",
+  "keywords": [
+    "bootstrap",
+    "toggle",
+    "bootstrap-toggle",
+    "switch",
+    "bootstrap-switch"
+  ],
+  "homepage": "http://www.bootstraptoggle.com",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/minhur/bootstrap-toggle.git"
+  },
+  "license": "MIT",
+  "author": "Min Hur <min.hur@gmail.com>",
+  "bugs": {
+    "url": "https://github.com/minhur/bootstrap-toggle/issues"
+  },
+  "devDependencies": {
+    "grunt-contrib-clean": "^0.6.0",
+    "grunt-contrib-cssmin": "^0.10.0",
+    "grunt-contrib-uglify": "^0.6.0"
+  }
+}
index 3f3128be404116790273e03e8e84fb0120f58402..51e390b34c911d52a9b8dde65563430e83db0a4e 100644 (file)
@@ -217,6 +217,47 @@ $(document).ready(function(){
                $(this).parent("li").hide();
        });
 
+       /* setup onoff widgets */
+       // Add the correct class to the switcher according to the input
+       // value (On/Off)
+       $(".toggle input").each(function(){
+               // Get the value of the input element
+               val = $(this).val();
+               id = $(this).attr("id");
+
+               // The css classes for "on" and "off"
+               onstyle = "btn-primary";
+               offstyle = "btn-default off";
+
+               // Add the correct class in dependence of input value (On/Off)
+               toggleclass = (val == 0 ? offstyle : onstyle);
+               $("#"+id+"_onoff").addClass(toggleclass);
+
+       });
+
+       // Change the css class while clicking on the switcher elements
+       $(".toggle label, .toggle .toggle-handle").click(function(event){
+               event.preventDefault();
+               // Get the value of the input element
+               var input = $(this).siblings("input");
+               var val = 1-input.val();
+               var id = input.attr("id");
+
+               // The css classes for "on" and "off"
+               var onstyle = "btn-primary";
+               var offstyle = "btn-default off";
+
+               // According to the value of the input element we need to decide
+               // which class need to be added and removed when changing the switch
+               var removedclass = (val == 0 ? onstyle : offstyle);
+               var addedclass = (val == 0 ? offstyle : onstyle)
+               $("#"+id+"_onoff").addClass(addedclass).removeClass(removedclass);
+
+               // After changing the switch the input element is getting
+               // the newvalue
+               input.val(val);
+       });
+
 });
 //function commentOpenUI(obj, id) {
 //     $(document).unbind( "click.commentOpen", handler );
diff --git a/view/theme/frio/templates/field_yesno.tpl b/view/theme/frio/templates/field_yesno.tpl
new file mode 100644 (file)
index 0000000..85096c7
--- /dev/null
@@ -0,0 +1,19 @@
+
+       <div class="field yesno">
+               <label for="id_{{$field.0}}">{{$field.1}}</label>
+               <div class="onoff toggle btn btn-xs pull-right" id="id_{{$field.0}}_onoff">
+                       
+                       <div class="switchlabel toggle-group">
+                               <input  type="hidden" name="{{$field.0}}" id="id_{{$field.0}}" value="{{$field.2|escape:'html'}}" aria-describedby="{{$field.0}}_tip">
+                               <label class="btn btn-default btn-xs  active toggle-off">
+                                       {{if $field.4}}{{$field.4.0}}{{else}}OFF{{/if}}
+                               </label>
+                               <label class="btn btn-primary btn-xs toggle-on">
+                                       {{if $field.4}}{{$field.4.1}}{{else}}ON{{/if}}
+                               </label>
+                               <span class="toggle-handle btn btn-default btn-xs"></span>
+                       </div>
+               </div>
+               <span class="help-block" id="{{$field.0}}_tip" role="tooltip">{{$field.3}}</span>
+       </div>
+       <div class="clear"></div>
index 6b21cb3db133d72e653f7f64750a907c013cc738..785c00a4881a487729134488dfbea00013330647 100644 (file)
@@ -23,6 +23,7 @@
 <link rel="stylesheet" href="view/theme/frio/frameworks/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css" type="text/css" media="screen"/>
 <link rel="stylesheet" href="view/theme/frio/frameworks/justifiedGallery/justifiedGallery.min.css" type="text/css" media="screen"/>
 <link rel="stylesheet" href="view/theme/frio/frameworks/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css" type="text/css" media="screen"/>
+<link rel="stylesheet" href="view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.min.css" type="text/css" media="screen"/>
 <link rel="stylesheet" href="view/theme/frio/font/open_sans/open-sans.css" type="text/css" media="screen"/>
 
 {{* The own style.css *}}