mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-10 11:33:11 +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:
|
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
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions are
|
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
|
the legal copyright from Hewlett-Packard Company (HP) and Massachusetts
|
||||||
Institute of Technology (MIT) to the DSpace Foundation in October 2007. Many
|
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
|
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
|
and MIT possess the copyright, in these instances please note that the copy
|
||||||
right has transfered to the DSpace foundation, and subsequently to Duraspace.
|
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/docs/pdf/DSpace-Manual.pdf
|
||||||
|
|
||||||
DSpace version information can be found in this release package under
|
DSpace version information can be found in this release package under
|
||||||
- dspace/CHANGES
|
|
||||||
or
|
|
||||||
- dspace/docs/html/History.html
|
- 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
|
Documentation for the most recent stable release(s) may be downloaded
|
||||||
or viewed online at
|
or viewed online at
|
||||||
@@ -31,12 +31,12 @@ mailing list.
|
|||||||
|
|
||||||
Detailed Issue Tracking for DSpace is done on our JIRA Issue Tracker
|
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:
|
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,
|
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:
|
DSpace source code licensing information available online at:
|
||||||
- http://www.dspace.org/license/
|
- 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
|
A Parent POM that Maven inherits DSpace Defaults
|
||||||
POM atrributes from.
|
POM attributes from.
|
||||||
-->
|
-->
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-parent</artifactId>
|
<artifactId>dspace-parent</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<!--
|
<properties>
|
||||||
The Subversion repository location is used by Continuum to update against
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
<root.basedir>${basedir}/..</root.basedir>
|
||||||
into the snapshot repository below.
|
</properties>
|
||||||
-->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Runtime and Compile Time dependencies for DSpace.
|
Runtime and Compile Time dependencies for DSpace.
|
||||||
@@ -60,29 +55,6 @@
|
|||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</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>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@@ -277,6 +249,16 @@
|
|||||||
<artifactId>contiperf</artifactId>
|
<artifactId>contiperf</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</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>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
@@ -494,7 +494,7 @@ public class Item extends DSpaceObject
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
while(dcf.hasMoreTokens())
|
while(dcf.hasMoreTokens())
|
||||||
{
|
{
|
||||||
tokens[i] = dcf.nextToken().toLowerCase().trim();
|
tokens[i] = dcf.nextToken().trim();
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
String schema = tokens[0];
|
String schema = tokens[0];
|
||||||
@@ -908,7 +908,8 @@ public class Item extends DSpaceObject
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!schema.equals(Item.ANY))
|
|
||||||
|
if (!schema.equals(Item.ANY))
|
||||||
{
|
{
|
||||||
if (dcv.schema != null && !dcv.schema.equals(schema))
|
if (dcv.schema != null && !dcv.schema.equals(schema))
|
||||||
{
|
{
|
||||||
|
@@ -354,6 +354,7 @@ public class MetadataSchema
|
|||||||
"metadata_schema_id=" + getSchemaID()));
|
"metadata_schema_id=" + getSchemaID()));
|
||||||
|
|
||||||
DatabaseManager.delete(context, row);
|
DatabaseManager.delete(context, row);
|
||||||
|
decache();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -362,6 +362,34 @@ public class WorkspaceItem implements InProgressSubmission
|
|||||||
return wsItems.toArray(new WorkspaceItem[wsItems.size()]);
|
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
|
* 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,
|
* defaultSelected index in the Choices instance to the choice, if any,
|
||||||
* that matches the value.
|
* that matches the value.
|
||||||
*
|
*
|
||||||
|
* @param field being matched for
|
||||||
* @param text user's value to match
|
* @param text user's value to match
|
||||||
* @param collection database ID of Collection for context (owner of Item)
|
* @param collection database ID of Collection for context (owner of Item)
|
||||||
* @param start choice at which to start, 0 is first.
|
* @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
|
* @param locale explicit localization key if available, or null
|
||||||
* @return a Choices object (never 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
|
* 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
|
* This call is typically used in non-interactive metadata ingest
|
||||||
* where there is no interactive agent to choose from among options.
|
* where there is no interactive agent to choose from among options.
|
||||||
*
|
*
|
||||||
|
* @param field being matched for
|
||||||
* @param text user's value to match
|
* @param text user's value to match
|
||||||
* @param collection database ID of Collection for context (owner of Item)
|
* @param collection database ID of Collection for context (owner of Item)
|
||||||
* @param locale explicit localization key if available, or null
|
* @param locale explicit localization key if available, or null
|
||||||
* @return a Choices object (never null) with 1 or 0 values.
|
* @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)
|
* 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
|
* This may get called many times while populating a Web page so it should
|
||||||
* be implemented as efficiently as possible.
|
* be implemented as efficiently as possible.
|
||||||
*
|
*
|
||||||
|
* @param field being matched for
|
||||||
* @param key authority key known to this authority.
|
* @param key authority key known to this authority.
|
||||||
* @param locale explicit localization key if available, or null
|
* @param locale explicit localization key if available, or null
|
||||||
* @return descriptive label - should always return something, never 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
|
* Wrapper that calls getMatches method of the plugin corresponding to
|
||||||
* the metadata field defined by schema,element,qualifier.
|
* 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 schema schema of metadata field
|
||||||
* @param element element of metadata field
|
* @param element element of metadata field
|
||||||
* @param qualifier qualifier 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
|
* Wrapper calls getMatches method of the plugin corresponding to
|
||||||
* the metadata field defined by single field key.
|
* 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 fieldKey single string identifying metadata field
|
||||||
* @param query user's value to match
|
* @param query user's value to match
|
||||||
* @param collection database ID of Collection for context (owner of Item)
|
* @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
|
"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
|
* Wrapper that calls getBestMatch method of the plugin corresponding to
|
||||||
* the metadata field defined by single field key.
|
* 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 fieldKey single string identifying metadata field
|
||||||
* @param query user's value to match
|
* @param query user's value to match
|
||||||
* @param collection database ID of Collection for context (owner of Item)
|
* @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
|
"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 + "\".");
|
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();
|
init();
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ public class DCInputAuthority extends SelfNamedPlugin implements ChoiceAuthority
|
|||||||
return new Choices(v, 0, v.length, Choices.CF_AMBIGUOUS, false, dflt);
|
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();
|
init();
|
||||||
for (int i = 0; i < values.length; ++i)
|
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);
|
return new Choices(Choices.CF_NOTFOUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLabel(String key, String locale)
|
public String getLabel(String field, String key, String locale)
|
||||||
{
|
{
|
||||||
init();
|
init();
|
||||||
return labels[Integer.parseInt(key)];
|
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();
|
init();
|
||||||
log.debug("Getting matches for '" + text + "'");
|
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);
|
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();
|
init();
|
||||||
log.debug("Getting best match for '" + text + "'");
|
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();
|
init();
|
||||||
String xpathExpression = String.format(idTemplate, key);
|
String xpathExpression = String.format(idTemplate, key);
|
||||||
|
@@ -83,16 +83,16 @@ public class LCNameAuthority implements ChoiceAuthority
|
|||||||
}
|
}
|
||||||
|
|
||||||
// punt! this is a poor implementation..
|
// 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
|
* Match a proposed value against name authority records
|
||||||
* Value is assumed to be in "Lastname, Firstname" format.
|
* 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);
|
Choices result = queryPerson(text, start, limit);
|
||||||
if (result == null)
|
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
|
// 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
|
// 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;
|
return key;
|
||||||
}
|
}
|
||||||
|
@@ -52,4 +52,8 @@ public class SHERPARoMEOJournalTitle extends SHERPARoMEOProtocol
|
|||||||
return result;
|
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
|
// 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 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
|
// XXX FIXME just punt, returning value, never got around to
|
||||||
// implementing a reverse query.
|
// implementing a reverse query.
|
||||||
public String getLabel(String key, String locale)
|
public String getLabel(String field, String key, String locale)
|
||||||
{
|
{
|
||||||
return key;
|
return key;
|
||||||
}
|
}
|
||||||
|
@@ -53,4 +53,9 @@ public class SHERPARoMEOPublisher extends SHERPARoMEOProtocol
|
|||||||
}
|
}
|
||||||
return result;
|
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"
|
"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;
|
int dflt = -1;
|
||||||
Choice v[] = new Choice[values.length];
|
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);
|
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)
|
for (int i = 0; i < values.length; ++i)
|
||||||
{
|
{
|
||||||
@@ -62,7 +62,7 @@ public class SampleAuthority implements ChoiceAuthority
|
|||||||
return new Choices(Choices.CF_NOTFOUND);
|
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)];
|
return labels[Integer.parseInt(key)];
|
||||||
}
|
}
|
||||||
|
@@ -29,6 +29,7 @@ import org.dspace.content.Community;
|
|||||||
import org.dspace.content.DSpaceObject;
|
import org.dspace.content.DSpaceObject;
|
||||||
import org.dspace.content.FormatIdentifier;
|
import org.dspace.content.FormatIdentifier;
|
||||||
import org.dspace.content.Item;
|
import org.dspace.content.Item;
|
||||||
|
import org.dspace.content.WorkspaceItem;
|
||||||
import org.dspace.content.crosswalk.CrosswalkException;
|
import org.dspace.content.crosswalk.CrosswalkException;
|
||||||
import org.dspace.content.crosswalk.MetadataValidationException;
|
import org.dspace.content.crosswalk.MetadataValidationException;
|
||||||
import org.dspace.core.ConfigurationManager;
|
import org.dspace.core.ConfigurationManager;
|
||||||
@@ -36,7 +37,6 @@ import org.dspace.core.Constants;
|
|||||||
import org.dspace.core.Context;
|
import org.dspace.core.Context;
|
||||||
import org.dspace.core.LogManager;
|
import org.dspace.core.LogManager;
|
||||||
import org.dspace.handle.HandleManager;
|
import org.dspace.handle.HandleManager;
|
||||||
import org.dspace.workflow.WorkflowItem;
|
|
||||||
import org.jdom.Element;
|
import org.jdom.Element;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -459,24 +459,34 @@ public abstract class AbstractMETSIngester extends AbstractPackageIngester
|
|||||||
manifest.crosswalkObjectOtherAdminMD(context, params, dso, callback);
|
manifest.crosswalkObjectOtherAdminMD(context, params, dso, callback);
|
||||||
|
|
||||||
// -- Step 4 --
|
// -- 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
|
// Add all content files as bitstreams on new DSpace Object
|
||||||
if (type == Constants.ITEM)
|
if (type == Constants.ITEM)
|
||||||
{
|
{
|
||||||
Item item = (Item) dso;
|
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
|
// Get collection this item is being submitted to
|
||||||
Collection collection = item.getOwningCollection();
|
Collection collection = item.getOwningCollection();
|
||||||
if (collection == null)
|
if (collection == null)
|
||||||
{
|
{
|
||||||
// If an item doesn't have an owning-collection, that means it
|
// Get the collection this workspace item belongs to
|
||||||
// has entered a workflow (and is not fully in the archive yet)
|
if (wsi != null)
|
||||||
WorkflowItem wfi = WorkflowItem.findByItem(context, item);
|
|
||||||
|
|
||||||
// Get the collection this workflow item belongs to
|
|
||||||
if (wfi != 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.
|
// have subclass manage license since it may be extra package file.
|
||||||
addLicense(context, item, license, collection, params);
|
addLicense(context, item, license, collection, params);
|
||||||
|
|
||||||
// XXX FIXME
|
// Finally, if item is still in the workspace, then we actually need
|
||||||
// should set lastModifiedTime e.g. when ingesting AIP.
|
// to install it into the archive & assign its handle.
|
||||||
// maybe only do it in the finishObject() callback for AIP.
|
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
|
} // end if ITEM
|
||||||
else if (type == Constants.COLLECTION || type == Constants.COMMUNITY)
|
else if (type == Constants.COLLECTION || type == Constants.COMMUNITY)
|
||||||
@@ -519,17 +534,6 @@ public abstract class AbstractMETSIngester extends AbstractPackageIngester
|
|||||||
+ String.valueOf(type));
|
+ 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 --
|
// -- Step 6 --
|
||||||
// Finish things up!
|
// Finish things up!
|
||||||
|
|
||||||
@@ -635,7 +639,6 @@ public abstract class AbstractMETSIngester extends AbstractPackageIngester
|
|||||||
if (dso.getType() == Constants.ITEM)
|
if (dso.getType() == Constants.ITEM)
|
||||||
{
|
{
|
||||||
Item item = (Item) dso;
|
Item item = (Item) dso;
|
||||||
// @TODO: maybe add an option to apply template Item on ingest??
|
|
||||||
|
|
||||||
// save manifest as a bitstream in Item if desired
|
// save manifest as a bitstream in Item if desired
|
||||||
if (preserveManifest())
|
if (preserveManifest())
|
||||||
|
@@ -345,7 +345,7 @@ public class PackageUtils
|
|||||||
* generic like ".xml", to accidentally get set to this format.
|
* generic like ".xml", to accidentally get set to this format.
|
||||||
* @param context - the context.
|
* @param context - the context.
|
||||||
* @param shortDesc - short descriptive name, used to locate existing format.
|
* @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 desc - long description
|
||||||
* @param internal value for the 'internal' flag of a new format if created.
|
* @param internal value for the 'internal' flag of a new format if created.
|
||||||
* @return BitstreamFormat object that was found or created. Never null.
|
* @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)
|
//(Note: Handle is not set until item is finished)
|
||||||
WorkspaceItem wsi = WorkspaceItem.create(context, (Collection)parent, params.useCollectionTemplate());
|
WorkspaceItem wsi = WorkspaceItem.create(context, (Collection)parent, params.useCollectionTemplate());
|
||||||
|
|
||||||
// Finish creating item with specified handle
|
// Please note that we are returning an Item which is *NOT* yet in the Archive,
|
||||||
// (this will either install item immediately or start a workflow, based on params)
|
// and doesn't yet have a handle assigned.
|
||||||
dso = finishCreateItem(context, wsi, handle, params);
|
// This Item will remain "incomplete" until 'PackageUtils.finishCreateItem()' is called
|
||||||
|
return wsi.getItem();
|
||||||
return dso;
|
|
||||||
|
|
||||||
case Constants.SITE:
|
case Constants.SITE:
|
||||||
return Site.find(context, Site.SITE_ID);
|
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)
|
// default: skip workflow, but otherwise normal submission (i.e. package treated like a SIP)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Intall item immediately with the specified handle
|
// Install item immediately with the specified handle
|
||||||
InstallItem.installItem(context, wsi, handle);
|
InstallItem.installItem(context, wsi, handle);
|
||||||
|
|
||||||
// return newly installed item
|
// return newly installed item
|
||||||
@@ -802,7 +801,7 @@ public class PackageUtils
|
|||||||
* Also see the translateGroupNameForImport() method which does the opposite
|
* Also see the translateGroupNameForImport() method which does the opposite
|
||||||
* of this method.
|
* of this method.
|
||||||
*
|
*
|
||||||
* @param relatedDso DSpaceObject associated with group
|
* @param context current DSpace Context
|
||||||
* @param groupName Group's name
|
* @param groupName Group's name
|
||||||
* @return the group name, with any internal IDs translated to Handles
|
* @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
|
* Also see the translateGroupNameForExport() method which does the opposite
|
||||||
* of this method.
|
* of this method.
|
||||||
*
|
*
|
||||||
* @param relatedDso DSpaceObject associated with group
|
* @param context current DSpace Context
|
||||||
* @param groupName Group's name
|
* @param groupName Group's name
|
||||||
* @return the group name, with any Handles translated to internal IDs
|
* @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.util.GregorianCalendar;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
|
import com.coverity.security.Escape;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -280,21 +280,8 @@ public final class Utils
|
|||||||
*/
|
*/
|
||||||
public static String addEntities(String value)
|
public static String addEntities(String value)
|
||||||
{
|
{
|
||||||
if (value==null || value.length() == 0)
|
|
||||||
{
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
value = value.replaceAll("&", "&");
|
return Escape.html(value);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -351,7 +351,7 @@ public class EPerson extends DSpaceObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get all the epeople that match the query
|
// Get all the epeople that match the query
|
||||||
TableRowIterator rows = DatabaseManager.queryTable(context, "eperson",
|
TableRowIterator rows = DatabaseManager.query(context,
|
||||||
dbquery, paramArr);
|
dbquery, paramArr);
|
||||||
try
|
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
|
// 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.
|
// 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);
|
"SELECT * FROM eperson ORDER BY "+s);
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -955,7 +955,7 @@ public class EPerson extends DSpaceObject
|
|||||||
List<String> tableList = new ArrayList<String>();
|
List<String> tableList = new ArrayList<String>();
|
||||||
|
|
||||||
// check for eperson in item table
|
// check for eperson in item table
|
||||||
TableRowIterator tri = DatabaseManager.queryTable(myContext, "item",
|
TableRowIterator tri = DatabaseManager.query(myContext,
|
||||||
"SELECT * from item where submitter_id= ? ",
|
"SELECT * from item where submitter_id= ? ",
|
||||||
getID());
|
getID());
|
||||||
|
|
||||||
@@ -976,7 +976,7 @@ public class EPerson extends DSpaceObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
// check for eperson in workflowitem table
|
// check for eperson in workflowitem table
|
||||||
tri = DatabaseManager.queryTable(myContext, "workflowitem",
|
tri = DatabaseManager.query(myContext,
|
||||||
"SELECT * from workflowitem where owner= ? ",
|
"SELECT * from workflowitem where owner= ? ",
|
||||||
getID());
|
getID());
|
||||||
|
|
||||||
@@ -997,7 +997,7 @@ public class EPerson extends DSpaceObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
// check for eperson in tasklistitem table
|
// check for eperson in tasklistitem table
|
||||||
tri = DatabaseManager.queryTable(myContext, "tasklistitem",
|
tri = DatabaseManager.query(myContext,
|
||||||
"SELECT * from tasklistitem where eperson_id= ? ",
|
"SELECT * from tasklistitem where eperson_id= ? ",
|
||||||
getID());
|
getID());
|
||||||
|
|
||||||
|
@@ -1102,6 +1102,7 @@ public class DatabaseManager
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Types.INTEGER:
|
case Types.INTEGER:
|
||||||
|
case Types.NUMERIC:
|
||||||
if (isOracle)
|
if (isOracle)
|
||||||
{
|
{
|
||||||
long longValue = results.getLong(i);
|
long longValue = results.getLong(i);
|
||||||
@@ -1120,7 +1121,6 @@ public class DatabaseManager
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Types.NUMERIC:
|
|
||||||
case Types.DECIMAL:
|
case Types.DECIMAL:
|
||||||
case Types.BIGINT:
|
case Types.BIGINT:
|
||||||
row.setColumn(name, results.getLong(i));
|
row.setColumn(name, results.getLong(i));
|
||||||
|
@@ -5,6 +5,7 @@
|
|||||||
#
|
#
|
||||||
# http://www.dspace.org/license/
|
# http://www.dspace.org/license/
|
||||||
#
|
#
|
||||||
|
|
||||||
browse.page-title = Browsing DSpace
|
browse.page-title = Browsing DSpace
|
||||||
browse.et-al = et al
|
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.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.text2 = If you think you should have authorization, please feel free to contact the DSpace administrators:
|
||||||
jsp.error.authorize.title = Authorization Required
|
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.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.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.
|
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);
|
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.
|
* 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
|
# which DSpace will construct the deposit location urls for
|
||||||
# collections.
|
# 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
|
# In the event that you are not deploying DSpace as the ROOT
|
||||||
# application in the servlet container, this will generate
|
# 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
|
# URL from which DSpace will construct the service document
|
||||||
# location urls for the site, and for individual collections
|
# 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
|
# In the event that you are not deploying DSpace as the ROOT
|
||||||
# application in the servlet container, this will generate
|
# 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
|
# which DSpace will use to construct the media link urls
|
||||||
# for items which are deposited via sword
|
# 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
|
# In the event that you are not deploying DSpace as the ROOT
|
||||||
# application in the servlet container, this will generate
|
# application in the servlet container, this will generate
|
||||||
|
@@ -584,4 +584,18 @@
|
|||||||
<scope_note>Nature or genre of content.</scope_note>
|
<scope_note>Nature or genre of content.</scope_note>
|
||||||
</dc-type>
|
</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>
|
</dspace-dc-types>
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-discovery-provider</artifactId>
|
<artifactId>dspace-discovery-provider</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
<name>DSpace Discovery :: Discovery Provider Library</name>
|
<name>DSpace Discovery :: Discovery Provider Library</name>
|
||||||
<description>
|
<description>
|
||||||
|
|
||||||
@@ -17,9 +17,15 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>discovery-modules</artifactId>
|
<artifactId>discovery-modules</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -109,16 +115,4 @@
|
|||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</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>
|
</project>
|
@@ -44,6 +44,8 @@ public class SearchUtils {
|
|||||||
|
|
||||||
private static List<String> dateIndexableFields = new ArrayList<String>();
|
private static List<String> dateIndexableFields = new ArrayList<String>();
|
||||||
|
|
||||||
|
public static final String FILTER_SEPARATOR = "|||";
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
|
||||||
log.debug("loading configuration");
|
log.debug("loading configuration");
|
||||||
@@ -190,6 +192,20 @@ public class SearchUtils {
|
|||||||
return dateIndexableFields;
|
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 {
|
public static class SolrFacetConfig {
|
||||||
|
|
||||||
private String facetField;
|
private String facetField;
|
||||||
|
@@ -8,6 +8,7 @@
|
|||||||
package org.dspace.discovery;
|
package org.dspace.discovery;
|
||||||
|
|
||||||
import org.apache.commons.collections.ExtendedProperties;
|
import org.apache.commons.collections.ExtendedProperties;
|
||||||
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.apache.commons.lang.time.DateFormatUtils;
|
import org.apache.commons.lang.time.DateFormatUtils;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.apache.solr.client.solrj.SolrQuery;
|
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)){
|
if(SearchUtils.getAllFacets().contains(field) || SearchUtils.getAllFacets().contains(unqualifiedField + "." + Item.ANY)){
|
||||||
//Add a special filter
|
//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)){
|
if(SearchUtils.getSortFields().contains(field) && !sortFieldsAdded.contains(field)){
|
||||||
@@ -773,9 +777,7 @@ public class SolrServiceImpl implements SearchService, IndexingService {
|
|||||||
readers.add(is);
|
readers.add(is);
|
||||||
|
|
||||||
// Add each InputStream to the Indexed Document
|
// Add each InputStream to the Indexed Document
|
||||||
// (Acts like an Append)
|
doc.addField("fulltext", IOUtils.toString(is));
|
||||||
// doc.addField("default", is);
|
|
||||||
//doc.add(new Field("default", is));
|
|
||||||
|
|
||||||
log.debug(" Added BitStream: "
|
log.debug(" Added BitStream: "
|
||||||
+ myBitstreams[j].getStoreNumber() + " "
|
+ myBitstreams[j].getStoreNumber() + " "
|
||||||
|
@@ -5,15 +5,21 @@
|
|||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-discovery-xmlui-api</artifactId>
|
<artifactId>dspace-discovery-xmlui-api</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
<name>DSpace Discovery :: Discovery XMLUI API</name>
|
<name>DSpace Discovery :: Discovery XMLUI API</name>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>discovery-modules</artifactId>
|
<artifactId>discovery-modules</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -47,6 +53,7 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.cocoon</groupId>
|
<groupId>org.apache.cocoon</groupId>
|
||||||
<artifactId>cocoon-maven-plugin</artifactId>
|
<artifactId>cocoon-maven-plugin</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>prepare</id>
|
<id>prepare</id>
|
||||||
@@ -114,17 +121,4 @@
|
|||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</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>
|
</project>
|
||||||
|
@@ -37,7 +37,6 @@ import org.xml.sax.SAXException;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.net.URLEncoder;
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
@@ -386,7 +385,7 @@ public abstract class AbstractFiltersTransformer extends AbstractDSpaceTransform
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for (FacetField.Count count : facetVals) {
|
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()){
|
if(field.isDate()){
|
||||||
@@ -463,12 +462,15 @@ public abstract class AbstractFiltersTransformer extends AbstractDSpaceTransform
|
|||||||
if(keys != null){
|
if(keys != null){
|
||||||
while (keys.hasMoreElements()){
|
while (keys.hasMoreElements()){
|
||||||
String key = (String) keys.nextElement();
|
String key = (String) keys.nextElement();
|
||||||
if(key != null){
|
if(key != null && !"page".equals(key)){
|
||||||
paramsQuery += key + "=" + URLEncoder.encode(request.getParameter(key), "UTF-8");
|
String[] vals = request.getParameterValues(key);
|
||||||
|
for(String paramValue : vals){
|
||||||
|
paramsQuery += key + "=" + paramValue;
|
||||||
paramsQuery += "&";
|
paramsQuery += "&";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
filterValsList.addItem().addXref(
|
filterValsList.addItem().addXref(
|
||||||
contextPath +
|
contextPath +
|
||||||
@@ -476,7 +478,7 @@ public abstract class AbstractFiltersTransformer extends AbstractDSpaceTransform
|
|||||||
"/discover?" +
|
"/discover?" +
|
||||||
paramsQuery +
|
paramsQuery +
|
||||||
"fq=" +
|
"fq=" +
|
||||||
URLEncoder.encode(filterQuery, "UTF-8"),
|
filterQuery,
|
||||||
displayedValue + " (" + value.getCount() + ")"
|
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 );
|
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 = prepareDefaultFilters(getView());
|
||||||
this.queryArgs.setRows(1);
|
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","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.mindf","1");
|
||||||
this.queryArgs.add("mlt.mintf","1");
|
this.queryArgs.add("mlt.mintf","1");
|
||||||
this.queryArgs.setQuery("handle:" + dso.getHandle());
|
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
|
//No use in selecting the same filter twice
|
||||||
if(filterQueries.contains(filterQuery)){
|
if(filterQueries.contains(filterQuery)){
|
||||||
cell.addContent(displayedValue + " (" + value.getCount() + ")");
|
cell.addContent(SearchUtils.getFilterQueryDisplay(displayedValue) + " (" + value.getCount() + ")");
|
||||||
} else {
|
} else {
|
||||||
//Add the basics
|
//Add the basics
|
||||||
Map<String, String> urlParams = new HashMap<String, String>();
|
Map<String, String> urlParams = new HashMap<String, String>();
|
||||||
@@ -567,8 +567,8 @@ public class SearchFacetFilter extends AbstractDSpaceTransformer implements Cach
|
|||||||
//Add already existing filter queries
|
//Add already existing filter queries
|
||||||
url = addFilterQueriesToUrl(url);
|
url = addFilterQueriesToUrl(url);
|
||||||
//Last add the current filter query
|
//Last add the current filter query
|
||||||
url += "&fq=" + URLEncoder.encode(filterQuery, "UTF-8");
|
url += "&fq=" + filterQuery;
|
||||||
cell.addXref(url, displayedValue + " (" + value.getCount() + ")"
|
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");
|
// String searchUrl = SearchUtils.getConfig().getString("solr.search.server");
|
||||||
// if(searchUrl != null && !searchUrl.endsWith("/"))
|
// if(searchUrl != null && !searchUrl.endsWith("/"))
|
||||||
// searchUrl += "/";
|
// 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("solr-search-url").setValue(searchUrl);
|
||||||
search.addHidden("contextpath").setValue(contextPath);
|
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")){
|
if(field.equals("location.comm") || field.equals("location.coll")){
|
||||||
//We have a community/collection, resolve it to a dspaceObject
|
//We have a community/collection, resolve it to a dspaceObject
|
||||||
value = SolrServiceImpl.locationToName(context, field, value);
|
value = SolrServiceImpl.locationToName(context, field, value);
|
||||||
|
} else
|
||||||
|
if(field.endsWith("_filter")){
|
||||||
|
value = SearchUtils.getFilterQueryDisplay(value);
|
||||||
}
|
}
|
||||||
//Check for a range query
|
//Check for a range query
|
||||||
Pattern pattern = Pattern.compile("\\[(.*? TO .*?)\\]");
|
Pattern pattern = Pattern.compile("\\[(.*? TO .*?)\\]");
|
||||||
|
@@ -21,15 +21,21 @@
|
|||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-discovery-xmlui-webapp</artifactId>
|
<artifactId>dspace-discovery-xmlui-webapp</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
<name>DSpace Discovery :: Discovery XMLUI Webapp</name>
|
<name>DSpace Discovery :: Discovery XMLUI Webapp</name>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>discovery-modules</artifactId>
|
<artifactId>discovery-modules</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -46,7 +52,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-discovery-xmlui-api</artifactId>
|
<artifactId>dspace-discovery-xmlui-api</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- external -->
|
<!-- external -->
|
||||||
@@ -65,6 +71,7 @@
|
|||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.cocoon</groupId>
|
<groupId>org.apache.cocoon</groupId>
|
||||||
<artifactId>cocoon-maven-plugin</artifactId>
|
<artifactId>cocoon-maven-plugin</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>prepare</id>
|
<id>prepare</id>
|
||||||
@@ -121,6 +128,21 @@
|
|||||||
</systemProperty>
|
</systemProperty>
|
||||||
</systemProperties>
|
</systemProperties>
|
||||||
</configuration>
|
</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>
|
||||||
<!--
|
<!--
|
||||||
<plugin>
|
<plugin>
|
||||||
@@ -139,17 +161,4 @@
|
|||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</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>
|
</project>
|
||||||
|
@@ -5,15 +5,21 @@
|
|||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>discovery-modules</artifactId>
|
<artifactId>discovery-modules</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
<name>DSpace Discovery :: Modules</name>
|
<name>DSpace Discovery :: Modules</name>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<artifactId>dspace-parent</artifactId>
|
<artifactId>dspace-parent</artifactId>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
|
<root.basedir>${basedir}/..</root.basedir>
|
||||||
|
</properties>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>dspace-discovery-provider</module>
|
<module>dspace-discovery-provider</module>
|
||||||
<module>dspace-discovery-xmlui-api</module>
|
<module>dspace-discovery-xmlui-api</module>
|
||||||
@@ -46,19 +52,6 @@
|
|||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</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>
|
<issueManagement>
|
||||||
<system>JIRA</system>
|
<system>JIRA</system>
|
||||||
<url>http://jira.dspace.org/jira/browse/DISCOVERY</url>
|
<url>http://jira.dspace.org/jira/browse/DISCOVERY</url>
|
||||||
|
@@ -14,19 +14,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-jspui</artifactId>
|
<artifactId>dspace-jspui</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<!--
|
<properties>
|
||||||
The Subversion repository location is used by Continuum to update against
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
into the snapshot repository below.
|
</properties>
|
||||||
-->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@@ -98,7 +98,7 @@ public class BrowserServlet extends AbstractBrowserServlet
|
|||||||
throws ServletException, IOException, SQLException,
|
throws ServletException, IOException, SQLException,
|
||||||
AuthorizeException
|
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.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import org.dspace.app.util.SubmissionInfo;
|
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.
|
// in order to be able to retrieve request parameters, etc.
|
||||||
if ((contentType != null)
|
if ((contentType != null)
|
||||||
&& (contentType.indexOf("multipart/form-data") != -1))
|
&& (contentType.indexOf("multipart/form-data") != -1))
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
request = wrapMultipartRequest(request);
|
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)
|
//also, upload any files and save their contents to Request (for later processing by UploadStep)
|
||||||
uploadFiles(context, request);
|
uploadFiles(context, request);
|
||||||
@@ -1350,7 +1358,7 @@ public class SubmissionController extends DSpaceServlet
|
|||||||
* if there are no more pages in this step
|
* if there are no more pages in this step
|
||||||
*/
|
*/
|
||||||
private HttpServletRequest wrapMultipartRequest(HttpServletRequest request)
|
private HttpServletRequest wrapMultipartRequest(HttpServletRequest request)
|
||||||
throws ServletException
|
throws ServletException, FileSizeLimitExceededException
|
||||||
{
|
{
|
||||||
HttpServletRequest wrappedRequest;
|
HttpServletRequest wrappedRequest;
|
||||||
|
|
||||||
@@ -1370,6 +1378,10 @@ public class SubmissionController extends DSpaceServlet
|
|||||||
return request;
|
return request;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (FileSizeLimitExceededException e)
|
||||||
|
{
|
||||||
|
throw new FileSizeLimitExceededException(e.getMessage(),e.getActualSize(),e.getPermittedSize());
|
||||||
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
throw new ServletException(e);
|
throw new ServletException(e);
|
||||||
|
@@ -18,6 +18,7 @@ import java.util.List;
|
|||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
@@ -457,16 +458,13 @@ public class CollectionWizardServlet extends DSpaceServlet
|
|||||||
HttpServletResponse response) throws SQLException,
|
HttpServletResponse response) throws SQLException,
|
||||||
ServletException, IOException, AuthorizeException
|
ServletException, IOException, AuthorizeException
|
||||||
{
|
{
|
||||||
|
try {
|
||||||
// Wrap multipart request to get the submission info
|
// Wrap multipart request to get the submission info
|
||||||
FileUploadRequest wrapper = new FileUploadRequest(request);
|
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)
|
if (collection == null)
|
||||||
{
|
{
|
||||||
log.warn(LogManager.getHeader(context, "integrity_error", UIUtil
|
log.warn(LogManager.getHeader(context, "integrity_error", UIUtil.getRequestLogInfo(wrapper)));
|
||||||
.getRequestLogInfo(wrapper)));
|
|
||||||
JSPManager.showIntegrityError(request, response);
|
JSPManager.showIntegrityError(request, response);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
@@ -474,17 +472,11 @@ public class CollectionWizardServlet extends DSpaceServlet
|
|||||||
|
|
||||||
// Get metadata
|
// Get metadata
|
||||||
collection.setMetadata("name", wrapper.getParameter("name"));
|
collection.setMetadata("name", wrapper.getParameter("name"));
|
||||||
collection.setMetadata("short_description", wrapper
|
collection.setMetadata("short_description", wrapper.getParameter("short_description"));
|
||||||
.getParameter("short_description"));
|
collection.setMetadata("introductory_text", wrapper.getParameter("introductory_text"));
|
||||||
collection.setMetadata("introductory_text", wrapper
|
collection.setMetadata("copyright_text", wrapper.getParameter("copyright_text"));
|
||||||
.getParameter("introductory_text"));
|
collection.setMetadata("side_bar_text", wrapper.getParameter("side_bar_text"));
|
||||||
collection.setMetadata("copyright_text", wrapper
|
collection.setMetadata("provenance_description", wrapper.getParameter("provenance_description"));
|
||||||
.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
|
// Need to be more careful about license -- make sure it's null if
|
||||||
// nothing was entered
|
// nothing was entered
|
||||||
String license = wrapper.getParameter("license");
|
String license = wrapper.getParameter("license");
|
||||||
@@ -522,8 +514,7 @@ public class CollectionWizardServlet extends DSpaceServlet
|
|||||||
// Identify the format
|
// Identify the format
|
||||||
BitstreamFormat bf = FormatIdentifier.guessFormat(context, logoBS);
|
BitstreamFormat bf = FormatIdentifier.guessFormat(context, logoBS);
|
||||||
logoBS.setFormat(bf);
|
logoBS.setFormat(bf);
|
||||||
AuthorizeManager.addPolicy(context, logoBS, Constants.WRITE, context
|
AuthorizeManager.addPolicy(context, logoBS, Constants.WRITE, context.getCurrentUser());
|
||||||
.getCurrentUser());
|
|
||||||
logoBS.update();
|
logoBS.update();
|
||||||
|
|
||||||
// Remove temp file
|
// Remove temp file
|
||||||
@@ -539,6 +530,11 @@ public class CollectionWizardServlet extends DSpaceServlet
|
|||||||
showNextPage(context, request, response, collection, BASIC_INFO);
|
showNextPage(context, request, response, collection, BASIC_INFO);
|
||||||
|
|
||||||
context.complete();
|
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.ServletException;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.dspace.app.util.AuthorizeUtil;
|
import org.dspace.app.util.AuthorizeUtil;
|
||||||
@@ -893,14 +894,11 @@ public class EditCommunitiesServlet extends DSpaceServlet
|
|||||||
HttpServletResponse response) throws ServletException, IOException,
|
HttpServletResponse response) throws ServletException, IOException,
|
||||||
SQLException, AuthorizeException
|
SQLException, AuthorizeException
|
||||||
{
|
{
|
||||||
|
try {
|
||||||
// Wrap multipart request to get the submission info
|
// Wrap multipart request to get the submission info
|
||||||
FileUploadRequest wrapper = new FileUploadRequest(request);
|
FileUploadRequest wrapper = new FileUploadRequest(request);
|
||||||
|
Community community = Community.find(context, UIUtil.getIntParameter(wrapper, "community_id"));
|
||||||
Community community = Community.find(context, UIUtil.getIntParameter(
|
Collection collection = Collection.find(context, UIUtil.getIntParameter(wrapper, "collection_id"));
|
||||||
wrapper, "community_id"));
|
|
||||||
Collection collection = Collection.find(context, UIUtil
|
|
||||||
.getIntParameter(wrapper, "collection_id"));
|
|
||||||
|
|
||||||
File temp = wrapper.getFile("file");
|
File temp = wrapper.getFile("file");
|
||||||
|
|
||||||
// Read the temp file as logo
|
// Read the temp file as logo
|
||||||
@@ -936,8 +934,7 @@ public class EditCommunitiesServlet extends DSpaceServlet
|
|||||||
// Identify the format
|
// Identify the format
|
||||||
BitstreamFormat bf = FormatIdentifier.guessFormat(context, logoBS);
|
BitstreamFormat bf = FormatIdentifier.guessFormat(context, logoBS);
|
||||||
logoBS.setFormat(bf);
|
logoBS.setFormat(bf);
|
||||||
AuthorizeManager.addPolicy(context, logoBS, Constants.WRITE, context
|
AuthorizeManager.addPolicy(context, logoBS, Constants.WRITE, context.getCurrentUser());
|
||||||
.getCurrentUser());
|
|
||||||
logoBS.update();
|
logoBS.update();
|
||||||
|
|
||||||
String jsp;
|
String jsp;
|
||||||
@@ -980,5 +977,10 @@ public class EditCommunitiesServlet extends DSpaceServlet
|
|||||||
|
|
||||||
// Update DB
|
// Update DB
|
||||||
context.complete();
|
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.ServletException;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.dspace.app.util.AuthorizeUtil;
|
import org.dspace.app.util.AuthorizeUtil;
|
||||||
@@ -766,13 +767,11 @@ public class EditItemServlet extends DSpaceServlet
|
|||||||
throws ServletException, IOException, SQLException,
|
throws ServletException, IOException, SQLException,
|
||||||
AuthorizeException
|
AuthorizeException
|
||||||
{
|
{
|
||||||
|
try {
|
||||||
// Wrap multipart request to get the submission info
|
// Wrap multipart request to get the submission info
|
||||||
FileUploadRequest wrapper = new FileUploadRequest(request);
|
FileUploadRequest wrapper = new FileUploadRequest(request);
|
||||||
Bitstream b = null;
|
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");
|
File temp = wrapper.getFile("file");
|
||||||
|
|
||||||
// Read the temp file as logo
|
// Read the temp file as logo
|
||||||
@@ -838,5 +837,10 @@ public class EditItemServlet extends DSpaceServlet
|
|||||||
|
|
||||||
// Update DB
|
// Update DB
|
||||||
context.complete();
|
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");
|
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 javax.servlet.http.HttpServletRequestWrapper;
|
||||||
|
|
||||||
import org.apache.commons.fileupload.FileItem;
|
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.servlet.ServletFileUpload;
|
||||||
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
|
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
|
||||||
import org.dspace.core.ConfigurationManager;
|
import org.dspace.core.ConfigurationManager;
|
||||||
@@ -47,7 +48,7 @@ public class FileUploadRequest extends HttpServletRequestWrapper
|
|||||||
* @param req
|
* @param req
|
||||||
* the original request
|
* the original request
|
||||||
*/
|
*/
|
||||||
public FileUploadRequest(HttpServletRequest req) throws IOException
|
public FileUploadRequest(HttpServletRequest req) throws IOException, FileSizeLimitExceededException
|
||||||
{
|
{
|
||||||
super(req);
|
super(req);
|
||||||
|
|
||||||
@@ -90,6 +91,16 @@ public class FileUploadRequest extends HttpServletRequestWrapper
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
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);
|
throw new IOException(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -142,4 +142,26 @@ public class JSPManager
|
|||||||
|
|
||||||
showJSP(request, response, "/error/invalid-id.jsp");
|
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>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-jspui</artifactId>
|
<artifactId>dspace-jspui</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<!--
|
<properties>
|
||||||
The Subversion repository location is used by Continuum to update against
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
into the snapshot repository below.
|
</properties>
|
||||||
-->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
@@ -53,6 +48,18 @@
|
|||||||
<phase>prepare-package</phase>
|
<phase>prepare-package</phase>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</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>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
@@ -27,6 +27,7 @@
|
|||||||
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
|
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
|
||||||
|
|
||||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||||
|
<%@ page import="org.dspace.core.Utils" %>
|
||||||
|
|
||||||
<%
|
<%
|
||||||
EPerson[] epeople =
|
EPerson[] epeople =
|
||||||
@@ -115,10 +116,10 @@
|
|||||||
<%= (e.getEmail() == null ? "" : e.getEmail()) %>
|
<%= (e.getEmail() == null ? "" : e.getEmail()) %>
|
||||||
</td>
|
</td>
|
||||||
<td headers="t3" class="<%= row %>RowOddCol">
|
<td headers="t3" class="<%= row %>RowOddCol">
|
||||||
<%= (e.getLastName() == null ? "" : e.getLastName()) %>
|
<%= (e.getLastName() == null ? "" : Utils.addEntities(e.getLastName())) %>
|
||||||
</td>
|
</td>
|
||||||
<td headers="t4" class="<%= row %>RowEvenCol">
|
<td headers="t4" class="<%= row %>RowEvenCol">
|
||||||
<%= (e.getFirstName() == null ? "" : e.getFirstName()) %>
|
<%= (e.getFirstName() == null ? "" : Utils.addEntities(e.getFirstName())) %>
|
||||||
</td>
|
</td>
|
||||||
<td headers="t5" class="<%= row %>RowOddCol" align="center">
|
<td headers="t5" class="<%= row %>RowOddCol" align="center">
|
||||||
<%= e.canLogIn() ? "yes" : "no" %>
|
<%= e.canLogIn() ? "yes" : "no" %>
|
||||||
@@ -130,7 +131,7 @@
|
|||||||
<%= e.getSelfRegistered() ? "yes" : "no" %>
|
<%= e.getSelfRegistered() ? "yes" : "no" %>
|
||||||
</td>
|
</td>
|
||||||
<td headers="t8" class="<%= row %>RowEvenCol">
|
<td headers="t8" class="<%= row %>RowEvenCol">
|
||||||
<%= (e.getMetadata("phone") == null ? "" : e.getMetadata("phone")) %>
|
<%= (e.getMetadata("phone") == null ? "" : Utils.addEntities(e.getMetadata("phone"))) %>
|
||||||
</td>
|
</td>
|
||||||
<td headers="t9" class="<%= row %>RowOddCol">
|
<td headers="t9" class="<%= row %>RowOddCol">
|
||||||
<input type="hidden" name="eperson_id" value="<%= e.getID() %>"/>
|
<input type="hidden" name="eperson_id" value="<%= e.getID() %>"/>
|
||||||
|
@@ -20,6 +20,7 @@
|
|||||||
prefix="fmt" %>
|
prefix="fmt" %>
|
||||||
|
|
||||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||||
|
<%@ page import="org.dspace.core.Utils" %>
|
||||||
|
|
||||||
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
|
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
|
||||||
|
|
||||||
@@ -32,9 +33,9 @@
|
|||||||
parenttitlekey="jsp.administer"
|
parenttitlekey="jsp.administer"
|
||||||
parentlink="/dspace-admin">
|
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">
|
<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:param><%= eperson.getEmail() %></fmt:param>
|
||||||
</fmt:message></h1>
|
</fmt:message></h1>
|
||||||
|
|
||||||
|
@@ -28,11 +28,12 @@
|
|||||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||||
<%@ page import="java.util.List" %>
|
<%@ page import="java.util.List" %>
|
||||||
<%@ page import="java.util.Iterator" %>
|
<%@ page import="java.util.Iterator" %>
|
||||||
|
<%@ page import="org.dspace.core.Utils" %>
|
||||||
|
|
||||||
<%
|
<%
|
||||||
EPerson eperson = (EPerson) request.getAttribute("eperson");
|
EPerson eperson = (EPerson) request.getAttribute("eperson");
|
||||||
List tableList = (List) request.getAttribute("tableList");
|
List tableList = (List) request.getAttribute("tableList");
|
||||||
String fullName = eperson.getFullName();
|
String fullName = Utils.addEntities(eperson.getFullName());
|
||||||
Iterator tableIt = tableList.iterator();
|
Iterator tableIt = tableList.iterator();
|
||||||
|
|
||||||
%>
|
%>
|
||||||
|
@@ -28,6 +28,7 @@
|
|||||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||||
<%@ page import="org.dspace.eperson.Group" %>
|
<%@ page import="org.dspace.eperson.Group" %>
|
||||||
<%@ page import="org.dspace.content.WorkspaceItem" %>
|
<%@ page import="org.dspace.content.WorkspaceItem" %>
|
||||||
|
<%@ page import="org.dspace.core.Utils" %>
|
||||||
|
|
||||||
<%
|
<%
|
||||||
// get item and group out of the request
|
// get item and group out of the request
|
||||||
@@ -75,7 +76,7 @@
|
|||||||
<br/><br/>
|
<br/><br/>
|
||||||
<strong><fmt:message key="jsp.dspace-admin.supervise-confirm-remove.authorheader"/></strong>:
|
<strong><fmt:message key="jsp.dspace-admin.supervise-confirm-remove.authorheader"/></strong>:
|
||||||
<br/>
|
<br/>
|
||||||
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
|
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
<strong><fmt:message key="jsp.dspace-admin.supervise-confirm-remove.supervisorgroupheader"/></strong>:
|
<strong><fmt:message key="jsp.dspace-admin.supervise-confirm-remove.supervisorgroupheader"/></strong>:
|
||||||
<br/>
|
<br/>
|
||||||
|
@@ -28,6 +28,7 @@
|
|||||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||||
<%@ page import="org.dspace.eperson.Group" %>
|
<%@ page import="org.dspace.eperson.Group" %>
|
||||||
<%@ page import="org.dspace.eperson.Supervisor" %>
|
<%@ page import="org.dspace.eperson.Supervisor" %>
|
||||||
|
<%@ page import="org.dspace.core.Utils" %>
|
||||||
|
|
||||||
<%
|
<%
|
||||||
// get objects from request
|
// get objects from request
|
||||||
@@ -109,7 +110,7 @@
|
|||||||
<%= workspaceItems[i].getID() %>
|
<%= workspaceItems[i].getID() %>
|
||||||
</td>
|
</td>
|
||||||
<td class="<%= row %>RowEvenCol">
|
<td class="<%= row %>RowEvenCol">
|
||||||
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
|
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
|
||||||
</td>
|
</td>
|
||||||
<td class="<%= row %>RowOddCol">
|
<td class="<%= row %>RowOddCol">
|
||||||
<%
|
<%
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
<%@ page import="org.dspace.content.SupervisedItem" %>
|
<%@ page import="org.dspace.content.SupervisedItem" %>
|
||||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||||
<%@ page import="org.dspace.eperson.Group" %>
|
<%@ page import="org.dspace.eperson.Group" %>
|
||||||
|
<%@ page import="org.dspace.core.Utils" %>
|
||||||
|
|
||||||
<%
|
<%
|
||||||
// get the object array out of the request
|
// get the object array out of the request
|
||||||
@@ -97,7 +98,7 @@
|
|||||||
<%= supervisors[j].getName() %>
|
<%= supervisors[j].getName() %>
|
||||||
</td>
|
</td>
|
||||||
<td class="<%= row %>RowOddCol">
|
<td class="<%= row %>RowOddCol">
|
||||||
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
|
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
|
||||||
</td>
|
</td>
|
||||||
<td class="<%= row %>RowEvenCol">
|
<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"
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"
|
||||||
prefix="fmt" %>
|
prefix="fmt" %>
|
||||||
|
|
||||||
|
|
||||||
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
|
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
|
||||||
|
|
||||||
<%@ page import="javax.servlet.jsp.jstl.fmt.LocaleSupport" %>
|
<%@ page import="javax.servlet.jsp.jstl.fmt.LocaleSupport" %>
|
||||||
@@ -78,7 +77,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td align="left">
|
<td align="left">
|
||||||
<h1>
|
<h1>
|
||||||
<fmt:message key="jsp.mydspace"/>: <%= user.getFullName() %>
|
<fmt:message key="jsp.mydspace"/>: <%= Utils.addEntities(user.getFullName()) %>
|
||||||
</h1>
|
</h1>
|
||||||
</td>
|
</td>
|
||||||
<td align="right" class="standard">
|
<td align="right" class="standard">
|
||||||
@@ -136,7 +135,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td headers="t2" class="<%= row %>RowEvenCol"><%= Utils.addEntities(title) %></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="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 %>RowOddCol"></td> -->
|
||||||
<td headers="t5" class="<%= row %>RowEvenCol">
|
<td headers="t5" class="<%= row %>RowEvenCol">
|
||||||
<form action="<%= request.getContextPath() %>/mydspace" method="post">
|
<form action="<%= request.getContextPath() %>/mydspace" method="post">
|
||||||
@@ -200,7 +199,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td headers="t7" class="<%= row %>RowEvenCol"><%= Utils.addEntities(title) %></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="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">
|
<td class="<%= row %>RowOddCol">
|
||||||
<form action="<%= request.getContextPath() %>/mydspace" method="post">
|
<form action="<%= request.getContextPath() %>/mydspace" method="post">
|
||||||
<input type="hidden" name="step" value="<%= MyDSpaceServlet.MAIN_PAGE %>" />
|
<input type="hidden" name="step" value="<%= MyDSpaceServlet.MAIN_PAGE %>" />
|
||||||
@@ -285,7 +284,7 @@
|
|||||||
</form>
|
</form>
|
||||||
</td>
|
</td>
|
||||||
<td headers="t10" class="<%= row %>RowEvenCol">
|
<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>
|
||||||
<td headers="t11" class="<%= row %>RowOddCol"><%= Utils.addEntities(title) %></td>
|
<td headers="t11" class="<%= row %>RowOddCol"><%= Utils.addEntities(title) %></td>
|
||||||
<td headers="t12" class="<%= row %>RowEvenCol"><%= workspaceItems[i].getCollection().getMetadata("name") %></td>
|
<td headers="t12" class="<%= row %>RowEvenCol"><%= workspaceItems[i].getCollection().getMetadata("name") %></td>
|
||||||
@@ -332,7 +331,7 @@
|
|||||||
</form>
|
</form>
|
||||||
</td>
|
</td>
|
||||||
<td class="<%= row %>RowEvenCol">
|
<td class="<%= row %>RowEvenCol">
|
||||||
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
|
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
|
||||||
</td>
|
</td>
|
||||||
<td class="<%= row %>RowOddCol"><%= Utils.addEntities(title) %></td>
|
<td class="<%= row %>RowOddCol"><%= Utils.addEntities(title) %></td>
|
||||||
<td class="<%= row %>RowEvenCol"><%= supervisedItems[i].getCollection().getMetadata("name") %></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.app.webui.servlet.RegisterServlet" %>
|
||||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||||
|
<%@ page import="org.dspace.core.Utils" %>
|
||||||
|
|
||||||
<%
|
<%
|
||||||
EPerson eperson = (EPerson) request.getAttribute("eperson");
|
EPerson eperson = (EPerson) request.getAttribute("eperson");
|
||||||
@@ -43,9 +44,9 @@
|
|||||||
<%-- <h1>Enter a New Password</h1> --%>
|
<%-- <h1>Enter a New Password</h1> --%>
|
||||||
<h1><fmt:message key="jsp.register.new-password.title"/></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">
|
<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>
|
</fmt:message></p>
|
||||||
|
|
||||||
<%
|
<%
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
<%@ page import="org.dspace.app.webui.servlet.RegisterServlet" %>
|
<%@ page import="org.dspace.app.webui.servlet.RegisterServlet" %>
|
||||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||||
|
<%@ page import="org.dspace.core.Utils" %>
|
||||||
|
|
||||||
<%
|
<%
|
||||||
EPerson eperson = (EPerson) request.getAttribute("eperson");
|
EPerson eperson = (EPerson) request.getAttribute("eperson");
|
||||||
@@ -35,9 +36,9 @@
|
|||||||
<%-- <h1>Registration Complete</h1> --%>
|
<%-- <h1>Registration Complete</h1> --%>
|
||||||
<h1><fmt:message key="jsp.register.registered.title"/></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">
|
<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>
|
</fmt:message></p>
|
||||||
|
|
||||||
<%-- <p>You're now registered to use the DSpace system. You can subscribe to
|
<%-- <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.ChoiceAuthorityManager" %>
|
||||||
<%@ page import="org.dspace.content.authority.Choices" %>
|
<%@ page import="org.dspace.content.authority.Choices" %>
|
||||||
<%@ page import="org.dspace.core.ConfigurationManager" %>
|
<%@ 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://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
|
||||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||||
@@ -325,9 +326,9 @@
|
|||||||
if (repeatable && !readonly && i < defaults.length)
|
if (repeatable && !readonly && i < defaults.length)
|
||||||
{
|
{
|
||||||
name.setLength(0);
|
name.setLength(0);
|
||||||
name.append(dpn.getLastName())
|
name.append(Utils.addEntities(dpn.getLastName()))
|
||||||
.append(' ')
|
.append(' ')
|
||||||
.append(dpn.getFirstNames());
|
.append(Utils.addEntities(dpn.getFirstNames()));
|
||||||
// put a remove button next to filled in values
|
// put a remove button next to filled in values
|
||||||
sb.append("<td><input type=\"submit\" name=\"submit_")
|
sb.append("<td><input type=\"submit\" name=\"submit_")
|
||||||
.append(fieldName)
|
.append(fieldName)
|
||||||
|
@@ -281,7 +281,7 @@ function clearEPeople()
|
|||||||
{
|
{
|
||||||
EPerson e = epeople[i];
|
EPerson e = epeople[i];
|
||||||
// Make sure no quotes in full name will mess up our Javascript
|
// 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>
|
<tr>
|
||||||
<td headers="t1" class="<%= row %>RowOddCol">
|
<td headers="t1" class="<%= row %>RowOddCol">
|
||||||
@@ -291,10 +291,10 @@ function clearEPeople()
|
|||||||
<td headers="t2" class="<%= row %>RowEvenCol"><%= e.getID() %></td>
|
<td headers="t2" class="<%= row %>RowEvenCol"><%= e.getID() %></td>
|
||||||
<td headers="t3" class="<%= row %>RowOddCol"><%= e.getEmail() %></td>
|
<td headers="t3" class="<%= row %>RowOddCol"><%= e.getEmail() %></td>
|
||||||
<td headers="t4" class="<%= row %>RowEvenCol">
|
<td headers="t4" class="<%= row %>RowEvenCol">
|
||||||
<%= (e.getLastName() == null ? "" : e.getLastName()) %>
|
<%= (e.getLastName() == null ? "" : Utils.addEntities(e.getLastName())) %>
|
||||||
</td>
|
</td>
|
||||||
<td headers="t5" class="<%= row %>RowOddCol">
|
<td headers="t5" class="<%= row %>RowOddCol">
|
||||||
<%= (e.getFirstName() == null ? "" : e.getFirstName()) %>
|
<%= (e.getFirstName() == null ? "" : Utils.addEntities(e.getFirstName())) %>
|
||||||
</td>
|
</td>
|
||||||
<td headers="t6" class="<%= row %>RowOddCol">
|
<td headers="t6" class="<%= row %>RowOddCol">
|
||||||
<%= (e.getLanguage() == null ? "" : e.getLanguage()) %>
|
<%= (e.getLanguage() == null ? "" : e.getLanguage()) %>
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
<%@ page import="org.dspace.content.WorkspaceItem" %>
|
<%@ page import="org.dspace.content.WorkspaceItem" %>
|
||||||
<%@ page import="org.dspace.eperson.EPerson" %>
|
<%@ page import="org.dspace.eperson.EPerson" %>
|
||||||
<%@ page import="javax.servlet.jsp.jstl.fmt.LocaleSupport" %>
|
<%@ page import="javax.servlet.jsp.jstl.fmt.LocaleSupport" %>
|
||||||
|
<%@ page import="org.dspace.core.Utils" %>
|
||||||
|
|
||||||
<%
|
<%
|
||||||
// get the workspace item from the request
|
// 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"/>
|
<p><fmt:message key="jsp.workspace.ws-main.submitmsg"/>
|
||||||
<%= workspaceItem.getCollection().getMetadata("name") %></p>
|
<%= workspaceItem.getCollection().getMetadata("name") %></p>
|
||||||
|
@@ -14,19 +14,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-parent</artifactId>
|
<artifactId>dspace-parent</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<!--
|
<properties>
|
||||||
The Subversion repository location is used by Continuum to update against
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
<root.basedir>${basedir}/..</root.basedir>
|
||||||
into the snapshot repository below.
|
</properties>
|
||||||
-->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>dspace-jspui-api</module>
|
<module>dspace-jspui-api</module>
|
||||||
|
@@ -12,14 +12,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-lni</artifactId>
|
<artifactId>dspace-lni</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<scm>
|
<properties>
|
||||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-client</connection>
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-client</developerConnection>
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-client</url>
|
</properties>
|
||||||
</scm>
|
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
<profile>
|
<profile>
|
||||||
@@ -82,6 +82,16 @@
|
|||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</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.
|
This is another approach to packaging the LNI client that may be approached.
|
||||||
|
@@ -10,14 +10,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-lni</artifactId>
|
<artifactId>dspace-lni</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<scm>
|
<properties>
|
||||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-core</connection>
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-core</developerConnection>
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-core</url>
|
</properties>
|
||||||
</scm>
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@@ -12,14 +12,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-lni</artifactId>
|
<artifactId>dspace-lni</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<scm>
|
<properties>
|
||||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-webapp</connection>
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-webapp</developerConnection>
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-webapp</url>
|
</properties>
|
||||||
</scm>
|
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
@@ -46,6 +46,16 @@
|
|||||||
<phase>prepare-package</phase>
|
<phase>prepare-package</phase>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</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>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
@@ -12,19 +12,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-parent</artifactId>
|
<artifactId>dspace-parent</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<!--
|
<properties>
|
||||||
The Subversion repository location is used by Continuum to update against
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
<root.basedir>${basedir}/..</root.basedir>
|
||||||
into the snapshot repository below.
|
</properties>
|
||||||
-->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>dspace-lni-core</module>
|
<module>dspace-lni-core</module>
|
||||||
|
@@ -14,19 +14,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-oai</artifactId>
|
<artifactId>dspace-oai</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<!--
|
<properties>
|
||||||
The Subversion repository location is used by Continuum to update against
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
into the snapshot repository below.
|
</properties>
|
||||||
-->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@@ -14,19 +14,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-oai</artifactId>
|
<artifactId>dspace-oai</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<!--
|
<properties>
|
||||||
The Subversion repository location is used by Continuum to update against
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
into the snapshot repository below.
|
</properties>
|
||||||
-->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
@@ -14,19 +14,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-parent</artifactId>
|
<artifactId>dspace-parent</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<!--
|
<properties>
|
||||||
The Subversion repository location is used by Continuum to update against
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
<root.basedir>${basedir}/..</root.basedir>
|
||||||
into the snapshot repository below.
|
</properties>
|
||||||
-->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>dspace-oai-api</module>
|
<module>dspace-oai-api</module>
|
||||||
|
@@ -3,26 +3,21 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>dspace-parent</artifactId>
|
<artifactId>dspace-parent</artifactId>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-stats</artifactId>
|
<artifactId>dspace-stats</artifactId>
|
||||||
<name>DSpace Solr Statistics Logging Client Library</name>
|
<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>
|
<description>Library of Shared UsageEvent and EventConsumer Tools for Logging to Solr.</description>
|
||||||
|
|
||||||
<!--
|
<properties>
|
||||||
The Subversion repository location is used by Continuum to update
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
against when changes have occured, this spawns a new build cycle and
|
<root.basedir>${basedir}/..</root.basedir>
|
||||||
releases snapshots into the snapshot repository below.
|
</properties>
|
||||||
-->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<developers>
|
<developers>
|
||||||
<developer>
|
<developer>
|
||||||
@@ -114,21 +109,22 @@
|
|||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<artifactId>maven-javadoc-plugin</artifactId>
|
<artifactId>maven-javadoc-plugin</artifactId>
|
||||||
|
<version>2.8</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
|
|
||||||
<minmemory>128m</minmemory>
|
<minmemory>128m</minmemory>
|
||||||
<maxmemory>1g</maxmemory>
|
<maxmemory>1g</maxmemory>
|
||||||
|
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<artifactId>maven-jxr-plugin</artifactId>
|
<artifactId>maven-jxr-plugin</artifactId>
|
||||||
|
<version>2.3</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<aggregate>true</aggregate>
|
<aggregate>true</aggregate>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<artifactId>maven-site-plugin</artifactId>
|
<artifactId>maven-site-plugin</artifactId>
|
||||||
|
<version>3.0</version>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</reporting>
|
</reporting>
|
||||||
|
@@ -16,21 +16,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-sword</artifactId>
|
<artifactId>dspace-sword</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
<properties>
|
||||||
<!--
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
The Subversion repository location is used by Continuum to update against
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
</properties>
|
||||||
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>
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
@@ -45,6 +38,17 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-api</artifactId>
|
<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>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@@ -101,9 +101,9 @@ public class CollectionLocation
|
|||||||
* If the configuration sword.deposit.url is set, this will be returned,
|
* If the configuration sword.deposit.url is set, this will be returned,
|
||||||
* but if not, it will construct the url as follows:
|
* 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
|
* @return the base URL for sword deposit
|
||||||
* @throws DSpaceSWORDException
|
* @throws DSpaceSWORDException
|
||||||
@@ -114,10 +114,10 @@ public class CollectionLocation
|
|||||||
String depositUrl = ConfigurationManager.getProperty("sword.deposit.url");
|
String depositUrl = ConfigurationManager.getProperty("sword.deposit.url");
|
||||||
if (depositUrl == null || "".equals(depositUrl))
|
if (depositUrl == null || "".equals(depositUrl))
|
||||||
{
|
{
|
||||||
String dspaceUrl = ConfigurationManager.getProperty("dspace.url");
|
String dspaceUrl = ConfigurationManager.getProperty("dspace.baseUrl");
|
||||||
if (dspaceUrl == null || "".equals(dspaceUrl))
|
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
|
try
|
||||||
@@ -127,7 +127,7 @@ public class CollectionLocation
|
|||||||
}
|
}
|
||||||
catch (MalformedURLException e)
|
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");
|
String depositUrl = ConfigurationManager.getProperty("sword.servicedocument.url");
|
||||||
if (depositUrl == null || "".equals(depositUrl))
|
if (depositUrl == null || "".equals(depositUrl))
|
||||||
{
|
{
|
||||||
String dspaceUrl = ConfigurationManager.getProperty("dspace.url");
|
String dspaceUrl = ConfigurationManager.getProperty("dspace.baseUrl");
|
||||||
if (dspaceUrl == null || "".equals(dspaceUrl))
|
if (dspaceUrl == null || "".equals(dspaceUrl))
|
||||||
{
|
{
|
||||||
throw new DSpaceSWORDException("Unable to construct service document urls, due to missing/invalid " +
|
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
|
try
|
||||||
@@ -328,7 +328,7 @@ public class SWORDUrlManager
|
|||||||
}
|
}
|
||||||
catch (MalformedURLException e)
|
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);
|
e.getMessage(),e);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -346,9 +346,9 @@ public class SWORDUrlManager
|
|||||||
* If the configuration sword.deposit.url is set, this will be returned,
|
* If the configuration sword.deposit.url is set, this will be returned,
|
||||||
* but if not, it will construct the url as follows:
|
* 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
|
* @return the base URL for sword deposit
|
||||||
* @throws DSpaceSWORDException
|
* @throws DSpaceSWORDException
|
||||||
@@ -359,11 +359,11 @@ public class SWORDUrlManager
|
|||||||
String depositUrl = ConfigurationManager.getProperty("sword.deposit.url");
|
String depositUrl = ConfigurationManager.getProperty("sword.deposit.url");
|
||||||
if (depositUrl == null || "".equals(depositUrl))
|
if (depositUrl == null || "".equals(depositUrl))
|
||||||
{
|
{
|
||||||
String dspaceUrl = ConfigurationManager.getProperty("dspace.url");
|
String dspaceUrl = ConfigurationManager.getProperty("dspace.baseUrl");
|
||||||
if (dspaceUrl == null || "".equals(dspaceUrl))
|
if (dspaceUrl == null || "".equals(dspaceUrl))
|
||||||
{
|
{
|
||||||
throw new DSpaceSWORDException("Unable to construct deposit urls, due to missing/invalid config in " +
|
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
|
try
|
||||||
@@ -373,7 +373,7 @@ public class SWORDUrlManager
|
|||||||
}
|
}
|
||||||
catch (MalformedURLException e)
|
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);
|
e.getMessage(),e);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -475,11 +475,11 @@ public class SWORDUrlManager
|
|||||||
String mlUrl = ConfigurationManager.getProperty("sword.media-link.url");
|
String mlUrl = ConfigurationManager.getProperty("sword.media-link.url");
|
||||||
if (mlUrl == null || "".equals(mlUrl))
|
if (mlUrl == null || "".equals(mlUrl))
|
||||||
{
|
{
|
||||||
String dspaceUrl = ConfigurationManager.getProperty("dspace.url");
|
String dspaceUrl = ConfigurationManager.getProperty("dspace.baseUrl");
|
||||||
if (dspaceUrl == null || "".equals(dspaceUrl))
|
if (dspaceUrl == null || "".equals(dspaceUrl))
|
||||||
{
|
{
|
||||||
throw new DSpaceSWORDException("Unable to construct media-link urls, due to missing/invalid config in " +
|
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
|
try
|
||||||
@@ -489,7 +489,7 @@ public class SWORDUrlManager
|
|||||||
}
|
}
|
||||||
catch (MalformedURLException e)
|
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);
|
e.getMessage(),e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -14,19 +14,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-sword</artifactId>
|
<artifactId>dspace-sword</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<!--
|
<properties>
|
||||||
The Subversion repository location is used by Continuum to update against
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
into the snapshot repository below.
|
</properties>
|
||||||
-->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
@@ -113,7 +108,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-sword-api</artifactId>
|
<artifactId>dspace-sword-api</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
@@ -81,6 +81,11 @@
|
|||||||
<!--
|
<!--
|
||||||
Listener to initialise DSpace configuration and clean up the application
|
Listener to initialise DSpace configuration and clean up the application
|
||||||
-->
|
-->
|
||||||
|
<listener>
|
||||||
|
<listener-class>
|
||||||
|
org.dspace.servicemanager.servlet.DSpaceKernelServletContextListener
|
||||||
|
</listener-class>
|
||||||
|
</listener>
|
||||||
<listener>
|
<listener>
|
||||||
<listener-class>
|
<listener-class>
|
||||||
org.dspace.app.util.DSpaceContextListener
|
org.dspace.app.util.DSpaceContextListener
|
||||||
|
@@ -16,37 +16,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-parent</artifactId>
|
<artifactId>dspace-parent</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<repositories>
|
<properties>
|
||||||
<repository>
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
<id>maven.dspace.org/snapshot</id>
|
<root.basedir>${basedir}/..</root.basedir>
|
||||||
<name>DSpace Maven Snapshot Repository</name>
|
</properties>
|
||||||
<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>
|
|
||||||
|
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>dspace-sword-api</module>
|
<module>dspace-sword-api</module>
|
||||||
|
@@ -13,15 +13,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-xmlui</artifactId>
|
<artifactId>dspace-xmlui</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<scm>
|
<properties>
|
||||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-api</connection>
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-api
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
</developerConnection>
|
</properties>
|
||||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-api/</url>
|
|
||||||
</scm>
|
|
||||||
|
|
||||||
<dependencies>
|
<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 {
|
public void setup(SourceResolver resolver, Map objectModel, String src, Parameters parameters) throws ProcessingException, SAXException, IOException {
|
||||||
super.setup(resolver, objectModel, src, parameters);
|
super.setup(resolver, objectModel, src, parameters);
|
||||||
try{
|
availableExports = null;
|
||||||
|
if (context.getCurrentUser() != null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
availableExports = ItemExport.getExportsAvailable(context.getCurrentUser());
|
availableExports = ItemExport.getExportsAvailable(context.getCurrentUser());
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e)
|
||||||
// nothing to do
|
{
|
||||||
|
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
|
// Only System administrators can create top-level communities
|
||||||
context.setHead(T_context_head);
|
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);
|
context.addItemXref(contextPath+"/admin/community?createNew", T_context_create_community);
|
||||||
options++;
|
options++;
|
||||||
|
@@ -66,18 +66,17 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
|||||||
pageMeta.addMetadata("title").addContent(T_title);
|
pageMeta.addMetadata("title").addContent(T_title);
|
||||||
|
|
||||||
pageMeta.addTrailLink(contextPath + "/", T_dspace_home);
|
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);
|
pageMeta.addTrail().addContent(T_trail);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addBody(Body body) throws SAXException, WingException,
|
public void addBody(Body body) throws SAXException, WingException, UIException, SQLException, IOException, AuthorizeException
|
||||||
UIException, SQLException, IOException, AuthorizeException
|
|
||||||
{
|
{
|
||||||
int itemID = parameters.getParameterAsInteger("itemID",-1);
|
int itemID = parameters.getParameterAsInteger("itemID", -1);
|
||||||
org.dspace.content.Item item = org.dspace.content.Item.find(context,itemID);
|
org.dspace.content.Item item = org.dspace.content.Item.find(context, itemID);
|
||||||
|
|
||||||
// DIVISION: main div
|
// 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 form
|
||||||
List upload = div.addList("submit-upload-new", List.TYPE_FORM);
|
List upload = div.addList("submit-upload-new", List.TYPE_FORM);
|
||||||
@@ -97,15 +96,14 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
|||||||
String[] parts = bundleString.split(",");
|
String[] parts = bundleString.split(",");
|
||||||
for (String part : parts)
|
for (String part : parts)
|
||||||
{
|
{
|
||||||
if (addBundleOption(item,select,part.trim()))
|
if (addBundleOption(item, select, part.trim()))
|
||||||
{
|
{
|
||||||
bundleCount++;
|
bundleCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
select.setOptionSelected("ORIGINAL");
|
select.setOptionSelected("ORIGINAL");
|
||||||
|
|
||||||
if (bundleCount == 0)
|
if (bundleCount == 0) {
|
||||||
{
|
|
||||||
select.setDisabled();
|
select.setDisabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,8 +113,7 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
|||||||
file.setHelp(T_file_help);
|
file.setHelp(T_file_help);
|
||||||
file.setRequired();
|
file.setRequired();
|
||||||
|
|
||||||
if (bundleCount == 0)
|
if (bundleCount == 0) {
|
||||||
{
|
|
||||||
file.setDisabled();
|
file.setDisabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,13 +121,11 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
|||||||
description.setLabel(T_description_label);
|
description.setLabel(T_description_label);
|
||||||
description.setHelp(T_description_help);
|
description.setHelp(T_description_help);
|
||||||
|
|
||||||
if (bundleCount == 0)
|
if (bundleCount == 0) {
|
||||||
{
|
|
||||||
description.setDisabled();
|
description.setDisabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bundleCount == 0)
|
if (bundleCount == 0) {
|
||||||
{
|
|
||||||
upload.addItem().addContent(T_no_bundles);
|
upload.addItem().addContent(T_no_bundles);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,8 +133,7 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
|||||||
Item actions = upload.addItem();
|
Item actions = upload.addItem();
|
||||||
Button button = actions.addButton("submit_upload");
|
Button button = actions.addButton("submit_upload");
|
||||||
button.setValue(T_submit_upload);
|
button.setValue(T_submit_upload);
|
||||||
if (bundleCount == 0)
|
if (bundleCount == 0) {
|
||||||
{
|
|
||||||
button.setDisabled();
|
button.setDisabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,39 +142,44 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
|||||||
div.addHidden("administrative-continue").setValue(knot.getId());
|
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
|
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);
|
Bundle[] bundles = item.getBundles(bundleName);
|
||||||
if (bundles == null || bundles.length == 0)
|
if (bundles == null || bundles.length == 0)
|
||||||
{
|
{
|
||||||
// If the bundle does not exist then you have to be supper admin to be able
|
// No bundle, so the user has to be authorized to add to item.
|
||||||
// to upload to this bundle because at upload time the bundle will be created but
|
if(!AuthorizeManager.authorizeActionBoolean(context, item, Constants.ADD))
|
||||||
// there is no way anyone but super admin could have access to add to the bundle.
|
|
||||||
if ( ! AuthorizeManager.isAdmin(context))
|
|
||||||
{
|
{
|
||||||
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?
|
// At least one bundle exists, does the user have privleges to upload to it?
|
||||||
Bundle bundle = bundles[0];
|
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.
|
return false; // you can't upload to this bundle.
|
||||||
}
|
}
|
||||||
|
|
||||||
// You also need the write privlege on the 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
|
return false; // you can't upload
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// It's okay to 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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -222,6 +222,7 @@ public class CollectionRecentSubmissions extends AbstractDSpaceTransformer imple
|
|||||||
{
|
{
|
||||||
// Clear out our item's cache.
|
// Clear out our item's cache.
|
||||||
this.recentSubmissionItems = null;
|
this.recentSubmissionItems = null;
|
||||||
|
this.validity = null;
|
||||||
super.recycle();
|
super.recycle();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -204,6 +204,7 @@ public class CommunityRecentSubmissions extends AbstractDSpaceTransformer implem
|
|||||||
@Override
|
@Override
|
||||||
public void recycle() {
|
public void recycle() {
|
||||||
this.recentSubmittedItems = null;
|
this.recentSubmittedItems = null;
|
||||||
|
this.validity = null;
|
||||||
super.recycle();
|
super.recycle();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -10,14 +10,13 @@ package org.dspace.app.xmlui.aspect.artifactbrowser;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.HashMap;
|
import java.util.*;
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
|
import org.apache.cocoon.ResourceNotFoundException;
|
||||||
import org.apache.cocoon.caching.CacheableProcessingComponent;
|
import org.apache.cocoon.caching.CacheableProcessingComponent;
|
||||||
import org.apache.cocoon.environment.ObjectModelHelper;
|
import org.apache.cocoon.environment.ObjectModelHelper;
|
||||||
import org.apache.cocoon.environment.Request;
|
import org.apache.cocoon.environment.Request;
|
||||||
|
import org.apache.cocoon.environment.http.HttpEnvironment;
|
||||||
import org.apache.cocoon.util.HashUtil;
|
import org.apache.cocoon.util.HashUtil;
|
||||||
import org.apache.excalibur.source.SourceValidity;
|
import org.apache.excalibur.source.SourceValidity;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
@@ -58,6 +57,8 @@ import org.dspace.core.Context;
|
|||||||
import org.dspace.core.LogManager;
|
import org.dspace.core.LogManager;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements all the browse functionality (browse by title, subject, authors,
|
* Implements all the browse functionality (browse by title, subject, authors,
|
||||||
* etc.) The types of browse available are configurable by the implementor. See
|
* 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,
|
public void addBody(Body body) throws SAXException, WingException, UIException, SQLException,
|
||||||
IOException, AuthorizeException
|
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();
|
BrowseInfo info = getBrowseInfo();
|
||||||
|
|
||||||
String type = info.getBrowseIndex().getName();
|
String type = info.getBrowseIndex().getName();
|
||||||
@@ -605,8 +615,8 @@ public class ConfigurableBrowse extends AbstractDSpaceTransformer implements
|
|||||||
* @throws SQLException
|
* @throws SQLException
|
||||||
* @throws UIException
|
* @throws UIException
|
||||||
*/
|
*/
|
||||||
private BrowseParams getUserParams() throws SQLException, UIException
|
private BrowseParams getUserParams() throws SQLException, UIException, ResourceNotFoundException, IllegalArgumentException {
|
||||||
{
|
|
||||||
if (this.userParams != null)
|
if (this.userParams != null)
|
||||||
{
|
{
|
||||||
return this.userParams;
|
return this.userParams;
|
||||||
@@ -639,10 +649,20 @@ public class ConfigurableBrowse extends AbstractDSpaceTransformer implements
|
|||||||
String type = request.getParameter(BrowseParams.TYPE);
|
String type = request.getParameter(BrowseParams.TYPE);
|
||||||
int sortBy = RequestUtils.getIntParameter(request, BrowseParams.SORT_BY);
|
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);
|
BrowseIndex bi = BrowseIndex.getBrowseIndex(type);
|
||||||
if (bi == null)
|
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
|
// 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
|
// Get the parameters we will use for the browse
|
||||||
// (this includes a browse scope)
|
// (this includes a browse scope)
|
||||||
BrowseParams params = getUserParams();
|
BrowseParams params = null;
|
||||||
|
try {
|
||||||
|
params = getUserParams();
|
||||||
|
} catch (ResourceNotFoundException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@@ -215,7 +215,8 @@ public class Submissions extends AbstractDSpaceTransformer
|
|||||||
for (WorkflowItem owned : ownedItems)
|
for (WorkflowItem owned : ownedItems)
|
||||||
{
|
{
|
||||||
int workflowItemID = owned.getID();
|
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);
|
DCValue[] titles = owned.getItem().getDC("title", null, Item.ANY);
|
||||||
String collectionName = owned.getCollection().getMetadata("name");
|
String collectionName = owned.getCollection().getMetadata("name");
|
||||||
EPerson submitter = owned.getSubmitter();
|
EPerson submitter = owned.getSubmitter();
|
||||||
@@ -231,7 +232,7 @@ public class Submissions extends AbstractDSpaceTransformer
|
|||||||
remove.addOption(workflowItemID);
|
remove.addOption(workflowItemID);
|
||||||
|
|
||||||
// The task description
|
// The task description
|
||||||
row.addCell().addXref(url,state);
|
row.addCell().addXref(ownedWorkflowItemUrl, state);
|
||||||
|
|
||||||
// The item description
|
// The item description
|
||||||
if (titles != null && titles.length > 0)
|
if (titles != null && titles.length > 0)
|
||||||
@@ -241,15 +242,15 @@ public class Submissions extends AbstractDSpaceTransformer
|
|||||||
{
|
{
|
||||||
displayTitle = displayTitle.substring(0, 50) + " ...";
|
displayTitle = displayTitle.substring(0, 50) + " ...";
|
||||||
}
|
}
|
||||||
row.addCell().addXref(url,displayTitle);
|
row.addCell().addXref(ownedWorkflowItemUrl, displayTitle);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
row.addCell().addXref(url, T_untitled);
|
row.addCell().addXref(ownedWorkflowItemUrl, T_untitled);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Submitted too
|
// Submitted too
|
||||||
row.addCell().addXref(url,collectionName);
|
row.addCell().addXref(collectionUrl, collectionName);
|
||||||
|
|
||||||
// Submitted by
|
// Submitted by
|
||||||
Cell cell = row.addCell();
|
Cell cell = row.addCell();
|
||||||
@@ -287,7 +288,8 @@ public class Submissions extends AbstractDSpaceTransformer
|
|||||||
for (WorkflowItem pooled : pooledItems)
|
for (WorkflowItem pooled : pooledItems)
|
||||||
{
|
{
|
||||||
int workflowItemID = pooled.getID();
|
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);
|
DCValue[] titles = pooled.getItem().getDC("title", null, Item.ANY);
|
||||||
String collectionName = pooled.getCollection().getMetadata("name");
|
String collectionName = pooled.getCollection().getMetadata("name");
|
||||||
EPerson submitter = pooled.getSubmitter();
|
EPerson submitter = pooled.getSubmitter();
|
||||||
@@ -304,7 +306,7 @@ public class Submissions extends AbstractDSpaceTransformer
|
|||||||
remove.addOption(workflowItemID);
|
remove.addOption(workflowItemID);
|
||||||
|
|
||||||
// The task description
|
// The task description
|
||||||
row.addCell().addXref(url,state);
|
row.addCell().addXref(pooledItemUrl, state);
|
||||||
|
|
||||||
// The item description
|
// The item description
|
||||||
if (titles != null && titles.length > 0)
|
if (titles != null && titles.length > 0)
|
||||||
@@ -315,15 +317,15 @@ public class Submissions extends AbstractDSpaceTransformer
|
|||||||
displayTitle = displayTitle.substring(0, 50) + " ...";
|
displayTitle = displayTitle.substring(0, 50) + " ...";
|
||||||
}
|
}
|
||||||
|
|
||||||
row.addCell().addXref(url,displayTitle);
|
row.addCell().addXref(pooledItemUrl, displayTitle);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
row.addCell().addXref(url, T_untitled);
|
row.addCell().addXref(pooledItemUrl, T_untitled);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Submitted too
|
// Submitted too
|
||||||
row.addCell().addXref(url,collectionName);
|
row.addCell().addXref(collectionUrl, collectionName);
|
||||||
|
|
||||||
// Submitted by
|
// Submitted by
|
||||||
Cell cell = row.addCell();
|
Cell cell = row.addCell();
|
||||||
@@ -418,7 +420,8 @@ public class Submissions extends AbstractDSpaceTransformer
|
|||||||
EPerson submitterEPerson = workspaceItem.getItem().getSubmitter();
|
EPerson submitterEPerson = workspaceItem.getItem().getSubmitter();
|
||||||
|
|
||||||
int workspaceItemID = workspaceItem.getID();
|
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 submitterName = submitterEPerson.getFullName();
|
||||||
String submitterEmail = submitterEPerson.getEmail();
|
String submitterEmail = submitterEPerson.getEmail();
|
||||||
String collectionName = workspaceItem.getCollection().getMetadata("name");
|
String collectionName = workspaceItem.getCollection().getMetadata("name");
|
||||||
@@ -435,13 +438,13 @@ public class Submissions extends AbstractDSpaceTransformer
|
|||||||
{
|
{
|
||||||
displayTitle = displayTitle.substring(0, 50) + " ...";
|
displayTitle = displayTitle.substring(0, 50) + " ...";
|
||||||
}
|
}
|
||||||
row.addCell().addXref(url,displayTitle);
|
row.addCell().addXref(workspaceItemUrl, displayTitle);
|
||||||
}
|
}
|
||||||
else
|
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 cell = row.addCell();
|
||||||
cell.addContent(T_email);
|
cell.addContent(T_email);
|
||||||
cell.addXref("mailto:"+submitterEmail,submitterName);
|
cell.addXref("mailto:"+submitterEmail,submitterName);
|
||||||
|
@@ -13,15 +13,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-xmlui</artifactId>
|
<artifactId>dspace-xmlui</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<scm>
|
<properties>
|
||||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-webapp</connection>
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-webapp
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
</developerConnection>
|
</properties>
|
||||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-webapp</url>
|
|
||||||
</scm>
|
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
@@ -48,6 +47,27 @@
|
|||||||
<phase>prepare-package</phase>
|
<phase>prepare-package</phase>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</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>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
@@ -113,9 +133,7 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<properties>
|
|
||||||
<netbeans.hint.deploy.server>Tomcat60</netbeans.hint.deploy.server>
|
|
||||||
</properties>
|
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
|
|
||||||
|
@@ -7,6 +7,10 @@
|
|||||||
*/
|
*/
|
||||||
/** Additions for Authority Control elements **/
|
/** Additions for Authority Control elements **/
|
||||||
/* for scriptaculous autocomplete */
|
/* for scriptaculous autocomplete */
|
||||||
|
div.autocomplete {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
div.autocomplete, ul.ui-menu {
|
div.autocomplete, ul.ui-menu {
|
||||||
position:absolute;
|
position:absolute;
|
||||||
width:250px;
|
width:250px;
|
||||||
@@ -36,10 +40,6 @@ ul.ui-menu li a {
|
|||||||
ul.ui-menu li a.ui-state-hover {
|
ul.ui-menu li a.ui-state-hover {
|
||||||
background-color: #ffb;
|
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
|
/* this magic gets the 16x16 icon to show up.. setting height/width didn't
|
||||||
do it, but adding padding actually made it show up. */
|
do it, but adding padding actually made it show up. */
|
||||||
img.ds-authority-confidence
|
img.ds-authority-confidence
|
||||||
|
@@ -61,10 +61,10 @@
|
|||||||
<xsl:text>]</xsl:text>
|
<xsl:text>]</xsl:text>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</div>
|
</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">
|
<div class="artifact-info">
|
||||||
<span class="short-description">
|
<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)"/>
|
<xsl:value-of select="util:shortenString($abstract, 220, 10)"/>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -62,10 +62,10 @@
|
|||||||
<xsl:text>]</xsl:text>
|
<xsl:text>]</xsl:text>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</div>
|
</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">
|
<div class="artifact-info">
|
||||||
<span class="short-description">
|
<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)"/>
|
<xsl:value-of select="util:shortenString($abstract, 220, 10)"/>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -308,7 +308,6 @@
|
|||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="dim:field" mode="itemDetailView-DIM">
|
<xsl:template match="dim:field" mode="itemDetailView-DIM">
|
||||||
<xsl:if test="not(@element='description' and @qualifier='provenance')">
|
|
||||||
<tr>
|
<tr>
|
||||||
<xsl:attribute name="class">
|
<xsl:attribute name="class">
|
||||||
<xsl:text>ds-table-row </xsl:text>
|
<xsl:text>ds-table-row </xsl:text>
|
||||||
@@ -334,7 +333,6 @@
|
|||||||
</td>
|
</td>
|
||||||
<td><xsl:value-of select="./@language"/></td>
|
<td><xsl:value-of select="./@language"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
</xsl:if>
|
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<!--dont render the item-view-toggle automatically in the summary view, only when it get's called-->
|
<!--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="confidenceName" select="''"/>
|
||||||
<xsl:param name="isClosed" select="'false'"/>
|
<xsl:param name="isClosed" select="'false'"/>
|
||||||
<script type="text/javascript">
|
<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:text>var gigo = DSpaceSetupAutocomplete('</xsl:text>
|
||||||
<xsl:value-of select="$formID"/>
|
<xsl:value-of select="$formID"/>
|
||||||
<xsl:text>', { metadataField: '</xsl:text>
|
<xsl:text>', { metadataField: '</xsl:text>
|
||||||
@@ -238,7 +239,8 @@
|
|||||||
<xsl:text>, contextPath: '</xsl:text>
|
<xsl:text>, contextPath: '</xsl:text>
|
||||||
<xsl:value-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='contextPath'][not(@qualifier)]"/>
|
<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>
|
||||||
|
<xsl:text>});</xsl:text>
|
||||||
</script>
|
</script>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
@@ -240,6 +240,30 @@
|
|||||||
else
|
else
|
||||||
return true;
|
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>
|
</script>
|
||||||
|
|
||||||
<!-- Modernizr enables HTML5 elements & feature detects -->
|
<!-- Modernizr enables HTML5 elements & feature detects -->
|
||||||
@@ -496,7 +520,10 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<xsl:template name="addJavascript">
|
<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:variable name="localJQuerySrc">
|
||||||
<xsl:value-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='contextPath'][not(@qualifier)]"/>
|
<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>
|
<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 -->
|
<!-- 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']">
|
<xsl:if test="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='google'][@qualifier='analytics']">
|
||||||
<script type="text/javascript"><xsl:text>
|
<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#1" value="lib/css/reset.css"/>
|
||||||
<map:parameter name="stylesheet.screen#2" value="lib/css/base.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#3" value="lib/css/helper.css"/>
|
||||||
<map:parameter name="stylesheet.screen#4" value="lib/css/style.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/authority-control.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>
|
||||||
|
|
||||||
<map:transform type="IncludePageMeta">
|
<map:transform type="IncludePageMeta">
|
||||||
|
@@ -369,7 +369,6 @@
|
|||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="dim:field" mode="itemDetailView-DIM">
|
<xsl:template match="dim:field" mode="itemDetailView-DIM">
|
||||||
<xsl:if test="not(@element='description' and @qualifier='provenance')">
|
|
||||||
<tr>
|
<tr>
|
||||||
<xsl:attribute name="class">
|
<xsl:attribute name="class">
|
||||||
<xsl:text>ds-table-row </xsl:text>
|
<xsl:text>ds-table-row </xsl:text>
|
||||||
@@ -395,7 +394,6 @@
|
|||||||
</td>
|
</td>
|
||||||
<td><xsl:value-of select="./@language"/></td>
|
<td><xsl:value-of select="./@language"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
</xsl:if>
|
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<!-- Generate the bitstream information from the file section -->
|
<!-- Generate the bitstream information from the file section -->
|
||||||
|
@@ -744,7 +744,6 @@
|
|||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="dim:field" mode="itemDetailView-DIM">
|
<xsl:template match="dim:field" mode="itemDetailView-DIM">
|
||||||
<xsl:if test="not(@element='description' and @qualifier='provenance')">
|
|
||||||
<tr>
|
<tr>
|
||||||
<xsl:attribute name="class">
|
<xsl:attribute name="class">
|
||||||
<xsl:text>ds-table-row </xsl:text>
|
<xsl:text>ds-table-row </xsl:text>
|
||||||
@@ -770,7 +769,6 @@
|
|||||||
</td>
|
</td>
|
||||||
<td><xsl:value-of select="./@language"/></td>
|
<td><xsl:value-of select="./@language"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
</xsl:if>
|
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
|
||||||
|
@@ -10,15 +10,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-xmlui</artifactId>
|
<artifactId>dspace-xmlui</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<scm>
|
<properties>
|
||||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-wing</connection>
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-wing
|
<root.basedir>${basedir}/../..</root.basedir>
|
||||||
</developerConnection>
|
</properties>
|
||||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-wing</url>
|
|
||||||
</scm>
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
|
@@ -12,19 +12,14 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.dspace</groupId>
|
<groupId>org.dspace</groupId>
|
||||||
<artifactId>dspace-parent</artifactId>
|
<artifactId>dspace-parent</artifactId>
|
||||||
<version>1.7.1-SNAPSHOT</version>
|
<version>1.7.3</version>
|
||||||
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<!--
|
<properties>
|
||||||
The Subversion repository location is used by Continuum to update against
|
<!-- This is the path to the root [dspace-src] directory. -->
|
||||||
when changes have occured, this spawns a new build cycle and releases snapshots
|
<root.basedir>${basedir}/..</root.basedir>
|
||||||
into the snapshot repository below.
|
</properties>
|
||||||
-->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>dspace-xmlui-wing</module>
|
<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
|
A definitive and up to date list of bugs affecting each version of
|
||||||
DSpace software can be found in our JIRA issue tracker.
|
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:
|
- 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"
|
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:
|
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
|
Redistribution and use in source and binary forms, with or without
|
||||||
modification, are permitted provided that the following conditions are
|
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
|
the legal copyright from Hewlett-Packard Company (HP) and Massachusetts
|
||||||
Institute of Technology (MIT) to the DSpace Foundation in October 2007. Many
|
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
|
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
|
and MIT possess the copyright, in these instances please note that the copy
|
||||||
right has transfered to the DSpace foundation, and subsequently to Duraspace.
|
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