Browse Source

Merge pull request #101 from lexintegritastech/improve-main-ui

Fix bug for `annotations`
pull/102/head
Alexander D. Bondoc 4 years ago committed by GitHub
parent
commit
85cb54a2c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      app/components/annotation_marks_modal_form_component/annotation_marks_modal_form_component.html.erb
  2. 3
      app/components/doctrine_index_component/doctrine_index_component.html.erb
  3. 2
      app/components/document_advanced_search_component/document_advanced_search_component.html.erb
  4. 3
      app/components/document_doctrine_index_component/document_doctrine_index_component.html.erb
  5. 9
      app/components/document_doctrine_show_component/document_doctrine_show_component.html.erb
  6. 4
      app/controllers/api/doctrine/annotations_controller.rb
  7. 24
      app/javascript/controllers/annotations_controller.js
  8. 2
      app/javascript/controllers/document_controller.js
  9. 4
      app/reflexes/document_reflex.rb
  10. 9
      app/views/shared/_case_lists_search_results.html.erb

1
app/components/annotation_marks_modal_form_component/annotation_marks_modal_form_component.html.erb

@ -11,6 +11,7 @@
<div class="col-sm-12 p-2">
<strong> <%= label_tag :annotation_marks %> </strong>
<%= hidden_field_tag :annotation_id, nil, data: { target: "annotations.annotation_id" } %>
<%= hidden_field_tag :current_document_id, nil, data: { target: "annotations.current_document_id" } %>
<%= hidden_field_tag :doctrine_id, nil, data: { target: "annotations.doctrine_id" } %>
<%= hidden_field_tag :document_id, nil, data: { target: "annotations.document_id" } %>
<%= hidden_field_tag :document_ids, nil, data: { target: "annotations.document_ids" } %>

3
app/components/doctrine_index_component/doctrine_index_component.html.erb

@ -1,13 +1,12 @@
<div class="row-flex m-3 mt-0 doctrine-content-body">
<div class="container-sm <%= opts[:is_subjects_index].present? ? 'm-0 ps-0' : '' %>">
<span> <b> <i> <%= headnote %> </i> </b> </span>
<p class="mb-0 clickable-link" href="<%= show_url %>"> <%= raw content.html_safe %> </p>
<div class="container-fluid p-0">
<% document_title = jurisprudence.short_title || jurisprudence.title %>
<% date_or_year = jurisprudence.docdate.present? ? jurisprudence.docdate.to_date.strftime("%B %d, %Y") : jurisprudence.year %>
<p class="fw-bold fst-normal"> <%= headnote %> </p>
<h5 class="clickable-link" style="color: darkred;" href="<%= document_path(jurisprudence, is_index_table: false, subject_ids: params[:subject_ids]) %>"> <%= [document_title, jurisprudence.reference_number, date_or_year].join(", ") %> </h5>
<% annotations.order(created_at: :desc).each do |annotation| %>
<p class="mb-2 ms-3 clickable-link" href="<%= show_url %>">

2
app/components/document_advanced_search_component/document_advanced_search_component.html.erb

@ -10,7 +10,7 @@
<div class="mb-2">
<label for="exampleFormControlInput1" class="form-label text-white">Title</label>
<%= text_field_tag :title, params[:short_title], class: "form-control mb-0" %>
<%= text_field_tag :title, params[:title], class: "form-control mb-0" %>
</div>
<div class="d-flex align-items-end">

3
app/components/document_doctrine_index_component/document_doctrine_index_component.html.erb

@ -14,12 +14,11 @@
<% end %>
<div class="container-sm <%= opts[:is_subjects_index].present? ? 'm-0 ps-0' : '' %>">
<span> <b> <i> <%= headnote %> </i> </b> </span>
<p class="mb-0"> <%= raw content.html_safe %> </p>
<div class="container-fluid p-0">
<p class="fw-bold fst-normal"> <%= headnote %> </p>
<% if opts[:is_doctrines_index].present? %>
<% document_title = jurisprudence.short_title || jurisprudence.title %>
<% date_or_year = jurisprudence.docdate.present? ? jurisprudence.docdate.to_date.strftime("%B %d, %Y") : jurisprudence.year %>

9
app/components/document_doctrine_show_component/document_doctrine_show_component.html.erb

