diff --git a/app/views/orgs/admin_edit.html.erb b/app/views/orgs/admin_edit.html.erb index 957b754..d13180e 100644 --- a/app/views/orgs/admin_edit.html.erb +++ b/app/views/orgs/admin_edit.html.erb @@ -6,71 +6,76 @@
- <%= form_for(@org, url: admin_update_org_path(@org), html: { class: "roadmap-form bordered", multipart: true, id: "edit_org_details", method: :put}) do |f| %> + <%= form_for(@org, url: admin_update_org_path(@org), html: { multipart: true, method: :put, id: "edit_org_details_form", class: "form-horizontal" } ) do |f| %> -
-
- <%= f.label :name, class: 'required' %> - <%= f.text_field :name, class: "left-indent required input-large" %> -
-
- <%= f.label :abbreviation, class: 'required' %> - <%= f.text_field :abbreviation, class: "left-indent required input-small" %> -
- - <% if @org.logo.present? %> -
+
<% end %> + + + +
+ <%= f.label :target_url, 'Organization URL', class: "col-sm-2 control-label" %> +
+ <%= f.text_field :target_url, class: "form-control" %> +
+
+ +
+ <%= f.label :contact_email, 'Contact Email', class: "col-sm-2 control-label" %> +
+ <%= f.text_field :contact_email, class: "form-control" %> +
+
+ +
+
+ <%= f.button(_('Save'), id:"save_org_submit", class: "btn btn-default", type: "submit") %> +
+
+ + <% end %>
diff --git a/lib/assets/javascripts/application.js b/lib/assets/javascripts/application.js index 7ad1efc..8780e69 100644 --- a/lib/assets/javascripts/application.js +++ b/lib/assets/javascripts/application.js @@ -12,6 +12,8 @@ import './views/plans/index'; import './views/plans/new'; import './views/plans/share'; +import './views/orgs/admin_edit'; + import './views/questions/new'; import './views/sections/index'; import './views/sections/new'; diff --git a/lib/assets/javascripts/constants.js b/lib/assets/javascripts/constants.js index 3d717f1..3f7416e 100644 --- a/lib/assets/javascripts/constants.js +++ b/lib/assets/javascripts/constants.js @@ -13,6 +13,7 @@ export const SHOW_PASSWORD_MESSAGE = 'Show password'; export const SHOW_SELECT_ORG_MESSAGE = 'Select an organisation from the list.'; export const SHOW_OTHER_ORG_MESSAGE = 'My organisation isn\'t listed'; +export const SHOW_ORG_BANNER_MESSAGE = 'Please only enter up to 165 characters. If you are entering an URL try to use something like http://tinyurl.com/ to make it smaller.'; export const PLAN_VISIBILITY_WHEN_TEST = 'N/A'; export const PLAN_VISIBILITY_WHEN_NOT_TEST = 'Private'; diff --git a/lib/assets/javascripts/views/devise/registrations/edit.js b/lib/assets/javascripts/views/devise/registrations/edit.js index f8fe810..1e13ae2 100644 --- a/lib/assets/javascripts/views/devise/registrations/edit.js +++ b/lib/assets/javascripts/views/devise/registrations/edit.js @@ -1,6 +1,7 @@ import 'bootstrap-sass/assets/javascripts/bootstrap/tooltip'; import 'bootstrap-sass/assets/javascripts/bootstrap/popover'; import ariatiseForm from '../../../utils/ariatiseForm'; + import { addMatchingPasswordValidator, togglisePasswords } from '../../../utils/passwordHelper'; $(() => { diff --git a/lib/assets/javascripts/views/orgs/admin_edit.js b/lib/assets/javascripts/views/orgs/admin_edit.js index a74ddd8..64c3ed3 100644 --- a/lib/assets/javascripts/views/orgs/admin_edit.js +++ b/lib/assets/javascripts/views/orgs/admin_edit.js @@ -1,20 +1,29 @@ -$(document).ready(function(){ - //Validate banner_text area for less than 165 character - $("form#edit_org_details").submit(function(){ - if (getStats('org_banner_text').chars > 165) { - alert(__('Please only enter up to 165 characters, you have used') + " " + getStats('org_banner_text').chars + ". " + __('If you are entering an URL try to use something like http://tinyurl.com/ to make it smaller.')); - return false; - } +// Import TinyMCE +import tinymce from 'tinymce/tinymce'; +import { Tinymce } from '../../utils/tinymce'; +import ariatiseForm from '../../utils/ariatiseForm'; +import { SHOW_ORG_BANNER_MESSAGE } from '../../constants'; + +$(() => { + ariatiseForm({ selector: '#edit_org_details_form' }); + + // Returns text statistics for the specified editor by id + const getStats = (id) => { + const body = tinymce.get(id).getBody(); + const text = tinymce.trim(body.innerText || body.textContent); + return { + chars: text.length, + }; + }; + + // Validate banner_text area for less than 165 character + $('#edit_org_details_form').on('submit', (e) => { + if (getStats('org_banner_text').chars > 165) { + $('#org_banner_text').text(SHOW_ORG_BANNER_MESSAGE); + e.preventDefault(); + } }); - - $("#org_name").keyup(function(){ - $("#save_org_submit").attr('aria-disabled', ($(this).val().trim() == '' || - $("#org_abbreviation").val().trim() == '')); - }); - $("#org_abbreviation").keyup(function(){ - $("#save_org_submit").attr('aria-disabled', ($(this).val().trim() == '' || - $("#org_name").val().trim() == '')); - }); - - $("#save_org_submit").attr('aria-disabled', ($("#org_name").val() && ($("#org_name").val().trim() == '' || $("#org_abbreviation").val().trim() == ''))); -}); \ No newline at end of file + /* Initialises an editor for textarea defined above with id org_banner_text */ + Tinymce.init({ selector: '#org_banner_text' }); +}); +