Structure link with json
This commit is contained in:
		
							parent
							
								
									a4d1c68299
								
							
						
					
					
						commit
						8ebfac2b99
					
				| 
						 | 
				
			
			@ -220,36 +220,25 @@ function pageSetting(id, edit) {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
function linkSetting(id, edit) {
 | 
			
		||||
  $linkKey = $('#pageslide .link-key');
 | 
			
		||||
  $linkUrl = $('#pageslide .link-url');
 | 
			
		||||
  $linkTitle = $('#pageslide .link-title'),
 | 
			
		||||
  $linkPublishedTrue = $('#link_is_published_true');
 | 
			
		||||
  _status = edit;
 | 
			
		||||
  if(_status) {
 | 
			
		||||
    $.ajax({
 | 
			
		||||
      url: 'link-setting.json',
 | 
			
		||||
      type: 'POST',
 | 
			
		||||
      url: "<%= Rails.application.routes.url_helpers.get_link_setting_json_admin_links_path %>",
 | 
			
		||||
      contentType: "application/json; charset=utf-8",
 | 
			
		||||
      dataType: 'json',
 | 
			
		||||
      data: '{"id": ' + id + '}',
 | 
			
		||||
      data: {id: id},
 | 
			
		||||
      cache: false,
 | 
			
		||||
    })
 | 
			
		||||
    .done(function(data) {
 | 
			
		||||
      _linkData = data;
 | 
			
		||||
      $linkKey.val(data.key);
 | 
			
		||||
      $.each(data.url, function(index, val) {
 | 
			
		||||
         $linkUrl.eq(index).val(val)
 | 
			
		||||
      });
 | 
			
		||||
      $.each(data.title, function(index, val) {
 | 
			
		||||
         $linkTitle.eq(index).val(val)
 | 
			
		||||
      });
 | 
			
		||||
      data.public ? $linkPublishedTrue.prop('checked', true) : $linkPublishedTrue.prop('checked', false);
 | 
			
		||||
      $linkPublishedTrue.prop('checked') ? $('.link-options').slideDown(300) : $('.link-options').slideUp(300);
 | 
			
		||||
      $.each(data.link, function(index, val) {
 | 
			
		||||
        if(val[0]) {
 | 
			
		||||
          $('.active-link').eq(index).find('input[type="checkbox"]').prop('checked', true).end().find('.active-mune').slideDown(300);
 | 
			
		||||
          val[1] == 1 ? $('.active-link').eq(index).find('input[type="radio"]').eq(val[1]).prop('checked', true) : $('.active-link').eq(index).find('input[type="radio"]').eq(val[1]).prop('checked', true);
 | 
			
		||||
        };
 | 
			
		||||
      $.each(_linkData.link, function(index, val) {
 | 
			
		||||
        if(val[1]) {
 | 
			
		||||
          $('#pageslide .active-link.' + val[0]).find('input[type="checkbox"]').prop('checked', true).end().find('.active-mune').slideDown(300);
 | 
			
		||||
          $('#pageslide .active-link.' + val[0]).find('input[type="radio"]').eq(val[2]).prop('checked', true);
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
      $('#pageslide').find('.nano').nanoScroller({ scrollTop: 0, iOSNativeScrolling: true });
 | 
			
		||||
    })
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
class Admin::ItemsController < OrbitBackendController
 | 
			
		||||
  include ActionView::Helpers::DynamicForm
 | 
			
		||||
 | 
			
		||||
  layout "structure"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,20 +32,22 @@ class Admin::LinksController < Admin::ItemsController
 | 
			
		|||
 | 
			
		||||
  def update
 | 
			
		||||
    @item = Link.find(params[:id])
 | 
			
		||||
    unless @item.update_attributes(params[:link])
 | 
			
		||||
      @error = error_messages_for(@item)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
    if @item.update_attributes(params[:link])
 | 
			
		||||
      success = true
 | 
			
		||||
    else
 | 
			
		||||
      success = check_valid_url
 | 
			
		||||
  def get_link_setting_json
 | 
			
		||||
    begin
 | 
			
		||||
      link = Link.find(params[:id])
 | 
			
		||||
      m = {}
 | 
			
		||||
      m["public"] = link.is_published ? 1 : 0
 | 
			
		||||
      m["link"] = @site_valid_locales.inject([]) do |result, locale|
 | 
			
		||||
        result << [locale, (link.enabled_for && link.enabled_for.include?(locale)) ? 1 : 0, (link.menu_enabled_for && link.menu_enabled_for[locale]) ? 1 :0]
 | 
			
		||||
      end
 | 
			
		||||
    if success
 | 
			
		||||
      flash.now[:notice] = t('update.success.link')
 | 
			
		||||
      respond_to do |format|
 | 
			
		||||
        format.js { render 'admin/items/reload_items' }
 | 
			
		||||
      end
 | 
			
		||||
    else
 | 
			
		||||
      flash.now[:error] = t('update.error.link')
 | 
			
		||||
      render :action => "edit"
 | 
			
		||||
      render json: JSON.pretty_generate(m)
 | 
			
		||||
    rescue
 | 
			
		||||
      render :json => {error: ''}, status: 422
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@ class Admin::PagesController < Admin::ItemsController
 | 
			
		|||
  helper Admin::PagePartsHelper
 | 
			
		||||
  include Admin::FrontendWidgetInterface
 | 
			
		||||
 | 
			
		||||
  include ActionView::Helpers::DynamicForm
 | 
			
		||||
 | 
			
		||||
  def show
 | 
			
		||||
    @item = Page.find(params[:id])
 | 
			
		||||
    @no_orbit_bar = true
 | 
			
		||||
| 
						 | 
				
			
			@ -158,7 +156,7 @@ class Admin::PagesController < Admin::ItemsController
 | 
			
		|||
      m["count"] = page.frontend_data_count 
 | 
			
		||||
      render json: JSON.pretty_generate({design: design, module: m})
 | 
			
		||||
    rescue
 | 
			
		||||
      render :json => {error: 'hahah'}, status: 422
 | 
			
		||||
      render :json => {error: ''}, status: 422
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,8 @@
 | 
			
		|||
class Link < Item
 | 
			
		||||
  
 | 
			
		||||
  field :url
 | 
			
		||||
  field :url, localize: 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
 | 
			
		||||
  # 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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -10,11 +10,22 @@ class Link < Item
 | 
			
		|||
    ApplicationController.helpers.link_to(self.name, self.url)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def urls
 | 
			
		||||
  	self.url_translations.inject({}) do |result, (key, value)|
 | 
			
		||||
  		result["url-#{key}"] = value
 | 
			
		||||
  		result
 | 
			
		||||
  	end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  protected
 | 
			
		||||
 | 
			
		||||
	def add_http
 | 
			
		||||
	  unless self.url[/^(http|https):\/\//] || self.url.blank?
 | 
			
		||||
	    self.url = 'http://' + self.url
 | 
			
		||||
		if self.url_translations.present?
 | 
			
		||||
			self.url_translations.each_value do |u|
 | 
			
		||||
				unless u[/^(http|https):\/\//] || u.blank?
 | 
			
		||||
		    	u = 'http://' + u
 | 
			
		||||
		  	end
 | 
			
		||||
		  end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
    
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,57 @@
 | 
			
		|||
<div id="link" class="hide">
 | 
			
		||||
  <%= form_for :link, url: admin_links_path, remote: true do |f| %>
 | 
			
		||||
    <fieldset>
 | 
			
		||||
      <div id="page_error"></div>
 | 
			
		||||
      <%= f.hidden_field :parent, class: "parent" %>
 | 
			
		||||
      <%= f.label :name, content_tag(:i, nil, :class => "icons-star") + t(:name) %>
 | 
			
		||||
      <%= 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.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 %>
 | 
			
		||||
      <% end %>
 | 
			
		||||
 | 
			
		||||
      <div class="checkbox-groups" id="link-is-published">
 | 
			
		||||
        <%= f.label :is_published, t(:is_published) %>
 | 
			
		||||
        <p>
 | 
			
		||||
          <label class="radio inline">
 | 
			
		||||
            <%= f.radio_button :is_published, true %> <%= t(:yes_) %>
 | 
			
		||||
          </label>
 | 
			
		||||
          <label class="radio inline">
 | 
			
		||||
            <%= f.radio_button :is_published, false, checked: "checked" %> <%= t(:no_) %>
 | 
			
		||||
          </label>
 | 
			
		||||
        </p>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="link-options checkbox-groups hide">
 | 
			
		||||
        <label><%= t(:activation_link) %></label>
 | 
			
		||||
        <% @site_valid_locales.each do |valid_locale| %>
 | 
			
		||||
          <div class="active-link <%= valid_locale %>">
 | 
			
		||||
            <label class="checkbox">
 | 
			
		||||
              <%= check_box_tag 'link[enabled_for][]', valid_locale, false, class: "lang-enable" %> <%= I18nVariable.from_locale(valid_locale) %>
 | 
			
		||||
            </label>
 | 
			
		||||
            <div class="active-mune">
 | 
			
		||||
              <span><%= t(:menu_enable) %></span>
 | 
			
		||||
              <label class="radio inline">
 | 
			
		||||
                <%= radio_button_tag "link[menu_enabled_for][#{valid_locale}]", false, true %> <%= t(:no_) %>
 | 
			
		||||
              </label>
 | 
			
		||||
              <label class="radio inline">
 | 
			
		||||
                <%= radio_button_tag "link[menu_enabled_for][#{valid_locale}]", true, false %> <%= t(:yes_) %>
 | 
			
		||||
              </label>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        <% end %>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="form-actions">
 | 
			
		||||
        <a href="javascript:$.pageslide.close()" class="btn btn-small"><%= t(:cancel) %></a>
 | 
			
		||||
        <%= f.submit t(:submit), class: 'btn btn-primary btn-small' %>
 | 
			
		||||
      </div>
 | 
			
		||||
    </fieldset>
 | 
			
		||||
  <% end %>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			@ -63,7 +63,7 @@
 | 
			
		|||
        </p>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="link-options checkbox-groups">
 | 
			
		||||
      <div class="link-options checkbox-groups hide">
 | 
			
		||||
        <label><%= t(:activation_link) %></label>
 | 
			
		||||
        <% @site_valid_locales.each do |valid_locale| %>
 | 
			
		||||
          <div class="active-link <%= valid_locale %>">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,9 +18,13 @@
 | 
			
		|||
      <% end %>
 | 
			
		||||
      <div class="item-menu">
 | 
			
		||||
        <%= link_to content_tag(:i, nil, class: "icon-eye-open"), "/#{node.path}?edit=true", class: "view-page open-slide tip", title: t(:view), data: {title: node.title} if node.class.to_s.eql?('Page') %>
 | 
			
		||||
        <%= link_to content_tag(:i, nil, class: "icon-edit"), "#page", class: "open-slide tip #{node.class.to_s.downcase} edit", title: t(:edit), data: {title: t(:edit), id: node.id.to_s, parent: node.parent_id.to_s, form: {name: node.name}.merge(node.title_translations)} %>
 | 
			
		||||
        <% if node.class.to_s.downcase.eql?("page") %>
 | 
			
		||||
          <%= link_to content_tag(:i, nil, class: "icon-edit"), "#page", class: "open-slide tip page edit", title: t('editing.page'), data: {title: t('editing.page'), id: node.id.to_s, parent: node.parent_id.to_s, form: {name: node.name}.merge(node.title_translations)} %>
 | 
			
		||||
        <% elsif node.class.to_s.downcase.eql?("link") %>
 | 
			
		||||
          <%= link_to content_tag(:i, nil, class: "icon-edit"), "#link", class: "open-slide tip link edit", title: t('editing.link'), data: {title: t('editing.link'), id: node.id.to_s, parent: node.parent_id.to_s, form: {name: node.name}.merge(node.title_translations).merge(node.urls)} %>
 | 
			
		||||
        <% end %>
 | 
			
		||||
        <%= link_to content_tag(:i, nil, class: "icons-newspaper"), "#page", class: "open-slide tip page", title: t(:add_page), data: {title: t(:add_page), id: 'new', parent: node.parent_id.to_s} if node.class.to_s.eql?('Page') %>
 | 
			
		||||
        <%= link_to content_tag(:i, nil, class: "icon-link"), new_admin_link_path(:parent_id => node.id), class: "open-slide tip link", title: t(:add_link), data: {title: t(:add_link)} if node.class.to_s.eql?('Page') %>
 | 
			
		||||
        <%= link_to content_tag(:i, nil, class: "icon-link"), "#link", class: "open-slide tip link", title: t(:add_link), data: {title: t(:add_link)} if node.class.to_s.eql?('Page') %>
 | 
			
		||||
        <%= link_to content_tag(:i, nil, class: "icon-trash"), nil, rel: eval("admin_#{node.class.to_s.downcase}_path(node)"), class: "delete tip", title: t(:delete_), data: {title: t(:delete_)} unless node.root? %>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,4 +6,5 @@
 | 
			
		|||
<% end %>
 | 
			
		||||
<%= render 'layouts/delete_modal', delete_options: {remote: true} %>
 | 
			
		||||
<%= render 'form_page' %>
 | 
			
		||||
<%= render 'form_link' %>
 | 
			
		||||
<%= javascript_include_tag "lib/pageslide.js" %>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,95 +0,0 @@
 | 
			
		|||
<%= flash_messages %>
 | 
			
		||||
<%= f.error_messages %>
 | 
			
		||||
 | 
			
		||||
<%= f.hidden_field :parent, :value => (@item.parent.id rescue nil) %>
 | 
			
		||||
<%= f.hidden_field :id, :value => (@item.id), :id => "object_id" %>
 | 
			
		||||
 | 
			
		||||
<%= f.label :name, content_tag(:i, nil, :class => "icons-star") + t(:name) %>
 | 
			
		||||
<%= f.text_field :name, class: 'input-xlarge', placeholder: t(:name) %>
 | 
			
		||||
<span class="help-block"><%= I18n.t("front_page.name_field_helper") %></span>
 | 
			
		||||
 | 
			
		||||
<%= f.fields_for :title_translations do |f| %>
 | 
			
		||||
	<% @site_valid_locales.each do |locale| %>
 | 
			
		||||
		<%= f.label :locale, "#{t(:title)} #{I18nVariable.from_locale(locale)}" %>
 | 
			
		||||
		<%= f.text_field locale, class: 'input-xlarge', placeholder: "#{t(:title)} #{I18nVariable.from_locale(locale)}", value: (@item.title_translations[locale] rescue nil) %>
 | 
			
		||||
	<% end %>
 | 
			
		||||
<% end %>
 | 
			
		||||
 | 
			
		||||
<%= f.label :design, t(:template_name) %>
 | 
			
		||||
<%= f.collection_select :design, @designs, :id, :title, {selected: (@selected[:design].id rescue nil) }, {rel: reload_themes_admin_pages_path, class: "input-xlarge"} %>
 | 
			
		||||
 | 
			
		||||
<%= f.label :theme, t(:theme) %>
 | 
			
		||||
<%= f.select :theme_id, @themes.collect { |t| [t.name.capitalize, t.id] }, {include_blank: true, selected: (@selected[:theme].id rescue nil) }, { class: "input-xlarge" } %>
 | 
			
		||||
 | 
			
		||||
<div id="module_app_list">
 | 
			
		||||
	<label for="select_module_app">
 | 
			
		||||
		<%= t("default_widget.select_module_app") %>
 | 
			
		||||
	</label>
 | 
			
		||||
	<%= f.select :module_app_id, options_from_collection_for_select(@module_apps, :id, :module_name, selected: (@selected[:module_app].id rescue nil)), {include_blank: true }, {rel: reload_after_module_changed_admin_pages_path, id: "page_module_app_id", class: "input-xlarge"} %>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id="frontend_list">
 | 
			
		||||
	<label for="select_app_url">
 | 
			
		||||
		<%= t("default_widget.select_app_url") %>
 | 
			
		||||
	</label>
 | 
			
		||||
	<div id="app_page_url">
 | 
			
		||||
		<%= select('page','app_frontend_url', @app_frontend_urls || [], {selected: @selected[:app_frontend_url], rel: reload_after_list_changed_admin_pages_path}, class: "input-xlarge") rescue '' %>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id="app_page_category">
 | 
			
		||||
	<%= render :partial=>"admin/page_parts/widget_data_source_category",:locals=>{:object=>@item} %>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id="app_page_tag">
 | 
			
		||||
	<%= render :partial=>"admin/page_parts/widget_data_source_tag" ,:locals=>{:object=>@item}%>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id="frontend_setting">
 | 
			
		||||
	<% if show_default_widget_setting_panel %>
 | 
			
		||||
		<%= render :partial=>'admin/page_parts/widget_setting',:locals=>{:object=>@item,:f=>f} %>
 | 
			
		||||
	<% end %>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<div id='data_count'>
 | 
			
		||||
	<%= render :partial=>'data_count_field',:locals=>{:field_name=>"page[frontend_data_count]",:field_value=>@selected[:page_frontend_data_count]} %>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<%= f.label :is_published, "#{t('front_page.is_published')} ?" %>
 | 
			
		||||
<p>
 | 
			
		||||
  <label class="radio inline">
 | 
			
		||||
    <%= f.radio_button :is_published, true %>
 | 
			
		||||
    <%= t(:yes_) %>
 | 
			
		||||
  </label>
 | 
			
		||||
  <label class="radio inline">
 | 
			
		||||
    <%= f.radio_button :is_published, false %>
 | 
			
		||||
    <%= t(:no_) %>
 | 
			
		||||
  </label>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<%= f.label :menu_enabled_for, "#{t('front_page.menu_enable_lang')}:" %>
 | 
			
		||||
<p>
 | 
			
		||||
	<% @site_valid_locales.each do |valid_locale| %>
 | 
			
		||||
		<label class="checkbox inline">
 | 
			
		||||
			<%= check_box_tag 'page[menu_enabled_for][]', valid_locale, (@item.menu_enabled_for.nil? ? true : @item.menu_enabled_for.include?(valid_locale)) %>
 | 
			
		||||
			<%= I18nVariable.from_locale(valid_locale) %>
 | 
			
		||||
    </label>
 | 
			
		||||
	<% end %>
 | 
			
		||||
	<%= hidden_field_tag 'page[menu_enabled_for][]', '' %>
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
<%= f.label :enabled_for, "#{t('front_page.link_enable_lang')}:" %>
 | 
			
		||||
<p>
 | 
			
		||||
	<% @site_valid_locales.each do |valid_locale| %>
 | 
			
		||||
		<label class="checkbox inline">
 | 
			
		||||
			<%= check_box_tag 'page[enabled_for][]', valid_locale, (@item.enabled_for.nil? ? true : @item.enabled_for.include?(valid_locale)) %>
 | 
			
		||||
			<%= I18nVariable.from_locale(valid_locale) %>
 | 
			
		||||
        </label>
 | 
			
		||||
		<% end %>
 | 
			
		||||
		<%= hidden_field_tag 'page[enabled_for][]', '' %>
 | 
			
		||||
		<!-- <p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p> -->
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
<%=javascript_include_tag "lib/items/update_cates_and_tags.js" %>
 | 
			
		||||
<%= javascript_include_tag "lib/items/page_widget_edit_interface.js" %>
 | 
			
		||||
| 
						 | 
				
			
			@ -94,6 +94,9 @@ Orbit::Application.routes.draw do
 | 
			
		|||
    end
 | 
			
		||||
 | 
			
		||||
    resources :links do
 | 
			
		||||
      collection do
 | 
			
		||||
        get 'get_link_setting_json'
 | 
			
		||||
      end
 | 
			
		||||
      member do
 | 
			
		||||
        get 'delete'
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,6 +58,10 @@ namespace :new_ui do
 | 
			
		|||
    menu_enabled_for_to_hash
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  task :link_url_to_hash => :environment do
 | 
			
		||||
    link_url_to_hash
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def migrate_categories(args = nil)
 | 
			
		||||
    if args && args[:app_key] && args[:model_name]
 | 
			
		||||
      migrate_category(args[:app_key], args[:model_name], args[:category_name])
 | 
			
		||||
| 
						 | 
				
			
			@ -270,4 +274,17 @@ namespace :new_ui do
 | 
			
		|||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def link_url_to_hash
 | 
			
		||||
    @db ||= Mongoid.database
 | 
			
		||||
    collection_link = @db['items']
 | 
			
		||||
    links = collection_link.find({_type: 'Link'})
 | 
			
		||||
    links.each do |link|
 | 
			
		||||
      link['url'] = VALID_LOCALES.inject({}) do |enable, locale|
 | 
			
		||||
        enable[locale] = link['url']
 | 
			
		||||
        enable
 | 
			
		||||
      end
 | 
			
		||||
      collection_link.save(link)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue