From 83a74c6d01e0be50d5806d8253de9f2ad6d5c143 Mon Sep 17 00:00:00 2001 From: erdgeist Date: Thu, 9 Jul 2026 18:55:25 +0200 Subject: Rework events#new with the new layout paradigm --- app/views/events/new.html.erb | 89 +++++++++++++++++++---------------- public/javascripts/admin_interface.js | 4 ++ public/javascripts/admin_search.js | 59 +++++++++++++++++++++++ 3 files changed, 112 insertions(+), 40 deletions(-) diff --git a/app/views/events/new.html.erb b/app/views/events/new.html.erb index 4e1ef53..b20fe48 100644 --- a/app/views/events/new.html.erb +++ b/app/views/events/new.html.erb @@ -1,47 +1,56 @@

New event

+<%= link_to 'Back', safe_return_to(params[:return_to] || events_path) %> + <%= form_for(@event) do |f| %> <%= form_error_messages(f) %> -

- <%= f.label :start_time %>
- <%= f.datetime_select :start_time %> -

-

- <%= f.label :end_time %>
- <%= f.datetime_select :end_time %> -

-

- <%= f.label :rrule %>
- <%= f.text_field :rrule %> -

-

- <%= f.label :tag_list, "Tags" %>
- <%= f.text_field :tag_list %> -

-

- <%= f.label :allday %>
- <%= f.check_box :allday %> -

-

- <%= f.label :url %>
- <%= f.text_field :url %> -

-

- <%= f.label :latitude %>
- <%= f.text_field :latitude %> -

-

- <%= f.label :longitude %>
- <%= f.text_field :longitude %> -

-

- <%= f.hidden_field :node_id %> - <%= hidden_field_tag :return_to, params[:return_to] %> -

-

- <%= f.submit 'Create' %> -

+
+
+
Node
+
+ <%= text_field_tag :event_node_search_term %> +
+ <%= f.hidden_field :node_id %> + Optional — search and pick a node to associate this event with a page. +
+ +
Start time
+
<%= f.datetime_select :start_time %>
+ +
End time
+
<%= f.datetime_select :end_time %>
+ +
Rrule
+
<%= f.text_field :rrule %>
+ +
Title
+
+ <%= f.text_field :title %> + Optional — if left blank, the associated node's title is used. +
+ +
Tags
+
<%= f.text_field :tag_list %>
+ +
Allday
+
<%= f.check_box :allday %>
+ +
Url
+
<%= f.text_field :url %>
+ +
Latitude
+
<%= f.text_field :latitude %>
+ +
Longitude
+
<%= f.text_field :longitude %>
+ +
+
<%= hidden_field_tag :return_to, params[:return_to] %>
+ +
+
<%= f.submit 'Create' %>
+
+
<% end %> -<%= link_to 'Back', safe_return_to(params[:return_to] || events_path) %> diff --git a/public/javascripts/admin_interface.js b/public/javascripts/admin_interface.js index 4107ce8..8ca5b5e 100644 --- a/public/javascripts/admin_interface.js +++ b/public/javascripts/admin_interface.js @@ -51,6 +51,10 @@ $(document).ready(function () { move_to_search.initialize_search(); } + if ($("#event_node_search_term").length != 0) { + event_search.initialize_search(); + } + if ($("#rrule_builder").length != 0) { rrule_builder.initialize(); } diff --git a/public/javascripts/admin_search.js b/public/javascripts/admin_search.js index 6ef9087..5be5d57 100644 --- a/public/javascripts/admin_search.js +++ b/public/javascripts/admin_search.js @@ -283,3 +283,62 @@ move_to_search = { return barf; } } + +event_search = { + initialize_search : function() { + $("#event_node_search_term").bind("input", function() { + if ($(this).val()) { + $.ajax({ + type: "GET", + url: ADMIN_MENU_SEARCH_URL, + data: "search_term=" + $(this).val(), + dataType: "json", + success : function(results) { + event_search.show_results(results); + } + }); + } + else { + $('#search_results').slideUp(); + $('#search_results').empty(); + } + }); + }, + + show_results : function(results) { + $("#search_results").empty(); + var found = false; + for (result in results) { + var link = $(( + "

" + results[result].title + + "" + results[result].unique_name + "" + + "

")); + + $(link).bind("click", event_search.link_closure(results[result])); + + $("#search_results").append(link); + found = true; + } + if (found) + $('#search_results').slideDown(); + else + $('#search_results').slideUp(); + }, + + link_closure : function(node) { + var barf = function(){ + $("#event_node_search_term").val(node.title); + $("#event_node_id").val(node.node_id); + $('#search_results').slideUp(); + $('#search_results').empty(); + + var title_field = $("#event_title"); + if (title_field.val() === "") { + $("#event_title_hint").text("Using \"" + node.title + "\" from the associated node."); + } + + return false; + } + return barf; + } +}; -- cgit v1.3