mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-09 19:13:18 +00:00
Compare commits
71 Commits
rest-tutor
...
dspace-1.7
Author | SHA1 | Date | |
---|---|---|---|
![]() |
96184cad90 | ||
![]() |
e782449835 | ||
![]() |
a993c9a3c1 | ||
![]() |
23da4c607c | ||
![]() |
1bf23d7c4c | ||
![]() |
38ef9080fa | ||
![]() |
17be1b9c25 | ||
![]() |
deaf6a5d82 | ||
![]() |
16b5ebfdea | ||
![]() |
e320ebd85a | ||
![]() |
e8d7f30ccf | ||
![]() |
36fa23246c | ||
![]() |
ca21676305 | ||
![]() |
266ec0fc2b | ||
![]() |
7e1e0ce8b5 | ||
![]() |
faf8883bc9 | ||
![]() |
43fc41fef9 | ||
![]() |
d863d8a88c | ||
![]() |
21f7f3f9ca | ||
![]() |
37a6f5e82a | ||
![]() |
f6f0104cd4 | ||
![]() |
4e6973a569 | ||
![]() |
aa8dd60640 | ||
![]() |
b997ca866f | ||
![]() |
5c6c7e1fd1 | ||
![]() |
6e026ed6fd | ||
![]() |
c3a48caca4 | ||
![]() |
39538b1ab8 | ||
![]() |
f923f7c391 | ||
![]() |
97e105b88f | ||
![]() |
4eaacd90cb | ||
![]() |
9a075ac5d9 | ||
![]() |
f43e2e2992 | ||
![]() |
06b81964e4 | ||
![]() |
84042ce512 | ||
![]() |
3c7d8ba607 | ||
![]() |
151afeace5 | ||
![]() |
aa6f1baa4a | ||
![]() |
2b67c5ccb2 | ||
![]() |
06878eab58 | ||
![]() |
7cc9a5d3d0 | ||
![]() |
8237d8b6e1 | ||
![]() |
48777df275 | ||
![]() |
908429570c | ||
![]() |
d999d0b0b7 | ||
![]() |
2bfd77e634 | ||
![]() |
0a50305ff5 | ||
![]() |
0bf155628d | ||
![]() |
1bbea4dbc4 | ||
![]() |
edb6a8a86f | ||
![]() |
491ca830a9 | ||
![]() |
09e049739f | ||
![]() |
0a00a8bbe9 | ||
![]() |
0cbeef4010 | ||
![]() |
27ae52c8f1 | ||
![]() |
2834c8ccf6 | ||
![]() |
1a9a7dfcba | ||
![]() |
27741e59a9 | ||
![]() |
1f4e370234 | ||
![]() |
f8c0886738 | ||
![]() |
296a70b4d8 | ||
![]() |
c0f8854398 | ||
![]() |
f7e2723e5c | ||
![]() |
314011e069 | ||
![]() |
aa708a326c | ||
![]() |
ce3a2098e4 | ||
![]() |
28bf3e3046 | ||
![]() |
793974234d | ||
![]() |
7ea045b2ed | ||
![]() |
54d0316724 | ||
![]() |
77573bc55f |
14
.gitattributes
vendored
Normal file
14
.gitattributes
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
|
||||
# Standard to msysgit
|
||||
*.doc diff=astextplain
|
||||
*.DOC diff=astextplain
|
||||
*.docx diff=astextplain
|
||||
*.DOCX diff=astextplain
|
||||
*.dot diff=astextplain
|
||||
*.DOT diff=astextplain
|
||||
*.pdf diff=astextplain
|
||||
*.PDF diff=astextplain
|
||||
*.rtf diff=astextplain
|
||||
*.RTF diff=astextplain
|
23
.gitignore
vendored
Normal file
23
.gitignore
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
## Ignore the MVN compiled output directories from version tracking
|
||||
target/
|
||||
|
||||
## Ignore project files created by Eclipse
|
||||
.settings/
|
||||
.project
|
||||
.classpath
|
||||
|
||||
## Ignore project files created by IntelliJ IDEA
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
.idea/
|
||||
|
||||
## Ignore project files created by NetBeans
|
||||
nbproject/private/
|
||||
build/
|
||||
nbbuild/
|
||||
dist/
|
||||
nbdist/
|
||||
nbactions.xml
|
||||
nb-configuration.xml
|
||||
META-INF/
|
2
LICENSE
2
LICENSE
@@ -1,7 +1,7 @@
|
||||
DSpace source code license:
|
||||
|
||||
|
||||
Copyright (c) 2002-2010, DuraSpace. All rights reserved.
|
||||
Copyright (c) 2002-2011, DuraSpace. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
|
5
LICENSE_HEADER
Normal file
5
LICENSE_HEADER
Normal file
@@ -0,0 +1,5 @@
|
||||
The contents of this file are subject to the license and copyright
|
||||
detailed in the LICENSE and NOTICE files at the root of the source
|
||||
tree and available online at
|
||||
|
||||
http://www.dspace.org/license/
|
4
NOTICE
4
NOTICE
@@ -11,5 +11,5 @@ access and preservation of digital works. The Foundation was able to transfer
|
||||
the legal copyright from Hewlett-Packard Company (HP) and Massachusetts
|
||||
Institute of Technology (MIT) to the DSpace Foundation in October 2007. Many
|
||||
of the files in the source code may contain a copyright statement stating HP
|
||||
and MIT posses the copyright, in these instances please note that the copy
|
||||
right has transfered to the DSpace foundation, and subsequently to Duraspace.
|
||||
and MIT possess the copyright, in these instances please note that the copy
|
||||
right has transferred to the DSpace foundation, and subsequently to DuraSpace.
|
||||
|
10
README
10
README
@@ -5,9 +5,9 @@ or
|
||||
- dspace/docs/pdf/DSpace-Manual.pdf
|
||||
|
||||
DSpace version information can be found in this release package under
|
||||
- dspace/CHANGES
|
||||
or
|
||||
- dspace/docs/html/History.html
|
||||
or viewed online at
|
||||
- https://wiki.duraspace.org/display/DSDOC/History
|
||||
|
||||
Documentation for the most recent stable release(s) may be downloaded
|
||||
or viewed online at
|
||||
@@ -31,12 +31,12 @@ mailing list.
|
||||
|
||||
Detailed Issue Tracking for DSpace is done on our JIRA Issue Tracker
|
||||
|
||||
- http://jira.dspace.org/
|
||||
- https://jira.duraspace.org/browse/DS
|
||||
|
||||
|
||||
To contribute to DSpace, please see:
|
||||
|
||||
- https://wiki.duraspace.org/display/DSPACE/HowToContribute
|
||||
- https://wiki.duraspace.org/display/DSPACE/How+to+Contribute+to+DSpace
|
||||
|
||||
|
||||
For more details about DSpace, including a list of service providers,
|
||||
@@ -48,4 +48,4 @@ places to seek help, news articles and lists of other users, please see:
|
||||
DSpace source code licensing information available online at:
|
||||
- http://www.dspace.org/license/
|
||||
|
||||
Copyright (c) 2002-2010, DuraSpace. All rights reserved.
|
||||
Copyright (c) 2002-2011, DuraSpace. All rights reserved.
|
||||
|
@@ -8,24 +8,19 @@
|
||||
|
||||
<!--
|
||||
A Parent POM that Maven inherits DSpace Defaults
|
||||
POM atrributes from.
|
||||
POM attributes from.
|
||||
-->
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update against
|
||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<!--
|
||||
Runtime and Compile Time dependencies for DSpace.
|
||||
@@ -60,29 +55,6 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.google.code.maven-license-plugin</groupId>
|
||||
<artifactId>maven-license-plugin</artifactId>
|
||||
<version>1.4.0</version>
|
||||
<configuration>
|
||||
<header>http://scm.dspace.org/svn/repo/licenses/LICENSE_HEADER</header>
|
||||
<includes>
|
||||
<include>src/**</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>src/test/resources/dspaceFolder/**</exclude>
|
||||
</excludes>
|
||||
<properties />
|
||||
<encoding>UTF-8</encoding>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>check</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
@@ -277,6 +249,16 @@
|
||||
<artifactId>contiperf</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.rometools</groupId>
|
||||
<artifactId>rome-modules</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.coverity.security</groupId>
|
||||
<artifactId>coverity-escapers</artifactId>
|
||||
<version>1.1.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
@@ -494,7 +494,7 @@ public class Item extends DSpaceObject
|
||||
int i = 0;
|
||||
while(dcf.hasMoreTokens())
|
||||
{
|
||||
tokens[i] = dcf.nextToken().toLowerCase().trim();
|
||||
tokens[i] = dcf.nextToken().trim();
|
||||
i++;
|
||||
}
|
||||
String schema = tokens[0];
|
||||
@@ -908,7 +908,8 @@ public class Item extends DSpaceObject
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!schema.equals(Item.ANY))
|
||||
|
||||
if (!schema.equals(Item.ANY))
|
||||
{
|
||||
if (dcv.schema != null && !dcv.schema.equals(schema))
|
||||
{
|
||||
|
@@ -354,6 +354,7 @@ public class MetadataSchema
|
||||
"metadata_schema_id=" + getSchemaID()));
|
||||
|
||||
DatabaseManager.delete(context, row);
|
||||
decache();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -362,6 +362,34 @@ public class WorkspaceItem implements InProgressSubmission
|
||||
return wsItems.toArray(new WorkspaceItem[wsItems.size()]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check to see if a particular item is currently still in a user's Workspace.
|
||||
* If so, its WorkspaceItem is returned. If not, null is returned
|
||||
*
|
||||
* @param context
|
||||
* the context object
|
||||
* @param i
|
||||
* the item
|
||||
*
|
||||
* @return workflow item corresponding to the item, or null
|
||||
*/
|
||||
public static WorkspaceItem findByItem(Context context, Item i)
|
||||
throws SQLException
|
||||
{
|
||||
// Look for the unique workspaceitem entry where 'item_id' references this item
|
||||
TableRow row = DatabaseManager.findByUnique(context, "workspaceitem", "item_id", i.getID());
|
||||
|
||||
if (row == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
return new WorkspaceItem(context, row);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get all workspace items in the whole system
|
||||
*
|
||||
|
@@ -31,6 +31,7 @@ public interface ChoiceAuthority
|
||||
* defaultSelected index in the Choices instance to the choice, if any,
|
||||
* that matches the value.
|
||||
*
|
||||
* @param field being matched for
|
||||
* @param text user's value to match
|
||||
* @param collection database ID of Collection for context (owner of Item)
|
||||
* @param start choice at which to start, 0 is first.
|
||||
@@ -38,7 +39,7 @@ public interface ChoiceAuthority
|
||||
* @param locale explicit localization key if available, or null
|
||||
* @return a Choices object (never null).
|
||||
*/
|
||||
public Choices getMatches(String text, int collection, int start, int limit, String locale);
|
||||
public Choices getMatches(String field, String text, int collection, int start, int limit, String locale);
|
||||
|
||||
/**
|
||||
* Get the single "best" match (if any) of a value in the authority
|
||||
@@ -49,12 +50,13 @@ public interface ChoiceAuthority
|
||||
* This call is typically used in non-interactive metadata ingest
|
||||
* where there is no interactive agent to choose from among options.
|
||||
*
|
||||
* @param field being matched for
|
||||
* @param text user's value to match
|
||||
* @param collection database ID of Collection for context (owner of Item)
|
||||
* @param locale explicit localization key if available, or null
|
||||
* @return a Choices object (never null) with 1 or 0 values.
|
||||
*/
|
||||
public Choices getBestMatch(String text, int collection, String locale);
|
||||
public Choices getBestMatch(String field, String text, int collection, String locale);
|
||||
|
||||
/**
|
||||
* Get the canonical user-visible "label" (i.e. short descriptive text)
|
||||
@@ -64,9 +66,10 @@ public interface ChoiceAuthority
|
||||
* This may get called many times while populating a Web page so it should
|
||||
* be implemented as efficiently as possible.
|
||||
*
|
||||
* @param field being matched for
|
||||
* @param key authority key known to this authority.
|
||||
* @param locale explicit localization key if available, or null
|
||||
* @return descriptive label - should always return something, never null.
|
||||
*/
|
||||
public String getLabel(String key, String locale);
|
||||
public String getLabel(String field, String key, String locale);
|
||||
}
|
||||
|
@@ -153,7 +153,7 @@ public final class ChoiceAuthorityManager
|
||||
* Wrapper that calls getMatches method of the plugin corresponding to
|
||||
* the metadata field defined by schema,element,qualifier.
|
||||
*
|
||||
* @see ChoiceAuthority#getMatches(String, int, int, int, String)
|
||||
* @see ChoiceAuthority#getMatches(String, String, int, int, int, String)
|
||||
* @param schema schema of metadata field
|
||||
* @param element element of metadata field
|
||||
* @param qualifier qualifier of metadata field
|
||||
@@ -175,7 +175,7 @@ public final class ChoiceAuthorityManager
|
||||
* Wrapper calls getMatches method of the plugin corresponding to
|
||||
* the metadata field defined by single field key.
|
||||
*
|
||||
* @see ChoiceAuthority#getMatches(String, int, int, int, String)
|
||||
* @see ChoiceAuthority#getMatches(String, String, int, int, int, String)
|
||||
* @param fieldKey single string identifying metadata field
|
||||
* @param query user's value to match
|
||||
* @param collection database ID of Collection for context (owner of Item)
|
||||
@@ -194,14 +194,14 @@ public final class ChoiceAuthorityManager
|
||||
"No choices plugin was configured for field \"" + fieldKey
|
||||
+ "\".");
|
||||
}
|
||||
return ma.getMatches(query, collection, start, limit, locale);
|
||||
return ma.getMatches(fieldKey, query, collection, start, limit, locale);
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper that calls getBestMatch method of the plugin corresponding to
|
||||
* the metadata field defined by single field key.
|
||||
*
|
||||
* @see ChoiceAuthority#getBestMatch(String, int, String)
|
||||
* @see ChoiceAuthority#getBestMatch(String, String, int, String)
|
||||
* @param fieldKey single string identifying metadata field
|
||||
* @param query user's value to match
|
||||
* @param collection database ID of Collection for context (owner of Item)
|
||||
@@ -218,7 +218,7 @@ public final class ChoiceAuthorityManager
|
||||
"No choices plugin was configured for field \"" + fieldKey
|
||||
+ "\".");
|
||||
}
|
||||
return ma.getBestMatch(query, collection, locale);
|
||||
return ma.getBestMatch(fieldKey, query, collection, locale);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -242,7 +242,7 @@ public final class ChoiceAuthorityManager
|
||||
{
|
||||
throw new IllegalArgumentException("No choices plugin was configured for field \"" + fieldKey + "\".");
|
||||
}
|
||||
return ma.getLabel(authKey, locale);
|
||||
return ma.getLabel(fieldKey, authKey, locale);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -117,7 +117,7 @@ public class DCInputAuthority extends SelfNamedPlugin implements ChoiceAuthority
|
||||
}
|
||||
|
||||
|
||||
public Choices getMatches(String query, int collection, int start, int limit, String locale)
|
||||
public Choices getMatches(String field, String query, int collection, int start, int limit, String locale)
|
||||
{
|
||||
init();
|
||||
|
||||
@@ -134,7 +134,7 @@ public class DCInputAuthority extends SelfNamedPlugin implements ChoiceAuthority
|
||||
return new Choices(v, 0, v.length, Choices.CF_AMBIGUOUS, false, dflt);
|
||||
}
|
||||
|
||||
public Choices getBestMatch(String text, int collection, String locale)
|
||||
public Choices getBestMatch(String field, String text, int collection, String locale)
|
||||
{
|
||||
init();
|
||||
for (int i = 0; i < values.length; ++i)
|
||||
@@ -149,7 +149,7 @@ public class DCInputAuthority extends SelfNamedPlugin implements ChoiceAuthority
|
||||
return new Choices(Choices.CF_NOTFOUND);
|
||||
}
|
||||
|
||||
public String getLabel(String key, String locale)
|
||||
public String getLabel(String field, String key, String locale)
|
||||
{
|
||||
init();
|
||||
return labels[Integer.parseInt(key)];
|
||||
|
@@ -154,7 +154,7 @@ public class DSpaceControlledVocabulary extends SelfNamedPlugin implements Choic
|
||||
}
|
||||
}
|
||||
|
||||
public Choices getMatches(String text, int collection, int start, int limit, String locale)
|
||||
public Choices getMatches(String field, String text, int collection, int start, int limit, String locale)
|
||||
{
|
||||
init();
|
||||
log.debug("Getting matches for '" + text + "'");
|
||||
@@ -203,14 +203,14 @@ public class DSpaceControlledVocabulary extends SelfNamedPlugin implements Choic
|
||||
return new Choices(choices, 0, choices.length, Choices.CF_AMBIGUOUS, false);
|
||||
}
|
||||
|
||||
public Choices getBestMatch(String text, int collection, String locale)
|
||||
public Choices getBestMatch(String field, String text, int collection, String locale)
|
||||
{
|
||||
init();
|
||||
log.debug("Getting best match for '" + text + "'");
|
||||
return getMatches(text, collection, 0, 2, locale);
|
||||
return getMatches(field, text, collection, 0, 2, locale);
|
||||
}
|
||||
|
||||
public String getLabel(String key, String locale)
|
||||
public String getLabel(String field, String key, String locale)
|
||||
{
|
||||
init();
|
||||
String xpathExpression = String.format(idTemplate, key);
|
||||
|
@@ -83,16 +83,16 @@ public class LCNameAuthority implements ChoiceAuthority
|
||||
}
|
||||
|
||||
// punt! this is a poor implementation..
|
||||
public Choices getBestMatch(String text, int collection, String locale)
|
||||
public Choices getBestMatch(String field, String text, int collection, String locale)
|
||||
{
|
||||
return getMatches(text, collection, 0, 2, locale);
|
||||
return getMatches(field, text, collection, 0, 2, locale);
|
||||
}
|
||||
|
||||
/**
|
||||
* Match a proposed value against name authority records
|
||||
* Value is assumed to be in "Lastname, Firstname" format.
|
||||
*/
|
||||
public Choices getMatches(String text, int collection, int start, int limit, String locale)
|
||||
public Choices getMatches(String field, String text, int collection, int start, int limit, String locale)
|
||||
{
|
||||
Choices result = queryPerson(text, start, limit);
|
||||
if (result == null)
|
||||
@@ -105,7 +105,7 @@ public class LCNameAuthority implements ChoiceAuthority
|
||||
|
||||
// punt; supposed to get the canonical display form of a metadata authority key
|
||||
// XXX FIXME implement this with a query on the authority key, cache results
|
||||
public String getLabel(String key, String locale)
|
||||
public String getLabel(String field, String key, String locale)
|
||||
{
|
||||
return key;
|
||||
}
|
||||
|
@@ -52,4 +52,8 @@ public class SHERPARoMEOJournalTitle extends SHERPARoMEOProtocol
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Choices getMatches(String field, String text, int collection, int start, int limit, String locale) {
|
||||
return getMatches(text, collection, start, limit, locale);
|
||||
}
|
||||
}
|
||||
|
@@ -72,14 +72,14 @@ public abstract class SHERPARoMEOProtocol implements ChoiceAuthority
|
||||
// this implements the specific RoMEO API args and XML tag naming
|
||||
public abstract Choices getMatches(String text, int collection, int start, int limit, String locale);
|
||||
|
||||
public Choices getBestMatch(String text, int collection, String locale)
|
||||
public Choices getBestMatch(String field, String text, int collection, String locale)
|
||||
{
|
||||
return getMatches(text, collection, 0, 2, locale);
|
||||
return getMatches(field, text, collection, 0, 2, locale);
|
||||
}
|
||||
|
||||
// XXX FIXME just punt, returning value, never got around to
|
||||
// implementing a reverse query.
|
||||
public String getLabel(String key, String locale)
|
||||
public String getLabel(String field, String key, String locale)
|
||||
{
|
||||
return key;
|
||||
}
|
||||
|
@@ -53,4 +53,9 @@ public class SHERPARoMEOPublisher extends SHERPARoMEOProtocol
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Choices getMatches(String field, String text, int collection, int start, int limit, String locale) {
|
||||
return getMatches(text, collection, start, limit, locale);
|
||||
}
|
||||
}
|
||||
|
@@ -33,7 +33,7 @@ public class SampleAuthority implements ChoiceAuthority
|
||||
"Saturday"
|
||||
};
|
||||
|
||||
public Choices getMatches(String query, int collection, int start, int limit, String locale)
|
||||
public Choices getMatches(String field, String query, int collection, int start, int limit, String locale)
|
||||
{
|
||||
int dflt = -1;
|
||||
Choice v[] = new Choice[values.length];
|
||||
@@ -48,7 +48,7 @@ public class SampleAuthority implements ChoiceAuthority
|
||||
return new Choices(v, 0, v.length, Choices.CF_AMBIGUOUS, false, dflt);
|
||||
}
|
||||
|
||||
public Choices getBestMatch(String text, int collection, String locale)
|
||||
public Choices getBestMatch(String field, String text, int collection, String locale)
|
||||
{
|
||||
for (int i = 0; i < values.length; ++i)
|
||||
{
|
||||
@@ -62,7 +62,7 @@ public class SampleAuthority implements ChoiceAuthority
|
||||
return new Choices(Choices.CF_NOTFOUND);
|
||||
}
|
||||
|
||||
public String getLabel(String key, String locale)
|
||||
public String getLabel(String field, String key, String locale)
|
||||
{
|
||||
return labels[Integer.parseInt(key)];
|
||||
}
|
||||
|
@@ -29,6 +29,7 @@ import org.dspace.content.Community;
|
||||
import org.dspace.content.DSpaceObject;
|
||||
import org.dspace.content.FormatIdentifier;
|
||||
import org.dspace.content.Item;
|
||||
import org.dspace.content.WorkspaceItem;
|
||||
import org.dspace.content.crosswalk.CrosswalkException;
|
||||
import org.dspace.content.crosswalk.MetadataValidationException;
|
||||
import org.dspace.core.ConfigurationManager;
|
||||
@@ -36,7 +37,6 @@ import org.dspace.core.Constants;
|
||||
import org.dspace.core.Context;
|
||||
import org.dspace.core.LogManager;
|
||||
import org.dspace.handle.HandleManager;
|
||||
import org.dspace.workflow.WorkflowItem;
|
||||
import org.jdom.Element;
|
||||
|
||||
/**
|
||||
@@ -459,24 +459,34 @@ public abstract class AbstractMETSIngester extends AbstractPackageIngester
|
||||
manifest.crosswalkObjectOtherAdminMD(context, params, dso, callback);
|
||||
|
||||
// -- Step 4 --
|
||||
// Run our Descriptive metadata (dublin core, etc) crosswalks!
|
||||
crosswalkObjectDmd(context, dso, manifest, callback, manifest
|
||||
.getItemDmds(), params);
|
||||
|
||||
// For Items, also sanity-check the metadata for minimum requirements.
|
||||
if (type == Constants.ITEM)
|
||||
{
|
||||
PackageUtils.checkItemMetadata((Item) dso);
|
||||
}
|
||||
|
||||
// -- Step 5 --
|
||||
// Add all content files as bitstreams on new DSpace Object
|
||||
if (type == Constants.ITEM)
|
||||
{
|
||||
Item item = (Item) dso;
|
||||
// @TODO: maybe add an option to apply template Item on ingest??
|
||||
|
||||
//Check if this item is still in a user's workspace.
|
||||
//It should be, as we haven't completed its install yet.
|
||||
WorkspaceItem wsi = WorkspaceItem.findByItem(context, item);
|
||||
|
||||
// Get collection this item is being submitted to
|
||||
Collection collection = item.getOwningCollection();
|
||||
if (collection == null)
|
||||
{
|
||||
// If an item doesn't have an owning-collection, that means it
|
||||
// has entered a workflow (and is not fully in the archive yet)
|
||||
WorkflowItem wfi = WorkflowItem.findByItem(context, item);
|
||||
|
||||
// Get the collection this workflow item belongs to
|
||||
if (wfi != null)
|
||||
// Get the collection this workspace item belongs to
|
||||
if (wsi != null)
|
||||
{
|
||||
collection = wfi.getCollection();
|
||||
collection = wsi.getCollection();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -492,9 +502,14 @@ public abstract class AbstractMETSIngester extends AbstractPackageIngester
|
||||
// have subclass manage license since it may be extra package file.
|
||||
addLicense(context, item, license, collection, params);
|
||||
|
||||
// XXX FIXME
|
||||
// should set lastModifiedTime e.g. when ingesting AIP.
|
||||
// maybe only do it in the finishObject() callback for AIP.
|
||||
// Finally, if item is still in the workspace, then we actually need
|
||||
// to install it into the archive & assign its handle.
|
||||
if(wsi!=null)
|
||||
{
|
||||
// Finish creating the item. This actually assigns the handle,
|
||||
// and will either install item immediately or start a workflow, based on params
|
||||
PackageUtils.finishCreateItem(context, wsi, handle, params);
|
||||
}
|
||||
|
||||
} // end if ITEM
|
||||
else if (type == Constants.COLLECTION || type == Constants.COMMUNITY)
|
||||
@@ -519,17 +534,6 @@ public abstract class AbstractMETSIngester extends AbstractPackageIngester
|
||||
+ String.valueOf(type));
|
||||
}
|
||||
|
||||
// -- Step 5 --
|
||||
// Run our Descriptive metadata (dublin core, etc) crosswalks!
|
||||
crosswalkObjectDmd(context, dso, manifest, callback, manifest
|
||||
.getItemDmds(), params);
|
||||
|
||||
// For Items, also sanity-check the metadata for minimum requirements.
|
||||
if (type == Constants.ITEM)
|
||||
{
|
||||
PackageUtils.checkItemMetadata((Item) dso);
|
||||
}
|
||||
|
||||
// -- Step 6 --
|
||||
// Finish things up!
|
||||
|
||||
@@ -635,7 +639,6 @@ public abstract class AbstractMETSIngester extends AbstractPackageIngester
|
||||
if (dso.getType() == Constants.ITEM)
|
||||
{
|
||||
Item item = (Item) dso;
|
||||
// @TODO: maybe add an option to apply template Item on ingest??
|
||||
|
||||
// save manifest as a bitstream in Item if desired
|
||||
if (preserveManifest())
|
||||
|
@@ -345,7 +345,7 @@ public class PackageUtils
|
||||
* generic like ".xml", to accidentally get set to this format.
|
||||
* @param context - the context.
|
||||
* @param shortDesc - short descriptive name, used to locate existing format.
|
||||
* @param MIMEtype - mime content-type
|
||||
* @param MIMEType - mime content-type
|
||||
* @param desc - long description
|
||||
* @param internal value for the 'internal' flag of a new format if created.
|
||||
* @return BitstreamFormat object that was found or created. Never null.
|
||||
@@ -472,11 +472,10 @@ public class PackageUtils
|
||||
//(Note: Handle is not set until item is finished)
|
||||
WorkspaceItem wsi = WorkspaceItem.create(context, (Collection)parent, params.useCollectionTemplate());
|
||||
|
||||
// Finish creating item with specified handle
|
||||
// (this will either install item immediately or start a workflow, based on params)
|
||||
dso = finishCreateItem(context, wsi, handle, params);
|
||||
|
||||
return dso;
|
||||
// Please note that we are returning an Item which is *NOT* yet in the Archive,
|
||||
// and doesn't yet have a handle assigned.
|
||||
// This Item will remain "incomplete" until 'PackageUtils.finishCreateItem()' is called
|
||||
return wsi.getItem();
|
||||
|
||||
case Constants.SITE:
|
||||
return Site.find(context, Site.SITE_ID);
|
||||
@@ -528,7 +527,7 @@ public class PackageUtils
|
||||
// default: skip workflow, but otherwise normal submission (i.e. package treated like a SIP)
|
||||
else
|
||||
{
|
||||
// Intall item immediately with the specified handle
|
||||
// Install item immediately with the specified handle
|
||||
InstallItem.installItem(context, wsi, handle);
|
||||
|
||||
// return newly installed item
|
||||
@@ -802,7 +801,7 @@ public class PackageUtils
|
||||
* Also see the translateGroupNameForImport() method which does the opposite
|
||||
* of this method.
|
||||
*
|
||||
* @param relatedDso DSpaceObject associated with group
|
||||
* @param context current DSpace Context
|
||||
* @param groupName Group's name
|
||||
* @return the group name, with any internal IDs translated to Handles
|
||||
*/
|
||||
@@ -886,7 +885,7 @@ public class PackageUtils
|
||||
* Also see the translateGroupNameForExport() method which does the opposite
|
||||
* of this method.
|
||||
*
|
||||
* @param relatedDso DSpaceObject associated with group
|
||||
* @param context current DSpace Context
|
||||
* @param groupName Group's name
|
||||
* @return the group name, with any Handles translated to internal IDs
|
||||
*/
|
||||
|
@@ -26,7 +26,7 @@ import java.util.Calendar;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.text.ParseException;
|
||||
|
||||
import com.coverity.security.Escape;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
@@ -280,21 +280,8 @@ public final class Utils
|
||||
*/
|
||||
public static String addEntities(String value)
|
||||
{
|
||||
if (value==null || value.length() == 0)
|
||||
{
|
||||
return value;
|
||||
}
|
||||
|
||||
value = value.replaceAll("&", "&");
|
||||
value = value.replaceAll("\"", """);
|
||||
|
||||
// actually, ' is an XML entity, not in HTML.
|
||||
// that's why it's commented out.
|
||||
// value = value.replaceAll("'", "'");
|
||||
value = value.replaceAll("<", "<");
|
||||
value = value.replaceAll(">", ">");
|
||||
|
||||
return value;
|
||||
return Escape.html(value);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -351,7 +351,7 @@ public class EPerson extends DSpaceObject
|
||||
}
|
||||
|
||||
// Get all the epeople that match the query
|
||||
TableRowIterator rows = DatabaseManager.queryTable(context, "eperson",
|
||||
TableRowIterator rows = DatabaseManager.query(context,
|
||||
dbquery, paramArr);
|
||||
try
|
||||
{
|
||||
@@ -473,7 +473,7 @@ public class EPerson extends DSpaceObject
|
||||
|
||||
// NOTE: The use of 's' in the order by clause can not cause an SQL
|
||||
// injection because the string is derived from constant values above.
|
||||
TableRowIterator rows = DatabaseManager.queryTable(context, "eperson",
|
||||
TableRowIterator rows = DatabaseManager.query(context,
|
||||
"SELECT * FROM eperson ORDER BY "+s);
|
||||
|
||||
try
|
||||
@@ -955,7 +955,7 @@ public class EPerson extends DSpaceObject
|
||||
List<String> tableList = new ArrayList<String>();
|
||||
|
||||
// check for eperson in item table
|
||||
TableRowIterator tri = DatabaseManager.queryTable(myContext, "item",
|
||||
TableRowIterator tri = DatabaseManager.query(myContext,
|
||||
"SELECT * from item where submitter_id= ? ",
|
||||
getID());
|
||||
|
||||
@@ -976,7 +976,7 @@ public class EPerson extends DSpaceObject
|
||||
}
|
||||
|
||||
// check for eperson in workflowitem table
|
||||
tri = DatabaseManager.queryTable(myContext, "workflowitem",
|
||||
tri = DatabaseManager.query(myContext,
|
||||
"SELECT * from workflowitem where owner= ? ",
|
||||
getID());
|
||||
|
||||
@@ -997,7 +997,7 @@ public class EPerson extends DSpaceObject
|
||||
}
|
||||
|
||||
// check for eperson in tasklistitem table
|
||||
tri = DatabaseManager.queryTable(myContext, "tasklistitem",
|
||||
tri = DatabaseManager.query(myContext,
|
||||
"SELECT * from tasklistitem where eperson_id= ? ",
|
||||
getID());
|
||||
|
||||
|
@@ -1102,6 +1102,7 @@ public class DatabaseManager
|
||||
break;
|
||||
|
||||
case Types.INTEGER:
|
||||
case Types.NUMERIC:
|
||||
if (isOracle)
|
||||
{
|
||||
long longValue = results.getLong(i);
|
||||
@@ -1120,7 +1121,6 @@ public class DatabaseManager
|
||||
}
|
||||
break;
|
||||
|
||||
case Types.NUMERIC:
|
||||
case Types.DECIMAL:
|
||||
case Types.BIGINT:
|
||||
row.setColumn(name, results.getLong(i));
|
||||
|
@@ -5,6 +5,7 @@
|
||||
#
|
||||
# http://www.dspace.org/license/
|
||||
#
|
||||
|
||||
browse.page-title = Browsing DSpace
|
||||
browse.et-al = et al
|
||||
|
||||
@@ -480,6 +481,8 @@ jsp.error.404.title = Error: Documen
|
||||
jsp.error.authorize.text1 = You do not have permission to perform the action you just attempted.
|
||||
jsp.error.authorize.text2 = If you think you should have authorization, please feel free to contact the DSpace administrators:
|
||||
jsp.error.authorize.title = Authorization Required
|
||||
jsp.error.exceeded-size.text1 = Sorry, but the file you have tried to upload ({0} bytes) exceeds the maximum file size limit of ({1} bytes). You can contact the repository manager with questions about this limit.
|
||||
jsp.error.exceeded-size.title = Exceeded Maximum File Size Error
|
||||
jsp.error.integrity.heading = System Error: Malformed Request
|
||||
jsp.error.integrity.list1 = Sometimes, if you used your browser's "back" button during an operation like a submission, clicking on a button may try and do something that's already been done, such as commit the submission to the archive. Clicking your browsers "reload" or "refresh" button may have similar results.
|
||||
jsp.error.integrity.list2 = If you got here by following a link or bookmark provided by someone else, the link may be incorrect or you mistyped the link. Please check the link and try again.
|
||||
|
@@ -314,6 +314,23 @@ public class ItemTest extends AbstractDSpaceObjectTest
|
||||
assertTrue("testGetMetadata_String 5",dc.length == 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* A test for DS-806: Item.match() incorrect logic for schema testing
|
||||
*/
|
||||
@Test
|
||||
public void testDS806()
|
||||
{
|
||||
// Set the item to have two pieces of metadata for dc.type and dc2.type
|
||||
String dcType = "DC-TYPE";
|
||||
String testType = "TEST-TYPE";
|
||||
it.addMetadata("dc", "type", null, null, dcType);
|
||||
it.addMetadata("test", "type", null, null, testType);
|
||||
|
||||
// Check that only one is returned when we ask for all dc.type values
|
||||
DCValue[] values = it.getMetadata("dc", "type", null, null);
|
||||
assertTrue("Return results", values.length == 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of addDC method, of class Item.
|
||||
*/
|
||||
|
@@ -1784,7 +1784,7 @@ crosswalk.submission.SWORD.stylesheet = crosswalks/sword-swap-ingest.xsl
|
||||
# which DSpace will construct the deposit location urls for
|
||||
# collections.
|
||||
#
|
||||
# The default is {dspace.url}/sword/deposit
|
||||
# The default is {dspace.baseUrl}/sword/deposit
|
||||
#
|
||||
# In the event that you are not deploying DSpace as the ROOT
|
||||
# application in the servlet container, this will generate
|
||||
@@ -1797,7 +1797,7 @@ crosswalk.submission.SWORD.stylesheet = crosswalks/sword-swap-ingest.xsl
|
||||
# URL from which DSpace will construct the service document
|
||||
# location urls for the site, and for individual collections
|
||||
#
|
||||
# The default is {dspace.url}/sword/servicedocument
|
||||
# The default is {dspace.baseUrl}/sword/servicedocument
|
||||
#
|
||||
# In the event that you are not deploying DSpace as the ROOT
|
||||
# application in the servlet container, this will generate
|
||||
@@ -1810,7 +1810,7 @@ crosswalk.submission.SWORD.stylesheet = crosswalks/sword-swap-ingest.xsl
|
||||
# which DSpace will use to construct the media link urls
|
||||
# for items which are deposited via sword
|
||||
#
|
||||
# The default is {dspace.url}/sword/media-link
|
||||
# The default is {dspace.baseUrl}/sword/media-link
|
||||
#
|
||||
# In the event that you are not deploying DSpace as the ROOT
|
||||
# application in the servlet container, this will generate
|
||||
|
@@ -584,4 +584,18 @@
|
||||
<scope_note>Nature or genre of content.</scope_note>
|
||||
</dc-type>
|
||||
|
||||
|
||||
<!-- A second test schema for testing purposes. -->
|
||||
<dc-schema>
|
||||
<name>test</name>
|
||||
<namespace>http://example.com/test/</namespace>
|
||||
</dc-schema>
|
||||
|
||||
<dc-type>
|
||||
<schema>test</schema>
|
||||
<element>type</element>
|
||||
<!-- unqualified -->
|
||||
<scope_note>A second test schema type element.</scope_note>
|
||||
</dc-type>
|
||||
|
||||
</dspace-dc-types>
|
||||
|
@@ -4,7 +4,7 @@
|
||||
<packaging>jar</packaging>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-provider</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<name>DSpace Discovery :: Discovery Provider Library</name>
|
||||
<description>
|
||||
|
||||
@@ -17,9 +17,15 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>discovery-modules</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
@@ -109,16 +115,4 @@
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-provider</connection>
|
||||
<developerConnection>
|
||||
scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-provider
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-provider</url>
|
||||
</scm>
|
||||
</project>
|
@@ -44,6 +44,8 @@ public class SearchUtils {
|
||||
|
||||
private static List<String> dateIndexableFields = new ArrayList<String>();
|
||||
|
||||
public static final String FILTER_SEPARATOR = "|||";
|
||||
|
||||
static {
|
||||
|
||||
log.debug("loading configuration");
|
||||
@@ -190,6 +192,20 @@ public class SearchUtils {
|
||||
return dateIndexableFields;
|
||||
}
|
||||
|
||||
public static String getFilterQueryDisplay(String filterQuery){
|
||||
String separator = SearchUtils.getConfig().getString("solr.facets.split.char", SearchUtils.FILTER_SEPARATOR);
|
||||
//Escape any regex chars
|
||||
separator = java.util.regex.Pattern.quote(separator);
|
||||
String[] fqParts = filterQuery.split(separator);
|
||||
String result = "";
|
||||
int start = fqParts.length / 2;
|
||||
for(int i = start; i < fqParts.length; i++){
|
||||
result += fqParts[i];
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static class SolrFacetConfig {
|
||||
|
||||
private String facetField;
|
||||
|
@@ -8,6 +8,7 @@
|
||||
package org.dspace.discovery;
|
||||
|
||||
import org.apache.commons.collections.ExtendedProperties;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang.time.DateFormatUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.solr.client.solrj.SolrQuery;
|
||||
@@ -699,7 +700,10 @@ public class SolrServiceImpl implements SearchService, IndexingService {
|
||||
|
||||
if(SearchUtils.getAllFacets().contains(field) || SearchUtils.getAllFacets().contains(unqualifiedField + "." + Item.ANY)){
|
||||
//Add a special filter
|
||||
doc.addField(field + "_filter", value);
|
||||
//We use a separator to split up the lowercase and regular case, this is needed to get our filters in regular case
|
||||
//Solr has issues with facet prefix and cases
|
||||
String separator = SearchUtils.getConfig().getString("solr.facets.split.char", SearchUtils.FILTER_SEPARATOR);
|
||||
doc.addField(field + "_filter", value.toLowerCase() + separator + value);
|
||||
}
|
||||
|
||||
if(SearchUtils.getSortFields().contains(field) && !sortFieldsAdded.contains(field)){
|
||||
@@ -773,9 +777,7 @@ public class SolrServiceImpl implements SearchService, IndexingService {
|
||||
readers.add(is);
|
||||
|
||||
// Add each InputStream to the Indexed Document
|
||||
// (Acts like an Append)
|
||||
// doc.addField("default", is);
|
||||
//doc.add(new Field("default", is));
|
||||
doc.addField("fulltext", IOUtils.toString(is));
|
||||
|
||||
log.debug(" Added BitStream: "
|
||||
+ myBitstreams[j].getStoreNumber() + " "
|
||||
|
@@ -5,15 +5,21 @@
|
||||
<packaging>jar</packaging>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-xmlui-api</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<name>DSpace Discovery :: Discovery XMLUI API</name>
|
||||
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>discovery-modules</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
@@ -47,6 +53,7 @@
|
||||
<plugin>
|
||||
<groupId>org.apache.cocoon</groupId>
|
||||
<artifactId>cocoon-maven-plugin</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare</id>
|
||||
@@ -114,17 +121,4 @@
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-xmlui-api</connection>
|
||||
<developerConnection>
|
||||
scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-xmlui-api
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-xmlui-api</url>
|
||||
</scm>
|
||||
|
||||
</project>
|
||||
|
@@ -37,7 +37,6 @@ import org.xml.sax.SAXException;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
import java.net.URLEncoder;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
@@ -386,7 +385,7 @@ public abstract class AbstractFiltersTransformer extends AbstractDSpaceTransform
|
||||
continue;
|
||||
}
|
||||
for (FacetField.Count count : facetVals) {
|
||||
values.add(new FilterDisplayValue(count.getName(), count.getCount(), count.getAsFilterQuery()));
|
||||
values.add(new FilterDisplayValue(SearchUtils.getFilterQueryDisplay(count.getName()), count.getCount(), count.getAsFilterQuery()));
|
||||
}
|
||||
}
|
||||
if(field.isDate()){
|
||||
@@ -463,12 +462,15 @@ public abstract class AbstractFiltersTransformer extends AbstractDSpaceTransform
|
||||
if(keys != null){
|
||||
while (keys.hasMoreElements()){
|
||||
String key = (String) keys.nextElement();
|
||||
if(key != null){
|
||||
paramsQuery += key + "=" + URLEncoder.encode(request.getParameter(key), "UTF-8");
|
||||
if(key != null && !"page".equals(key)){
|
||||
String[] vals = request.getParameterValues(key);
|
||||
for(String paramValue : vals){
|
||||
paramsQuery += key + "=" + paramValue;
|
||||
paramsQuery += "&";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
filterValsList.addItem().addXref(
|
||||
contextPath +
|
||||
@@ -476,7 +478,7 @@ public abstract class AbstractFiltersTransformer extends AbstractDSpaceTransform
|
||||
"/discover?" +
|
||||
paramsQuery +
|
||||
"fq=" +
|
||||
URLEncoder.encode(filterQuery, "UTF-8"),
|
||||
filterQuery,
|
||||
displayedValue + " (" + value.getCount() + ")"
|
||||
);
|
||||
}
|
||||
|
@@ -120,6 +120,13 @@ public class Navigation extends AbstractDSpaceTransformer implements CacheablePr
|
||||
browseGlobal.addItem().addXref(contextPath + "/community-list", T_head_all_of_dspace );
|
||||
*/
|
||||
|
||||
/* regulate the ordering */
|
||||
options.addList("discovery");
|
||||
options.addList("browse");
|
||||
options.addList("account");
|
||||
options.addList("context");
|
||||
options.addList("administrative");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -132,9 +132,9 @@ public class RelatedItems extends AbstractFiltersTransformer
|
||||
|
||||
this.queryArgs = prepareDefaultFilters(getView());
|
||||
this.queryArgs.setRows(1);
|
||||
this.queryArgs.add("fl","author,handle");
|
||||
this.queryArgs.add("fl","dc.contributor,dc.contributor.author,handle");
|
||||
this.queryArgs.add("mlt","true");
|
||||
this.queryArgs.add("mlt.fl","author,handle");
|
||||
this.queryArgs.add("mlt.fl","dc.contributor,dc.contributor.author,handle");
|
||||
this.queryArgs.add("mlt.mindf","1");
|
||||
this.queryArgs.add("mlt.mintf","1");
|
||||
this.queryArgs.setQuery("handle:" + dso.getHandle());
|
||||
|
@@ -558,7 +558,7 @@ public class SearchFacetFilter extends AbstractDSpaceTransformer implements Cach
|
||||
|
||||
//No use in selecting the same filter twice
|
||||
if(filterQueries.contains(filterQuery)){
|
||||
cell.addContent(displayedValue + " (" + value.getCount() + ")");
|
||||
cell.addContent(SearchUtils.getFilterQueryDisplay(displayedValue) + " (" + value.getCount() + ")");
|
||||
} else {
|
||||
//Add the basics
|
||||
Map<String, String> urlParams = new HashMap<String, String>();
|
||||
@@ -567,8 +567,8 @@ public class SearchFacetFilter extends AbstractDSpaceTransformer implements Cach
|
||||
//Add already existing filter queries
|
||||
url = addFilterQueriesToUrl(url);
|
||||
//Last add the current filter query
|
||||
url += "&fq=" + URLEncoder.encode(filterQuery, "UTF-8");
|
||||
cell.addXref(url, displayedValue + " (" + value.getCount() + ")"
|
||||
url += "&fq=" + filterQuery;
|
||||
cell.addXref(url, SearchUtils.getFilterQueryDisplay(displayedValue) + " (" + value.getCount() + ")"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@@ -97,7 +97,7 @@ public class SimpleSearch extends AbstractSearch implements CacheableProcessingC
|
||||
// String searchUrl = SearchUtils.getConfig().getString("solr.search.server");
|
||||
// if(searchUrl != null && !searchUrl.endsWith("/"))
|
||||
// searchUrl += "/";
|
||||
String searchUrl = ConfigurationManager.getProperty("dspace.url") + "/JSON/discovery/searchSolr";
|
||||
String searchUrl = contextPath + "/JSON/discovery/searchSolr";
|
||||
|
||||
search.addHidden("solr-search-url").setValue(searchUrl);
|
||||
search.addHidden("contextpath").setValue(contextPath);
|
||||
@@ -166,6 +166,9 @@ public class SimpleSearch extends AbstractSearch implements CacheableProcessingC
|
||||
if(field.equals("location.comm") || field.equals("location.coll")){
|
||||
//We have a community/collection, resolve it to a dspaceObject
|
||||
value = SolrServiceImpl.locationToName(context, field, value);
|
||||
} else
|
||||
if(field.endsWith("_filter")){
|
||||
value = SearchUtils.getFilterQueryDisplay(value);
|
||||
}
|
||||
//Check for a range query
|
||||
Pattern pattern = Pattern.compile("\\[(.*? TO .*?)\\]");
|
||||
|
@@ -21,15 +21,21 @@
|
||||
<packaging>war</packaging>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-xmlui-webapp</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<name>DSpace Discovery :: Discovery XMLUI Webapp</name>
|
||||
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>discovery-modules</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
@@ -46,7 +52,7 @@
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-xmlui-api</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
</dependency>
|
||||
|
||||
<!-- external -->
|
||||
@@ -65,6 +71,7 @@
|
||||
<plugin>
|
||||
<groupId>org.apache.cocoon</groupId>
|
||||
<artifactId>cocoon-maven-plugin</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare</id>
|
||||
@@ -121,6 +128,21 @@
|
||||
</systemProperty>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.mycila.maven-license-plugin</groupId>
|
||||
<artifactId>maven-license-plugin</artifactId>
|
||||
<configuration>
|
||||
<!--Exclude license check for Discovery files which don't need it-->
|
||||
<excludes>
|
||||
<exclude>**/COPYRIGHT.txt</exclude>
|
||||
<exclude>**/LICENSE.txt</exclude>
|
||||
<exclude>**/*.LICENSE</exclude>
|
||||
<exclude>**/jquery*</exclude>
|
||||
<exclude>**/jquery/*</exclude>
|
||||
<exclude>**/*.xmap</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!--
|
||||
<plugin>
|
||||
@@ -139,17 +161,4 @@
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-xmlui-webapp</connection>
|
||||
<developerConnection>
|
||||
scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-xmlui-webapp
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-xmlui-webapp</url>
|
||||
</scm>
|
||||
|
||||
</project>
|
||||
|
@@ -5,15 +5,21 @@
|
||||
<packaging>pom</packaging>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>discovery-modules</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<name>DSpace Discovery :: Modules</name>
|
||||
|
||||
<parent>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<groupId>org.dspace</groupId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<modules>
|
||||
<module>dspace-discovery-provider</module>
|
||||
<module>dspace-discovery-xmlui-api</module>
|
||||
@@ -46,19 +52,6 @@
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery</connection>
|
||||
<developerConnection>
|
||||
scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery</url>
|
||||
</scm>
|
||||
|
||||
<issueManagement>
|
||||
<system>JIRA</system>
|
||||
<url>http://jira.dspace.org/jira/browse/DISCOVERY</url>
|
||||
|
@@ -14,19 +14,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-jspui</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update against
|
||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui/dspace-jspui-api</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui/dspace-jspui-api</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui/dspace-jspui-api</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
|
@@ -98,7 +98,7 @@ public class BrowserServlet extends AbstractBrowserServlet
|
||||
throws ServletException, IOException, SQLException,
|
||||
AuthorizeException
|
||||
{
|
||||
JSPManager.showJSP(request, response, "/browse/error.jsp");
|
||||
JSPManager.showInternalError(request, response);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -19,6 +19,7 @@ import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import org.dspace.app.util.SubmissionInfo;
|
||||
@@ -218,8 +219,15 @@ public class SubmissionController extends DSpaceServlet
|
||||
// in order to be able to retrieve request parameters, etc.
|
||||
if ((contentType != null)
|
||||
&& (contentType.indexOf("multipart/form-data") != -1))
|
||||
{
|
||||
try
|
||||
{
|
||||
request = wrapMultipartRequest(request);
|
||||
} catch (FileSizeLimitExceededException e)
|
||||
{
|
||||
log.warn("Upload exceeded upload.max");
|
||||
JSPManager.showFileSizeLimitExceededError(request, response, e.getMessage(), e.getActualSize(), e.getPermittedSize());
|
||||
}
|
||||
|
||||
//also, upload any files and save their contents to Request (for later processing by UploadStep)
|
||||
uploadFiles(context, request);
|
||||
@@ -1350,7 +1358,7 @@ public class SubmissionController extends DSpaceServlet
|
||||
* if there are no more pages in this step
|
||||
*/
|
||||
private HttpServletRequest wrapMultipartRequest(HttpServletRequest request)
|
||||
throws ServletException
|
||||
throws ServletException, FileSizeLimitExceededException
|
||||
{
|
||||
HttpServletRequest wrappedRequest;
|
||||
|
||||
@@ -1370,6 +1378,10 @@ public class SubmissionController extends DSpaceServlet
|
||||
return request;
|
||||
}
|
||||
}
|
||||
catch (FileSizeLimitExceededException e)
|
||||
{
|
||||
throw new FileSizeLimitExceededException(e.getMessage(),e.getActualSize(),e.getPermittedSize());
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new ServletException(e);
|
||||
|
@@ -18,6 +18,7 @@ import java.util.List;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
@@ -457,16 +458,13 @@ public class CollectionWizardServlet extends DSpaceServlet
|
||||
HttpServletResponse response) throws SQLException,
|
||||
ServletException, IOException, AuthorizeException
|
||||
{
|
||||
try {
|
||||
// Wrap multipart request to get the submission info
|
||||
FileUploadRequest wrapper = new FileUploadRequest(request);
|
||||
|
||||
Collection collection = Collection.find(context, UIUtil
|
||||
.getIntParameter(wrapper, "collection_id"));
|
||||
|
||||
Collection collection = Collection.find(context, UIUtil.getIntParameter(wrapper, "collection_id"));
|
||||
if (collection == null)
|
||||
{
|
||||
log.warn(LogManager.getHeader(context, "integrity_error", UIUtil
|
||||
.getRequestLogInfo(wrapper)));
|
||||
log.warn(LogManager.getHeader(context, "integrity_error", UIUtil.getRequestLogInfo(wrapper)));
|
||||
JSPManager.showIntegrityError(request, response);
|
||||
|
||||
return;
|
||||
@@ -474,17 +472,11 @@ public class CollectionWizardServlet extends DSpaceServlet
|
||||
|
||||
// Get metadata
|
||||
collection.setMetadata("name", wrapper.getParameter("name"));
|
||||
collection.setMetadata("short_description", wrapper
|
||||
.getParameter("short_description"));
|
||||
collection.setMetadata("introductory_text", wrapper
|
||||
.getParameter("introductory_text"));
|
||||
collection.setMetadata("copyright_text", wrapper
|
||||
.getParameter("copyright_text"));
|
||||
collection.setMetadata("side_bar_text", wrapper
|
||||
.getParameter("side_bar_text"));
|
||||
collection.setMetadata("provenance_description", wrapper
|
||||
.getParameter("provenance_description"));
|
||||
|
||||
collection.setMetadata("short_description", wrapper.getParameter("short_description"));
|
||||
collection.setMetadata("introductory_text", wrapper.getParameter("introductory_text"));
|
||||
collection.setMetadata("copyright_text", wrapper.getParameter("copyright_text"));
|
||||
collection.setMetadata("side_bar_text", wrapper.getParameter("side_bar_text"));
|
||||
collection.setMetadata("provenance_description", wrapper.getParameter("provenance_description"));
|
||||
// Need to be more careful about license -- make sure it's null if
|
||||
// nothing was entered
|
||||
String license = wrapper.getParameter("license");
|
||||
@@ -522,8 +514,7 @@ public class CollectionWizardServlet extends DSpaceServlet
|
||||
// Identify the format
|
||||
BitstreamFormat bf = FormatIdentifier.guessFormat(context, logoBS);
|
||||
logoBS.setFormat(bf);
|
||||
AuthorizeManager.addPolicy(context, logoBS, Constants.WRITE, context
|
||||
.getCurrentUser());
|
||||
AuthorizeManager.addPolicy(context, logoBS, Constants.WRITE, context.getCurrentUser());
|
||||
logoBS.update();
|
||||
|
||||
// Remove temp file
|
||||
@@ -539,6 +530,11 @@ public class CollectionWizardServlet extends DSpaceServlet
|
||||
showNextPage(context, request, response, collection, BASIC_INFO);
|
||||
|
||||
context.complete();
|
||||
} catch (FileSizeLimitExceededException ex)
|
||||
{
|
||||
log.warn("Upload exceeded upload.max");
|
||||
JSPManager.showFileSizeLimitExceededError(request, response, ex.getMessage(), ex.getActualSize(), ex.getPermittedSize());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -17,6 +17,7 @@ import java.sql.SQLException;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.dspace.app.util.AuthorizeUtil;
|
||||
@@ -893,14 +894,11 @@ public class EditCommunitiesServlet extends DSpaceServlet
|
||||
HttpServletResponse response) throws ServletException, IOException,
|
||||
SQLException, AuthorizeException
|
||||
{
|
||||
try {
|
||||
// Wrap multipart request to get the submission info
|
||||
FileUploadRequest wrapper = new FileUploadRequest(request);
|
||||
|
||||
Community community = Community.find(context, UIUtil.getIntParameter(
|
||||
wrapper, "community_id"));
|
||||
Collection collection = Collection.find(context, UIUtil
|
||||
.getIntParameter(wrapper, "collection_id"));
|
||||
|
||||
Community community = Community.find(context, UIUtil.getIntParameter(wrapper, "community_id"));
|
||||
Collection collection = Collection.find(context, UIUtil.getIntParameter(wrapper, "collection_id"));
|
||||
File temp = wrapper.getFile("file");
|
||||
|
||||
// Read the temp file as logo
|
||||
@@ -936,8 +934,7 @@ public class EditCommunitiesServlet extends DSpaceServlet
|
||||
// Identify the format
|
||||
BitstreamFormat bf = FormatIdentifier.guessFormat(context, logoBS);
|
||||
logoBS.setFormat(bf);
|
||||
AuthorizeManager.addPolicy(context, logoBS, Constants.WRITE, context
|
||||
.getCurrentUser());
|
||||
AuthorizeManager.addPolicy(context, logoBS, Constants.WRITE, context.getCurrentUser());
|
||||
logoBS.update();
|
||||
|
||||
String jsp;
|
||||
@@ -980,5 +977,10 @@ public class EditCommunitiesServlet extends DSpaceServlet
|
||||
|
||||
// Update DB
|
||||
context.complete();
|
||||
} catch (FileSizeLimitExceededException ex)
|
||||
{
|
||||
log.warn("Upload exceeded upload.max");
|
||||
JSPManager.showFileSizeLimitExceededError(request, response, ex.getMessage(), ex.getActualSize(), ex.getPermittedSize());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -25,6 +25,7 @@ import java.util.StringTokenizer;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
import org.dspace.app.util.AuthorizeUtil;
|
||||
@@ -766,13 +767,11 @@ public class EditItemServlet extends DSpaceServlet
|
||||
throws ServletException, IOException, SQLException,
|
||||
AuthorizeException
|
||||
{
|
||||
try {
|
||||
// Wrap multipart request to get the submission info
|
||||
FileUploadRequest wrapper = new FileUploadRequest(request);
|
||||
Bitstream b = null;
|
||||
|
||||
Item item = Item.find(context, UIUtil.getIntParameter(wrapper,
|
||||
"item_id"));
|
||||
|
||||
Item item = Item.find(context, UIUtil.getIntParameter(wrapper, "item_id"));
|
||||
File temp = wrapper.getFile("file");
|
||||
|
||||
// Read the temp file as logo
|
||||
@@ -838,5 +837,10 @@ public class EditItemServlet extends DSpaceServlet
|
||||
|
||||
// Update DB
|
||||
context.complete();
|
||||
} catch (FileSizeLimitExceededException ex)
|
||||
{
|
||||
log.warn("Upload exceeded upload.max");
|
||||
JSPManager.showFileSizeLimitExceededError(request, response, ex.getMessage(), ex.getActualSize(), ex.getPermittedSize());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -87,7 +87,7 @@ public class WithdrawnBrowserServlet extends AbstractBrowserServlet
|
||||
{
|
||||
request.setAttribute("useAdminLayout", "yes");
|
||||
|
||||
JSPManager.showJSP(request, response, "/browse/error.jsp");
|
||||
JSPManager.showInternalError(request, response);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -15,6 +15,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletRequestWrapper;
|
||||
|
||||
import org.apache.commons.fileupload.FileItem;
|
||||
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
|
||||
import org.apache.commons.fileupload.servlet.ServletFileUpload;
|
||||
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
|
||||
import org.dspace.core.ConfigurationManager;
|
||||
@@ -47,7 +48,7 @@ public class FileUploadRequest extends HttpServletRequestWrapper
|
||||
* @param req
|
||||
* the original request
|
||||
*/
|
||||
public FileUploadRequest(HttpServletRequest req) throws IOException
|
||||
public FileUploadRequest(HttpServletRequest req) throws IOException, FileSizeLimitExceededException
|
||||
{
|
||||
super(req);
|
||||
|
||||
@@ -90,6 +91,16 @@ public class FileUploadRequest extends HttpServletRequestWrapper
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
if(e.getMessage().contains("exceeds the configured maximum"))
|
||||
{
|
||||
// ServletFileUpload is not throwing the correct error, so this is workaround
|
||||
// the request was rejected because its size (11302) exceeds the configured maximum (536)
|
||||
int startFirstParen = e.getMessage().indexOf("(")+1;
|
||||
int endFirstParen = e.getMessage().indexOf(")");
|
||||
String uploadedSize = e.getMessage().substring(startFirstParen, endFirstParen).trim();
|
||||
Long actualSize = Long.parseLong(uploadedSize);
|
||||
throw new FileSizeLimitExceededException(e.getMessage(), actualSize, maxSize);
|
||||
}
|
||||
throw new IOException(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
@@ -142,4 +142,26 @@ public class JSPManager
|
||||
|
||||
showJSP(request, response, "/error/invalid-id.jsp");
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a "file upload was too large" error message. Passing in information
|
||||
* about the size of the file uploaded, and the maximum file size limit so
|
||||
* the user knows why they encountered an error.
|
||||
* @param request
|
||||
* @param response
|
||||
* @param message
|
||||
* @param actualSize
|
||||
* @param permittedSize
|
||||
* @throws ServletException
|
||||
* @throws IOException
|
||||
*/
|
||||
public static void showFileSizeLimitExceededError(HttpServletRequest request,
|
||||
HttpServletResponse response, String message, long actualSize, long permittedSize) throws ServletException, IOException
|
||||
{
|
||||
request.setAttribute("error.message", message);
|
||||
request.setAttribute("actualSize", actualSize);
|
||||
request.setAttribute("permittedSize", permittedSize);
|
||||
response.setStatus(HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE);
|
||||
showJSP(request, response, "/error/exceeded-size.jsp");
|
||||
}
|
||||
}
|
||||
|
@@ -14,19 +14,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-jspui</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update against
|
||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui/dspace-jspui-webapp</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui/dspace-jspui-webapp</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui/dspace-jspui-webapp</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
@@ -53,6 +48,18 @@
|
||||
<phase>prepare-package</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.mycila.maven-license-plugin</groupId>
|
||||
<artifactId>maven-license-plugin</artifactId>
|
||||
<configuration>
|
||||
<!--Exclude license check for JSPUI files which don't need it-->
|
||||
<excludes>
|
||||
<exclude>**/robots.txt</exclude>
|
||||
<exclude>**/readme*</exclude>
|
||||
<exclude>**/*.tld</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
@@ -27,6 +27,7 @@
|
||||
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
|
||||
|
||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||
<%@ page import="org.dspace.core.Utils" %>
|
||||
|
||||
<%
|
||||
EPerson[] epeople =
|
||||
@@ -115,10 +116,10 @@
|
||||
<%= (e.getEmail() == null ? "" : e.getEmail()) %>
|
||||
</td>
|
||||
<td headers="t3" class="<%= row %>RowOddCol">
|
||||
<%= (e.getLastName() == null ? "" : e.getLastName()) %>
|
||||
<%= (e.getLastName() == null ? "" : Utils.addEntities(e.getLastName())) %>
|
||||
</td>
|
||||
<td headers="t4" class="<%= row %>RowEvenCol">
|
||||
<%= (e.getFirstName() == null ? "" : e.getFirstName()) %>
|
||||
<%= (e.getFirstName() == null ? "" : Utils.addEntities(e.getFirstName())) %>
|
||||
</td>
|
||||
<td headers="t5" class="<%= row %>RowOddCol" align="center">
|
||||
<%= e.canLogIn() ? "yes" : "no" %>
|
||||
@@ -130,7 +131,7 @@
|
||||
<%= e.getSelfRegistered() ? "yes" : "no" %>
|
||||
</td>
|
||||
<td headers="t8" class="<%= row %>RowEvenCol">
|
||||
<%= (e.getMetadata("phone") == null ? "" : e.getMetadata("phone")) %>
|
||||
<%= (e.getMetadata("phone") == null ? "" : Utils.addEntities(e.getMetadata("phone"))) %>
|
||||
</td>
|
||||
<td headers="t9" class="<%= row %>RowOddCol">
|
||||
<input type="hidden" name="eperson_id" value="<%= e.getID() %>"/>
|
||||
|
@@ -20,6 +20,7 @@
|
||||
prefix="fmt" %>
|
||||
|
||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||
<%@ page import="org.dspace.core.Utils" %>
|
||||
|
||||
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
|
||||
|
||||
@@ -32,9 +33,9 @@
|
||||
parenttitlekey="jsp.administer"
|
||||
parentlink="/dspace-admin">
|
||||
|
||||
<%-- <h1>Delete e-person: <%= eperson.getFullName() %> (<%= eperson.getEmail() %>)</h1> --%>
|
||||
<%-- <h1>Delete e-person: <%= Utils.addEntities(eperson.getFullName()) %> (<%= eperson.getEmail() %>)</h1> --%>
|
||||
<h1><fmt:message key="jsp.dspace-admin.eperson-confirm-delete.heading">
|
||||
<fmt:param><%= eperson.getFullName() %></fmt:param>
|
||||
<fmt:param><%= Utils.addEntities(eperson.getFullName()) %></fmt:param>
|
||||
<fmt:param><%= eperson.getEmail() %></fmt:param>
|
||||
</fmt:message></h1>
|
||||
|
||||
|
@@ -28,11 +28,12 @@
|
||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||
<%@ page import="java.util.List" %>
|
||||
<%@ page import="java.util.Iterator" %>
|
||||
<%@ page import="org.dspace.core.Utils" %>
|
||||
|
||||
<%
|
||||
EPerson eperson = (EPerson) request.getAttribute("eperson");
|
||||
List tableList = (List) request.getAttribute("tableList");
|
||||
String fullName = eperson.getFullName();
|
||||
String fullName = Utils.addEntities(eperson.getFullName());
|
||||
Iterator tableIt = tableList.iterator();
|
||||
|
||||
%>
|
||||
|
@@ -28,6 +28,7 @@
|
||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||
<%@ page import="org.dspace.eperson.Group" %>
|
||||
<%@ page import="org.dspace.content.WorkspaceItem" %>
|
||||
<%@ page import="org.dspace.core.Utils" %>
|
||||
|
||||
<%
|
||||
// get item and group out of the request
|
||||
@@ -75,7 +76,7 @@
|
||||
<br/><br/>
|
||||
<strong><fmt:message key="jsp.dspace-admin.supervise-confirm-remove.authorheader"/></strong>:
|
||||
<br/>
|
||||
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
|
||||
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
|
||||
<br/><br/>
|
||||
<strong><fmt:message key="jsp.dspace-admin.supervise-confirm-remove.supervisorgroupheader"/></strong>:
|
||||
<br/>
|
||||
|
@@ -28,6 +28,7 @@
|
||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||
<%@ page import="org.dspace.eperson.Group" %>
|
||||
<%@ page import="org.dspace.eperson.Supervisor" %>
|
||||
<%@ page import="org.dspace.core.Utils" %>
|
||||
|
||||
<%
|
||||
// get objects from request
|
||||
@@ -109,7 +110,7 @@
|
||||
<%= workspaceItems[i].getID() %>
|
||||
</td>
|
||||
<td class="<%= row %>RowEvenCol">
|
||||
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
|
||||
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
|
||||
</td>
|
||||
<td class="<%= row %>RowOddCol">
|
||||
<%
|
||||
|
@@ -25,6 +25,7 @@
|
||||
<%@ page import="org.dspace.content.SupervisedItem" %>
|
||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||
<%@ page import="org.dspace.eperson.Group" %>
|
||||
<%@ page import="org.dspace.core.Utils" %>
|
||||
|
||||
<%
|
||||
// get the object array out of the request
|
||||
@@ -97,7 +98,7 @@
|
||||
<%= supervisors[j].getName() %>
|
||||
</td>
|
||||
<td class="<%= row %>RowOddCol">
|
||||
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
|
||||
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
|
||||
</td>
|
||||
<td class="<%= row %>RowEvenCol">
|
||||
<%
|
||||
|
@@ -0,0 +1,52 @@
|
||||
<%--
|
||||
|
||||
The contents of this file are subject to the license and copyright
|
||||
detailed in the LICENSE and NOTICE files at the root of the source
|
||||
tree and available online at
|
||||
|
||||
http://www.dspace.org/license/
|
||||
|
||||
--%>
|
||||
<%--
|
||||
- Error page for when the file uploaded exceeded the size limit
|
||||
--%>
|
||||
|
||||
<%@ page contentType="text/html;charset=UTF-8" %>
|
||||
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"
|
||||
prefix="fmt" %>
|
||||
|
||||
<%@ page import="java.io.PrintWriter" %>
|
||||
|
||||
<%@ page isErrorPage="true" %>
|
||||
|
||||
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
|
||||
|
||||
<dspace:layout titlekey="jsp.error.exceeded-size.title">
|
||||
<h1><fmt:message key="jsp.error.exceeded-size.title"/></h1>
|
||||
<p>
|
||||
<fmt:message key="jsp.error.exceeded-size.text1">
|
||||
<fmt:param><%= request.getAttribute("actualSize") %></fmt:param>
|
||||
<fmt:param><%= request.getAttribute("permittedSize") %></fmt:param>
|
||||
</fmt:message>
|
||||
</p>
|
||||
|
||||
<dspace:include page="/components/contact-info.jsp" />
|
||||
|
||||
<p align="center">
|
||||
<a href="<%= request.getContextPath() %>/"><fmt:message key="jsp.general.gohome"/></a>
|
||||
</p>
|
||||
<!--
|
||||
<%
|
||||
String error = request.getAttribute("error.message").toString();
|
||||
if(error == null)
|
||||
{
|
||||
out.println("No stack trace available<br/>");
|
||||
}
|
||||
else
|
||||
{
|
||||
out.println(error);
|
||||
}
|
||||
%>
|
||||
-->
|
||||
</dspace:layout>
|
@@ -25,7 +25,6 @@
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"
|
||||
prefix="fmt" %>
|
||||
|
||||
|
||||
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
|
||||
|
||||
<%@ page import="javax.servlet.jsp.jstl.fmt.LocaleSupport" %>
|
||||
@@ -78,7 +77,7 @@
|
||||
<tr>
|
||||
<td align="left">
|
||||
<h1>
|
||||
<fmt:message key="jsp.mydspace"/>: <%= user.getFullName() %>
|
||||
<fmt:message key="jsp.mydspace"/>: <%= Utils.addEntities(user.getFullName()) %>
|
||||
</h1>
|
||||
</td>
|
||||
<td align="right" class="standard">
|
||||
@@ -136,7 +135,7 @@
|
||||
</td>
|
||||
<td headers="t2" class="<%= row %>RowEvenCol"><%= Utils.addEntities(title) %></td>
|
||||
<td headers="t3" class="<%= row %>RowOddCol"><%= owned[i].getCollection().getMetadata("name") %></td>
|
||||
<td headers="t4" class="<%= row %>RowEvenCol"><a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a></td>
|
||||
<td headers="t4" class="<%= row %>RowEvenCol"><a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a></td>
|
||||
<!-- <td headers="t5" class="<%= row %>RowOddCol"></td> -->
|
||||
<td headers="t5" class="<%= row %>RowEvenCol">
|
||||
<form action="<%= request.getContextPath() %>/mydspace" method="post">
|
||||
@@ -200,7 +199,7 @@
|
||||
</td>
|
||||
<td headers="t7" class="<%= row %>RowEvenCol"><%= Utils.addEntities(title) %></td>
|
||||
<td headers="t8" class="<%= row %>RowOddCol"><%= pooled[i].getCollection().getMetadata("name") %></td>
|
||||
<td headers="t9" class="<%= row %>RowEvenCol"><a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a></td>
|
||||
<td headers="t9" class="<%= row %>RowEvenCol"><a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a></td>
|
||||
<td class="<%= row %>RowOddCol">
|
||||
<form action="<%= request.getContextPath() %>/mydspace" method="post">
|
||||
<input type="hidden" name="step" value="<%= MyDSpaceServlet.MAIN_PAGE %>" />
|
||||
@@ -285,7 +284,7 @@
|
||||
</form>
|
||||
</td>
|
||||
<td headers="t10" class="<%= row %>RowEvenCol">
|
||||
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
|
||||
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
|
||||
</td>
|
||||
<td headers="t11" class="<%= row %>RowOddCol"><%= Utils.addEntities(title) %></td>
|
||||
<td headers="t12" class="<%= row %>RowEvenCol"><%= workspaceItems[i].getCollection().getMetadata("name") %></td>
|
||||
@@ -332,7 +331,7 @@
|
||||
</form>
|
||||
</td>
|
||||
<td class="<%= row %>RowEvenCol">
|
||||
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
|
||||
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
|
||||
</td>
|
||||
<td class="<%= row %>RowOddCol"><%= Utils.addEntities(title) %></td>
|
||||
<td class="<%= row %>RowEvenCol"><%= supervisedItems[i].getCollection().getMetadata("name") %></td>
|
||||
|
@@ -29,6 +29,7 @@
|
||||
|
||||
<%@ page import="org.dspace.app.webui.servlet.RegisterServlet" %>
|
||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||
<%@ page import="org.dspace.core.Utils" %>
|
||||
|
||||
<%
|
||||
EPerson eperson = (EPerson) request.getAttribute("eperson");
|
||||
@@ -43,9 +44,9 @@
|
||||
<%-- <h1>Enter a New Password</h1> --%>
|
||||
<h1><fmt:message key="jsp.register.new-password.title"/></h1>
|
||||
|
||||
<!-- <p>Hello <%= eperson.getFullName() %>,</p> -->
|
||||
<!-- <p>Hello <%= Utils.addEntities(eperson.getFullName()) %>,</p> -->
|
||||
<p><fmt:message key="jsp.register.new-password.hello">
|
||||
<fmt:param><%= eperson.getFullName() %></fmt:param>
|
||||
<fmt:param><%= Utils.addEntities(eperson.getFullName()) %></fmt:param>
|
||||
</fmt:message></p>
|
||||
|
||||
<%
|
||||
|
@@ -25,6 +25,7 @@
|
||||
|
||||
<%@ page import="org.dspace.app.webui.servlet.RegisterServlet" %>
|
||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||
<%@ page import="org.dspace.core.Utils" %>
|
||||
|
||||
<%
|
||||
EPerson eperson = (EPerson) request.getAttribute("eperson");
|
||||
@@ -35,9 +36,9 @@
|
||||
<%-- <h1>Registration Complete</h1> --%>
|
||||
<h1><fmt:message key="jsp.register.registered.title"/></h1>
|
||||
|
||||
<%-- <p>Thank you <%= eperson.getFirstName() %>,</p> --%>
|
||||
<%-- <p>Thank you <%= Utils.addEntities(eperson.getFirstName()) %>,</p> --%>
|
||||
<p><fmt:message key="jsp.register.registered.thank">
|
||||
<fmt:param><%= eperson.getFirstName() %></fmt:param>
|
||||
<fmt:param><%= Utils.addEntities(eperson.getFirstName()) %></fmt:param>
|
||||
</fmt:message></p>
|
||||
|
||||
<%-- <p>You're now registered to use the DSpace system. You can subscribe to
|
||||
|
@@ -50,6 +50,7 @@
|
||||
<%@ page import="org.dspace.content.authority.ChoiceAuthorityManager" %>
|
||||
<%@ page import="org.dspace.content.authority.Choices" %>
|
||||
<%@ page import="org.dspace.core.ConfigurationManager" %>
|
||||
<%@ page import="org.dspace.core.Utils" %>
|
||||
|
||||
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
@@ -325,9 +326,9 @@
|
||||
if (repeatable && !readonly && i < defaults.length)
|
||||
{
|
||||
name.setLength(0);
|
||||
name.append(dpn.getLastName())
|
||||
name.append(Utils.addEntities(dpn.getLastName()))
|
||||
.append(' ')
|
||||
.append(dpn.getFirstNames());
|
||||
.append(Utils.addEntities(dpn.getFirstNames()));
|
||||
// put a remove button next to filled in values
|
||||
sb.append("<td><input type=\"submit\" name=\"submit_")
|
||||
.append(fieldName)
|
||||
|
@@ -281,7 +281,7 @@ function clearEPeople()
|
||||
{
|
||||
EPerson e = epeople[i];
|
||||
// Make sure no quotes in full name will mess up our Javascript
|
||||
String fullname = e.getFullName().replace('\'', ' ');
|
||||
String fullname = Utils.addEntities(e.getFullName().replace('\'', ' '));
|
||||
%>
|
||||
<tr>
|
||||
<td headers="t1" class="<%= row %>RowOddCol">
|
||||
@@ -291,10 +291,10 @@ function clearEPeople()
|
||||
<td headers="t2" class="<%= row %>RowEvenCol"><%= e.getID() %></td>
|
||||
<td headers="t3" class="<%= row %>RowOddCol"><%= e.getEmail() %></td>
|
||||
<td headers="t4" class="<%= row %>RowEvenCol">
|
||||
<%= (e.getLastName() == null ? "" : e.getLastName()) %>
|
||||
<%= (e.getLastName() == null ? "" : Utils.addEntities(e.getLastName())) %>
|
||||
</td>
|
||||
<td headers="t5" class="<%= row %>RowOddCol">
|
||||
<%= (e.getFirstName() == null ? "" : e.getFirstName()) %>
|
||||
<%= (e.getFirstName() == null ? "" : Utils.addEntities(e.getFirstName())) %>
|
||||
</td>
|
||||
<td headers="t6" class="<%= row %>RowOddCol">
|
||||
<%= (e.getLanguage() == null ? "" : e.getLanguage()) %>
|
||||
|
@@ -26,6 +26,7 @@
|
||||
<%@ page import="org.dspace.content.WorkspaceItem" %>
|
||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||
<%@ page import="javax.servlet.jsp.jstl.fmt.LocaleSupport" %>
|
||||
<%@ page import="org.dspace.core.Utils" %>
|
||||
|
||||
<%
|
||||
// get the workspace item from the request
|
||||
@@ -73,7 +74,7 @@
|
||||
}
|
||||
%>
|
||||
|
||||
<p><strong><a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a></strong></p>
|
||||
<p><strong><a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a></strong></p>
|
||||
|
||||
<p><fmt:message key="jsp.workspace.ws-main.submitmsg"/>
|
||||
<%= workspaceItem.getCollection().getMetadata("name") %></p>
|
||||
|
@@ -14,19 +14,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update against
|
||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<modules>
|
||||
<module>dspace-jspui-api</module>
|
||||
|
@@ -12,14 +12,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-lni</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-client</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-client</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-client</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
@@ -82,6 +82,16 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.mycila.maven-license-plugin</groupId>
|
||||
<artifactId>maven-license-plugin</artifactId>
|
||||
<configuration>
|
||||
<!--Exclude license check for LNI files which don't need it-->
|
||||
<excludes>
|
||||
<exclude>**/*.wsdl</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<!--
|
||||
This is another approach to packaging the LNI client that may be approached.
|
||||
|
@@ -10,14 +10,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-lni</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-core</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-core</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-core</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
|
@@ -12,14 +12,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-lni</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-webapp</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-webapp</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-webapp</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
@@ -46,6 +46,16 @@
|
||||
<phase>prepare-package</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.mycila.maven-license-plugin</groupId>
|
||||
<artifactId>maven-license-plugin</artifactId>
|
||||
<configuration>
|
||||
<!--Exclude license check for LNI files which don't need it-->
|
||||
<excludes>
|
||||
<exclude>**/*.wsdd</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
@@ -12,19 +12,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update against
|
||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<modules>
|
||||
<module>dspace-lni-core</module>
|
||||
|
@@ -14,19 +14,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-oai</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update against
|
||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai/dspace-oai-api</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai/dspace-oai-api</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai/dspace-oai-api</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
|
@@ -14,19 +14,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-oai</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update against
|
||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai/dspace-oai-webapp</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai/dspace-oai-webapp</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai/dspace-oai-webapp</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
|
@@ -14,19 +14,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update against
|
||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<modules>
|
||||
<module>dspace-oai-api</module>
|
||||
|
@@ -3,26 +3,21 @@
|
||||
<parent>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<groupId>org.dspace</groupId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-stats</artifactId>
|
||||
<name>DSpace Solr Statistics Logging Client Library</name>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<description>Library of Shared UsageEvent and EventConsumer Tools for Logging to Solr.</description>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle and
|
||||
releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-stats</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-stats</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-stats</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<developers>
|
||||
<developer>
|
||||
@@ -114,21 +109,22 @@
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<version>2.8</version>
|
||||
<configuration>
|
||||
|
||||
<minmemory>128m</minmemory>
|
||||
<maxmemory>1g</maxmemory>
|
||||
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-jxr-plugin</artifactId>
|
||||
<version>2.3</version>
|
||||
<configuration>
|
||||
<aggregate>true</aggregate>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-site-plugin</artifactId>
|
||||
<version>3.0</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</reporting>
|
||||
|
@@ -16,21 +16,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-sword</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update against
|
||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword/dspace-sword-api</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword/dspace-sword-api
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword/dspace-sword-api</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
@@ -45,6 +38,17 @@
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-api</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-services-impl</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
@@ -101,9 +101,9 @@ public class CollectionLocation
|
||||
* If the configuration sword.deposit.url is set, this will be returned,
|
||||
* but if not, it will construct the url as follows:
|
||||
*
|
||||
* [dspace.url]/dspace-sword/deposit
|
||||
* [dspace.baseUrl]/sword/deposit
|
||||
*
|
||||
* where dspace.url is also in the configuration file.
|
||||
* where dspace.baseUrl is also in the configuration file.
|
||||
*
|
||||
* @return the base URL for sword deposit
|
||||
* @throws DSpaceSWORDException
|
||||
@@ -114,10 +114,10 @@ public class CollectionLocation
|
||||
String depositUrl = ConfigurationManager.getProperty("sword.deposit.url");
|
||||
if (depositUrl == null || "".equals(depositUrl))
|
||||
{
|
||||
String dspaceUrl = ConfigurationManager.getProperty("dspace.url");
|
||||
String dspaceUrl = ConfigurationManager.getProperty("dspace.baseUrl");
|
||||
if (dspaceUrl == null || "".equals(dspaceUrl))
|
||||
{
|
||||
throw new DSpaceSWORDException("Unable to construct deposit urls, due to missing/invalid config in sword.deposit.url and/or dspace.url");
|
||||
throw new DSpaceSWORDException("Unable to construct deposit urls, due to missing/invalid config in sword.deposit.url and/or dspace.baseUrl");
|
||||
}
|
||||
|
||||
try
|
||||
@@ -127,7 +127,7 @@ public class CollectionLocation
|
||||
}
|
||||
catch (MalformedURLException e)
|
||||
{
|
||||
throw new DSpaceSWORDException("Unable to construct deposit urls, due to invalid dspace.url " + e.getMessage(),e);
|
||||
throw new DSpaceSWORDException("Unable to construct deposit urls, due to invalid dspace.baseUrl " + e.getMessage(),e);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -314,11 +314,11 @@ public class SWORDUrlManager
|
||||
String depositUrl = ConfigurationManager.getProperty("sword.servicedocument.url");
|
||||
if (depositUrl == null || "".equals(depositUrl))
|
||||
{
|
||||
String dspaceUrl = ConfigurationManager.getProperty("dspace.url");
|
||||
String dspaceUrl = ConfigurationManager.getProperty("dspace.baseUrl");
|
||||
if (dspaceUrl == null || "".equals(dspaceUrl))
|
||||
{
|
||||
throw new DSpaceSWORDException("Unable to construct service document urls, due to missing/invalid " +
|
||||
"config in sword.servicedocument.url and/or dspace.url");
|
||||
"config in sword.servicedocument.url and/or dspace.baseUrl");
|
||||
}
|
||||
|
||||
try
|
||||
@@ -328,7 +328,7 @@ public class SWORDUrlManager
|
||||
}
|
||||
catch (MalformedURLException e)
|
||||
{
|
||||
throw new DSpaceSWORDException("Unable to construct service document urls, due to invalid dspace.url " +
|
||||
throw new DSpaceSWORDException("Unable to construct service document urls, due to invalid dspace.baseUrl " +
|
||||
e.getMessage(),e);
|
||||
}
|
||||
|
||||
@@ -346,9 +346,9 @@ public class SWORDUrlManager
|
||||
* If the configuration sword.deposit.url is set, this will be returned,
|
||||
* but if not, it will construct the url as follows:
|
||||
*
|
||||
* [dspace.url]/dspace-sword/deposit
|
||||
* [dspace.baseUrl]/sword/deposit
|
||||
*
|
||||
* where dspace.url is also in the configuration file.
|
||||
* where dspace.baseUrl is also in the configuration file.
|
||||
*
|
||||
* @return the base URL for sword deposit
|
||||
* @throws DSpaceSWORDException
|
||||
@@ -359,11 +359,11 @@ public class SWORDUrlManager
|
||||
String depositUrl = ConfigurationManager.getProperty("sword.deposit.url");
|
||||
if (depositUrl == null || "".equals(depositUrl))
|
||||
{
|
||||
String dspaceUrl = ConfigurationManager.getProperty("dspace.url");
|
||||
String dspaceUrl = ConfigurationManager.getProperty("dspace.baseUrl");
|
||||
if (dspaceUrl == null || "".equals(dspaceUrl))
|
||||
{
|
||||
throw new DSpaceSWORDException("Unable to construct deposit urls, due to missing/invalid config in " +
|
||||
"sword.deposit.url and/or dspace.url");
|
||||
"sword.deposit.url and/or dspace.baseUrl");
|
||||
}
|
||||
|
||||
try
|
||||
@@ -373,7 +373,7 @@ public class SWORDUrlManager
|
||||
}
|
||||
catch (MalformedURLException e)
|
||||
{
|
||||
throw new DSpaceSWORDException("Unable to construct deposit urls, due to invalid dspace.url " +
|
||||
throw new DSpaceSWORDException("Unable to construct deposit urls, due to invalid dspace.baseUrl " +
|
||||
e.getMessage(),e);
|
||||
}
|
||||
|
||||
@@ -475,11 +475,11 @@ public class SWORDUrlManager
|
||||
String mlUrl = ConfigurationManager.getProperty("sword.media-link.url");
|
||||
if (mlUrl == null || "".equals(mlUrl))
|
||||
{
|
||||
String dspaceUrl = ConfigurationManager.getProperty("dspace.url");
|
||||
String dspaceUrl = ConfigurationManager.getProperty("dspace.baseUrl");
|
||||
if (dspaceUrl == null || "".equals(dspaceUrl))
|
||||
{
|
||||
throw new DSpaceSWORDException("Unable to construct media-link urls, due to missing/invalid config in " +
|
||||
"sword.media-link.url and/or dspace.url");
|
||||
"sword.media-link.url and/or dspace.baseUrl");
|
||||
}
|
||||
|
||||
try
|
||||
@@ -489,7 +489,7 @@ public class SWORDUrlManager
|
||||
}
|
||||
catch (MalformedURLException e)
|
||||
{
|
||||
throw new DSpaceSWORDException("Unable to construct media-link urls, due to invalid dspace.url " +
|
||||
throw new DSpaceSWORDException("Unable to construct media-link urls, due to invalid dspace.baseUrl " +
|
||||
e.getMessage(),e);
|
||||
}
|
||||
|
||||
|
@@ -14,19 +14,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-sword</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update against
|
||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword/dspace-sword-webapp</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword/dspace-sword-webapp</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword/dspace-sword-webapp</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
@@ -113,7 +108,7 @@
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-sword-api</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
@@ -81,6 +81,11 @@
|
||||
<!--
|
||||
Listener to initialise DSpace configuration and clean up the application
|
||||
-->
|
||||
<listener>
|
||||
<listener-class>
|
||||
org.dspace.servicemanager.servlet.DSpaceKernelServletContextListener
|
||||
</listener-class>
|
||||
</listener>
|
||||
<listener>
|
||||
<listener-class>
|
||||
org.dspace.app.util.DSpaceContextListener
|
||||
|
@@ -16,37 +16,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>maven.dspace.org/snapshot</id>
|
||||
<name>DSpace Maven Snapshot Repository</name>
|
||||
<url>http://maven.dspace.org/snapshot</url>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
<checksumPolicy>fail</checksumPolicy>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>never</updatePolicy>
|
||||
<checksumPolicy>fail</checksumPolicy>
|
||||
</snapshots>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update against
|
||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword</url>
|
||||
</scm>
|
||||
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<modules>
|
||||
<module>dspace-sword-api</module>
|
||||
|
@@ -13,15 +13,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-xmlui</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-api</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-api
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-api/</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
|
@@ -169,11 +169,17 @@ public class Navigation extends AbstractDSpaceTransformer implements CacheablePr
|
||||
|
||||
public void setup(SourceResolver resolver, Map objectModel, String src, Parameters parameters) throws ProcessingException, SAXException, IOException {
|
||||
super.setup(resolver, objectModel, src, parameters);
|
||||
try{
|
||||
availableExports = null;
|
||||
if (context.getCurrentUser() != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
availableExports = ItemExport.getExportsAvailable(context.getCurrentUser());
|
||||
}
|
||||
catch (Exception e) {
|
||||
// nothing to do
|
||||
catch (Exception e)
|
||||
{
|
||||
throw new ProcessingException("Error getting available exports", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -258,7 +264,7 @@ public class Navigation extends AbstractDSpaceTransformer implements CacheablePr
|
||||
}
|
||||
}
|
||||
|
||||
if (isSystemAdmin && "community-list".equals(this.sitemapURI))
|
||||
if (isSystemAdmin && ("community-list".equals(this.sitemapURI) || "".equals(this.sitemapURI)))
|
||||
{
|
||||
// Only System administrators can create top-level communities
|
||||
context.setHead(T_context_head);
|
||||
@@ -341,7 +347,7 @@ public class Navigation extends AbstractDSpaceTransformer implements CacheablePr
|
||||
}
|
||||
}
|
||||
|
||||
if ("community-list".equals(this.sitemapURI) && AuthorizeManager.isAdmin(this.context))
|
||||
if (("community-list".equals(this.sitemapURI) || "".equals(this.sitemapURI)) && AuthorizeManager.isAdmin(this.context))
|
||||
{
|
||||
context.addItemXref(contextPath+"/admin/community?createNew", T_context_create_community);
|
||||
options++;
|
||||
|
@@ -66,18 +66,17 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
||||
pageMeta.addMetadata("title").addContent(T_title);
|
||||
|
||||
pageMeta.addTrailLink(contextPath + "/", T_dspace_home);
|
||||
pageMeta.addTrailLink(contextPath + "/admin/item",T_item_trail);
|
||||
pageMeta.addTrailLink(contextPath + "/admin/item", T_item_trail);
|
||||
pageMeta.addTrail().addContent(T_trail);
|
||||
}
|
||||
|
||||
public void addBody(Body body) throws SAXException, WingException,
|
||||
UIException, SQLException, IOException, AuthorizeException
|
||||
public void addBody(Body body) throws SAXException, WingException, UIException, SQLException, IOException, AuthorizeException
|
||||
{
|
||||
int itemID = parameters.getParameterAsInteger("itemID",-1);
|
||||
org.dspace.content.Item item = org.dspace.content.Item.find(context,itemID);
|
||||
int itemID = parameters.getParameterAsInteger("itemID", -1);
|
||||
org.dspace.content.Item item = org.dspace.content.Item.find(context, itemID);
|
||||
|
||||
// DIVISION: main div
|
||||
Division div = body.addInteractiveDivision("add-bitstream", contextPath+"/admin/item", Division.METHOD_MULTIPART, "primary administrative item");
|
||||
Division div = body.addInteractiveDivision("add-bitstream", contextPath + "/admin/item", Division.METHOD_MULTIPART, "primary administrative item");
|
||||
|
||||
// LIST: upload form
|
||||
List upload = div.addList("submit-upload-new", List.TYPE_FORM);
|
||||
@@ -97,15 +96,14 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
||||
String[] parts = bundleString.split(",");
|
||||
for (String part : parts)
|
||||
{
|
||||
if (addBundleOption(item,select,part.trim()))
|
||||
if (addBundleOption(item, select, part.trim()))
|
||||
{
|
||||
bundleCount++;
|
||||
}
|
||||
}
|
||||
select.setOptionSelected("ORIGINAL");
|
||||
|
||||
if (bundleCount == 0)
|
||||
{
|
||||
if (bundleCount == 0) {
|
||||
select.setDisabled();
|
||||
}
|
||||
|
||||
@@ -115,8 +113,7 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
||||
file.setHelp(T_file_help);
|
||||
file.setRequired();
|
||||
|
||||
if (bundleCount == 0)
|
||||
{
|
||||
if (bundleCount == 0) {
|
||||
file.setDisabled();
|
||||
}
|
||||
|
||||
@@ -124,13 +121,11 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
||||
description.setLabel(T_description_label);
|
||||
description.setHelp(T_description_help);
|
||||
|
||||
if (bundleCount == 0)
|
||||
{
|
||||
if (bundleCount == 0) {
|
||||
description.setDisabled();
|
||||
}
|
||||
|
||||
if (bundleCount == 0)
|
||||
{
|
||||
if (bundleCount == 0) {
|
||||
upload.addItem().addContent(T_no_bundles);
|
||||
}
|
||||
|
||||
@@ -138,8 +133,7 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
||||
Item actions = upload.addItem();
|
||||
Button button = actions.addButton("submit_upload");
|
||||
button.setValue(T_submit_upload);
|
||||
if (bundleCount == 0)
|
||||
{
|
||||
if (bundleCount == 0) {
|
||||
button.setDisabled();
|
||||
}
|
||||
|
||||
@@ -148,39 +142,44 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
||||
div.addHidden("administrative-continue").setValue(knot.getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the bundleName to the list of bundles available to submit to.
|
||||
* Performs an authorization check that the current user has privileges
|
||||
* @param item DSO item being evaluated
|
||||
* @param select DRI wing select box that is being added to
|
||||
* @param bundleName
|
||||
* @return boolean indicating whether user can upload to bundle
|
||||
* @throws SQLException
|
||||
* @throws WingException
|
||||
*/
|
||||
public boolean addBundleOption(org.dspace.content.Item item, Select select, String bundleName) throws SQLException, WingException
|
||||
{
|
||||
|
||||
// For some crazzy reason multiple bundles can share the same name
|
||||
Bundle[] bundles = item.getBundles(bundleName);
|
||||
if (bundles == null || bundles.length == 0)
|
||||
{
|
||||
// If the bundle does not exist then you have to be supper admin to be able
|
||||
// to upload to this bundle because at upload time the bundle will be created but
|
||||
// there is no way anyone but super admin could have access to add to the bundle.
|
||||
if ( ! AuthorizeManager.isAdmin(context))
|
||||
// No bundle, so the user has to be authorized to add to item.
|
||||
if(!AuthorizeManager.authorizeActionBoolean(context, item, Constants.ADD))
|
||||
{
|
||||
return false; // you can't upload to this bundle.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
} else
|
||||
{
|
||||
// At least one bundle exists, does the user have privleges to upload to it?
|
||||
Bundle bundle = bundles[0];
|
||||
if ( ! AuthorizeManager.authorizeActionBoolean(context, bundle, Constants.ADD))
|
||||
if (!AuthorizeManager.authorizeActionBoolean(context, bundle, Constants.ADD))
|
||||
{
|
||||
return false; // you can't upload to this bundle.
|
||||
}
|
||||
|
||||
// You also need the write privlege on the bundle.
|
||||
if ( ! AuthorizeManager.authorizeActionBoolean(context, bundle, Constants.WRITE))
|
||||
if (!AuthorizeManager.authorizeActionBoolean(context, bundle, Constants.WRITE))
|
||||
{
|
||||
return false; // you can't upload
|
||||
}
|
||||
}
|
||||
|
||||
// It's okay to upload.
|
||||
select.addOption(bundleName, message("xmlui.administrative.item.AddBitstreamForm.bundle."+bundleName));
|
||||
select.addOption(bundleName, message("xmlui.administrative.item.AddBitstreamForm.bundle." + bundleName));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@@ -222,6 +222,7 @@ public class CollectionRecentSubmissions extends AbstractDSpaceTransformer imple
|
||||
{
|
||||
// Clear out our item's cache.
|
||||
this.recentSubmissionItems = null;
|
||||
this.validity = null;
|
||||
super.recycle();
|
||||
}
|
||||
}
|
||||
|
@@ -204,6 +204,7 @@ public class CommunityRecentSubmissions extends AbstractDSpaceTransformer implem
|
||||
@Override
|
||||
public void recycle() {
|
||||
this.recentSubmittedItems = null;
|
||||
this.validity = null;
|
||||
super.recycle();
|
||||
}
|
||||
}
|
||||
|
@@ -10,14 +10,13 @@ package org.dspace.app.xmlui.aspect.artifactbrowser;
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
import java.sql.SQLException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
import org.apache.cocoon.ResourceNotFoundException;
|
||||
import org.apache.cocoon.caching.CacheableProcessingComponent;
|
||||
import org.apache.cocoon.environment.ObjectModelHelper;
|
||||
import org.apache.cocoon.environment.Request;
|
||||
import org.apache.cocoon.environment.http.HttpEnvironment;
|
||||
import org.apache.cocoon.util.HashUtil;
|
||||
import org.apache.excalibur.source.SourceValidity;
|
||||
import org.apache.log4j.Logger;
|
||||
@@ -58,6 +57,8 @@ import org.dspace.core.Context;
|
||||
import org.dspace.core.LogManager;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* Implements all the browse functionality (browse by title, subject, authors,
|
||||
* etc.) The types of browse available are configurable by the implementor. See
|
||||
@@ -244,7 +245,16 @@ public class ConfigurableBrowse extends AbstractDSpaceTransformer implements
|
||||
public void addBody(Body body) throws SAXException, WingException, UIException, SQLException,
|
||||
IOException, AuthorizeException
|
||||
{
|
||||
BrowseParams params = getUserParams();
|
||||
BrowseParams params = null;
|
||||
|
||||
try {
|
||||
params = getUserParams();
|
||||
} catch (ResourceNotFoundException e) {
|
||||
HttpServletResponse response = (HttpServletResponse)objectModel
|
||||
.get(HttpEnvironment.HTTP_RESPONSE_OBJECT);
|
||||
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||
}
|
||||
|
||||
BrowseInfo info = getBrowseInfo();
|
||||
|
||||
String type = info.getBrowseIndex().getName();
|
||||
@@ -605,8 +615,8 @@ public class ConfigurableBrowse extends AbstractDSpaceTransformer implements
|
||||
* @throws SQLException
|
||||
* @throws UIException
|
||||
*/
|
||||
private BrowseParams getUserParams() throws SQLException, UIException
|
||||
{
|
||||
private BrowseParams getUserParams() throws SQLException, UIException, ResourceNotFoundException, IllegalArgumentException {
|
||||
|
||||
if (this.userParams != null)
|
||||
{
|
||||
return this.userParams;
|
||||
@@ -639,10 +649,20 @@ public class ConfigurableBrowse extends AbstractDSpaceTransformer implements
|
||||
String type = request.getParameter(BrowseParams.TYPE);
|
||||
int sortBy = RequestUtils.getIntParameter(request, BrowseParams.SORT_BY);
|
||||
|
||||
if(!request.getParameters().containsKey("type"))
|
||||
{
|
||||
// default to first browse index.
|
||||
String defaultBrowseIndex = ConfigurationManager.getProperty("webui.browse.index.1");
|
||||
if(defaultBrowseIndex != null)
|
||||
{
|
||||
type = defaultBrowseIndex.split(":")[0];
|
||||
}
|
||||
}
|
||||
|
||||
BrowseIndex bi = BrowseIndex.getBrowseIndex(type);
|
||||
if (bi == null)
|
||||
{
|
||||
throw new BrowseException("There is no browse index of the type: " + type);
|
||||
throw new ResourceNotFoundException("Browse index " + type + " not found");
|
||||
}
|
||||
|
||||
// If we don't have a sort column
|
||||
@@ -769,7 +789,12 @@ public class ConfigurableBrowse extends AbstractDSpaceTransformer implements
|
||||
|
||||
// Get the parameters we will use for the browse
|
||||
// (this includes a browse scope)
|
||||
BrowseParams params = getUserParams();
|
||||
BrowseParams params = null;
|
||||
try {
|
||||
params = getUserParams();
|
||||
} catch (ResourceNotFoundException e) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
|
@@ -215,7 +215,8 @@ public class Submissions extends AbstractDSpaceTransformer
|
||||
for (WorkflowItem owned : ownedItems)
|
||||
{
|
||||
int workflowItemID = owned.getID();
|
||||
String url = contextPath+"/handle/"+owned.getCollection().getHandle()+"/workflow?workflowID="+workflowItemID;
|
||||
String collectionUrl = contextPath + "/handle/" + owned.getCollection().getHandle();
|
||||
String ownedWorkflowItemUrl = contextPath + "/handle/" + owned.getCollection().getHandle() + "/workflow?workflowID=" + workflowItemID;
|
||||
DCValue[] titles = owned.getItem().getDC("title", null, Item.ANY);
|
||||
String collectionName = owned.getCollection().getMetadata("name");
|
||||
EPerson submitter = owned.getSubmitter();
|
||||
@@ -231,7 +232,7 @@ public class Submissions extends AbstractDSpaceTransformer
|
||||
remove.addOption(workflowItemID);
|
||||
|
||||
// The task description
|
||||
row.addCell().addXref(url,state);
|
||||
row.addCell().addXref(ownedWorkflowItemUrl, state);
|
||||
|
||||
// The item description
|
||||
if (titles != null && titles.length > 0)
|
||||
@@ -241,15 +242,15 @@ public class Submissions extends AbstractDSpaceTransformer
|
||||
{
|
||||
displayTitle = displayTitle.substring(0, 50) + " ...";
|
||||
}
|
||||
row.addCell().addXref(url,displayTitle);
|
||||
row.addCell().addXref(ownedWorkflowItemUrl, displayTitle);
|
||||
}
|
||||
else
|
||||
{
|
||||
row.addCell().addXref(url, T_untitled);
|
||||
row.addCell().addXref(ownedWorkflowItemUrl, T_untitled);
|
||||
}
|
||||
|
||||
// Submitted too
|
||||
row.addCell().addXref(url,collectionName);
|
||||
row.addCell().addXref(collectionUrl, collectionName);
|
||||
|
||||
// Submitted by
|
||||
Cell cell = row.addCell();
|
||||
@@ -287,7 +288,8 @@ public class Submissions extends AbstractDSpaceTransformer
|
||||
for (WorkflowItem pooled : pooledItems)
|
||||
{
|
||||
int workflowItemID = pooled.getID();
|
||||
String url = contextPath+"/handle/"+pooled.getCollection().getHandle()+"/workflow?workflowID="+workflowItemID;
|
||||
String collectionUrl = contextPath + "/handle/" + pooled.getCollection().getHandle();
|
||||
String pooledItemUrl = contextPath + "/handle/" + pooled.getCollection().getHandle() + "/workflow?workflowID=" + workflowItemID;
|
||||
DCValue[] titles = pooled.getItem().getDC("title", null, Item.ANY);
|
||||
String collectionName = pooled.getCollection().getMetadata("name");
|
||||
EPerson submitter = pooled.getSubmitter();
|
||||
@@ -304,7 +306,7 @@ public class Submissions extends AbstractDSpaceTransformer
|
||||
remove.addOption(workflowItemID);
|
||||
|
||||
// The task description
|
||||
row.addCell().addXref(url,state);
|
||||
row.addCell().addXref(pooledItemUrl, state);
|
||||
|
||||
// The item description
|
||||
if (titles != null && titles.length > 0)
|
||||
@@ -315,15 +317,15 @@ public class Submissions extends AbstractDSpaceTransformer
|
||||
displayTitle = displayTitle.substring(0, 50) + " ...";
|
||||
}
|
||||
|
||||
row.addCell().addXref(url,displayTitle);
|
||||
row.addCell().addXref(pooledItemUrl, displayTitle);
|
||||
}
|
||||
else
|
||||
{
|
||||
row.addCell().addXref(url, T_untitled);
|
||||
row.addCell().addXref(pooledItemUrl, T_untitled);
|
||||
}
|
||||
|
||||
// Submitted too
|
||||
row.addCell().addXref(url,collectionName);
|
||||
row.addCell().addXref(collectionUrl, collectionName);
|
||||
|
||||
// Submitted by
|
||||
Cell cell = row.addCell();
|
||||
@@ -418,7 +420,8 @@ public class Submissions extends AbstractDSpaceTransformer
|
||||
EPerson submitterEPerson = workspaceItem.getItem().getSubmitter();
|
||||
|
||||
int workspaceItemID = workspaceItem.getID();
|
||||
String url = contextPath+"/submit?workspaceID="+workspaceItemID;
|
||||
String collectionUrl = contextPath + "/handle/" + workspaceItem.getCollection().getHandle();
|
||||
String workspaceItemUrl = contextPath + "/submit?workspaceID=" + workspaceItemID;
|
||||
String submitterName = submitterEPerson.getFullName();
|
||||
String submitterEmail = submitterEPerson.getEmail();
|
||||
String collectionName = workspaceItem.getCollection().getMetadata("name");
|
||||
@@ -435,13 +438,13 @@ public class Submissions extends AbstractDSpaceTransformer
|
||||
{
|
||||
displayTitle = displayTitle.substring(0, 50) + " ...";
|
||||
}
|
||||
row.addCell().addXref(url,displayTitle);
|
||||
row.addCell().addXref(workspaceItemUrl, displayTitle);
|
||||
}
|
||||
else
|
||||
{
|
||||
row.addCell().addXref(url, T_untitled);
|
||||
row.addCell().addXref(workspaceItemUrl, T_untitled);
|
||||
}
|
||||
row.addCell().addXref(url,collectionName);
|
||||
row.addCell().addXref(collectionUrl, collectionName);
|
||||
Cell cell = row.addCell();
|
||||
cell.addContent(T_email);
|
||||
cell.addXref("mailto:"+submitterEmail,submitterName);
|
||||
|
@@ -13,15 +13,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-xmlui</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-webapp</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-webapp
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-webapp</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
@@ -48,6 +47,27 @@
|
||||
<phase>prepare-package</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.mycila.maven-license-plugin</groupId>
|
||||
<artifactId>maven-license-plugin</artifactId>
|
||||
<configuration>
|
||||
<!--Exclude license check for XMLUI files which don't need it-->
|
||||
<excludes>
|
||||
<exclude>**/META-INF/**</exclude>
|
||||
<exclude>**/robots.txt</exclude>
|
||||
<exclude>**/readme*</exclude>
|
||||
<exclude>**/*.LICENSE</exclude>
|
||||
<exclude>**/*.LICENCE</exclude>
|
||||
<exclude>**/cocoon/**</exclude>
|
||||
<exclude>**/scriptaculous/**</exclude>
|
||||
<exclude>**/jquery*</exclude>
|
||||
<exclude>**/modernizr*</exclude>
|
||||
<exclude>**/DD_belated*</exclude>
|
||||
<exclude>**/*.xmap</exclude>
|
||||
<exclude>**/exception2html.xslt</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
@@ -113,9 +133,7 @@
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
<properties>
|
||||
<netbeans.hint.deploy.server>Tomcat60</netbeans.hint.deploy.server>
|
||||
</properties>
|
||||
|
||||
</project>
|
||||
|
||||
|
||||
|
@@ -7,6 +7,10 @@
|
||||
*/
|
||||
/** Additions for Authority Control elements **/
|
||||
/* for scriptaculous autocomplete */
|
||||
div.autocomplete {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div.autocomplete, ul.ui-menu {
|
||||
position:absolute;
|
||||
width:250px;
|
||||
@@ -36,10 +40,6 @@ ul.ui-menu li a {
|
||||
ul.ui-menu li a.ui-state-hover {
|
||||
background-color: #ffb;
|
||||
}
|
||||
#aspect_submission_StepTransformer_field_dc_title_container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* this magic gets the 16x16 icon to show up.. setting height/width didn't
|
||||
do it, but adding padding actually made it show up. */
|
||||
img.ds-authority-confidence
|
||||
|
@@ -61,10 +61,10 @@
|
||||
<xsl:text>]</xsl:text>
|
||||
</xsl:if>
|
||||
</div>
|
||||
<xsl:if test="$data/dim:field[@element = 'description' and @qualifier='abstract']">
|
||||
<xsl:variable name="abstract" select="$data/dim:field[@element = 'description' and @qualifier='abstract']/node()"/>
|
||||
<xsl:if test="$abstract and string-length($abstract[1]) > 0">
|
||||
<div class="artifact-info">
|
||||
<span class="short-description">
|
||||
<xsl:variable name="abstract" select="$data/dim:field[@element = 'description' and @qualifier='abstract']/node()"/>
|
||||
<xsl:value-of select="util:shortenString($abstract, 220, 10)"/>
|
||||
</span>
|
||||
</div>
|
||||
|
@@ -62,10 +62,10 @@
|
||||
<xsl:text>]</xsl:text>
|
||||
</xsl:if>
|
||||
</div>
|
||||
<xsl:if test="$data/dim:field[@element = 'description' and @qualifier='abstract']">
|
||||
<xsl:variable name="abstract" select="$data/dim:field[@element = 'description' and @qualifier='abstract']/node()"/>
|
||||
<xsl:if test="$abstract and string-length($abstract[1]) > 0">
|
||||
<div class="artifact-info">
|
||||
<span class="short-description">
|
||||
<xsl:variable name="abstract" select="$data/dim:field[@element = 'description' and @qualifier='abstract']/node()"/>
|
||||
<xsl:value-of select="util:shortenString($abstract, 220, 10)"/>
|
||||
</span>
|
||||
</div>
|
||||
|
@@ -308,7 +308,6 @@
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="dim:field" mode="itemDetailView-DIM">
|
||||
<xsl:if test="not(@element='description' and @qualifier='provenance')">
|
||||
<tr>
|
||||
<xsl:attribute name="class">
|
||||
<xsl:text>ds-table-row </xsl:text>
|
||||
@@ -334,7 +333,6 @@
|
||||
</td>
|
||||
<td><xsl:value-of select="./@language"/></td>
|
||||
</tr>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<!--dont render the item-view-toggle automatically in the summary view, only when it get's called-->
|
||||
|
@@ -214,7 +214,8 @@
|
||||
<xsl:param name="confidenceName" select="''"/>
|
||||
<xsl:param name="isClosed" select="'false'"/>
|
||||
<script type="text/javascript">
|
||||
<xsl:text>window.onload = function() {</xsl:text>
|
||||
<xsl:text>runAfterJSImports.add(function() {</xsl:text>
|
||||
<xsl:text>$(document).ready(function() {</xsl:text>
|
||||
<xsl:text>var gigo = DSpaceSetupAutocomplete('</xsl:text>
|
||||
<xsl:value-of select="$formID"/>
|
||||
<xsl:text>', { metadataField: '</xsl:text>
|
||||
@@ -238,7 +239,8 @@
|
||||
<xsl:text>, contextPath: '</xsl:text>
|
||||
<xsl:value-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='contextPath'][not(@qualifier)]"/>
|
||||
<xsl:text>'});</xsl:text>
|
||||
<xsl:text>};</xsl:text>
|
||||
<xsl:text>});</xsl:text>
|
||||
<xsl:text>});</xsl:text>
|
||||
</script>
|
||||
</xsl:template>
|
||||
|
||||
|
@@ -240,6 +240,30 @@
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
function FnArray()
|
||||
{
|
||||
this.funcs = new Array;
|
||||
}
|
||||
|
||||
FnArray.prototype.add = function(f)
|
||||
{
|
||||
if( typeof f!= "function" )
|
||||
{
|
||||
f = new Function(f);
|
||||
}
|
||||
this.funcs[this.funcs.length] = f;
|
||||
};
|
||||
|
||||
FnArray.prototype.execute = function()
|
||||
{
|
||||
for( var i=0; i <xsl:text disable-output-escaping="yes"><</xsl:text> this.funcs.length; i++ )
|
||||
{
|
||||
this.funcs[i]();
|
||||
}
|
||||
};
|
||||
|
||||
var runAfterJSImports = new FnArray();
|
||||
</script>
|
||||
|
||||
<!-- Modernizr enables HTML5 elements & feature detects -->
|
||||
@@ -496,7 +520,10 @@
|
||||
-->
|
||||
|
||||
<xsl:template name="addJavascript">
|
||||
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"> </script>
|
||||
<script type="text/javascript">
|
||||
<xsl:text disable-output-escaping="yes">var JsHost = (("https:" == document.location.protocol) ? "https://" : "http://");
|
||||
document.write(unescape("%3Cscript src='" + JsHost + "ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'%3E%3C/script%3E"));</xsl:text>
|
||||
</script>
|
||||
|
||||
<xsl:variable name="localJQuerySrc">
|
||||
<xsl:value-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='contextPath'][not(@qualifier)]"/>
|
||||
@@ -570,6 +597,10 @@
|
||||
<xsl:text disable-output-escaping="yes" ><![endif]--></xsl:text>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
runAfterJSImports.execute();
|
||||
</script>
|
||||
|
||||
<!-- Add a google analytics script if the key is present -->
|
||||
<xsl:if test="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='google'][@qualifier='analytics']">
|
||||
<script type="text/javascript"><xsl:text>
|
||||
|
@@ -125,8 +125,9 @@
|
||||
<map:parameter name="stylesheet.screen#1" value="lib/css/reset.css"/>
|
||||
<map:parameter name="stylesheet.screen#2" value="lib/css/base.css"/>
|
||||
<map:parameter name="stylesheet.screen#3" value="lib/css/helper.css"/>
|
||||
<map:parameter name="stylesheet.screen#4" value="lib/css/style.css"/>
|
||||
<map:parameter name="stylesheet.screen#5" value="lib/css/authority-control.css"/>
|
||||
<map:parameter name="stylesheet.screen#4" value="lib/css/jquery-ui-1.8.5.custom.css"/>
|
||||
<map:parameter name="stylesheet.screen#5" value="lib/css/style.css"/>
|
||||
<map:parameter name="stylesheet.screen#6" value="lib/css/authority-control.css"/>
|
||||
</map:transform>
|
||||
|
||||
<map:transform type="IncludePageMeta">
|
||||
|
@@ -369,7 +369,6 @@
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="dim:field" mode="itemDetailView-DIM">
|
||||
<xsl:if test="not(@element='description' and @qualifier='provenance')">
|
||||
<tr>
|
||||
<xsl:attribute name="class">
|
||||
<xsl:text>ds-table-row </xsl:text>
|
||||
@@ -395,7 +394,6 @@
|
||||
</td>
|
||||
<td><xsl:value-of select="./@language"/></td>
|
||||
</tr>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Generate the bitstream information from the file section -->
|
||||
|
@@ -744,7 +744,6 @@
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="dim:field" mode="itemDetailView-DIM">
|
||||
<xsl:if test="not(@element='description' and @qualifier='provenance')">
|
||||
<tr>
|
||||
<xsl:attribute name="class">
|
||||
<xsl:text>ds-table-row </xsl:text>
|
||||
@@ -770,7 +769,6 @@
|
||||
</td>
|
||||
<td><xsl:value-of select="./@language"/></td>
|
||||
</tr>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
|
@@ -10,15 +10,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-xmlui</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-wing</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-wing
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-wing</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/../..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
|
@@ -12,19 +12,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.7.1-SNAPSHOT</version>
|
||||
<version>1.7.3</version>
|
||||
<relativePath>..</relativePath>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update against
|
||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- This is the path to the root [dspace-src] directory. -->
|
||||
<root.basedir>${basedir}/..</root.basedir>
|
||||
</properties>
|
||||
|
||||
<modules>
|
||||
<module>dspace-xmlui-wing</module>
|
||||
|
1467
dspace/CHANGES
1467
dspace/CHANGES
File diff suppressed because it is too large
Load Diff
@@ -11,6 +11,12 @@ KNOWN BUGS
|
||||
A definitive and up to date list of bugs affecting each version of
|
||||
DSpace software can be found in our JIRA issue tracker.
|
||||
|
||||
- Known Issues in DSpace 1.7.2:
|
||||
https://jira.duraspace.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+=+DS+AND+affectedVersion+=+"1.7.2"+AND+fixVersion+!=+"1.7.2"
|
||||
|
||||
- Known Issues in DSpace 1.7.1:
|
||||
https://jira.duraspace.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+=+DS+AND+affectedVersion+=+"1.7.1"+AND+fixVersion+!=+"1.7.1"
|
||||
|
||||
- Known Issues in DSpace 1.7.0:
|
||||
https://jira.duraspace.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+=+DS+AND+affectedVersion+=+"1.7.0"+AND+fixVersion+!=+"1.7.0"
|
||||
|
||||
|
@@ -1,7 +1,7 @@
|
||||
DSpace source code license:
|
||||
|
||||
|
||||
Copyright (c) 2002-2010, DuraSpace. All rights reserved.
|
||||
Copyright (c) 2002-2011, DuraSpace. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
|
@@ -11,5 +11,5 @@ access and preservation of digital works. The Foundation was able to transfer
|
||||
the legal copyright from Hewlett-Packard Company (HP) and Massachusetts
|
||||
Institute of Technology (MIT) to the DSpace Foundation in October 2007. Many
|
||||
of the files in the source code may contain a copyright statement stating HP
|
||||
and MIT posses the copyright, in these instances please note that the copy
|
||||
right has transfered to the DSpace foundation, and subsequently to Duraspace.
|
||||
and MIT possess the copyright, in these instances please note that the copy
|
||||
right has transferred to the DSpace foundation, and subsequently to DuraSpace.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user