diff --git a/app/controllers/admin/web_resources_controller.rb b/app/controllers/admin/web_resources_controller.rb index ddebf46..ab03f6a 100644 --- a/app/controllers/admin/web_resources_controller.rb +++ b/app/controllers/admin/web_resources_controller.rb @@ -32,15 +32,22 @@ class Admin::WebResourcesController < OrbitAdminController epl.save end end - @links = WebLink.all.asc(:order_position) + @categories = @module_app.categories.enabled + module_app = @categories[0].module_app rescue nil + @filter_fields = { + :category => @categories.sort_by{|c| (((module_app.asc rescue true) ? c.sort_number : -c.sort_number) rescue c.id)}.map{|c| {:title=>(c.title.blank? ? " " : c.title), :id=>c.id}} + } + @links = WebLink.all.with_categories(filters("category")).asc(:order_position) + render :partial => "order" if request.xhr? end - + def updateorder ids_with_order = params[:order] - ids_with_order.each_with_index do |id,index| + positions = WebLink.in(id: ids_with_order).asc(:order_position).map(&:order_position) + ids_with_order.each_with_index do |id, index| link = WebLink.find(id) rescue nil if !link.nil? - link.order_position = index + link.order_position = positions[index] link.save end end @@ -48,6 +55,7 @@ class Admin::WebResourcesController < OrbitAdminController end def new + session[:return_to] = request.referer @tags =@module_app.tags @categories = @module_app.categories.enabled @statuses = [] @@ -62,10 +70,11 @@ class Admin::WebResourcesController < OrbitAdminController max_position = -1 if max_position.nil? link.order_position = max_position + 1 link.save - redirect_to admin_web_resources_path + redirect_to session.delete(:return_to) || admin_web_resources_path end def edit + session[:return_to] = request.referer if can_edit_or_delete?(@link) @tags =@module_app.tags @categories = @module_app.categories.enabled @@ -78,7 +87,7 @@ class Admin::WebResourcesController < OrbitAdminController def update @link.update_attributes(link_params) @link.save - redirect_to admin_web_resources_path + redirect_to session.delete(:return_to) || admin_web_resources_path end def destroy diff --git a/app/views/admin/web_resources/_order.html.erb b/app/views/admin/web_resources/_order.html.erb new file mode 100644 index 0000000..6e2bbb2 --- /dev/null +++ b/app/views/admin/web_resources/_order.html.erb @@ -0,0 +1,203 @@ + +
| + | <%= t("web_link.position") %> | +<%= t("web_link.link") %> | +
|---|---|---|
| + |
+ <%= (i + 1).to_s %>
+ |
+
+ <%= link.title.html_safe %>
+ |
+
| - | <%= t("web_link.position") %> | -<%= t("web_link.link") %> | -
|---|---|---|
| - |
- <%= (i + 1).to_s %>
- |
-
- <%= link.title.html_safe %>
- |
-