MiraitSystems/enju_trunk

View on GitHub
app/views/manifestations/_form.html.erb

Summary

Maintainability
Test Coverage
<%= render :partial => 'form_select2_function_keys' %>
<script>
jQuery(function(){
  new AutoKana('manifestation_original_title', 'manifestation_title_transcription', { katakana:true, toggle:false });
  $('#manifestation_original_title').focus();

  var article_title = "<%= @manifestation.article_title %>"
  displayArticleTitle(article_title);
  $('#manifestation_manifestation_type_id').change(function () {
    article_title = ""
    displayArticleTitle(article_title);
  });

  <% if SystemConfiguration.get('manifestation.check_duplicate_title') %>
    // look for manifestations with the same title
    <% unless @manifestation.new_record? %>
      search_manifestation();
    <% end %>
    $("#manifestation_original_title").change(function(){
       search_manifestation();
    });
  <% end %>
})

<% if SystemConfiguration.get('manifestation.check_duplicate_title') %>
  // look for manifestations with the same title
  function search_manifestation() {
    //var user_id = $("#manifestation_original_title").val();
    $.ajax({
      type: "GET",
      url: "/manifestations/search_manifestation",
      data: { 
        "original_title": $("#manifestation_original_title").val(),
        "manifestation_id": "<%= @manifestation.try(:id) %>"
      },
      success: function(obj) {
        $('#search_manifestation > li').remove();
        $('#search_manifestation').hide();
        if(obj["manifestation_urls"] && obj["manifestation_urls"].length > 0) {
          $('#search_manifestation').show();
          var data = "<strong><%= t('manifestation.same_manifestation_already_exist', :attribute => t('activerecord.attributes.manifestation.original_title')) %></strong>"
          data += "<ui>";
          jQuery.each(obj["manifestation_urls"], function(index, value) {  
            data += "<li>";
            data += value;
            data += "</li>";
          });
          data += "</ui>";
          $('#search_manifestation').html(data);
        } 
      }
   });
 } 
<% end %>

function displayArticleTitle(article_title) {
  var manifestation_type = $('#manifestation_manifestation_type_id').val();
  var series  = ['3', '4', '5', '6']; 
  var article = ['9', '10'];
  var pub_data_field = "<label class='pub_date' for='manifestation_pub_date'><%= t('activerecord.attributes.manifestation.pub_date')%></label>";

  if($.inArray(manifestation_type, article) != -1) {
    $("#article_title_field").show();
    pub_data_field = "<label class='pub_date' for='manifestation_pub_date'><%= t('activerecord.attributes.manifestation.pub_date_article')%></label>"
    $("#frequency_field").hide();
    $("#manifestation_frequency_id").val("17");
  } else if($.inArray(manifestation_type, series) != -1) {
    $("#frequency_field").show(); 
    $("#article_title_field").hide();
    $("#manifestation_article_title").val("");
  } else {
    $("#frequency_field").hide();
    $("#manifestation_frequency_id").val("17");
    $("#article_title_field").hide();
    $("#manifestation_article_title").val("");
  }
  $(".pub_date").html(pub_data_field);
}
$(document).keydown(function(e) {
  $("input[type=text]").keypress(function(ev) {
   if ((ev.which && ev.which === 13) ||
        (ev.keyCode && ev.keyCode === 13)) {
      return false;
    } else {
      return true;
    }
  });
});
</script>

<% if defined?(EnjuTrunkTheme) %>
  <script id="script_theme">
    $(document).ready(function() { 
      $("#manifestation_theme").select2({
        multiple: true, 
        data: <%= raw @select_theme_tags.to_json -%>, 
        formatNoMatches: function(term) {
          return <%= raw t("page.theme.no_matches_found").to_json %>;
        },
        width: "300px",
      }); 
    });
  </script>
<% end %>

<%= render 'page/required_field' %>
<%= render 'observe_field' %>
<%= simple_form_for(@manifestation, :html => { :multipart => true }) do |f| -%>
  <%= f.error_messages -%>

