Disable irrelevant fields unless cleanup is enabled (#26562)
This commit is contained in:
		
							parent
							
								
									19f4aa1147
								
							
						
					
					
						commit
						3d6e8d6834
					
				@ -431,6 +431,42 @@ Rails.delegate(document, 'img.custom-emoji', 'mouseout', ({ target }) => {
 | 
				
			|||||||
    target.src = target.dataset.static;
 | 
					    target.src = target.dataset.static;
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const setInputDisabled = (
 | 
				
			||||||
 | 
					  input: HTMLInputElement | HTMLSelectElement,
 | 
				
			||||||
 | 
					  disabled: boolean,
 | 
				
			||||||
 | 
					) => {
 | 
				
			||||||
 | 
					  input.disabled = disabled;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const wrapper = input.closest('.with_label');
 | 
				
			||||||
 | 
					  if (wrapper) {
 | 
				
			||||||
 | 
					    wrapper.classList.toggle('disabled', input.disabled);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const hidden =
 | 
				
			||||||
 | 
					      input.type === 'checkbox' &&
 | 
				
			||||||
 | 
					      wrapper.querySelector<HTMLInputElement>('input[type=hidden][value="0"]');
 | 
				
			||||||
 | 
					    if (hidden) {
 | 
				
			||||||
 | 
					      hidden.disabled = input.disabled;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Rails.delegate(
 | 
				
			||||||
 | 
					  document,
 | 
				
			||||||
 | 
					  '#account_statuses_cleanup_policy_enabled',
 | 
				
			||||||
 | 
					  'change',
 | 
				
			||||||
 | 
					  ({ target }) => {
 | 
				
			||||||
 | 
					    if (!(target instanceof HTMLInputElement) || !target.form) return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    target.form
 | 
				
			||||||
 | 
					      .querySelectorAll<
 | 
				
			||||||
 | 
					        HTMLInputElement | HTMLSelectElement
 | 
				
			||||||
 | 
					      >('input:not([type=hidden], #account_statuses_cleanup_policy_enabled), select')
 | 
				
			||||||
 | 
					      .forEach((input) => {
 | 
				
			||||||
 | 
					        setInputDisabled(input, !target.checked);
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Empty the honeypot fields in JS in case something like an extension
 | 
					// Empty the honeypot fields in JS in case something like an extension
 | 
				
			||||||
// automatically filled them.
 | 
					// automatically filled them.
 | 
				
			||||||
Rails.delegate(document, '#registration_new_user,#new_user', 'submit', () => {
 | 
					Rails.delegate(document, '#registration_new_user,#new_user', 'submit', () => {
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,7 @@
 | 
				
			|||||||
                wrapper: :with_label
 | 
					                wrapper: :with_label
 | 
				
			||||||
    .fields-row__column.fields-row__column-6.fields-group
 | 
					    .fields-row__column.fields-row__column-6.fields-group
 | 
				
			||||||
      = f.input :min_status_age,
 | 
					      = f.input :min_status_age,
 | 
				
			||||||
 | 
					                disabled: !@policy.enabled?,
 | 
				
			||||||
                collection: AccountStatusesCleanupPolicy::ALLOWED_MIN_STATUS_AGE.map(&:to_i),
 | 
					                collection: AccountStatusesCleanupPolicy::ALLOWED_MIN_STATUS_AGE.map(&:to_i),
 | 
				
			||||||
                hint: false,
 | 
					                hint: false,
 | 
				
			||||||
                include_blank: false,
 | 
					                include_blank: false,
 | 
				
			||||||
@ -28,11 +29,13 @@
 | 
				
			|||||||
  .fields-row
 | 
					  .fields-row
 | 
				
			||||||
    .fields-row__column.fields-row__column-6.fields-group
 | 
					    .fields-row__column.fields-row__column-6.fields-group
 | 
				
			||||||
      = f.input :keep_pinned,
 | 
					      = f.input :keep_pinned,
 | 
				
			||||||
 | 
					                disabled: !@policy.enabled?,
 | 
				
			||||||
                hint: t('statuses_cleanup.keep_pinned_hint'),
 | 
					                hint: t('statuses_cleanup.keep_pinned_hint'),
 | 
				
			||||||
                label: t('statuses_cleanup.keep_pinned'),
 | 
					                label: t('statuses_cleanup.keep_pinned'),
 | 
				
			||||||
                wrapper: :with_label
 | 
					                wrapper: :with_label
 | 
				
			||||||
    .fields-row__column.fields-row__column-6.fields-group
 | 
					    .fields-row__column.fields-row__column-6.fields-group
 | 
				
			||||||
      = f.input :keep_direct,
 | 
					      = f.input :keep_direct,
 | 
				
			||||||
 | 
					                disabled: !@policy.enabled?,
 | 
				
			||||||
                hint: t('statuses_cleanup.keep_direct_hint'),
 | 
					                hint: t('statuses_cleanup.keep_direct_hint'),
 | 
				
			||||||
                label: t('statuses_cleanup.keep_direct'),
 | 
					                label: t('statuses_cleanup.keep_direct'),
 | 
				
			||||||
                wrapper: :with_label
 | 
					                wrapper: :with_label
 | 
				
			||||||
@ -40,11 +43,13 @@
 | 
				
			|||||||
  .fields-row
 | 
					  .fields-row
 | 
				
			||||||
    .fields-row__column.fields-row__column-6.fields-group
 | 
					    .fields-row__column.fields-row__column-6.fields-group
 | 
				
			||||||
      = f.input :keep_self_fav,
 | 
					      = f.input :keep_self_fav,
 | 
				
			||||||
 | 
					                disabled: !@policy.enabled?,
 | 
				
			||||||
                hint: t('statuses_cleanup.keep_self_fav_hint'),
 | 
					                hint: t('statuses_cleanup.keep_self_fav_hint'),
 | 
				
			||||||
                label: t('statuses_cleanup.keep_self_fav'),
 | 
					                label: t('statuses_cleanup.keep_self_fav'),
 | 
				
			||||||
                wrapper: :with_label
 | 
					                wrapper: :with_label
 | 
				
			||||||
    .fields-row__column.fields-row__column-6.fields-group
 | 
					    .fields-row__column.fields-row__column-6.fields-group
 | 
				
			||||||
      = f.input :keep_self_bookmark,
 | 
					      = f.input :keep_self_bookmark,
 | 
				
			||||||
 | 
					                disabled: !@policy.enabled?,
 | 
				
			||||||
                hint: t('statuses_cleanup.keep_self_bookmark_hint'),
 | 
					                hint: t('statuses_cleanup.keep_self_bookmark_hint'),
 | 
				
			||||||
                label: t('statuses_cleanup.keep_self_bookmark'),
 | 
					                label: t('statuses_cleanup.keep_self_bookmark'),
 | 
				
			||||||
                wrapper: :with_label
 | 
					                wrapper: :with_label
 | 
				
			||||||
@ -52,11 +57,13 @@
 | 
				
			|||||||
  .fields-row
 | 
					  .fields-row
 | 
				
			||||||
    .fields-row__column.fields-row__column-6.fields-group
 | 
					    .fields-row__column.fields-row__column-6.fields-group
 | 
				
			||||||
      = f.input :keep_polls,
 | 
					      = f.input :keep_polls,
 | 
				
			||||||
 | 
					                disabled: !@policy.enabled?,
 | 
				
			||||||
                hint: t('statuses_cleanup.keep_polls_hint'),
 | 
					                hint: t('statuses_cleanup.keep_polls_hint'),
 | 
				
			||||||
                label: t('statuses_cleanup.keep_polls'),
 | 
					                label: t('statuses_cleanup.keep_polls'),
 | 
				
			||||||
                wrapper: :with_label
 | 
					                wrapper: :with_label
 | 
				
			||||||
    .fields-row__column.fields-row__column-6.fields-group
 | 
					    .fields-row__column.fields-row__column-6.fields-group
 | 
				
			||||||
      = f.input :keep_media,
 | 
					      = f.input :keep_media,
 | 
				
			||||||
 | 
					                disabled: !@policy.enabled?,
 | 
				
			||||||
                hint: t('statuses_cleanup.keep_media_hint'),
 | 
					                hint: t('statuses_cleanup.keep_media_hint'),
 | 
				
			||||||
                label: t('statuses_cleanup.keep_media'),
 | 
					                label: t('statuses_cleanup.keep_media'),
 | 
				
			||||||
                wrapper: :with_label
 | 
					                wrapper: :with_label
 | 
				
			||||||
@ -66,12 +73,14 @@
 | 
				
			|||||||
  .fields-row
 | 
					  .fields-row
 | 
				
			||||||
    .fields-row__column.fields-row__column-6.fields-group
 | 
					    .fields-row__column.fields-row__column-6.fields-group
 | 
				
			||||||
      = f.input :min_favs,
 | 
					      = f.input :min_favs,
 | 
				
			||||||
 | 
					                disabled: !@policy.enabled?,
 | 
				
			||||||
                hint: t('statuses_cleanup.min_favs_hint'),
 | 
					                hint: t('statuses_cleanup.min_favs_hint'),
 | 
				
			||||||
                input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_favs') },
 | 
					                input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_favs') },
 | 
				
			||||||
                label: t('statuses_cleanup.min_favs'),
 | 
					                label: t('statuses_cleanup.min_favs'),
 | 
				
			||||||
                wrapper: :with_label
 | 
					                wrapper: :with_label
 | 
				
			||||||
    .fields-row__column.fields-row__column-6.fields-group
 | 
					    .fields-row__column.fields-row__column-6.fields-group
 | 
				
			||||||
      = f.input :min_reblogs,
 | 
					      = f.input :min_reblogs,
 | 
				
			||||||
 | 
					                disabled: !@policy.enabled?,
 | 
				
			||||||
                hint: t('statuses_cleanup.min_reblogs_hint'),
 | 
					                hint: t('statuses_cleanup.min_reblogs_hint'),
 | 
				
			||||||
                input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_reblogs') },
 | 
					                input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_reblogs') },
 | 
				
			||||||
                label: t('statuses_cleanup.min_reblogs'),
 | 
					                label: t('statuses_cleanup.min_reblogs'),
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user