app/helpers/admin/pages_helper.rb in radiant-0.8.2 vs app/helpers/admin/pages_helper.rb in radiant-0.9.0.rc2

- old
+ new

@@ -19,39 +19,99 @@ end def homepage @homepage ||= Page.find_by_parent_id(nil) end + + def status_to_display + @page.status_id = 100 if @page.status_id == 90 + @display_status = [] + Status.find_all.each { |s| @display_status << [t(s.name.downcase), s.id] unless s.name == 'Scheduled' } + return @display_status + end def page_edit_javascripts <<-CODE - var last_type = "#{@page.class_name}"; - function load_tag_reference(part) { - page_type = $F('page_class_name'); - popup = $('tag-reference-popup'); - if(last_type != page_type) { - url = "#{admin_reference_path(:id => 'tags')}"; - params = "class_name=" + page_type; - new Effect.Highlight('tag-reference-link-'+ part); - req = new Ajax.Request(url, { method: 'get', parameters: params, evalScripts: true }); + function addPart(form) { + if (validPartName()) { + new Ajax.Updater( + $('tab_control').down('.pages'), + '#{admin_page_parts_path}', + { + asynchronous: true, + evalScripts: true, + insertion: 'bottom', + onComplete: function(request){ partAdded() }, + onLoading: function(request){ partLoading() }, + parameters: Form.serialize(form) + } + ); + } + } + function removePart() { + if(confirm('Remove the current part?')) { + TabControls['tab_control'].removeSelected(); + } + } + function partAdded() { + var tabControl = TabControls['tab_control']; + $('add_part_busy').hide(); + $('add_part_button').disabled = false; + $('add_part_popup').closePopup(); + $('part_name_field').value = ''; + tabControl.updateTabs(); + tabControl.select(tabControl.tabs.last()); + } + function partLoading() { + $('add_part_button').disabled = true; + $('add_part_busy').appear(); + } + function validPartName() { + var partNameField = $('part_name_field'); + var name = partNameField.value.downcase(); + if (name.blank()) { + alert('Part name cannot be empty.'); + return false; + } + if (TabControls['tab_control'].findTabByCaption(name)) { + alert('Part name must be unique.'); + return false; + } + return true; + } + + var lastPageType = '#{@page.class.name}'; + var tagReferenceWindows = {}; + function loadTagReference(part) { + var pageType = $F('page_class_name'); + if (!tagReferenceWindows[pageType]) + tagReferenceWindows[pageType] = new Popup.AjaxWindow("#{admin_reference_path('tags')}?class_name=" + encodeURIComponent(pageType), {reload: false}); + var window = tagReferenceWindows[pageType]; + if(lastPageType != pageType) { + $('tag_reference_link_' + part).highlight(); + window.show(); } else { - center(popup); - Element.toggle(popup); + window.toggle(); } + lastPageType = pageType; return false; } - var last_filter = "#{default_filter_name}"; - function load_filter_reference(part) { - filter_type = $F("part_" + part + "_filter_id"); - popup = $('filter-reference-popup'); - if(last_filter != filter_type) { - url = "#{admin_reference_path(:id => 'filters')}"; - params = "filter_name=" + filter_type; - new Effect.Highlight('filter-reference-link-'+ part); - req = new Ajax.Request(url, { method: 'get', parameters: params, evalScripts: true }); + + var lastFilter = '#{default_filter_name}'; + var filterWindows = {}; + function loadFilterReference(part) { + var filter = $F("part_" + part + "_filter_id"); + if (filter != "") { + if (!filterWindows[filter]) filterWindows[filter] = new Popup.AjaxWindow("#{admin_reference_path('filters')}?filter_name="+encodeURIComponent(filter), {reload: false}); + var window = filterWindows[filter]; + if(lastFilter != filter) { + window.show(); + } else { + window.toggle(); + } + lastFilter = filter; } else { - center(popup); - Element.toggle(popup); + alert('No documentation for filter.'); } return false; } CODE end