Merge branch 'design_team' into ldap
This commit is contained in:
		
						commit
						6b9c8eb15d
					
				|  | @ -15,4 +15,5 @@ | |||
| //= require tinymce_orbit
 | ||||
| //= require orbit-bar-search
 | ||||
| //= require side_bar_history
 | ||||
| //= require rss
 | ||||
| //= require ajax_form
 | ||||
|  | @ -1,29 +0,0 @@ | |||
| function load_tinymce() { | ||||
|   $('.tinymce_textarea').tinymce({ | ||||
|     theme: 'advanced', | ||||
|         plugins : "autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template", | ||||
| 
 | ||||
|         // Theme options
 | ||||
|         theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect", | ||||
|         theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,forecolor,backcolor", | ||||
|         theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,fullscreen", | ||||
|         theme_advanced_toolbar_location : "top", | ||||
|         theme_advanced_toolbar_align : "left", | ||||
|         theme_advanced_statusbar_location : "bottom", | ||||
|         theme_advanced_resizing : true, | ||||
| 
 | ||||
|         // Skin options
 | ||||
|         skin : "o2k7", | ||||
|         skin_variant : "silver", | ||||
| 
 | ||||
|         // Drop lists for link/image/media/template dialogs
 | ||||
|         template_external_list_url : "js/template_list.js", | ||||
|         external_link_list_url : "js/link_list.js", | ||||
|         external_image_list_url : "js/image_list.js", | ||||
|         media_external_list_url : "js/media_list.js" | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| $(document).ready(function() { | ||||
|   load_tinymce(); | ||||
| }); | ||||
|  | @ -0,0 +1,88 @@ | |||
| function load_tinymce() { | ||||
|   $('.tinymce_textarea').tinymce({ | ||||
| 
 | ||||
|     // General options | ||||
|     theme: 'advanced', | ||||
|     file_browser_callback : 'myFileBrowser', | ||||
|     plugins : "autolink,lists,pagebreak,style,layer,table,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave", | ||||
| 
 | ||||
|     // Theme options | ||||
|     theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect", | ||||
|     theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,forecolor,backcolor", | ||||
|     theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,fullscreen", | ||||
|     theme_advanced_toolbar_location : "top", | ||||
|     theme_advanced_toolbar_align : "left", | ||||
|     theme_advanced_statusbar_location : "bottom", | ||||
|     theme_advanced_resizing : true, | ||||
| 
 | ||||
|     // Skin options | ||||
|     skin : "o2k7", | ||||
|     skin_variant : "silver", | ||||
| 
 | ||||
|     // Drop lists for link/image/media/template dialogs | ||||
|     template_external_list_url : "js/template_list.js", | ||||
|     // external_link_list_url : "js/link_list.js", | ||||
|     // external_image_list_url : "js/image_list.js", | ||||
|     // media_external_list_url : "js/media_list.js" | ||||
| 
 | ||||
|     // Style formats | ||||
|     style_formats : [ | ||||
|       {title : 'Bold text', inline : 'b'}, | ||||
|       {title : 'Red text', inline : 'span', styles : {color : '#ff0000'}}, | ||||
|       {title : 'Red header', block : 'h1', styles : {color : '#ff0000'}}, | ||||
|       {title : 'Example 1', inline : 'span', classes : 'example1'}, | ||||
|       {title : 'Example 2', inline : 'span', classes : 'example2'}, | ||||
|       {title : 'Table styles'}, | ||||
|       {title : 'Table row 1', selector : 'tr', classes : 'tablerow1'} | ||||
|     ], | ||||
| 
 | ||||
|     // Replace values for the template plugin | ||||
|     template_replace_values : { | ||||
|       username : "Some User", | ||||
|       staffid : "991234" | ||||
|     } | ||||
|   }); | ||||
| } | ||||
| function myFileBrowser(field_name, url, type, win) { | ||||
|     var cmsURL = window.location.toString(); | ||||
|       cmsURL = cmsURL.split("/"); | ||||
|       cmsURL = "<%= Rails.application.routes.url_helpers.file_upload_admin_assets_path %>";  | ||||
|       console.log(cmsURL); | ||||
|       // script URL - use an absolute path! | ||||
|     if (cmsURL.indexOf("?") < 0) { | ||||
|         //add the type as the only query parameter | ||||
|         cmsURL = cmsURL + "?type=" + type; | ||||
|     } | ||||
|     else { | ||||
|         //add the type as an additional query parameter | ||||
|         // (PHP session ID is now included if there is one at all) | ||||
|         cmsURL = cmsURL + "&type=" + type; | ||||
|     } | ||||
| 
 | ||||
|     tinyMCE.activeEditor.windowManager.open({ | ||||
|         file : cmsURL, | ||||
|         title : 'File Browser', | ||||
|         width : 850,  // Your dimensions may differ - toy around with them! | ||||
|         height : 455, | ||||
|         resizable : "no", | ||||
|         inline : "no",  // This parameter only has an effect if you use the inlinepopups plugin! | ||||
|         close_previous : "no" | ||||
|     }, { | ||||
|         window : win, | ||||
|         input : field_name, | ||||
|     }); | ||||
|     return false; | ||||
|   } | ||||
|   function ajaxSave() { | ||||
|     var ed = tinyMCE.get('content'); | ||||
|     // Do you ajax call here, window.setTimeout fakes ajax call | ||||
|     ed.setProgressState(1); // Show progress | ||||
|     window.setTimeout(function() { | ||||
|       ed.setProgressState(0); // Hide progress | ||||
|       alert(ed.getContent()); | ||||
|     }, 3000); | ||||
|   } | ||||
| 
 | ||||
| $(document).ready(function() { | ||||
|   load_tinymce(); | ||||
| }); | ||||
|  | @ -0,0 +1,65 @@ | |||
| class Admin::AssetCategoriesController < OrbitBackendController | ||||
| 
 | ||||
|   def index | ||||
|     @asset_categories = AssetCategory.all | ||||
|     @asset_category = AssetCategory.new | ||||
|     @url = admin_asset_categories_path | ||||
| 
 | ||||
|   end | ||||
| 
 | ||||
|   def show | ||||
|     @asset_category = AssetCategory.find(params[:id]) | ||||
|   end | ||||
| 
 | ||||
|   def new | ||||
|     @asset_category = AssetCategory.new | ||||
|   end | ||||
|    | ||||
|   def edit | ||||
|     @asset_category = AssetCategory.find(params[:id]) | ||||
|     @i18n_variable = @asset_category.i18n_variable	 | ||||
|     @url = admin_asset_categories_path(@asset_category) | ||||
|   end | ||||
| 
 | ||||
|   def create | ||||
|     @asset_category = AssetCategory.new(params[:asset_category]) | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       if @asset_category.save | ||||
|         format.html { redirect_to(admin_asset_categories_url, :notice => t('announcement.create_asset_category_success')) } | ||||
|         format.js | ||||
|       else | ||||
|         format.html { render :action => "new" } | ||||
|         format.js { render action: "new" } | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def update | ||||
|     @asset_category = AssetCategory.find(params[:id]) | ||||
| 	 | ||||
| 	@url = admin_asset_categories_path(@asset_category) | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       if @asset_category.update_attributes(params[:asset_category]) | ||||
|         # format.html { redirect_to(panel_announcement_back_end_asset_category_url(@asset_category), :notice => t('asset_category.update_asset_category_success')) } | ||||
|         # format.html { redirect_to(panel_announcement_back_end_asset_categories_url, :notice => t('asset_category.update_asset_category_success')) } | ||||
|         # format.xml  { head :ok } | ||||
|         format.js | ||||
|       else | ||||
|         format.html { render :action => "edit" } | ||||
|         format.js { render :action => "edit" } | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def destroy | ||||
|     @asset_category = AssetCategory.find(params[:id]) | ||||
|     @asset_category.destroy | ||||
| 
 | ||||
|     respond_to do |format| | ||||
|       format.html { redirect_to(admin_asset_categories_url) } | ||||
|       format.js | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  | @ -0,0 +1,8 @@ | |||
| class Admin::AssetTagsController < Admin::TagsController | ||||
|    | ||||
|   def initialize | ||||
|     super | ||||
|     @app_title = 'asset' | ||||
|   end | ||||
|    | ||||
| end | ||||
|  | @ -1,11 +1,7 @@ | |||
| class Admin::AssetsController < ApplicationController | ||||
| 
 | ||||
|   layout "admin" | ||||
|   before_filter :authenticate_user! | ||||
|   before_filter :is_admin? | ||||
| class Admin::AssetsController < OrbitBackendController | ||||
|    | ||||
|   def index | ||||
|     @assets = Asset.all.entries | ||||
|     @assets = (params[:sort] || @filter) ? get_sorted_and_filtered("asset") : Asset.all.page(params[:page]).per(10) | ||||
|   end | ||||
|    | ||||
|   def show | ||||
|  | @ -14,6 +10,8 @@ class Admin::AssetsController < ApplicationController | |||
|    | ||||
|   def new | ||||
|     @asset = Asset.new | ||||
|     @asset_categories = AssetCategory.all | ||||
|     @tags = AssetTag.all | ||||
|     respond_to do |format| | ||||
|       format.html {} | ||||
|       format.js { render 'js/show_pop_up', :locals => {:partial => 'admin/assets/new'} } | ||||
|  | @ -22,6 +20,8 @@ class Admin::AssetsController < ApplicationController | |||
|    | ||||
|   def edit | ||||
|     @asset = Asset.find(params[:id]) | ||||
|     @asset_categories = AssetCategory.all | ||||
|     @tags = AssetTag.all | ||||
|     respond_to do |format| | ||||
|       format.html {} | ||||
|       format.js { render 'js/show_pop_up', :locals => {:partial => 'admin/assets/edit'} } | ||||
|  | @ -30,15 +30,29 @@ class Admin::AssetsController < ApplicationController | |||
|    | ||||
|   def create   | ||||
|     @asset = Asset.new(params[:asset]) | ||||
|     if @asset.save | ||||
|     @asset.filename = @asset.i18n_variable[I18n.locale] rescue nil | ||||
|     if @asset.filename && @asset.save | ||||
|       respond_to do |format| | ||||
|         format.html { redirect_to admin_assets_url } | ||||
|         format.js { render 'js/remove_pop_up_and_reload_content', :locals => {:function => 'append', :id => 'asset_tbody', :value => @asset, :values => nil, :partial => 'admin/assets/asset', :locals => nil} } | ||||
|         format.js { | ||||
|           if params[:uploader] | ||||
|             render 'create' | ||||
|           else | ||||
|             render 'js/remove_pop_up_and_reload_content', :locals => {:function => 'replaceWith', :id => "asset_#{@asset.id}", :value => @asset, :values => nil, :partial => 'admin/assets/asset', :locals => nil} | ||||
|           end | ||||
|         } | ||||
|       end | ||||
|     else | ||||
|       flash[:error] = t(:create_fail) | ||||
|       @asset_categories = AssetCategory.all | ||||
|       @tags = AssetTag.all | ||||
|       respond_to do |format| | ||||
|         format.html { render :action => :new } | ||||
|         format.js { render 'js/reload_pop_up', :locals => {:value => @asset, :values => nil, :partial => 'admin/assets/new', :locals => {:is_html => false}} } | ||||
|         format.js {  | ||||
|           if params[:uploader] | ||||
|             render 'file_upload' | ||||
|           else | ||||
|             render 'js/reload_pop_up', :locals => {:value => @asset, :values => nil, :partial => 'admin/assets/new', :locals => {:is_html => false}}  | ||||
|           end | ||||
|         } | ||||
|       end | ||||
|     end | ||||
|   end | ||||
|  | @ -51,6 +65,9 @@ class Admin::AssetsController < ApplicationController | |||
|         format.js { render 'js/remove_pop_up_and_reload_content', :locals => {:function => 'replaceWith', :id => "asset_#{@asset.id}", :value => @asset, :values => nil, :partial => 'admin/assets/asset', :locals => nil} } | ||||
|       end | ||||
|     else | ||||
|       flash[:error] = t(:update_fail) | ||||
|       @asset_categories = AssetCategory.all | ||||
|       @tags = AssetTag.all | ||||
|       respond_to do |format| | ||||
|         format.html { render :action => :edit } | ||||
|         format.js { render 'js/reload_pop_up', :locals => {:value => @asset, :values => nil, :partial => 'admin/assets/edit', :locals => {:is_html => false}} } | ||||
|  | @ -67,4 +84,23 @@ class Admin::AssetsController < ApplicationController | |||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def delete | ||||
|     if params[:to_delete] | ||||
|       asset = Asset.any_in(:_id => params[:to_delete]).delete_all | ||||
|     end | ||||
|     redirect_to assets_url(:filter => params[:filter], :direction => params[:direction], :sort => params[:sort], :sort_options => params[:sort_options]) | ||||
|   end | ||||
| 
 | ||||
|   def file_upload | ||||
|     @asset = Asset.new | ||||
|     @asset_categories = AssetCategory.all | ||||
|     @tags = AssetTag.all | ||||
|     render :layout => false | ||||
|   end | ||||
| 
 | ||||
|   def file_select | ||||
|     @assets = Asset.all | ||||
|     render :layout => false | ||||
|   end | ||||
|    | ||||
| end | ||||
|  |  | |||
|  | @ -20,7 +20,7 @@ module Admin::DashboardHelper | |||
| 			when 'news_bulletin' | ||||
| 				panel_news_front_end_news_bulletin_path(object) | ||||
| 			when'page_context' | ||||
| 				panel_page_content_front_end_page_context_path(object) | ||||
| 				"/#{object.page.path}" | ||||
| 			when'web_link' | ||||
| 				panel_web_resource_front_end_web_link_path(object) | ||||
| 		end | ||||
|  |  | |||
|  | @ -8,6 +8,16 @@ class Asset | |||
|   field :filename | ||||
|   field :description | ||||
|    | ||||
|   has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy | ||||
|    | ||||
|   validates_presence_of :filename, :data | ||||
| 
 | ||||
|   belongs_to :asset_category | ||||
|   belongs_to :assetable, polymorphic: true | ||||
|   has_and_belongs_to_many :tags, :class_name => "AssetTag" | ||||
| 
 | ||||
|   def sorted_tags | ||||
|     tags.order_by(I18n.locale, :asc) | ||||
|   end | ||||
|    | ||||
| end | ||||
|  |  | |||
|  | @ -0,0 +1,16 @@ | |||
| class AssetCategory | ||||
|   include Mongoid::Document | ||||
|   include Mongoid::Timestamps | ||||
| 
 | ||||
|   field :key | ||||
|   field :display | ||||
|    | ||||
|   has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy | ||||
|    | ||||
|   has_many :assets | ||||
|    | ||||
|   def self.from_id(id) | ||||
|     AssetCategory.find(id) rescue nil | ||||
|   end | ||||
|    | ||||
| end | ||||
|  | @ -0,0 +1,5 @@ | |||
| class AssetTag < Tag | ||||
|    | ||||
|   has_and_belongs_to_many :assets | ||||
| 
 | ||||
| end | ||||
|  | @ -48,8 +48,8 @@ class AssetUploader < CarrierWave::Uploader::Base | |||
|   # end | ||||
| 
 | ||||
|   # Override the filename of the uploaded files: | ||||
|   # def filename | ||||
|   #   "something.jpg" if original_filename | ||||
|   # end | ||||
|   def filename | ||||
|     model.filename | ||||
|   end | ||||
| 
 | ||||
| end | ||||
|  |  | |||
|  | @ -0,0 +1,17 @@ | |||
| 
 | ||||
| 	<tr id="<%= dom_id asset_category %>" class="with_action"> | ||||
| 		<td> | ||||
| 			<%= asset_category.key %> | ||||
| 			<div class="quick-edit"> | ||||
| 				<ul class="nav nav-pills hide"> | ||||
| 
 | ||||
| 						<li><%= link_to t('asset_category.edit'), edit_admin_asset_category_path(asset_category), :remote => true %></li> | ||||
| 						<li><%= link_to t('asset_category.delete'), admin_asset_category_path(asset_category), :confirm => t('announcement.sure?'), :method => :delete, :remote => true %></li> | ||||
| 					 | ||||
| 				</ul> | ||||
| 			</div> | ||||
| 		</td> | ||||
| 		<% @site_valid_locales.each do |locale| %> | ||||
| 		<td><%= asset_category.i18n_variable[locale] rescue nil %></td> | ||||
| 		<% end %> | ||||
| 	</tr> | ||||
|  | @ -0,0 +1,30 @@ | |||
| <% # encoding: utf-8 %> | ||||
| 
 | ||||
| <%= form_for(@asset_category, :remote => true, :url => @url) do |f| %> | ||||
| 
 | ||||
| 	<h2><%= (@asset_category.new_record? ? 'Add' : 'Edit') %></h2> | ||||
| 
 | ||||
| 	<div id="widget-title"> | ||||
| 		<%= f.label :key %> | ||||
| 		<%= f.text_field :key %> | ||||
| 	</div> | ||||
| 	 | ||||
| 	<div id="widget-title"> | ||||
| 		<%= f.fields_for :i18n_variable, (@asset_category.new_record? ? @asset_category.build_i18n_variable : @asset_category.i18n_variable) do |f| %> | ||||
| 		  <% @site_valid_locales.each do |locale| %> | ||||
| 				<div class="control-group"> | ||||
| 					<%= label_tag "name-#{locale}", "Name-#{I18nVariable.from_locale(locale)}", :class => 'control-label' %> | ||||
| 					<div class="controls"> | ||||
| 						<%= f.text_field locale, :class => 'input-xxlarge' %> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 		  <% end %> | ||||
| 		<% end %> | ||||
| 	</div> | ||||
|    | ||||
|   <div class="form-actions pagination-right"> | ||||
|     <%= f.submit t('submit'), :class=>'btn btn-primary' %> | ||||
|   </div> | ||||
|    | ||||
| <% end %> | ||||
|   | ||||
|  | @ -0,0 +1,2 @@ | |||
| $('<%= j render :partial => 'asset_category', :collection => [@asset_category] %>').appendTo('#asset_categories').hide().fadeIn(); | ||||
| $("#new_asset_category")[0].reset(); | ||||
|  | @ -0,0 +1 @@ | |||
| $("#<%= dom_id @asset_category %>").remove(); | ||||
|  | @ -0,0 +1 @@ | |||
| $("#form > form").replaceWith("<%= j render "form" %>"); | ||||
|  | @ -0,0 +1,41 @@ | |||
| 
 | ||||
| <%= flash_messages %> | ||||
| 
 | ||||
| <div id="filter" class="subnav"> | ||||
| 	<div class="filters"> | ||||
| 		<div id="sort_headers" class="table-label"> | ||||
| 			<table class="table main-list">	 | ||||
| 				<thead> | ||||
| 					<tr> | ||||
| 						<th class="span2"><%= t('asset_category.key') %></th> | ||||
| 						<% @site_valid_locales.each do |locale| %> | ||||
| 						<th class="span2"><%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %></th> | ||||
| 						<% end %> | ||||
| 					</tr> | ||||
| 				</thead> | ||||
| 			</table> | ||||
| 		</div> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| 
 | ||||
| <table id="asset_categories" class="table main-list"> | ||||
| 	<thead> | ||||
| 		<tr> | ||||
| 			<th class="span2"></th> | ||||
| 			<% @site_valid_locales.each do |locale| %> | ||||
| 			<th class="span2"></th> | ||||
| 			<% end %> | ||||
| 		</tr> | ||||
| 	</thead> | ||||
| 	<tbody> | ||||
| 
 | ||||
| 	<%= render :partial => 'asset_category', :collection => @asset_categories %> | ||||
| 	 | ||||
| 	</tbody> | ||||
| </table> | ||||
| 
 | ||||
| <div id="form"><%= render :partial => "form" %></div> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | @ -0,0 +1 @@ | |||
| $("#form > form").replaceWith("<%= j render "form" %>"); | ||||
|  | @ -0,0 +1,4 @@ | |||
| $("#<%= dom_id @asset_category %>").replaceWith("<%= j render :partial => 'asset_category', :collection => [@asset_category] %>"); | ||||
| <% @asset_category = AssetCategory.new(:display => 'List') # reset for new form %> | ||||
| $(".edit_asset_category").replaceWith("<%= j render "form" %>") | ||||
| $(".new_asset_category")[0].reset(); | ||||
|  | @ -1,17 +1,31 @@ | |||
| <tr id="asset_<%= asset.id %>" class="have"> | ||||
| 	<td><%= asset.id %></td> | ||||
| 	<td><div class="assets_pic"><%= image_tag(asset.data.url) %></div> | ||||
| 	<%#= link_to asset.filename, asset.data.url, :target => '_blank' %> | ||||
| <tr id="asset_<%= asset.id %>" class="with_action"> | ||||
| 	<td><%= check_box_tag 'to_delete[]', asset.id, false, :class => "checkbox_in_list" %></td> | ||||
| 	<td><%= asset.i18n_variable[I18n.locale] rescue nil %></td> | ||||
| 	<td> | ||||
| 		<i class="icons-picture img-peview" rel="popover" data-content="<img src='<%= asset.data.url %>' />" data-original-title="<%= asset.data.filename %>"></i> | ||||
| 		<div class="quick-edit"> | ||||
| 			<ul class="nav nav-pills hide"> | ||||
| 				<li><%= link_to t(:edit), edit_admin_asset_path(asset), :remote => true, :class => 'edit'  %></li> | ||||
| 				<li class="dropdown"><%= link_to t(:delete), admin_asset_path(asset), :confirm => t('sure?'), :method => :delete, :class => 'delete' %></li> | ||||
| 			</ul> | ||||
| 		</div> | ||||
| 	</td> | ||||
| 	<td><%= asset.description %></td> | ||||
| 	<td><%= asset.data.file.content_type %></td> | ||||
| 	<td><%= asset.data_identifier %></td> | ||||
| 	<td><%= number_to_human_size(asset.data.file.file_length) %></td> | ||||
| 	<td class="action"> | ||||
| 	  <%= link_to t(:edit), edit_admin_asset_path(asset), :remote => true, :class => 'edit' %> | ||||
| 	  <%= link_to t(:delete), admin_asset_path(asset), :confirm => t('sure?'), :method => :delete, :remote => true, :class => 'delete' %> | ||||
| 	<td><%= asset.category.i18n_variable[I18n.locale] rescue nil %></td> | ||||
| 	<td> | ||||
| 		<div class="label-group"> | ||||
| 			<div class="label-td"> | ||||
| 				<% asset.sorted_tags.each do |tag| %> | ||||
| 					<span class="label label-tags"><%= tag[I18n.locale] %></span> | ||||
| 				<% end %> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 	</td> | ||||
| </tr> | ||||
| <tr> | ||||
|   <td colspan="6"></td> | ||||
| </tr> | ||||
| 
 | ||||
| <script type="text/javascript"> | ||||
|     $('.img-peview').popover({ | ||||
|             delay: { show: 100, hide: 300 } | ||||
|     }); | ||||
| </script> | ||||
|  | @ -1,6 +1,8 @@ | |||
| <div id='pop_up_content' class="main2"> | ||||
| 	<h1><%= t('editing_asset') %></h1> | ||||
| 
 | ||||
| 	<%= flash_messages %> | ||||
| 
 | ||||
| 	<%= form_for @asset, :url => admin_asset_path(@asset), :html => {:id => (is_html ? nil : 'ajaxForm'), :multipart => true } do |f| %> | ||||
| 	  <%= f.error_messages %> | ||||
| 	  <%= render :partial => "form", :locals => { :f => f } %> | ||||
|  | @ -9,7 +11,7 @@ | |||
|     		<%= link_back %> | ||||
| 				<%= f.submit t(:edit) %> | ||||
| 			<% else %> | ||||
| 				<a id='ajax_form_submit'><%= t(:edit) %></a> | ||||
| 				<a id='ajax_form_submit' class="btn btn-primary"><%= t(:update) %></a> | ||||
| 			<% end %> | ||||
| 	  </div> | ||||
| 	<% end %> | ||||
|  |  | |||
|  | @ -0,0 +1,11 @@ | |||
| <div id='filter' class="subnav"> | ||||
| 	<div class="filters"> | ||||
| 		<div id="sort_headers" class="table-label"> | ||||
| 			<%= render 'sort_headers' %>  | ||||
| 		</div> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "sort_header" %> | ||||
| <% end %> | ||||
|  | @ -1,14 +1,38 @@ | |||
| <p> | ||||
| <%= f.label :filename, t('admin.file_name') %> | ||||
| <%= f.text_field :filename, :class => 'text' %> | ||||
| </p> | ||||
| 
 | ||||
| <p> | ||||
| <%= f.label :description, t('admin.description') %> | ||||
| <%= f.text_field :description, :class => 'text' %> | ||||
| </p> | ||||
| 
 | ||||
| <p> | ||||
| <%= f.label :data, t('admin.data'), :class => 'file' %> | ||||
| <%= f.file_field :data %> | ||||
| </p> | ||||
| <div class="control-group"> | ||||
|     <label for="title" class="control-label"><%= t 'admin.title' %></label> | ||||
|     <div class="controls"> | ||||
|         <%= f.fields_for :i18n_variable, (@asset.new_record? ? @asset.build_i18n_variable : @asset.i18n_variable) do |f| %> | ||||
|           <% @site_valid_locales.each do |locale| %> | ||||
|             <%= content_tag :label do -%> | ||||
|                 <div> | ||||
|                     <%= I18nVariable.from_locale(locale) %> | ||||
|                     <%= f.text_field locale, :class => "input-large" %> | ||||
|                 </div> | ||||
|             <% end %> | ||||
|           <% end %> | ||||
|         <% end %> | ||||
|     </div> | ||||
| </div> | ||||
| <div class="control-group"> | ||||
|     <label class="control-label"><%= f.label :category, t('admin.category') %></label> | ||||
|     <div class="controls"> | ||||
|         <%= f.select :asset_category_id, @asset_categories.collect{|t| [ t.i18n_variable[I18n.locale], t.id ]}, {}, :class => "input-large" %> | ||||
|     </div> | ||||
| </div> | ||||
| <div class="control-group"> | ||||
|     <label class="control-label"><%= t 'admin.tags' %></label> | ||||
|     <div class="controls"> | ||||
|         <% @tags.each do |tag| %> | ||||
|             <%= content_tag :label, :class => "checkbox inline" do -%> | ||||
|                 <%= check_box_tag 'asset[tag_ids][]', tag.id, @asset.tag_ids.include?(tag.id) %> | ||||
|                 <%= tag[I18n.locale] %> | ||||
|             <% end %> | ||||
|         <% end %> | ||||
|     </div> | ||||
| </div> | ||||
| <div class="control-group"> | ||||
|     <label class="control-label"><%= f.label :data, t('admin.data') %></label> | ||||
|     <div class="controls"> | ||||
|         <%= f.file_field :data, :class => 'upload' %> | ||||
|     </div> | ||||
| </div> | ||||
|  | @ -1,16 +1,13 @@ | |||
| <div id='pop_up_content' class="main2"> | ||||
| 	<h1><%= t('admin.new_asset') %></h1> | ||||
| 
 | ||||
| 	<%= form_for :asset, :url => admin_assets_path, :html => {:id => (is_html ? nil : 'ajaxForm'), :multipart => true } do |f| %> | ||||
| 	<%= flash_messages %> | ||||
| 
 | ||||
| 	<%= form_for :asset, :url => admin_assets_path, :html => {:id => 'ajaxForm', :multipart => true } do |f| %> | ||||
| 	  <%= f.error_messages %> | ||||
| 	  <%= render :partial => "form", :locals => { :f => f } %> | ||||
| 	  <div class="button_bar"> | ||||
| 			<% if is_html %> | ||||
|     		<%= link_back %> | ||||
| 				<%= f.submit t(:create) %> | ||||
| 			<% else %> | ||||
| 				<a id='ajax_form_submit' class="new"><%= t(:create) %></a> | ||||
| 			<% end %> | ||||
| 				<a id='ajax_form_submit' class="btn btn-primary"><%= t(:create) %></a> | ||||
| 	  </div> | ||||
| 	<% end %> | ||||
| </div> | ||||
|  |  | |||
|  | @ -0,0 +1,6 @@ | |||
| <%= render_sort_bar(true, ['title', 'title','span4', 'admin.title'], | ||||
| 													['description', 'description', 'span1-2', 'admin.data'], | ||||
| 													['intro', 'intro', 'span1-2', 'admin.file_type'], | ||||
| 													['intro', 'intro', 'span1-2', 'admin.file_length'], | ||||
| 													['intro', 'intro', 'span1-2', 'admin.category'], | ||||
| 													['intro', 'intro', 'span1-2', 'admin.tags']).html_safe %> | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -0,0 +1,56 @@ | |||
| <%= javascript_include_tag "new_admin" %> | ||||
| <%= stylesheet_link_tag "new_admin"  %> | ||||
| 
 | ||||
| <%= flash_messages %> | ||||
| 
 | ||||
| <%= form_for :asset, :url => admin_assets_path(:uploader => true), :html => {:id => 'ajaxForm', :multipart => true } do |f| %> | ||||
|     <div class="modal-header"> | ||||
|         <h3><%= t 'admin.file_upload' %></h3> | ||||
|     </div> | ||||
|     <div class="modal-body form-horizontal"> | ||||
|         <div class="control-group"> | ||||
|             <label for="title" class="control-label"><%= t 'admin.title' %></label> | ||||
|             <div class="controls"> | ||||
|                 <%= f.fields_for :i18n_variable, (@asset.new_record? ? @asset.build_i18n_variable : @asset.i18n_variable) do |f| %> | ||||
|                   <% @site_valid_locales.each do |locale| %> | ||||
|                     <%= content_tag :label do -%> | ||||
|                         <div> | ||||
|                             <%= I18nVariable.from_locale(locale) %> | ||||
|                             <%= f.text_field locale, :class => "input-large" %> | ||||
|                         </div> | ||||
|                     <% end %> | ||||
|                   <% end %> | ||||
|                 <% end %> | ||||
|             </div> | ||||
|         </div> | ||||
|         <div class="control-group"> | ||||
|             <label class="control-label"><%= f.label :category, t('admin.category') %></label> | ||||
|             <div class="controls"> | ||||
|                 <%= f.select :asset_category_id, @asset_categories.collect{|t| [ t.i18n_variable[I18n.locale], t.id ]}, {}, :class => "input-large" %> | ||||
|             </div> | ||||
|         </div> | ||||
|         <div class="control-group"> | ||||
|             <label class="control-label"><%= t 'admin.tags' %></label> | ||||
|             <div class="controls"> | ||||
|                 <% @tags.each do |tag| %> | ||||
|                     <%= content_tag :label, :class => "checkbox inline" do -%> | ||||
|                         <%= check_box_tag 'asset[tag_ids][]', tag.id, @asset.tag_ids.include?(tag.id) %> | ||||
|                         <%= tag[I18n.locale] %> | ||||
|                     <% end %> | ||||
|                 <% end %> | ||||
|             </div> | ||||
|         </div> | ||||
|         <div class="control-group"> | ||||
|             <label class="control-label"><%= f.label :data, t('admin.data') %></label> | ||||
|             <div class="controls"> | ||||
|                 <%= f.file_field :data, :class => 'upload' %> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
|     <div style="position: absolute; width: 100%; bottom: 0;"> | ||||
|         <div class="modal-footer"> | ||||
|             <a id='ajax_form_submit' class="btn btn-primary"><%= t(:create) %></a> | ||||
|         </div> | ||||
|     </div> | ||||
| 
 | ||||
| <% end %> | ||||
|  | @ -1,32 +1,32 @@ | |||
| <% content_for :secondary do %> | ||||
| <div class="assets_setup"> | ||||
|   <ul class="list"> | ||||
| 	<li><%= link_to t(:new_asset, :scope => :admin), new_admin_asset_path, :remote => true, :class => 'button positive' %></li> | ||||
| 	<li><%= link_to t('admin.assets.file'), '', :remote => true, :class => 'button positive' %></li> | ||||
| 	<li><%= link_to t('admin.assets.album'), '',  :remote => true, :class => 'button positive'%></li> | ||||
| 	<li><%= link_to t('admin.assets.video'), '',  :remote => true, :class => 'button positive' %></li> | ||||
| 	<li><%= link_to t('admin.assets.book'), '',  :remote => true, :class => 'button positive' %></li> | ||||
|   </ul> | ||||
| </div> | ||||
| <% end -%> | ||||
| 
 | ||||
| <div class="main2"> | ||||
| 	<h1><%= t('admin.list_assets') %></h1> | ||||
| 
 | ||||
| 	<table> | ||||
| <%= form_for :assets, :url => delete_admin_assets_path(:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]), :html => {:id => 'delete_all'}, :remote => true do %> | ||||
| 	<%= render 'filter' %> | ||||
| 	<table id="asset_sort_list" class="table main-list"> | ||||
| 		<thead> | ||||
| 			<tr> | ||||
| 			  <td><%= t('admin.id') %></th> | ||||
| 			  <td><%= t('admin.file_name') %></th> | ||||
| 			  <td><%= t('admin.description') %></th> | ||||
| 			  <td><%= t('admin.format') %></th> | ||||
| 			  <td><%= t('admin.orig_upload_file') %></th> | ||||
| 			  <td><%= t('admin.file_size') %></th> | ||||
| 			  <td><%= t('admin.action') %></th> | ||||
|         <th class="span1"></th> | ||||
|         <th class="span4"></th> | ||||
|         <th class="span1-2"></th> | ||||
|         <th class="span1-2"></th> | ||||
|         <th class="span1-2"></th> | ||||
|         <th class="span1-2"></th> | ||||
|         <th class="span1-2"></th> | ||||
| 			</tr> | ||||
| 		</thead> | ||||
| 		<tbody id='asset_tbody'> | ||||
| 		<tbody id="tbody_assets" class="sort-holder"> | ||||
| 			<%= render :partial => 'asset', :collection => @assets %> | ||||
| 		<tbody> | ||||
| 		</tbody> | ||||
| 	</table> | ||||
| <% end %> | ||||
| 
 | ||||
| <div class="form-actions form-fixed pagination-right"> | ||||
| 	<%= link_to content_tag(:i, nil, :class => 'icon-plus icon-white') + t('admin.add'), new_admin_asset_path, :remote => true, :class => 'btn btn-primary pull-right' %> | ||||
| 	<div id="asset_pagination" class="paginationFixed"> | ||||
| 		<%= paginate @assets, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]}, :remote => true %> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| <% content_for :page_specific_javascript do %> | ||||
| 	<%= javascript_include_tag "/static/jquery.cycle.all.latest.js" %> | ||||
| 	<%= javascript_include_tag "inc/modal-preview" %> | ||||
| <% end %> | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,4 @@ | |||
| $("#delete_all").attr("action", "<%= delete_admin_assets_path(:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]) %>"); | ||||
| $("#sort_headers").html("<%= j render 'sort_headers' %>"); | ||||
| $("#tbody_assets").html("<%= j render :partial => 'asset', :collection => @assets %>"); | ||||
| $("#asset_pagination").html("<%= j paginate @assets, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>"); | ||||
|  | @ -6,9 +6,3 @@ | |||
| 	  </div> | ||||
|   <% end %> | ||||
| <% end %> | ||||
| 
 | ||||
| <script> | ||||
| 	$(document).ready(function() { | ||||
| 	  load_tinymce(); | ||||
| 	}); | ||||
| </script> | ||||
|  |  | |||
|  | @ -1 +1,44 @@ | |||
| $('#back_main').html("<%= j render(:partial => 'edit') %>"); | ||||
| tinymce.init({ | ||||
|     // General options | ||||
|     mode: 'textareas', | ||||
|     theme: 'advanced', | ||||
|     file_browser_callback : 'myFileBrowser', | ||||
|     plugins : "autolink,lists,pagebreak,style,layer,table,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave", | ||||
| 
 | ||||
|     // Theme options | ||||
|     theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect", | ||||
|     theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,forecolor,backcolor", | ||||
|     theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,fullscreen", | ||||
|     theme_advanced_toolbar_location : "top", | ||||
|     theme_advanced_toolbar_align : "left", | ||||
|     theme_advanced_statusbar_location : "bottom", | ||||
|     theme_advanced_resizing : true, | ||||
| 
 | ||||
|     // Skin options | ||||
|     skin : "o2k7", | ||||
|     skin_variant : "silver", | ||||
| 
 | ||||
|     // Drop lists for link/image/media/template dialogs | ||||
|     template_external_list_url : "js/template_list.js", | ||||
|     // external_link_list_url : "js/link_list.js", | ||||
|     // external_image_list_url : "js/image_list.js", | ||||
|     // media_external_list_url : "js/media_list.js" | ||||
| 
 | ||||
|     // Style formats | ||||
|     style_formats : [ | ||||
|       {title : 'Bold text', inline : 'b'}, | ||||
|       {title : 'Red text', inline : 'span', styles : {color : '#ff0000'}}, | ||||
|       {title : 'Red header', block : 'h1', styles : {color : '#ff0000'}}, | ||||
|       {title : 'Example 1', inline : 'span', classes : 'example1'}, | ||||
|       {title : 'Example 2', inline : 'span', classes : 'example2'}, | ||||
|       {title : 'Table styles'}, | ||||
|       {title : 'Table row 1', selector : 'tr', classes : 'tablerow1'} | ||||
|     ], | ||||
| 
 | ||||
|     // Replace values for the template plugin | ||||
|     template_replace_values : { | ||||
|       username : "Some User", | ||||
|       staffid : "991234" | ||||
|     } | ||||
| }); | ||||
|  | @ -67,3 +67,12 @@ | |||
| 		<%= content_tag :li, link_to(t('announcement.tags'), panel_web_resource_back_end_tags_path), :class => active_for_action('/panel/web_resource/back_end/tags', 'index') %> | ||||
| 	<% end -%> | ||||
| <% end -%> | ||||
| 
 | ||||
| <%= content_tag :li, :class => active_for_controllers('assets', '/admin/asset_tags', 'asset_categories') do -%> | ||||
| 	<%= link_to content_tag(:i, nil, :class => 'icons-link') + t('admin.asset'), admin_assets_path %> | ||||
| 	<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('assets', '/admin/asset_tags', 'asset_categories')) do -%> | ||||
| 		<%= content_tag :li, link_to(t('admin.all_assets'), admin_assets_path), :class => active_for_action('assets', 'index') %> | ||||
| 		<%= content_tag :li, link_to(t('admin.categories'), admin_asset_categories_path), :class => active_for_action('asset_categories', 'index') %> | ||||
| 		<%= content_tag :li, link_to(t('admin.tags'), admin_asset_tags_path), :class => active_for_action('/admin/asset_tags', 'index') %> | ||||
| 	<% end -%> | ||||
| <% end -%> | ||||
|  | @ -24,6 +24,9 @@ Orbit::Application.configure do | |||
|   config.action_dispatch.best_standards_support = :builtin   | ||||
| 
 | ||||
| 
 | ||||
|   config.assets.debug = true | ||||
| 
 | ||||
| 
 | ||||
|   # config.middleware.use ExceptionNotifier, | ||||
|   #   :email_prefix => "[R4_error]", | ||||
|   #   :sender_address => %{"notifier" <redmine@rulingcom.com>}, | ||||
|  |  | |||
|  | @ -11,6 +11,7 @@ en: | |||
|   back: Back | ||||
|   browse: Browse | ||||
|   cancel: Cancel | ||||
|   create_fail: Creation failed | ||||
|   create: Create | ||||
|   delete: Delete | ||||
|   desktop: Desktop | ||||
|  | @ -41,6 +42,7 @@ en: | |||
|   submit: Submit | ||||
|   sure?: Are you sure? | ||||
|   update: Update | ||||
|   update_failed: Update failed | ||||
|   view: View | ||||
|   view_count: View count | ||||
|   yes_: "Yes" | ||||
|  | @ -117,6 +119,7 @@ en: | |||
|     calendar: Calendar | ||||
|     cant_delete_self: You can not delete yourself. | ||||
|     cant_revoke_self_admin: You can not revoke your admin role yourself. | ||||
|     category: Category | ||||
|     choose_file: Choose a file... | ||||
|     class: Class | ||||
|     content: Content | ||||
|  | @ -146,6 +149,7 @@ en: | |||
|     enabled_for: Enabled for | ||||
|     file_name: Filename | ||||
|     file_size: File size | ||||
|     file_upload: File upload | ||||
|     format: Format | ||||
|     home: Home | ||||
|     id: ID | ||||
|  | @ -231,6 +235,7 @@ en: | |||
|     site_title: Site title | ||||
|     super_pages: Super pages | ||||
|     structure: Structure | ||||
|     tags: Tags | ||||
|     title: Title | ||||
|     translation: Translation | ||||
|     type: Type | ||||
|  |  | |||
|  | @ -9,6 +9,7 @@ zh_tw: | |||
|   browse: 選擇檔案 | ||||
|   cancel: 取消 | ||||
|   create: 新增 | ||||
|   create_fail: 創建失敗 | ||||
|   delete: 刪除 | ||||
|   desktop: 桌面 | ||||
|   disable: 禁用 | ||||
|  | @ -38,6 +39,7 @@ zh_tw: | |||
|   submit: 送出 | ||||
|   sure?: 您肯定嗎? | ||||
|   update: 更新 | ||||
|   update: 更新失敗 | ||||
|   view: 檢視 | ||||
|   view_count: 查看次數 | ||||
|   yes_: "Yes" | ||||
|  | @ -113,6 +115,7 @@ zh_tw: | |||
|     calendar: 行事曆 | ||||
|     cant_delete_self: 您不可以刪除自己。 | ||||
|     cant_revoke_self_admin: 您不可以撤銷自己的管理身份。 | ||||
|     category: 類別 | ||||
|     choose_file: 請選擇一個文件... | ||||
|     class: 階級 | ||||
|     content: 內容 | ||||
|  | @ -147,6 +150,7 @@ zh_tw: | |||
|     enabled_for: 啟用 | ||||
|     file_name: 檔名 | ||||
|     file_size: 檔案大小 | ||||
|     file_upload: 文件上載 | ||||
|     format: 格式 | ||||
|     home: 首頁 | ||||
|     id: ID | ||||
|  | @ -236,6 +240,7 @@ zh_tw: | |||
|     site_setting: 網站設定 | ||||
|     super_pages: 可編頁面 | ||||
|     structure: 網站結構 | ||||
|     tags: 標籤 | ||||
|     title: 標題 | ||||
|     translation: 翻譯 | ||||
|     type: 類型 | ||||
|  |  | |||
|  | @ -14,7 +14,14 @@ Orbit::Application.routes.draw do | |||
|   # routes for admin | ||||
|   namespace :admin do | ||||
|     mount Resque::Server.new, :at => "/resque" | ||||
|     resources :assets | ||||
|     resources :assets do    | ||||
|       collection do | ||||
|         get 'file_upload' | ||||
|         post 'delete' | ||||
|       end | ||||
|     end | ||||
|     resources :asset_categories | ||||
|     resources :asset_tags | ||||
|     resources :app_auths  | ||||
|     resources :object_auths  do | ||||
|       match 'new_interface/:ob_type/:title/new' => "object_auths_new_interface#new" ,:as => :init_ob_auth,:via => :get | ||||
|  |  | |||
|  | @ -50,13 +50,13 @@ | |||
| 				<div class="control-group"> | ||||
| 					<label class="control-label">Start</label> | ||||
| 					<div class="controls"> | ||||
| 						<%= f.date_select :postdate, {:use_month_numbers => true, :order => [:day, :month, :year] }, {:class => 'input-small'} %>				 | ||||
| 						<%= f.datetime_select :postdate, {:use_month_numbers => true, :order => [:day, :month, :year] }, {:class => 'span1'} %> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 				<div class="control-group"> | ||||
| 					<label class="control-label">End</label> | ||||
| 					<div class="controls"> | ||||
| 						<%= f.date_select :deadline, {:use_month_numbers => true, :prompt => { :month => 'Month', :day => 'Day', :year => 'Year'}, :order => [:day, :month, :year] }, {:class => 'input-small'} %> | ||||
| 						<%= f.datetime_select :deadline, {:use_month_numbers => true, :prompt => { :month => 'Month', :day => 'Day', :year => 'Year'}, :order => [:day, :month, :year] }, {:class => 'span1'} %> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 			</div> | ||||
|  |  | |||
|  | @ -2,10 +2,10 @@ | |||
| <h1 class="h1"><%= @news_bulletin.title[I18n.locale] %></h1> | ||||
| <div class="info"> | ||||
| 	<div class="info1"> | ||||
| 		<span class="pull-right"><%= dislpay_view_count(@news_bulletin) %></span> | ||||
| 		<span class="date"><%= @news_bulletin.postdate %></span> | ||||
| 		 |  | ||||
| 		<a href="" class="unit"><%= @news_bulletin.unit_list_for_anc.title[I18n.locale] rescue '' %></a> | ||||
| 		<span><%= dislpay_view_count(@news_bulletin) %></span> | ||||
| 	</div> | ||||
| </div> | ||||
| <div class="news_image"> | ||||
|  |  | |||
|  | @ -3,8 +3,9 @@ | |||
| 
 | ||||
| <p id="notice"><%= flash_messages %></p> | ||||
| 
 | ||||
| <div class="view_count pull-right"><%= dislpay_view_count(@page_context) %></div> | ||||
| <h1 class="h1"><%= @page_context.page.i18n_variable[I18n.locale] rescue nil %></h1> | ||||
| 
 | ||||
| <div class="page_content"><%= @page_context.context[I18n.locale].html_safe rescue nil %></div> | ||||
| 
 | ||||
| <div><%= dislpay_view_count(@page_context) %></div> | ||||
| 
 | ||||
|  |  | |||
		Reference in New Issue