<div id="table" %>
  <div class="row">
    <%- if !@manifestation.new_record? and @manifestation.series_statement -%>
      <%= f.hidden_field :series_statement_id, :value => @manifestation.series_statement.id -%>
      <%= f.hidden_field :periodical, :value => @manifestation.series_statement.periodical %>
      <%= f.label t('activerecord.models.series_statement') -%>
      <%= link_to @manifestation.series_statement.original_title, @manifestation.series_statement -%>
      (<%= link_to t('series_statement.edit'), series_statements_path(:manifestation_id => @manifestation.id) -%>)
    <%- else -%>
      <%= f.hidden_field :series_statement_id, :value => @manifestation.series_statement.id if @manifestation.series_statement-%>
      <%= f.hidden_field :periodical, :value => @manifestation.series_statement.periodical if @manifestation.series_statement %>
      <%= f.label t('activerecord.models.series_statement') -%>
      <%= link_to @manifestation.series_statement.original_title, @manifestation.series_statement if @manifestation.series_statement -%>
      <% if @manifestation.new_record? %>
        (<%= link_to t('page.listing', :model => t('activerecord.models.series_statement')), series_statements_path -%>)
      <% else %>
        (<%= link_to t('page.listing', :model => t('activerecord.models.series_statement')), manifestation_series_statements_path(@manifestation) -%>)
      <%- end -%>
    <%- end -%>
  </div>

  <div class="row">
    <div><%= f.label :original_title -%></div>
    <div><%= f.text_field :original_title, :class => 'resource_title' -%></div>
    <div id="search_manifestation"></div>
  </div>

  <div class="row">
    <div><%= f.label :title_transcription -%></div>
    <div><%= f.text_field :title_transcription, :class => 'resource_title' -%></div>
  </div>

  <div class="row">
    <div><%= f.label :title_alternative -%></div>
    <div><%= f.text_field :title_alternative, :class => 'resource_title' -%></div>
  </div>

  <div class="row" id="article_title_field">
    <div><%= f.label :article_title %></div>
    <div><%= f.text_field :article_title, :class => 'resource_title' %></div>
  </div>

  <% if SystemConfiguration.get('manifestation.use_titles') %>
    <%= render :partial => 'form_work_has_title', :locals => {:f => f, :manifestation => @manifestation} %>
  <% end %>

  <div class="row">
    <div><%= f.label :identifier %></div>
    <div>
      <div class="row2">
        <%= select2_tag :numbering_type, "numbering[type]", numberings, nil, :select_attribute => 'name', :display_attribute => 'display_name', :width => 250  %>
        <%= f.text_field :identifier, :class => 'medium_string' %>
        <%= link_to t('activerecord.models.numbering'), {}, :onClick => "numbering();false", :remote => true %>
      </div>
    </div>
  </div>

  <%= render 'form_agent_field', :f => f %>
  <div class="row">
    <div><%= f.label t('page.file') -%></div>
    <div>
      <%= f.file_field :attachment -%>
      <% unless @manifestation.new_record? %>
        <%- unless @manifestation.attachment_file_name.blank? -%>
          <%= f.check_box :delete_attachment, :onClick => "toggle_upload()" -%><%= t('manifestation.delete_attachment') -%>
          <%= render 'manifestations/attachment_file', :manifestation => @manifestation -%>
        <%- end -%>
      <% end %>
    </div>
  </div>

  <script type="text/javascript">
    function toggle_upload(){
      if ($('#manifestation_delete_attachment').attr('checked')){
        $('#manifestation_attachment').attr("disabled", true);
      } else {
        $('#manifestation_attachment').removeAttr("disabled");
      }
    }
  </script>

  <%= render :partial => 'form_carrier_type_field', :locals => {:f => f, :manifestation => @manifestation, :carrier_types => @carrier_types} %>

  <div class="row">
    <div><%= f.label t('activerecord.models.manifestation_type'), :required => true -%></div>
    <div><%= f.select2(:manifestation_type_id, @manifestation_types, @manifestation.manifestation_type_id, :select_attribute => 'name', :display_attribute => 'display_name', :alt_display => true, :width => 310) %></div>
  </div>

  <div class="row">
    <div><%= f.label t('activerecord.attributes.manifestation.jpn_or_foreign') %></div>
    <div><%= select2_tag(:jpn_or_foreign, "manifestation[jpn_or_foreign]", Manifestation::JPN_OR_FOREIGN, @manifestation.jpn_or_foreign, :width => 310, :include_blank => true, :select_attribute => 'id', :display_attribute => 'display_name')  %></div>
  </div>

  <div class="row" id="frequency_field">
    <div><%= f.label t('activerecord.models.frequency') -%></div>
    <div><%= f.select2(:frequency_id, @frequencies, @manifestation.frequency_id, :select_attribute => 'name', :display_attribute => 'display_name', :alt_display => true, :width => 310) -%></div>
  </div>

  <div class="row">
    <div><%= f.label :pub_date, :class => 'pub_date' -%></div>
    <div><%= f.text_field :pub_date, :class => 'date_field', :placeholder => "#{t('page.example')}: 2011, 2011-04-12"-%></div>
  </div>

  <div class="row">
    <div><%= f.label t('activerecord.attributes.manifestation.country_of_publication'), :required => true -%></div>
    <div><%= f.select2(:country_of_publication_id, @countries, @manifestation.country_of_publication_id, :select_attribute => 'name', :display_attribute => 'display_name', :width => 400) %></div>
  </div>

  <div class="row">
    <div><%= f.label t('activerecord.attributes.manifestation.place_of_publication') -%></div>
    <div><%= f.text_field :place_of_publication, :class => 'large_string' %></div>
  </div>

  <%= render :partial => 'form_work_has_language', :locals => {:f => f, :manifestation => @manifestation} %>

  <div class="row">
    <div><%= f.label :edition_display_value -%></div>
    <div>
      <%= f.text_field :edition_display_value, :class => 'small_string' -%>
      <%= f.label :volume_number_string -%>
      <%= f.text_field :volume_number_string, :class => 'small_string' -%>
      <%- unless SystemConfiguration.get("manifestation.volume_number_string_only") -%>
        <%= f.label :issue_number_string -%>
        <%= f.text_field :issue_number_string, :class => 'small_string' -%>
        <%- if @manifestation.series_statement -%>
          <%= f.label :serial_number_string -%>
          <%= f.text_field :serial_number_string, :size=>"10" %>
        <%- end -%>
      <%- end -%>
    </div>
  </div>

  <div class="row">
    <div><%= f.label :isbn -%></div>
    <div><%= f.text_field :isbn, :class => 'resource_isbn_issn' -%></div>
    <div><%= link_to_function t('activerecord.attributes.manifestation.wrong_isbn'), "$('#manifestation_wrong_isbn').toggle()" -%></div>
    <div><%= f.text_field :wrong_isbn, :class => 'resource_isbn_issn', :style =>  'display: none' -%></div>
  </div>

  <%- if @manifestation.series_statement -%>
  <div class="row">
    <div><%= f.label :issn -%></div>
    <div><%= f.text_field :issn, :class => 'resource_isbn_issn', :style => 'ime-mode: disabled' -%></div>
  </div>
  <%- end -%>

  <div class="row">
    <div><%= f.label :lccn -%></div>
    <div><%= f.text_field :lccn, :class => 'resource_isbn_issn' -%></div>
  </div>

  <div class="row">
    <div><%= f.label :nbn -%></div>
    <div><%= f.text_field :nbn, :class => 'resource_isbn_issn', :style => 'ime-mode: disabled' -%></div>
  </div>

  <div class="row">
    <div><%= f.label :marc_number -%></div>
    <div><%= f.text_field :marc_number, :class => 'resource_isbn_issn' -%></div>
  </div>

  <div class="row">
    <div><%= f.label :jan_magazine %></div>
    <div><%= f.text_field :jan_magazine, :class => 'resource_isbn_issn', :style => 'ime-mode: disabled' -%></div>
  </div>

  <%= render :partial => 'form_classification_field', :locals => {:f => f, :manifestation => @manifestation} %>

  <% if SystemConfiguration.get('manifestation.use_identifiers') %>
    <%= render :partial => 'form_identifier', :locals => {:f => f, :manifestation => @manifestation, :identifiers => @identifiers} %>
  <%- end %> 

  <%= render :partial => 'form_page', :locals => {:f => f} %>

  <% if SystemConfiguration.get('attributes.manifestation.height_width_depth') %>
    <div class="row">
      <div><%= f.label :height -%>(cm)</div>
      <div>
        <%= f.text_field :height, :class => 'resource_integer' -%>
        <%= f.label :width -%>(cm)
        <%= f.text_field :width, :class => 'resource_integer' -%>
        <%= f.label :depth -%>(cm)
        <%= f.text_field :depth, :class => 'resource_integer' -%>
      </div>
    </div>
  <% end %> 

  <% if SystemConfiguration.get('attributes.manifestation.size') %>
    <div class="row">
      <div><%= f.label :size -%></div>
      <div><%= f.text_field :size, :class => 'resource_integer' -%></div>
    </div>
  <% end %> 

  <div class="row">
    <div><%= f.label :price -%></div>
    <div><%= f.text_field :price, :class => 'resource_integer' -%></div>
  </div>

  <div class="row">
    <div><%= f.label :access_address -%></div>
    <div><%= f.url_field :access_address, :class => 'resource_url' -%></div>
  </div>

  <div class="row">
    <div><%= f.label :repository_content -%></div>
    <div><%= f.check_box :repository_content -%></div>
  </div>

  <div class="row">
    <div><%= f.label t('role.required_role'), :required => true -%></div>
    <div>
      <%= select2_tag 'manifestation_required_role_id', 'manifestation[required_role_id]',
                      @roles, @manifestation.required_role_id, :width => 200, :select_attribute => :id, :display_attribute => :display_name %>
    </div>
  </div>

  <div class="row">
    <div><%= f.label :except_recent -%></div>
    <div><%= f.check_box :except_recent -%></div>
  </div>

  <div class="row">
    <div><%= f.label :description -%></div>
    <div><%= f.text_area :description, :class => 'resource_textarea' -%></div>
  </div>

  <div class="row">
    <div><%= f.label :supplement -%></div>
    <div><%= f.text_area :supplement, :class => 'resource_textarea' -%></div>
  </div>

  <div class="row">
    <div><%= f.label :note -%></div>
    <div><%= f.text_area :note, :class => 'resource_textarea' -%></div>
  </div>

  <%= render :partial => 'form_subject_field', locals: { f: f, manifestation: @manifestation } %>

  <% if defined?(EnjuTrunkTheme) %>
    <div class="row">
      <div><strong><%= t('activerecord.models.theme') %></strong></div>
      <div><%= f.text_field :theme, :id => 'manifestation_theme', :value => @keep_themes %></div>
    </div>
  <% end %>

  <% if SystemConfiguration.get('attributes.manifestation.missing_issue') %>
    <div class="row">
      <div><%= f.label t('activerecord.attributes.manifestation.missing_issue') -%></div>
      <div><%= f.select2 :missing_issue, missing_issue_statuses, @manifestation.missing_issue, :select_attribute => :id, :display_attribute => :display_name, :width => 200, :include_blank => true %></div>
    </div>
  <% end %>

  <% if SystemConfiguration.get('attributes.manifestation.acceptance_number') %>
    <div class="row">
      <div><%= f.label t('activerecord.attributes.manifestation.acceptance_number') %></div>
      <div><%= f.text_field :acceptance_number, :class => "resource_integer" %></div>
    </div>
  <% end %>

  <% if defined? EnjuTrunkOrder %>
    <% if SystemConfiguration.get('attributes.manifestation.use_license_id') %>
      <div class="row">
        <div><%= f.label hbr( t('activerecord.attributes.manifestation.use_license_id') ) %></div>
        <div><%= f.select2 :use_license_id, @use_licenses, @manifestation.use_license_id, :width => 200, :select_attribute => 'id', :display_attribute => 'display_name' %></div>
      </div>
    <% end %>
  <% end %>

  <%= render :partial => 'form_merged_item', :locals => {:f => f} if SystemConfiguration.get("manifestation.has_one_item") %>  

  <div class="actions">
    <%= hidden_field_tag :agent_id, @agent.id if @agent -%>
    <%= hidden_field_tag :manifestation_id, @original_manifestation.id if @original_manifestation -%>
    <%= f.submit :disable_with => t('page.wait') %>
  </div>

</div>
<%- end -%>