@ -56,7 +56,7 @@
</div>
<div class="collapse mb-3 mt-2" id="caseListsCollapse">
<div class="row" data-controller="document" data-document-id="<%= document_id %>" data-doctrine-id="<%= id %>">
<div class="row" data-controller="document" data-current-document-id="<%= document_id %>" data-doctrine-id="<%= id %>">
<div class="col-sm-11 p-2">
<%= text_field_tag :q, nil, class: "form-control", placeholder: "Search GR Number, Title or Short Title", data: { target: "document.input" } %>
</div>
@ -88,8 +88,7 @@
<div class="row-flex">
<div class="annot-header"> <h5> Annotations </h5> </div>
<div class="" id="annotationsIndexView">
<%= render(partial: "/shared/annotations_pagination", locals: { annotations: annotations, opts: { current_page: 1 } }) %>
<% annotations.order(created_at: :desc).each do |annotation| %>
<% doctrine.annotations.order(created_at: :desc).each do |annotation| %>
<% document_title = annotation.document.short_title || annotation.document.title %>
<% date_or_year = annotation.document.docdate.present? ? annotation.document.docdate.strftime("%B %d, %Y") : annotation.document.year %>
<% annotated_documents_title = [] %>
@ -111,9 +110,9 @@
<div class="col-sm-2 d-flex justify-content-end align-items-baseline">
<a class="btn btn-secondary me-3" data-bs-toggle="modal" data-bs-target="#annotationModal"
data-controller="annotations" data-doctrine-id="<%= id %>" data-annotation-id="<%= annotation.id %>"
data-document-title="<%= citing_document_title %>"
data-current-document-id="<%= document_id %>" data-document-title="<%= citing_document_title %>"
data-action="click->annotations#renderForm"> Edit </a>
<a class="btn btn-danger" data-controller="annotations" data-doctrine-id="<%= id %>" data-annotation-id="<%= annotation.id %>" data-action="click->annotations#delete" > Delete </a>
<a class="btn btn-danger" data-controller="annotations" data-current-document-id="<%= document_id %>" data-doctrine-id="<%= id %>" data-annotation-id="<%= annotation.id %>" data-action="click->annotations#delete" > Delete </a>
</div>
</div>

4
app/controllers/api/doctrine/annotations_controller.rb

@ -54,10 +54,10 @@ module Api
document_ids = params[:document_ids].split(",")
if document_ids.present?
@documents = Cdao::Jurisprudence.where(id: document_ids)
@documents = Cdao::Document.where(id: document_ids)
end
attrs[:document] = Cdao::Jurisprudence.find(document_id) if document_id.present?
attrs[:document] = Cdao::Document.find(document_id) if document_id.present?
if @annotation.update(attrs)
@annotation.annotation_documents.each do |annotation_document|

24
app/javascript/controllers/annotations_controller.js

