Fix link in structure
This commit is contained in:
parent
a885313e75
commit
00010867a4
|
@ -1,4 +1,5 @@
|
|||
class Admin::ItemsController < OrbitBackendController
|
||||
include ActionView::Helpers::TagHelper
|
||||
include ActionView::Helpers::DynamicForm
|
||||
|
||||
layout "structure"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
class Admin::LinksController < Admin::ItemsController
|
||||
|
||||
|
||||
def new
|
||||
@item = Link.new
|
||||
@item.parent = Page.find(params[:parent_id]) rescue nil
|
||||
|
@ -13,27 +14,21 @@ class Admin::LinksController < Admin::ItemsController
|
|||
|
||||
def create
|
||||
@item = Link.new(params[:link])
|
||||
|
||||
if @item.save(params[:link])
|
||||
success = true
|
||||
if @item.save
|
||||
render 'admin/items/reload_items'
|
||||
else
|
||||
success = check_valid_url
|
||||
end
|
||||
if success
|
||||
flash.now[:notice] = t('create.success.link')
|
||||
respond_to do |format|
|
||||
format.js { render 'admin/items/reload_items' }
|
||||
end
|
||||
else
|
||||
flash.now[:error] = t('create.error.link')
|
||||
render :action => "new"
|
||||
@error = error_messages_for(@item)
|
||||
render 'admin/items/form_error'
|
||||
end
|
||||
end
|
||||
|
||||
def update
|
||||
@item = Link.find(params[:id])
|
||||
unless @item.update_attributes(params[:link])
|
||||
if @item.update_attributes(params[:link])
|
||||
render 'admin/items/reload_items'
|
||||
else
|
||||
@error = error_messages_for(@item)
|
||||
render 'admin/items/form_error'
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@ class Link < Item
|
|||
|
||||
field :url, localize: true
|
||||
|
||||
validates :url, at_least_one: true
|
||||
|
||||
# validates :url, :presence => true, :format => /^(http|https):\/\/(([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5})|((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))|localhost(:[0-9]{1,5})?(\/.*)?/i
|
||||
|
||||
before_validation :add_http
|
||||
|
@ -11,20 +13,27 @@ class Link < Item
|
|||
end
|
||||
|
||||
def urls
|
||||
if self.url_translations.present?
|
||||
self.url_translations.inject({}) do |result, (key, value)|
|
||||
result["url-#{key}"] = value
|
||||
result
|
||||
end
|
||||
else
|
||||
{}
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def add_http
|
||||
if self.url_translations.present?
|
||||
self.url_translations.each_value do |u|
|
||||
unless u[/^(http|https):\/\//] || u.blank?
|
||||
u = 'http://' + u
|
||||
self.url_translations = self.url_translations.inject({}) do |translations, (key, value)|
|
||||
if value.blank? || value[/^(http|https):\/\//]
|
||||
translations[key] = value
|
||||
else
|
||||
translations[key] = 'http://' + value
|
||||
end
|
||||
translations
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,15 +7,16 @@
|
|||
<%= f.text_field :name, class: 'input-xlarge', placeholder: t(:name), id: 'name' %>
|
||||
<span class="help-block"><%= t("front_page.name_field_helper") %></span>
|
||||
|
||||
<%= f.fields_for :title_translations do |f| %>
|
||||
<% @site_valid_locales.each do |locale| %>
|
||||
<%= f.fields_for :title_translations do |f| %>
|
||||
<%= f.label :locale, "#{t(:title)} #{I18nVariable.from_locale(locale)}" %>
|
||||
<%= f.text_field locale, class: 'input-xlarge', placeholder: "#{t(:title)} #{I18nVariable.from_locale(locale)}", id: locale %>
|
||||
<%= f.label :url, "#{t(:url)} #{I18nVariable.from_locale(locale)}" %>
|
||||
<%= f.text_field :url, :class => 'input-xlarge', placeholder: "#{t(:url)} #{I18nVariable.from_locale(locale)}", id: "url-#{locale}" %>
|
||||
<% end %>
|
||||
<%= f.fields_for :url_translations do |f| %>
|
||||
<%= f.label :locale, "#{t(:url)} #{I18nVariable.from_locale(locale)}" %>
|
||||
<%= f.text_field locale, :class => 'input-xlarge', placeholder: "#{t(:url)} #{I18nVariable.from_locale(locale)}", id: "url-#{locale}" %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<div class="checkbox-groups" id="link-is-published">
|
||||
<%= f.label :is_published, t(:is_published) %>
|
||||
<p>
|
||||
|
|
Loading…
Reference in New Issue