Changes for default index:
- remove approvable and filterable - add display_option - change params Update web link and gallery index
This commit is contained in:
		
							parent
							
								
									af0ab9f0d3
								
							
						
					
					
						commit
						1dc7884ec0
					
				|  | @ -1,6 +1,5 @@ | |||
| $(function () { | ||||
| 	var $fileList = $('.file-list'), | ||||
| 		$fileType = $('.file-type'), | ||||
| 	var $fileType = $('.file-type'), | ||||
| 		$type = ['pdf', 'psd', 'ai', 'fla', 'swf', 'in', 'acc', 'do', 'xl', 'pp', 'zip', 'rar', '7z', 'txt', 'jp', 'gif', 'png', 'mp3', 'wav']; | ||||
| 
 | ||||
| 	$fileType.each(function (i) { | ||||
|  |  | |||
|  | @ -53,27 +53,14 @@ | |||
|   text-overflow: ellipsis; | ||||
|   overflow: hidden; | ||||
| } | ||||
| .main-list td .file-list { | ||||
|   display: inline-block; | ||||
|   margin: 0 0 -6px; | ||||
| } | ||||
| .main-list td .file-list:after { | ||||
|   content: ""; | ||||
|   clear: both; | ||||
|   display: block; | ||||
|   height: 0; | ||||
|   visibility: hidden; | ||||
| } | ||||
| .main-list td .file-type { | ||||
|   position: relative; | ||||
|   list-style: none; | ||||
|   float: left; | ||||
|   display: inline-block; | ||||
| } | ||||
| .main-list td .file-type a { | ||||
|   background-color: #A6A6A6; | ||||
|   color: #FFFFFF; | ||||
|   margin-right: 10px; | ||||
|   padding: 2px 5px 2px 3px; | ||||
|   border-radius: 3px; | ||||
|   text-decoration: none; | ||||
|  |  | |||
|  | @ -82,48 +82,48 @@ module OrbitBackendHelper | |||
|     res = '' | ||||
|     case field[:type] | ||||
|     when 'associated' | ||||
|       res << object.send(field[:db_field]).send(field[:associated_value]) rescue '' | ||||
|     when 'date' | ||||
|       res << (object.send(field[:db_field]) ? display_date_time(object.send(field[:db_field])) : t(:no_date)) | ||||
|     when 'field' | ||||
|       res << with_link?(field, object, object.send(field[:db_field])) | ||||
|       if field[:quick_edit] | ||||
|         res << (content_tag :div, class: "quick-edit" do | ||||
|                   content_tag :ul, class: "nav nav-pills" do | ||||
|                     @quick_edit.each do |quick| | ||||
|                       concat get_quick_link(quick, object, authorization, approvable) | ||||
|                     end | ||||
|                   end | ||||
|                 end) | ||||
|       end | ||||
|       sorted_objects = get_sorted_objects(object.send(field[:db_field]), field[:model_field]) rescue '' | ||||
|     when 'id' | ||||
|       sorted_objects = get_sorted_objects(field[:model].find(object.send(field[:db_field])), field[:model_field]) rescue '' | ||||
|     when 'status' | ||||
|       status = [] | ||||
|       if object.is_top? | ||||
|         res << content_tag(:span, t(:top), class: "label label-success") + ' ' | ||||
|         status << content_tag(:span, t(:top), class: "label label-success") | ||||
|       end | ||||
|       if object.is_hot? | ||||
|         res << content_tag(:span, t(:hot), class: "label label-important") + ' ' | ||||
|         status << content_tag(:span, t(:hot), class: "label label-important") | ||||
|       end | ||||
|       if object.is_hidden? | ||||
|         res << content_tag(:span, t(:hidden), class: "label") + ' ' | ||||
|         status << content_tag(:span, t(:hidden), class: "label") | ||||
|       end | ||||
|       if @approvable | ||||
|         if object.is_pending? | ||||
|           res << content_tag(:span, t(:pending), class: "label") + ' ' | ||||
|           status << content_tag(:span, t(:pending), class: "label") | ||||
|         end | ||||
|         if object.is_checked? | ||||
|           res << content_tag(:span, t(:passed), class: "label") + ' ' | ||||
|           status << content_tag(:span, t(:passed), class: "label") | ||||
|         end | ||||
|         if object.is_rejected? | ||||
|           res << content_tag(:span, t(:rejected), class: "label") + ' ' | ||||
|           status << content_tag(:span, t(:rejected), class: "label") | ||||
|         end | ||||
|       end | ||||
|       res << status.join(' ') | ||||
|     when 'tags' | ||||
|       object.sorted_tags.each do |tag| | ||||
|         res << content_tag(:span, tag.name, class: "label label-warning") | ||||
|       end if object.tags | ||||
|       res.html_safe | ||||
|     when 'id' | ||||
|       res << field[:id_model].constantize.find(object.send(field[:db_field])).name rescue '' | ||||
|       sorted_objects = get_sorted_objects(object.tags, 'name') rescue '' | ||||
|     else | ||||
|       sorted_values = object.send(field[:db_field]) | ||||
|       sorted_values = sorted_values.sort if sorted_values.is_a?(Array) | ||||
|     end | ||||
|     res << display_value_from_object(object, sorted_values, field[:display_option]) if sorted_values | ||||
|     res << display_value_from_objects(sorted_objects, field[:model_field], field[:display_option]) if sorted_objects | ||||
|     if field[:quick_edit] | ||||
|       res << (content_tag :div, class: "quick-edit" do | ||||
|                 content_tag :ul, class: "nav nav-pills" do | ||||
|                   @quick_edit.each do |quick| | ||||
|                     concat get_quick_link(quick, object, authorization, approvable) | ||||
|                   end | ||||
|                 end | ||||
|               end) | ||||
|     end | ||||
|     res.html_safe | ||||
|   end | ||||
|  | @ -134,7 +134,7 @@ module OrbitBackendHelper | |||
|         (content_tag :tr, class: "sort-header" do | ||||
|           @fields.each do |field| | ||||
|             concat (content_tag :th, "data-hide" => field[:hide], class: "#{field[:header_class]} #{'active' if params[:sort].eql?(field[:sort])}" do | ||||
|               if @sortable && field[:sort] | ||||
|               if field[:sort] | ||||
|                 link_to is_sort_active?(field), url_for({:filter => @filter}.merge(sortable_options(field[:sort]).merge(:sort_options => field[:db_field]))) | ||||
|               else | ||||
|                 t(field[:translation]) | ||||
|  | @ -163,12 +163,48 @@ module OrbitBackendHelper | |||
|     @filterable = false | ||||
|     @index_footer = nil | ||||
|     @quick_edit = [] | ||||
|     @sortable = false | ||||
|     block.call | ||||
|   end | ||||
| 
 | ||||
|   protected | ||||
| 
 | ||||
|   def display_value(value) | ||||
|     case value.class.name | ||||
|     when 'DateTime' | ||||
|       display_date_time(value) | ||||
|     when 'Date' | ||||
|       display_date(value) | ||||
|     when 'Time' | ||||
|       display_time(value) | ||||
|     when /Uploader/ | ||||
|       image_tag(value.url) | ||||
|     else | ||||
|       value | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def display_value_from_object(object, value, display_option) | ||||
|     if display_option | ||||
|       eval(display_option) | ||||
|     else | ||||
|       display_value(value) | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def display_value_from_objects(objects, field, display_option) | ||||
|     if display_option | ||||
|       objects = Array(objects).map do |object| | ||||
|         eval(display_option) | ||||
|       end | ||||
|       objects.join(' ') | ||||
|     else | ||||
|       objects = Array(objects).map do |object| | ||||
|         display_value(object.send(field)) | ||||
|       end | ||||
|       objects.join(', ') | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   # =============================================================== | ||||
|   # type: | ||||
|   #   check "get_value" | ||||
|  | @ -189,15 +225,22 @@ module OrbitBackendHelper | |||
|   #   (only available for type 'field' for now) | ||||
|   # =============================================================== | ||||
|   def field(args={}) | ||||
|     if !args.blank? && args[:type] && args[:translation] && args[:db_field] | ||||
|     if !args.blank? && args[:translation] && args[:db_field] | ||||
|       case args[:type] | ||||
|       when 'status', 'field', 'date', 'tags' | ||||
|         @fields << args | ||||
|       when 'associated' | ||||
|         @fields << args if args[:associated_value] | ||||
|         @fields << args if args[:model_field] || args[:display_option] | ||||
|       when 'id' | ||||
|         @fields << args if args[:id_model] | ||||
|         @fields << args if args[:model] && (args[:model_field] || args[:display_option]) | ||||
|       when 'image' | ||||
|         args[:header_class] ||= 'span2' | ||||
|         @fields << args | ||||
|       else | ||||
|         @fields << args | ||||
|       end | ||||
|     elsif !args.blank? && args[:type].eql?('tags') | ||||
|       args[:translation] ||= 'tags' | ||||
|       args[:display_option] ||= "content_tag(:span, object.name, class: 'label label-warning')" | ||||
|       @fields << args | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|  | @ -209,13 +252,10 @@ module OrbitBackendHelper | |||
|       when 'objects' | ||||
|         @filter_fields << args if args[:object_field] | ||||
|       end | ||||
|       @filterable ||= true | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def filterable | ||||
|     @filterable = true | ||||
|   end | ||||
| 
 | ||||
|   # =============================================================== | ||||
|   # args: | ||||
|   #   - paginate: default true, there'es no need to specify it | ||||
|  | @ -258,6 +298,17 @@ module OrbitBackendHelper | |||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def get_sorted_objects(objects, field) | ||||
|     if field | ||||
|       objects_array = Array(objects).inject([]){ |result, value| | ||||
|         result << [value.send(field), value] | ||||
|       } | ||||
|       objects_array.sort.map{|d| d[1]} | ||||
|     else | ||||
|       objects | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def is_approvable(object) | ||||
|     current_or_guest_user.admin? || (!object.is_rejected? && !object.is_checked?) | ||||
|   end | ||||
|  | @ -274,10 +325,6 @@ module OrbitBackendHelper | |||
|     @objects = objects | ||||
|   end | ||||
| 
 | ||||
|   def sortable | ||||
|     @sortable = true | ||||
|   end | ||||
| 
 | ||||
|   def with_link?(field, object, value) | ||||
|     if field[:link] && @approvable | ||||
|       if object.class.instance_methods.include?(:is_checked?) && object.is_checked? | ||||
|  |  | |||
|  | @ -1,7 +1,5 @@ | |||
| <% set_default_index do  | ||||
| 	objects @bulletins | ||||
| 	filterable | ||||
| 	sortable | ||||
| 	quick_edit_link type: 'edit', | ||||
| 									link: 'edit_panel_announcement_back_end_bulletin_path' | ||||
| 	quick_edit_link type: 'detail' | ||||
|  | @ -10,42 +8,42 @@ | |||
| 	quick_edit_link type: 'approval', | ||||
| 									link: 'panel_announcement_back_end_bulletin_approval_preview_path' | ||||
| 	quick_edit_link type: 'reject_reason' | ||||
| 	field type: 'image', | ||||
| 				db_field: 'image', | ||||
| 				translation: 'preview', | ||||
| 				hide: 'phone' | ||||
| 	field type: 'status', | ||||
| 				db_field: @statuses, | ||||
| 				translation: 'status', | ||||
| 				hide: 'phone', | ||||
| 				sort: 'status' | ||||
| 	field type: 'associated', | ||||
| 				associated_value: 'title', | ||||
| 				db_field: 'category', | ||||
| 				model_field: 'title', | ||||
| 				translation: 'category', | ||||
| 				hide: 'phone', | ||||
| 				sort: 'category' | ||||
| 	field type: 'field', | ||||
| 				db_field: 'title', | ||||
| 	field db_field: 'title', | ||||
| 				translation: 'title', | ||||
| 				sort: 'title', | ||||
| 				link: 'panel_announcement_front_end_bulletin_path', | ||||
| 				display_option: 'link_to value, panel_announcement_front_end_bulletin_path(object)', | ||||
| 				quick_edit: true, | ||||
| 				header_class: 'span5' | ||||
| 	field type: 'date', | ||||
| 				db_field: 'postdate', | ||||
| 	field db_field: 'postdate', | ||||
| 				translation: 'start_date', | ||||
| 				hide: 'phone', | ||||
| 				sort: 'start_date' | ||||
| 	field type: 'date', | ||||
| 				db_field: 'deadline', | ||||
| 	field db_field: 'deadline', | ||||
| 				translation: 'end_date', | ||||
| 				hide: 'phone', | ||||
| 				sort: 'end_date' | ||||
| 	field type: 'tags', | ||||
| 				db_field: 'tags', | ||||
| 				translation: 'tags', | ||||
| 				hide: 'all', | ||||
| 				sort: 'tags' | ||||
| 	field type: 'id', | ||||
| 				id_model: 'User', | ||||
| 				db_field: 'update_user_id', | ||||
| 				model: User, | ||||
| 				model_field: 'name', | ||||
| 				translation: 'last_modified', | ||||
| 				hide: 'phone', | ||||
| 				sort: 'last_modified' | ||||
|  |  | |||
|  | @ -1,7 +1,5 @@ | |||
| <% set_default_index do  | ||||
| 	objects @archive_files | ||||
| 	filterable | ||||
| 	sortable | ||||
| 	quick_edit_link type: 'edit', | ||||
| 									link: 'edit_panel_archive_back_end_archive_file_path' | ||||
| 	quick_edit_link type: 'detail' | ||||
|  | @ -14,23 +12,27 @@ | |||
| 				sort: 'status', | ||||
| 				header_class: 'span2' | ||||
| 	field type: 'associated', | ||||
| 				associated_value: 'title', | ||||
| 				db_field: 'category', | ||||
| 				model_field: 'title', | ||||
| 				translation: 'category', | ||||
| 				hide: 'phone', | ||||
| 				sort: 'category', | ||||
| 				header_class: 'span2' | ||||
| 	field type: 'field', | ||||
| 				db_field: 'title', | ||||
| 	field db_field: 'title', | ||||
| 				translation: 'title', | ||||
| 				sort: 'title', | ||||
| 				link: 'panel_archive_front_end_archive_file_path', | ||||
| 				quick_edit: true | ||||
| 				display_option: 'link_to value, panel_archive_front_end_archive_file_path(object)', | ||||
| 				quick_edit: true, | ||||
| 				header_class: 'span5' | ||||
| 	field type: 'tags', | ||||
| 				db_field: 'tags', | ||||
| 				translation: 'tags', | ||||
| 				hide: 'all', | ||||
| 				sort: 'tags' | ||||
| 	field type: 'associated', | ||||
| 				db_field: 'archive_file_multiples', | ||||
| 				translation: 'file_', | ||||
| 				display_option: "content_tag(:span, link_to(content_tag(:i) + object.file_identifier, object.file.url, target: '_blank'), class: 'file-type') unless object.file.blank?", | ||||
| 				hide: 'all', | ||||
| 				header_class: 'span2' | ||||
| 	filter_field  type: 'array', | ||||
| 								values: @statuses, | ||||
| 								translation: 'status' | ||||
|  | @ -46,3 +48,7 @@ | |||
| end %> | ||||
| 
 | ||||
| <%= render 'admin/default_index/index' %> | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "lib/file-type" %> | ||||
| <% end %> | ||||
|  |  | |||
|  | @ -1,29 +1,24 @@ | |||
| <% set_default_index do  | ||||
|   objects @albums | ||||
|   filterable | ||||
|   filter_field  type: 'objects', | ||||
|                 values: @tags, | ||||
|                 translation: 'tags', | ||||
|                 object_field: 'name' | ||||
|   footer  link: 'new_panel_gallery_back_end_album_path', | ||||
|           paginate: false | ||||
| end %> | ||||
| <%= render 'admin/default_index/index' %> | ||||
|       | ||||
| <ul id="orbit_gallery" class="gallery" data-gallery-id="gallery"> | ||||
|   <% @albums.each do |album| %> | ||||
|     <%= render :partial => "album", :object => album %> | ||||
|   <% end %> | ||||
| </ul> | ||||
| 
 | ||||
| <%= stylesheet_link_tag "gallery" %> | ||||
| <%#= stylesheet_link_tag "filter" %> | ||||
| <% content_for :page_specific_css do %> | ||||
|   <%= stylesheet_link_tag "gallery" %> | ||||
| <% end %> | ||||
| 
 | ||||
|         <!-- Bottom Nav --> | ||||
|         <div class="bottomnav clearfix"> | ||||
|           <div class="action pull-right"> | ||||
|             <a href="<%= new_panel_gallery_back_end_album_path %>" class="btn btn-primary"><i class="icons-plus"></i> Add New</a> | ||||
|           </div> | ||||
|         </div> | ||||
|     </div> | ||||
|          | ||||
|        <ul id="orbit_gallery" class="gallery" data-gallery-id="gallery"> | ||||
|           <% @albums.each do |album| %> | ||||
|             <%= render :partial => "album", :object => album %> | ||||
|           <% end %> | ||||
|         </ul> | ||||
| <% content_for :page_specific_javascript do %> | ||||
|   <%= javascript_include_tag "jquery.masonry.min.js" %> | ||||
|   <%= javascript_include_tag "jquery.mu.image.resize.js" %> | ||||
|  |  | |||
|  | @ -1,7 +1,5 @@ | |||
| <% set_default_index do  | ||||
| 	objects @web_links | ||||
| 	filterable | ||||
| 	sortable | ||||
| 	quick_edit_link type: 'edit', | ||||
| 									link: 'edit_panel_web_resource_back_end_web_link_path' | ||||
| 	quick_edit_link type: 'detail' | ||||
|  | @ -14,22 +12,19 @@ | |||
| 				sort: 'status', | ||||
| 				header_class: 'span2' | ||||
| 	field type: 'associated', | ||||
| 				associated_value: 'title', | ||||
| 				db_field: 'category', | ||||
| 				model_field: 'title', | ||||
| 				translation: 'category', | ||||
| 				hide: 'phone', | ||||
| 				sort: 'category', | ||||
| 				header_class: 'span2' | ||||
| 	field type: 'field', | ||||
| 				db_field: 'title', | ||||
| 	field db_field: 'title', | ||||
| 				translation: 'title', | ||||
| 				sort: 'title', | ||||
| 				link: 'panel_web_resource_front_end_web_link_path', | ||||
| 				display_option: 'link_to value, panel_web_resource_front_end_web_link_path(object)', | ||||
| 				quick_edit: true, | ||||
| 				header_class: 'span5' | ||||
| 	field type: 'tags', | ||||
| 				db_field: 'tags', | ||||
| 				translation: 'tags', | ||||
| 				hide: 'all', | ||||
| 				sort: 'tags' | ||||
| 	filter_field  type: 'array', | ||||
|  |  | |||
		Reference in New Issue