@ -1,6 +1,6 @@
import ApplicationController from './application_controller'
export default class extends ApplicationController {
static targets = ["q", "annotation_id", "doctrine_id", "document_id", "document_ids",
static targets = ["q", "annotation_id", "doctrine_id", "document_id", "document_ids", "current_document_id",
"annomark_ids", "phil_rep", "editor_notes"]
connect () {
@ -19,13 +19,15 @@ export default class extends ApplicationController {
var $this = this, annotation_id = $this.element.dataset["annotationId"], doctrine_id = $this.element.dataset["doctrineId"],
document_title = "", document_ref_no = "", document_date_or_year = "", $modal = $("#annotationModal")
console.log($this.element.dataset["currentDocumentId"])
$modal.find("#current_document_id").val($this.element.dataset["currentDocumentId"])
if(annotation_id !== null && annotation_id !== undefined && annotation_id !== "") {
$modal.find(".modal-title").text("Edit Annotation")
$.get("/api/doctrines/" + doctrine_id + "/annotations/" + annotation_id + ".json", {}, function(result, status) {
$modal.find("#annotation_id").val(annotation_id)
$modal.find("#doctrine_id").val(doctrine_id)
$modal.find("#document_id").val(result.citing_document_ids)
$modal.find("#document_ids").val(result.document_id)
$modal.find("#document_id").val(result.document_id)
$modal.find("#document_ids").val(result.citing_document_ids)
$modal.find("#phil_rep").val(result.phil_rep)
$modal.find("#document_title").val($this.element.dataset["documentTitle"])
$modal.find("select[name='annomark_ids[]']")[0].selectize.setValue(result.annomark_ids)
@ -45,7 +47,7 @@ export default class extends ApplicationController {
}
addAnnotatedDocument () {
var document_id = "", document_ref_no = "", document_date = "", document_title = "",
var document_id = "", document_ref_no = "", document_date = "", document_title = "",
$modal = $("#annotationModal"), $doc_title = $modal.find("#document_title"),
$citing_document_ids = $modal.find("#document_ids")
@ -68,7 +70,8 @@ export default class extends ApplicationController {
}
save () {
var $this = this, $modal = $("#annotationModal"), annotation_id = $this.annotation_idTarget.value, doctrine_id = $this.doctrine_idTarget.value
var $this = this, $modal = $("#annotationModal"), annotation_id = $this.annotation_idTarget.value,
current_document_id = $this.current_document_idTarget.value, doctrine_id = $this.doctrine_idTarget.value
const params = { annomark_ids: $modal.find("select[name='annomark_ids[]']").val(), document_id: $this.document_idTarget.value,
document_ids: $this.document_idsTarget.value || "", phil_rep: $this.phil_repTarget.value || "",
editor_notes: $this.editor_notesTarget.value || "" }
@ -79,23 +82,22 @@ export default class extends ApplicationController {
type: 'PUT',
data: params,
success: function() {
$(".btn-close-x").trigger("click")
$this.stimulate("AnnotationReflex#render_annotations_views", { page: 1 })
location.pathname = "/documents/" + current_document_id + "/doctrines/" + doctrine_id
}
})
} else {
$.post("/api/doctrines/" + doctrine_id + "/annotations", params, function(result, status) {
if(status === "success") {
$(".btn-close-x").trigger("click")
$this.stimulate("AnnotationReflex#render_annotations_views", { doctrine_id: doctrine_id, page: 1 })
$this.stimulate("AnnotationReflex#render_default_case_lists_search", doctrine_id)
location.pathname = "/documents/" + current_document_id + "/doctrines/" + doctrine_id
}
})
}
}
delete(ev) {
var $this = this, doctrine_id = $this.element.dataset["doctrineId"], annotation_id = this.element.dataset["annotationId"]
var $this = this, doctrine_id = $this.element.dataset["doctrineId"], annotation_id = this.element.dataset["annotationId"],
current_document_id = $this.element.dataset["currentDocumentId"]
ev.preventDefault();
const contrim_alert = confirm("Are you sure to delete this record?")
@ -104,7 +106,7 @@ export default class extends ApplicationController {
url: "/api/doctrines/" + doctrine_id + "/annotations/" + annotation_id,
type: 'DELETE',
success: function() {
$this.stimulate("AnnotationReflex#render_annotations_views", { doctrine_id: doctrine_id, page: 1 })
location.pathname = "/documents/" + current_document_id + "/doctrines/" + doctrine_id
}
})
}

2
app/javascript/controllers/document_controller.js

@ -9,7 +9,7 @@ export default class extends ApplicationController {
search () {
this.stimulate("DocumentReflex#render_case_lists_search_results",
{ q: this.inputTarget.value, citation_finder: this.element.dataset["citation_finder"], page: 1 },
this.element.dataset["doctrineId"])
this.element.dataset["doctrineId"], this.element.dataset["currentDocumentId"])
}
paginate () {

4
app/reflexes/document_reflex.rb

@ -3,10 +3,10 @@
class DocumentReflex < ApplicationReflex
include DocumentSearch
def render_case_lists_search_results(search_params, doctrine_id)
def render_case_lists_search_results(search_params, doctrine_id, current_document_id)
search = document_search(search_params.merge(sort_by: %i[reference_number_texts title_texts short_title_texts]))
@documents = search.results
opts = { doctrine_id: doctrine_id, current_page: search_params[:page], q: search_params[:q], citation_finder: search_params[:citation_finder] }
opts = { doctrine_id: doctrine_id, current_document_id: current_document_id, current_page: search_params[:page], q: search_params[:q], citation_finder: search_params[:citation_finder] }
morph "#caseListsCollapse", render(partial: "/shared/case_lists_search_results", locals: { documents: @documents, opts: opts })
end

9
app/views/shared/_case_lists_search_results.html.erb

@ -1,4 +1,4 @@
<div class="row" data-controller="document" data-doctrine-id="<%= opts[:doctrine_id] %>">
<div class="row" data-controller="document" data-current-document-id="<%= opts[:current_document_id] %>" data-doctrine-id="<%= opts[:doctrine_id] %>">
<div class="col-sm-11 p-2">
<%= text_field_tag :q, opts[:q], class: "form-control", placeholder: "Search GR Number, Title or Short Title",
data: { target: "document.input" } %>
@ -99,9 +99,10 @@
<% date_or_year = document.doc_date || document.year %>
<% title = document.short_title || document.title %>
<a class="btn btn-success btn-sm" data-bs-toggle="modal" data-bs-target="#annotationModal" data-controller="annotations"
data-doctrine-id="<%= opts[:doctrine_id] %>" data-document-id="<%= document.id %>" data-document-title="<%= title %>"
data-document-reference-number="<%= document.clean_reference_number %>" data-document-date-or-year="<%= date_or_year %>"
data-document-phil-rep="<%= document.phil_rep %>" data-action="click->annotations#renderForm">
data-current-document-id="<%= opts[:current_document_id] %>" data-doctrine-id="<%= opts[:doctrine_id] %>"
data-document-id="<%= document.id %>" data-document-title="<%= title %>" data-document-reference-number="<%= document.clean_reference_number %>"
data-document-date-or-year="<%= date_or_year %>" data-document-phil-rep="<%= document.phil_rep %>"
data-action="click->annotations#renderForm">
Add Annotations
</a>
</td>

Loading…
Cancel
Save