Skip to content

Commit

Permalink
SAK-29974: Nested citation lists with drag and drop
Browse files Browse the repository at this point in the history
SAK-29974: Removing unneeded jquery in citations

SAK-29974: Moved sortable lib into reference
  • Loading branch information
nicholaswilson100 committed Dec 10, 2015
1 parent 0fdfe63 commit f4e7bde
Show file tree
Hide file tree
Showing 33 changed files with 3,568 additions and 728 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
package org.sakaiproject.citation.api;

import java.util.ArrayList;
import java.util.List;

/**
* Created by nickwilson on 6/23/15.
*/
public class CitationCollectionOrder {

private String collectionId;
private String citationid;
private int location;
private SectionType sectiontype;
private String value;
private List<CitationCollectionOrder> children = new ArrayList<CitationCollectionOrder>();

public enum SectionType {
HEADING1, HEADING2, HEADING3, DESCRIPTION, CITATION
}

public CitationCollectionOrder() {
}

public CitationCollectionOrder(String collectionId, String citationid, int location, SectionType sectiontype, String value) {
this.collectionId = collectionId;
this.citationid = citationid;
this.location = location;
this.sectiontype = sectiontype;
this.value = value;
}

public CitationCollectionOrder(String collectionId, int location, SectionType sectiontype, String value) {
this.collectionId = collectionId;
this.location = location;
this.sectiontype = sectiontype;
this.value = value;
}

public List<CitationCollectionOrder> getChildren() {
return children;
}

public void setChildren(List<CitationCollectionOrder> children) {
this.children = children;
}

public void addChild(CitationCollectionOrder citationCollectionOrder) {
this.children.add(citationCollectionOrder);
}

public String getCitationid() {
return citationid;
}

public void setCitationid(String citationid) {
this.citationid = citationid;
}

public SectionType getSectiontype() {
return sectiontype;
}

public void setSectiontype(SectionType sectiontype) {
this.sectiontype = sectiontype;
}

public String getCollectionId() {
return collectionId;
}

public void setCollectionId(String collectionId) {
this.collectionId = collectionId;
}

public int getLocation() {
return location;
}

public void setLocation(int location) {
this.location = location;
}

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}

public List<CitationCollectionOrder> flatten() {
List<CitationCollectionOrder> flattenedCitationCollectionOrders = new ArrayList<CitationCollectionOrder>();
flattenedCitationCollectionOrders.add(this);
for (CitationCollectionOrder h2Child : this.getChildren()) {
flattenedCitationCollectionOrders.add(h2Child);
for (CitationCollectionOrder h3Child : h2Child.getChildren()) {
flattenedCitationCollectionOrders.add(h3Child);
for (CitationCollectionOrder nestedCitation : h3Child.getChildren()) {
flattenedCitationCollectionOrders.add(nestedCitation);
}
}
}
return flattenedCitationCollectionOrders;
}

public boolean isCitation() {
return getSectiontype().equals(CitationCollectionOrder.SectionType.CITATION);
}

public int getCountCitations() {
int citationNo = 0;
for (CitationCollectionOrder citationCollectionOrder : this.getChildren()) {
if (citationCollectionOrder.isCitation()){
citationNo++;
}
else {
for (CitationCollectionOrder collectionOrder : citationCollectionOrder.getChildren()) {
if (collectionOrder.isCitation()){
citationNo++;
}
else {
for (CitationCollectionOrder order : collectionOrder.getChildren()) {
if (order.isCitation()){
citationNo++;
}
}
}
}
}
}
return citationNo;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ public interface CitationService extends EntityProducer

public static final String PROP_TEMPORARY_CITATION_LIST = "citations.temporary_citation_list";

/** Property for long open introduction (user settable). [String] */
public static final String PROP_INTRODUCTION = "CITATIONS:introduction";

/**
* Checks permissions to add a CitationList. Returns true if the user
* has permission to add a resource in the collection identified by the
Expand Down Expand Up @@ -202,5 +205,42 @@ public interface CitationService extends EntityProducer
* if no citation is found in the request then <code>null</code> is returned.
*/
public Citation addCitation(HttpServletRequest request);
/**
** This method save a CitationCollectionOrder representing a h1 section
* @param citationCollectionOrder
*/
public void saveSection(CitationCollectionOrder citationCollectionOrder);
/**
** This method save a CitationCollectionOrder representing a h2 or h3 section
* @param citationCollectionOrder
*/
public void saveSubsection(CitationCollectionOrder citationCollectionOrder);
/**
** This method saves CitationCollectionOrders representing a nested structure of h1 h2 h3 and citations
* @param citationCollectionOrders
* @param citationCollectionId
*/
public void save(List<CitationCollectionOrder> citationCollectionOrders, String citationCollectionId);
/**
** This method updates the value of a section
* @param citationCollectionOrder
*/
public void updateSection(CitationCollectionOrder citationCollectionOrder);
/**
** Gets the nested sections of a citation collection
* @param citationCollectionId
*/
public CitationCollectionOrder getNestedCollection(String citationCollectionId);
/**
** Removes the section of a citation collection and its children or removes a citation
* @param collectionId
* @param locationId
*/
public void removeLocation(String collectionId, int locationId);
/**
** Gets a citation collection including nested and unnested citations
* @param citationCollectionId
*/
public CitationCollection getUnnestedCitationCollection(String citationCollectionId);
} // interface CitationService

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.sakaiproject.citation.api;

import java.util.List;

/**
* Created by nickwilson on 9/29/15.
*/
public interface CitationValidator {

boolean isValid(List<CitationCollectionOrder> citationCollectionOrders);
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,22 +26,7 @@
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.SortedSet;
import java.util.Stack;
import java.util.TreeSet;
import java.util.Vector;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.net.URLEncoder;

Expand All @@ -55,13 +40,7 @@
import org.osid.repository.Record;
import org.osid.repository.RecordIterator;
import org.osid.repository.RepositoryException;
import org.sakaiproject.citation.api.ActiveSearch;
import org.sakaiproject.citation.api.Citation;
import org.sakaiproject.citation.api.CitationCollection;
import org.sakaiproject.citation.api.CitationIterator;
import org.sakaiproject.citation.api.CitationService;
import org.sakaiproject.citation.api.ConfigurationService;
import org.sakaiproject.citation.api.Schema;
import org.sakaiproject.citation.api.*;
import org.sakaiproject.citation.api.Schema.Field;
import org.sakaiproject.citation.impl.openurl.ContextObject;
import org.sakaiproject.citation.impl.openurl.OpenURLServiceImpl;
Expand Down Expand Up @@ -2643,7 +2622,7 @@ public TitleComparator(boolean ascending)

}

protected Map<String, Citation> m_citations = new Hashtable<String, Citation>();
protected Map<String, Citation> m_citations = new LinkedHashMap<String, Citation>();

protected Comparator m_comparator = DEFAULT_COMPARATOR;

Expand Down Expand Up @@ -3867,6 +3846,20 @@ protected interface Storage

public void saveCollection(CitationCollection collection);

public void saveSection(CitationCollectionOrder citationCollectionOrder);

public void saveSubsection(CitationCollectionOrder citationCollectionOrder);

public void saveCitationCollectionOrders(List<CitationCollectionOrder> citationCollectionOrders, String citationCollectionId);

public void updateCitationCollectionOrder(CitationCollectionOrder citationCollectionOrder);

public CitationCollectionOrder getNestedSections(String citationCollectionId);

public CitationCollection getUnnestedCitationCollection(String citationCollectionId);

public void removeLocation(String collectionId, int locationId);

public void updateSchema(Schema schema);

public void updateSchemas(Collection schemas);
Expand Down Expand Up @@ -5466,6 +5459,72 @@ public void save(CitationCollection collection)
{
this.m_storage.saveCollection(collection);
}
/*
* (non-Javadoc)
*
* @see org.sakaiproject.citation.api.CitationService#saveSection(org.sakaiproject.citation.api.CitationCollectionOrder)
*/
public void saveSection(CitationCollectionOrder citationCollectionOrder)
{
this.m_storage.saveSection(citationCollectionOrder);
}
/*
* (non-Javadoc)
*
* @see org.sakaiproject.citation.api.CitationService#saveSubsection(org.sakaiproject.citation.api.CitationCollectionOrder)
*/
public void saveSubsection(CitationCollectionOrder citationCollectionOrder)
{
this.m_storage.saveSubsection(citationCollectionOrder);
}
/*
* (non-Javadoc)
*
* @see org.sakaiproject.citation.api.CitationService#save(java.util.ArrayList, java.lang.String)
*/
public void save(List<CitationCollectionOrder> citationCollectionOrders, String citationCollectionId ) {
this.m_storage.saveCitationCollectionOrders(citationCollectionOrders, citationCollectionId);
}

/*
* (non-Javadoc)
*
* @see org.sakaiproject.citation.api.CitationService#updateSection(org.sakaiproject.citation.api.CitationCollectionOrder)
*/
public void updateSection(CitationCollectionOrder citationCollectionOrder)
{
this.m_storage.updateCitationCollectionOrder(citationCollectionOrder);
}

/*
* (non-Javadoc)
*
* @see org.sakaiproject.citation.api.CitationService#getNestedCollection(java.lang.String)
*/
public CitationCollectionOrder getNestedCollection(String citationCollectionId)
{
return this.m_storage.getNestedSections(citationCollectionId);
}

/*
* (non-Javadoc)
*
* @see org.sakaiproject.citation.api.CitationService#getUnnestedCitationCollection(java.lang.String)
*/
public CitationCollection getUnnestedCitationCollection(String citationCollectionId)
{
return this.m_storage.getUnnestedCitationCollection(citationCollectionId);
}

/*
* (non-Javadoc)
* @see org.sakaiproject.citation.api.CitationService#removeLocation(java.lang.String, int)
*/
public void removeLocation(String collectionId, int locationId)
{
this.m_storage.removeLocation(collectionId, locationId);
}
/**
* Dependency: ConfigurationService.
*
Expand Down
Loading

0 comments on commit f4e7bde

Please sign in to comment.