[
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.2.zip
Attached a new file that will leave all the theme stuff up to the css so the
xsl code has been decreased.
Also I forgot to mention that for the JSPUI there is only a possibility to
reorder bitstreams in the ORIGINAL bundle (as opposed to the XMLUI where any
bundle reorganization is possible). If the JSPUI functionality should be
extended please feel free to let me know.
Ps: also attached some screens from the XMLUI & JSPUI.
> 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,
> Bitstream order UI patch v0.2.zip, GenerateBitDisplayOrder.java, JSPUI.jpg,
> Mirage Screen.jpg, Reference theme.jpg
>
>
> 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
------------------------------------------------------------------------------
uberSVN's rich system and user administration capabilities and model
configuration take the hassle out of deploying and managing Subversion and
the tools developers use with it. Learn more about uberSVN and get a free
download at: http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel