app/views/manifestations/index.html.erb
<!--[if IE 9]> <div class="ie9"> <![endif]-->
<script>
<!--
$(document).ready(function() {
$('#sort_plan').change(function() {
url = "<%= url_for(:controller => :manifestations,:action => :index) %>";
var sort_plan = $('#sort_plan').val();
url += "?sort_plan=" + sort_plan;
var parameter = location.search;
parameter = parameter.substring(1, parameter.length);
parameter = decodeURIComponent(parameter);
parameters = parameter.split('&');
var fix_parameter = "";
for(var i = 0; i < parameters.length; i++) {
if (!parameters[i].match(/^sort_plan=|^page=/))
fix_parameter += "&" + parameters[i];
}
if (fix_parameter != null)
url += fix_parameter;
location.href = url;
});
$('#per_page').change(function() {
url = "<%= url_for(:controller => :manifestations,:action => :index) %>";
var per_page = $('#per_page').val();
url += "?per_page=" + per_page;
var parameter = location.search;
parameter = parameter.substring(1, parameter.length);
parameter = decodeURIComponent(parameter);
parameters = parameter.split('&');
var fix_parameter = "";
for(var i = 0; i < parameters.length; i++) {
if (!parameters[i].match(/^per_page=|^page=/))
fix_parameter += "&" + parameters[i];
}
if (fix_parameter != null)
url += fix_parameter;
location.href = url;
});
});
-->
</script>
<script id = "key_controll">
$(document).ready(function() {
var first_focus = document.getElementsByClassName("search_form");
first_focus[0].focus();
$('table.container').on('focus', 'tr', function() {
$this = $(this);
$this.addClass('active').siblings().removeClass('active');
$this.closest('table.container').scrollTop($this.index() * $this.outerHeight());
}).on('keydown', 'tr', function(e) {
$this = $(this);
switch(e.keyCode){
case 40: //↓
$this.next().focus();
return false;
break;
case 38: //↑
$this.prev().focus();
return false;
break;
case 37: //←
<% move_page = 0 %>
<% move_page = params[:page].to_i if params[:page] %>
//今のページを取得
var now_page = "page="+ <%=move_page%>;
var new_page = "page="+ <%=move_page - 1%>;
var page_address = location.href;
//現在のページが「取得できない」or「1」の場合
if (now_page == "page=0" || now_page == "page=1"){
} else {
var new_address = page_address.replace(now_page, new_page);
location.href = new_address;
}
return false;
break;
case 39: //→
<% move_page = 0 %>
<% move_page = params[:page].to_i if params[:page] %>
<% end_page = 0 %>
<% end_page = @manifestations.num_pages if @manifestations.try(:num_pages) %>
//今のページを取得
var now_page = "page="+ <%=move_page %>;
var new_page = "page="+ <%=move_page + 1 %>;
var last_page = "page="+ <%=end_page %>
var page_address = location.href;
//現在のページが「取得できない」場合
if (now_page == "page=0"){
//ページ上限での処理
if (last_page == "page=1") {
} else {
new_page = "page="+ <%=move_page + 2 %>;
var address = location.search;
var search_address = address.replace("?", "?"+ new_page + "&");
location.search = search_address;
}
} else {
//ページ上限での処理
if (now_page == last_page) {
} else {
var new_address = page_address.replace(now_page, new_page);
location.href = new_address;
}
}
return false;
break;
case 13: //enter
var tags = document.getElementsByClassName('active');
var manifestation_tag = tags[0].getAttribute('name');
var page_address = location.href;
if (page_address.match(/works?/)) {
var page_pathname = location.pathname;
page_pathname = "manifestations/" + manifestation_tag;
location.pathname = page_pathname;
} else {
var new_address = page_address.replace("manifestations?", "manifestations/" + manifestation_tag + "?");
location.href = new_address;
}
return false;
break;
}
<%- if SystemConfiguration.get('focus_start_position') -%>
}).find('tr').first().focus();
<% else %>
})
<% end %>
//外側をクリックしたときに枠を外す
$listover = false;
$(document).click(function(){
if ($listover) {}
else{
var tags = document.getElementsByClassName('active');
if ($(tags).size()){
var manifestation_tag = tags[0].getAttribute('id');
$("#"+ manifestation_tag).removeClass('active');
}
}
});
$("#list").hover(function () {$listover = true;},function () {$listover = false;});
});
</script>
<%- unless params[:index] && params[:index] == 'nacsis' -%>
<div id="facet_menu" class="ui-corner-all">
<%- if @manifestations && (@manifestations.total_count > 0) -%>
<h4 class="title"><%= t('page.result_filters') %></h4>
<%- if @subject %>
<h4><%= t('activerecord.models.subject') %></h4>
<ul>
<li><%= @subject.term %></li>
<li><%= link_to t('page.remove_this_facet'), manifestations_path(params.merge(:subject_id => nil)) %></li>
</ul>
<%- end -%>
<%= render 'manifestations/all_facet' -%>
<br />
<%- end -%>
<% if @series_statement and can?(:update, @series_statement) %>
<%= render 'submenu_series_statement' %>
<% end %>
<%- if params[:library_id].blank? -%>
<%= link_to (image_tag 'icons/feed.png', :size => '16x16', :alt => t('page.feed'), :title => t('tooltip.feed'), :class => 'icon'), url_for(params.merge(:format => :rss, :page => nil, :library_id => nil)) -%> <%= link_to t('page.search_result_feed'), url_for(params.merge(:format => :rss, :page => nil, :library_id => nil, :commit => nil)) -%>
<%- else -%>
<%= link_to (image_tag 'icons/feed.png', :size => '16x16', :alt => t('page.feed'), :title => t('tooltip.feed'), :class => 'icon'), url_for(params.merge(:format => :rss, :page => nil)) -%> <%= link_to t('page.search_result_feed'), url_for(params.merge(:format => :rss, :page => nil, :commit => nil)) -%>
<%- end -%>
<% if user_signed_in? and current_user.has_role?('Librarian') %>
<h5 style='margin-top:15px;'><%= t('tooltip.icons_info') -%></h5>
<ul>
<li><%= image_tag('icons/book_edit.png', :size => '16x16', :alt => t('page.edit'), :title => t('tooltip.book_edit')) -%>: <%=t('page.edit')-%></li>
<li><%= image_tag('icons/arrow_divide.png', :size => '16x16', :alt => t('manifestation.add_derivation'), :title => t('tooltip.add_derivation')) -%>: <%=t('manifestation.add_derivation')-%></li>
</ul>
<% end %>
</div>
<%- end -%>
<div id="search_result" class="ui-corner-all">
<div id="content_list_search_result">
<div style="color: green"><%= flash[:message] || flash[:notice] -%></div>
<%= render 'manifestations/title', :manifestation => @manifestation if @manifestation -%>
<% if @basket %>
<p id="basket_count"><%= t('basket.show_basket', :count => @basket.try(:checked_manifestations).try(:size)) %></p>
<%= link_to t('basket.out'), manifestations_path %>
<% end %>
<div id="container">
<%= render 'index_form' %>
</div>
<% if @series_statement %>
<%= render 'show_series_statement' %>
<% end %>
<%- if params[:index] && params[:index] == 'nacsis' -%>
<div>
<div style="float: right;">
<%= t('activerecord.attributes.manifestation.per_page') %>:
<%= select_tag("per_page", options_for_select(per_pages, @per_page)) %>
</div>
<br style="clear: both;"/>
</div>
<%- if SystemConfiguration.get('nacsis.search_each') -%>
<p>
<strong><%= t('page.number_of_nacsis_book_search_results', :count => @count[:query_result_book]) -%></strong>
</p>
<%- if @manifestations_book && (@manifestations_book.count > 0) -%>
<div class="autopagerize_page_element" id="list">
<%= render 'manifestations/list_nacsis', :manifestations => @manifestations_book, :type => "book" -%>
</div>
<%- else -%>
<%= render 'manifestations/not_found' -%>
<%- end -%>
<p>
<strong><%= t('page.number_of_nacsis_serial_search_results', :count => @count[:query_result_serial]) -%></strong>
</p>
<%- if @manifestations_serial && (@manifestations_serial.count > 0) -%>
<div class="autopagerize_page_element" id="list">
<%= render 'manifestations/list_nacsis', :manifestations => @manifestations_serial, :type => "serial" -%>
</div>
<%- else -%>
<%= render 'manifestations/not_found' -%>
<%- end -%>
<%- else -%>
<p>
<strong><%= t('page.number_of_nacsis_book_search_results', :count => @count[:query_result]) -%></strong>
</p>
<%- if @manifestations && (@manifestations.total_count > 0) -%>
<div class="autopagerize_page_element" id="list">
<%= render 'manifestations/list_nacsis', :manifestations => @manifestations, :type => "book" -%>
</div>
<%- else -%>
<%= render 'manifestations/not_found' -%>
<%- end -%>
<%- end -%>
<%- else -%>
<%- if @manifestations && (@manifestations.total_count > 0) -%>
<p>
<%= t('page.number_of_search_results', :count => @count[:query_result]) -%>
<%- if @count[:query_result] > SystemConfiguration.get("max_number_of_results") -%>
<br />
<%= t('page.limit_exceeded', :count => SystemConfiguration.get("max_number_of_results")) -%>
<%- end -%>
</p>
<div>
<div style="float: right;">
<%= t('activerecord.attributes.item_list.sort_by') %>:
<%= select_tag("sort_plan", options_for_select(@sort_plan, :selected => @sort_plan_id)) %>
<%= t('activerecord.attributes.manifestation.per_page') %>:
<%= select_tag("per_page", options_for_select(per_pages, @per_page)) %>
</div>
<br style="clear: both;"/>
</div>
<%- @manifestations_all.each_with_index do |m, i| -%>
<%- next if @binder && m == @manifestations_article %>
<%- next if SystemConfiguration.get('manifestations.split_by_type') && i == 0 -%>
<div class="search_results_header">
<strong>
<%= m == @manifestations_article ? t('page.search_article_results') : t('page.search_results') %>
<% if SystemConfiguration.get("manifestations.users_show_output_button") or (user_signed_in? and current_user.has_role?('Librarian')) %>
<button id="<%= m == @manifestations_article ? 'excelx_article_dialog_opener' : 'excelx_book_dialog_opener'%>">
<%= t('page.output', :model => t('page.search_result')) %>
</button>
<% end %>
</strong>
</div>
<%- if m && (m.count > 0) -%>
<div class="autopagerize_page_element" id="list">
<%= render 'manifestations/list', :manifestations => m -%>
</div>
<%- else -%>
<%= render 'manifestations/not_found' -%>
<%- end -%>
<%- end -%>
<% if defined?(EnjuBookmark) %>
<div id="tag_cloud">
<h3><%= t('activerecord.models.tag') -%></h3>
<div id="tag_cloud_list"></div>
<%= image_tag 'spinner.gif', :id => 'spinner_tag_cloud',
:style => 'padding-bottom: 15px; padding-left: 40px;' -%>
</div>
<% end %>
<%- else -%>
<!-- TODO: 検索結果が少ない場合にも表示させる -->
<%- if @suggested_tag -%>
<p><%= t('page.did_you_mean') -%>: <%= link_to @suggested_tag.name, manifestations_path(:tag => @suggested_tag.name) -%></p>
<%- end -%>
<%= render 'manifestations/not_found' -%>
<%- end -%>
<%- end -%>
<div class="autopagerize_insert_before"></div>
</div>
</div>
<% if defined?(EnjuBookmark) %>
<script type="text/javascript">
window.onload = function() {
$("#tag_cloud_list").load('<%= url_for(params.merge(:view => "tag_cloud")) -%>', null, hideTagCloudSpinner);
}
function hideTagCloudSpinner(){
$("#spinner_tag_cloud").hide();
}
<% end %>
</script>
<!--[if IE 9]> </div> <![endif]-->