mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Remove reliance on "bootstrap-toggle" library
- Still needs fixing in modal forms
This commit is contained in:
parent
3a4022b259
commit
c6ceea4d45
@ -1,83 +0,0 @@
|
|||||||
/*! ========================================================================
|
|
||||||
* 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 { border-radius: 15px; min-width: 50px; min-height: 20px; max-height: 25px;}
|
|
||||||
.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; }
|
|
||||||
|
|
@ -725,7 +725,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.modal-dialog {
|
.modal-dialog {
|
||||||
width: 60%;
|
width: 65%;
|
||||||
|
max-width: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal-secondary .modal-dialog {
|
.modal-secondary .modal-dialog {
|
||||||
|
@ -1,180 +0,0 @@
|
|||||||
/*! ========================================================================
|
|
||||||
* 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: '',
|
|
||||||
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);
|
|
@ -41,7 +41,6 @@
|
|||||||
<link rel="stylesheet" href="{% static 'fontawesome/css/brands.css' %}">
|
<link rel="stylesheet" href="{% static 'fontawesome/css/brands.css' %}">
|
||||||
<link rel="stylesheet" href="{% static 'fontawesome/css/solid.css' %}">
|
<link rel="stylesheet" href="{% static 'fontawesome/css/solid.css' %}">
|
||||||
<link rel="stylesheet" href="{% static 'select2/css/select2.css' %}">
|
<link rel="stylesheet" href="{% static 'select2/css/select2.css' %}">
|
||||||
<link rel="stylesheet" href="{% static 'css/bootstrap-toggle.css' %}">
|
|
||||||
<link rel="stylesheet" href="{% static 'fullcalendar/main.css' %}">
|
<link rel="stylesheet" href="{% static 'fullcalendar/main.css' %}">
|
||||||
<link rel="stylesheet" href="{% static 'script/jquery-ui/jquery-ui.min.css' %}">
|
<link rel="stylesheet" href="{% static 'script/jquery-ui/jquery-ui.min.css' %}">
|
||||||
|
|
||||||
@ -118,7 +117,6 @@
|
|||||||
|
|
||||||
<script type="text/javascript" src="{% static 'bootstrap/js/bootstrap.bundle.min.js' %}"></script>
|
<script type="text/javascript" src="{% static 'bootstrap/js/bootstrap.bundle.min.js' %}"></script>
|
||||||
<script type='text/javascript' src="{% static 'script/bootstrap/bootstrap-treeview.js' %}"></script>
|
<script type='text/javascript' src="{% static 'script/bootstrap/bootstrap-treeview.js' %}"></script>
|
||||||
<script type='text/javascript' src="{% static 'script/bootstrap/bootstrap-toggle.js' %}"></script>
|
|
||||||
<script type='text/javascript' src="{% static 'bootstrap-table/bootstrap-table.js' %}"></script>
|
<script type='text/javascript' src="{% static 'bootstrap-table/bootstrap-table.js' %}"></script>
|
||||||
<script type='text/javascript' src="{% static 'bootstrap-table/bootstrap-table-en-US.min.js' %}"></script>
|
<script type='text/javascript' src="{% static 'bootstrap-table/bootstrap-table-en-US.min.js' %}"></script>
|
||||||
|
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
{% load inventree_extras %}
|
{% load inventree_extras %}
|
||||||
|
|
||||||
/* globals
|
/* globals
|
||||||
attachToggle,
|
|
||||||
createNewModal,
|
createNewModal,
|
||||||
inventreeFormDataUpload,
|
inventreeFormDataUpload,
|
||||||
inventreeGet,
|
inventreeGet,
|
||||||
@ -519,8 +518,6 @@ function constructFormBody(fields, options) {
|
|||||||
// Attach clear callbacks (if required)
|
// Attach clear callbacks (if required)
|
||||||
addClearCallbacks(fields, options);
|
addClearCallbacks(fields, options);
|
||||||
|
|
||||||
attachToggle(modal);
|
|
||||||
|
|
||||||
$(modal + ' .select2-container').addClass('select-full-width');
|
$(modal + ' .select2-container').addClass('select-full-width');
|
||||||
$(modal + ' .select2-container').css('width', '100%');
|
$(modal + ' .select2-container').css('width', '100%');
|
||||||
|
|
||||||
@ -563,13 +560,13 @@ function insertConfirmButton(options) {
|
|||||||
|
|
||||||
var message = options.confirmMessage || '{% trans "Confirm" %}';
|
var message = options.confirmMessage || '{% trans "Confirm" %}';
|
||||||
|
|
||||||
var confirm = `
|
var html = `
|
||||||
<span style='float: left;'>
|
<div class="form-check form-switch">
|
||||||
${message}
|
<input class="form-check-input" type="checkbox" id="modal-confirm">
|
||||||
<input id='modal-confirm' name='confirm' type='checkbox'>
|
<label class="form-check-label" for="modal-confirm">${message}</label>
|
||||||
</span>`;
|
</div>`;
|
||||||
|
|
||||||
$(options.modal).find('#modal-footer-buttons').append(confirm);
|
$(options.modal).find('#modal-footer-buttons').append(html);
|
||||||
|
|
||||||
// Disable the 'submit' button
|
// Disable the 'submit' button
|
||||||
$(options.modal).find('#modal-form-submit').prop('disabled', true);
|
$(options.modal).find('#modal-form-submit').prop('disabled', true);
|
||||||
@ -2029,7 +2026,7 @@ function constructCheckboxInput(name, parameters) {
|
|||||||
|
|
||||||
return constructInputOptions(
|
return constructInputOptions(
|
||||||
name,
|
name,
|
||||||
'checkboxinput',
|
'form-check-input',
|
||||||
'checkbox',
|
'checkbox',
|
||||||
parameters
|
parameters
|
||||||
);
|
);
|
||||||
|
@ -355,22 +355,6 @@ function partialMatcher(params, data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function attachToggle(modal) {
|
|
||||||
/* Attach 'bootstrap-toggle' functionality to any checkbox in the modal.
|
|
||||||
* This is simple for visual improvement,
|
|
||||||
* and also larger toggle style buttons are easier to press!
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(modal).find(`input[type='checkbox']`).each(function() {
|
|
||||||
$(this).bootstrapToggle({
|
|
||||||
size: 'small',
|
|
||||||
onstyle: 'success',
|
|
||||||
offstyle: 'warning',
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function attachSelect(modal) {
|
function attachSelect(modal) {
|
||||||
/* Attach 'select2' functionality to any drop-down list in the modal.
|
/* Attach 'select2' functionality to any drop-down list in the modal.
|
||||||
* Provides search filtering for dropdown items
|
* Provides search filtering for dropdown items
|
||||||
@ -698,7 +682,6 @@ function injectModalForm(modal, form_html) {
|
|||||||
*/
|
*/
|
||||||
$(modal).find('.modal-form-content').html(form_html);
|
$(modal).find('.modal-form-content').html(form_html);
|
||||||
attachSelect(modal);
|
attachSelect(modal);
|
||||||
attachToggle(modal);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user