diff --git a/rhodecode/templates/admin/settings/settings_ai.mako b/rhodecode/templates/admin/settings/settings_ai.mako index 5570d3ad..7a86cc5f 100644 --- a/rhodecode/templates/admin/settings/settings_ai.mako +++ b/rhodecode/templates/admin/settings/settings_ai.mako @@ -74,6 +74,7 @@ import json const $model = $('#rhodecode_ai_model'); const $slot = $('#model_version_slot'); + const $enable = $('#rhodecode_ai_features_enabled'); function renderVersionField(model) { const versions = MODEL_MAP[model] || []; @@ -81,6 +82,7 @@ import json $slot.empty(); if (!versions.length) { + setAIFieldsActive($enable.is(':checked')); return; } @@ -106,6 +108,24 @@ import json selector('#rhodecode_ai_model_version'); $ver.trigger('change'); + + setAIFieldsActive($enable.is(':checked')); + } + + function setAIFieldsActive(enabled) { + const $affectedFields = $('.fields .field').not('#ai-features-toggle'); + + $affectedFields.toggleClass('is-disabled', !enabled); + + + $affectedFields + .find('input, textarea, button') + .prop('disabled', !enabled); + + $affectedFields + .find('select') + .prop('disabled', !enabled) + .trigger('change.select2'); } renderVersionField($model.val()); @@ -121,5 +141,15 @@ import json } renderVersionField($model.val()); + + $enable.on('change', function () { + setAIFieldsActive(this.checked); + }); + + $('form').submit(function (e) { + $(':disabled').each(function (e) { + $(this).removeAttr('disabled'); + }) + }); });