[
https://jira.duraspace.org/browse/DS-749?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kevin Van de Velde updated DS-749:
----------------------------------
Attachment: Bitstream order UI patch v0.1.zip
I have attached a patch that will create a user interface that will allow
administrators to reorder the bitstreams. This can be done in the edit
bitstreams menu from the XMLUI & in the edit item page of the JSPUI.
Some extra code has been written so that should javascript be disabled the
functionality will remain.
The patch is a zip file since some image files where added and these should be
place in the images dir of each theme.
One thing to note is that the bitstream order will be changed immediately after
the submit button is pressed & no command line script is required.
I created this patch during my weekend so I'm sad to say I could only test in
firefox & IE 9. (since I do not have the same resources as I do at my workplace)
> allow for bitstream display order to be changed
> -----------------------------------------------
>
> Key: DS-749
> URL: https://jira.duraspace.org/browse/DS-749
> Project: DSpace
> Issue Type: New Feature
> Components: JSPUI
> Reporter: Jose Blanco
> Assignee: Ben Bosman
> Attachments: Bitstream_ordering_backend.patch,
> Bitstream_ordering_backend_V0_2.patch, Bitstream order UI patch v0.1.zip,
> GenerateBitDisplayOrder.java
>
>
> This patch allows user with access priviledges to edit an item to change the
> order in which a bitstream is displayed
> in the item display. This patch is for the JSPUI.
> The first thing that needs to be done is that a new field needs to be added
> to the bitstream table with the following SQL:
> alter table bitstream add display_order integer;
> Then that field needs to be populated with the values in the sequence_id
> table. I have provided a perl script
> that I used to do this: fix-display-order.
> Once this is done, make the following code changes.
> File =>tools/edit-item-form.jsp
> + <th id="t11" class="oddRowOddCol"><strong><fmt:message
> key="jsp.tools.edit-item-form.elem10"/></strong></th>
> <th id="t11" class="oddRowEvenCol"><strong><fmt:message
> key="jsp.tools.edit-item-form.elem5"/></strong></th>
> AND
> + <td headers="t11" class="<%= row %>RowOddCol">
> + <input type="text" name="bitstream_order_<%= key %>"
> value="<%= (Integer.toString(bitstreams[j].getDisplayOrder()) == null ? "" :
> Integer.toString(bitstreams[j].getDisplayOrder())) %>" size="4"/>
> + </td>
> <% if (bundles[i].getName().equals("ORIGINAL"))
> { %>
> File => Messages.properties
> jsp.tools.edit-item-form.elem9 = Description
> +jsp.tools.edit-item-form.elem10 =
> Display<BR>Order
> file Biststream.java
> + public int getDisplayOrder()
> + {
> + return bRow.getIntColumn("display_order");
> + }
> +
> + public void setDisplayOrder(int order)
> + {
> + bRow.setColumn("display_order", order);
> + modifiedMetadata = true;
> + addDetails("DisplayOrder");
> + }
>
> File => Item.java
> if (streams[k].getSequenceID() < 0)
> {
> streams[k].setSequenceID(sequence);
> + streams[k].setDisplayOrder(sequence);
> sequence++;
> streams[k].update();
> }
> File => Bundle.java
> - + "bundle2bitstream.bundle_id= ? ",
> + + "bundle2bitstream.bundle_id= ? "
> + + "ORDER BY bitstream.display_order",
> File => EditItemServlet.java
> int formatID = UIUtil.getIntParameter(request,
> "bitstream_format_id_" + key);
> + int display_order = UIUtil.getIntParameter(request,
> + "bitstream_order_" + key);
> AND
> bitstream.setName(name);
> bitstream.setSource(source);
> bitstream.setDescription(desc);
> + bitstream.setDisplayOrder(display_order);
> ==============================================
> This is the fix-display-order perl script used to iniailize display_order:
> #!/usr/bin/perl
> RE.
> BEGIN
> {
> require "strict.pm";
> strict::import();
> }
> # ----------------------------------------------------------------------
> # start of MAIN
> # ----------------------------------------------------------------------
> use Encode;
> use utf8;
> use DBI;
> use File::Path;
> my $dbhP = DBI->connect("dbi:Pg:dbname=dspace-name", "dspace-user",
> "password");
> &UpdateDisplayOrder ();
> $dbhP->disconnect;
> exit;
> sub UpdateDisplayOrder
> {
>
> my $statement = qq{select bitstream_id, sequence_id from bitstream};
> my $sth = $dbhP->prepare($statement)
> or die "Couldn't prepare statement: " . $dbhP->errstr;
>
> # Read the matching records and print them out
> $sth->execute() # Execute the query
> or die "Couldn't execute statement: " . $sth->errstr;
> my $count = 0;
> my ( $url, $msg );
> my ( $bitstream_id, $sequence_id, @data );
> while (@data = $sth->fetchrow_array()) {
> $bitstream_id = $data[0];
> $sequence_id = $data[1];
>
> if ( $sequence_id )
> {
> my $sql = qq{update bitstream set display_order = $sequence_id where
> bitstream_id= $bitstream_id};
> &ProcessSQL ( $sql );
> }
> }
> $sth->finish;
> }
> sub ProcessSQL
> {
> my ( $statement ) = @_;
> my $sth = $dbhP->prepare($statement)
> or die "Couldn't prepare statement: " . $dbhP->errstr;
>
> # Read the matching records and print them out
> $sth->execute() # Execute the query
> or die "Couldn't execute statement: " . $sth->errstr;
> $sth->finish;
> }
> __END__;
> ==============================================
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://jira.duraspace.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Get a FREE DOWNLOAD! and learn more about uberSVN rich system,
user administration capabilities and model configuration. Take
the hassle out of deploying and managing Subversion and the
tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel