mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-11-03 22:55:43 +00:00 
			
		
		
		
	Merge pull request #2597 from SchrodingersGat/binary-settings
Binary settings
This commit is contained in:
		@@ -16,10 +16,13 @@
 | 
				
			|||||||
        {% endif %}
 | 
					        {% endif %}
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
    <td><strong>{{ setting.name }}</strong></td>
 | 
					    <td><strong>{{ setting.name }}</strong></td>
 | 
				
			||||||
 | 
					    <td>
 | 
				
			||||||
 | 
					        {{ setting.description }}
 | 
				
			||||||
 | 
					    </td>
 | 
				
			||||||
    <td>
 | 
					    <td>
 | 
				
			||||||
        {% if setting.is_bool %}
 | 
					        {% if setting.is_bool %}
 | 
				
			||||||
        <div class='form-check form-switch'>
 | 
					        <div class='form-check form-switch'>
 | 
				
			||||||
            <input class='form-check-input' fieldname='{{ setting.key.upper }}' id='setting-value-{{ setting.key.upper }}' type='checkbox' disabled='' {% if setting.as_bool %}checked=''{% endif %}>
 | 
					            <input class='form-check-input boolean-setting' fieldname='{{ setting.key.upper }}' pk='{{ setting.pk }}' setting='{{ setting.key.upper }}' id='setting-value-{{ setting.key.upper }}' type='checkbox' {% if setting.as_bool %}checked=''{% endif %} {% if plugin %}plugin='{{ plugin.pk }}'{% endif %}{% if user_setting %}user='{{request.user.id}}'{% endif %}>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        {% else %}
 | 
					        {% else %}
 | 
				
			||||||
        <div id='setting-{{ setting.pk }}'>
 | 
					        <div id='setting-{{ setting.pk }}'>
 | 
				
			||||||
@@ -31,16 +34,12 @@
 | 
				
			|||||||
                {% endif %}
 | 
					                {% endif %}
 | 
				
			||||||
            </span>
 | 
					            </span>
 | 
				
			||||||
            {{ setting.units }}
 | 
					            {{ setting.units }}
 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        {% endif %}
 | 
					 | 
				
			||||||
    <td>
 | 
					 | 
				
			||||||
        {{ setting.description }}
 | 
					 | 
				
			||||||
    </td>
 | 
					 | 
				
			||||||
    <td>
 | 
					 | 
				
			||||||
            <div class='btn-group float-right'>
 | 
					            <div class='btn-group float-right'>
 | 
				
			||||||
                <button class='btn btn-outline-secondary btn-small btn-edit-setting' pk='{{ setting.pk }}' setting='{{ setting.key.upper }}' title='{% trans "Edit setting" %}' {% if plugin %}plugin='{{ plugin.pk }}'{% endif %}{% if user_setting %}user='{{request.user.id}}'{% endif %}>
 | 
					                <button class='btn btn-outline-secondary btn-small btn-edit-setting' pk='{{ setting.pk }}' setting='{{ setting.key.upper }}' title='{% trans "Edit setting" %}' {% if plugin %}plugin='{{ plugin.pk }}'{% endif %}{% if user_setting %}user='{{request.user.id}}'{% endif %}>
 | 
				
			||||||
                    <span class='fas fa-edit icon-green'></span>
 | 
					                    <span class='fas fa-edit icon-green'></span>
 | 
				
			||||||
                </button>
 | 
					                </button>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        {% endif %}
 | 
				
			||||||
    </td>
 | 
					    </td>
 | 
				
			||||||
</tr>
 | 
					</tr>
 | 
				
			||||||
@@ -62,6 +62,43 @@
 | 
				
			|||||||
{% block js_ready %}
 | 
					{% block js_ready %}
 | 
				
			||||||
{{ block.super }}
 | 
					{{ block.super }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Callback for when boolean settings are edited
 | 
				
			||||||
 | 
					$('table').find('.boolean-setting').change(function() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    var setting = $(this).attr('setting');
 | 
				
			||||||
 | 
					    var pk = $(this).attr('pk');
 | 
				
			||||||
 | 
					    var plugin = $(this).attr('plugin');
 | 
				
			||||||
 | 
					    var user = $(this).attr('user');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    var checked = this.checked;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Global setting by default
 | 
				
			||||||
 | 
					    var url = `/api/settings/global/${pk}/`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (plugin) {
 | 
				
			||||||
 | 
					        url = `/api/plugin/settings/${pk}/`;
 | 
				
			||||||
 | 
					    } else if (user) {
 | 
				
			||||||
 | 
					        url = `/api/settings/user/${pk}/`;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    inventreePut(
 | 
				
			||||||
 | 
					        url,
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            value: checked.toString(),
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            method: 'PATCH',
 | 
				
			||||||
 | 
					            onSuccess: function(data) {
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            error: function(xhr) {
 | 
				
			||||||
 | 
					                showApiError(xhr, url);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Callback for when non-boolean settings are edited
 | 
				
			||||||
$('table').find('.btn-edit-setting').click(function() {
 | 
					$('table').find('.btn-edit-setting').click(function() {
 | 
				
			||||||
    var setting = $(this).attr('setting');
 | 
					    var setting = $(this).attr('setting');
 | 
				
			||||||
    var pk = $(this).attr('pk');
 | 
					    var pk = $(this).attr('pk');
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user