// TODO: we need to be able to swap in the appropriate locale here
import 'number-to-text/converters/en-us';
import { convertToText } from 'number-to-text/index';
import ariatiseForm from '../../utils/ariatiseForm';
import { Tinymce } from '../../utils/tinymce';
import { MAX_NUMBER_ORG_URLS } from '../../constants';
$(() => {
ariatiseForm({ selector: '#edit_org_details_form' });
// We only allow up to 3 URLs
const toggleAddUrlLink = () => {
if ($('#org-link-section').find('div.org-link').length >= MAX_NUMBER_ORG_URLS) {
$('a#add-org-link').hide();
} else {
$('a#add-org-link').show();
}
};
// Remove a URL
const removeUrl = (e) => {
$(e.target).closest('.row').remove();
toggleAddUrlLink();
};
const toggleFeedback = () => {
if ($('#org_feedback_enabled_true').is(':checked')) {
$('#feeback-email input, #feeback-email textarea').removeAttr('disabled');
} else {
$('#feeback-email input, #feeback-email textarea').attr('disabled', true);
}
};
// Add a URL
$('a#add-org-link').click(() => {
const link = $('#org-link-section').find('div.org-link').last();
const clone = $(link).clone();
clone.find('input').val('');
$(clone).find('.remove-org-link').click((e) => {
removeUrl(e);
});
link.after(clone);
toggleAddUrlLink();
});
$('.remove-org-link').click((e) => {
removeUrl(e);
});
$('#edit_org_feedback_form input[type="radio"]').click(() => {
toggleFeedback();
});
// Serialize URLs to JSON for form submission
$('#edit_org_profile_form').submit(() => {
const json = Array.from($('#org-link-section div.org-link')).map((el) => {
const link = $(el).find('#org_links_url');
const text = $(el).find('#org_links_text');
return {
link: (link.length > 0 ? $(link).val() : ''),
text: (text.length > 0 ? $(text).val() : ''),
};
});
$('#org_links').val(JSON.stringify(json));
});
// Initialises tinymce for any target element with class tinymce_answer
Tinymce.init({ selector: '#org_feedback_email_msg' });
$('#reset-to-default-feedback-email').click((e) => {
e.preventDefault();
$('#org_feedback_email_subject').val($('#feedback-email-default-subject').html());
const editor = Tinymce.findEditorById('org_feedback_email_msg');
editor.setContent($('#feedback-email-default-message').text());
});
// Convert the max number of URLs constant to text and display for user
$('#max-nbr-urls').text(convertToText(MAX_NUMBER_ORG_URLS).toLowerCase());
toggleAddUrlLink();
toggleFeedback();
});