Uploaded image for project: 'DSpace'
  1. DSpace
  2. DS-749

allow for bitstream display order to be changed

    Details

    • Type: New Feature
    • Status: Closed (View Workflow)
    • Priority: Minor
    • Resolution: Fixed
    • Fix Version/s: 1.8.0
    • Component/s: JSPUI, XMLUI
    • Labels:
      None
    • Attachments:
      12
    • Comments:
      22
    • Documentation Status:
      Needed

      Description

      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(); }
      1. ----------------------------------------------------------------------
      2. start of MAIN
      3. ----------------------------------------------------------------------

      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;

      1. 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_;

      ==============================================

        Attachments

          Issue Links

            Activity

            Hide
            kevin van de velde Kevin Van de Velde (@mire) added a comment -

            Uploaded the latest patch (v0.3) which with not hide the buttons but disable them. This was done because if the buttons where hidden in themes that didn't have alternating row colors (e.g. Mirage) it would be confusing.

            Show
            kevin van de velde Kevin Van de Velde (@mire) added a comment - Uploaded the latest patch (v0.3) which with not hide the buttons but disable them. This was done because if the buttons where hidden in themes that didn't have alternating row colors (e.g. Mirage) it would be confusing.
            Hide
            robintaylor Robin Taylor added a comment -

            Commited to trunk revision 6580.

            Show
            robintaylor Robin Taylor added a comment - Commited to trunk revision 6580.
            Hide
            kevin van de velde Kevin Van de Velde (@mire) added a comment -

            Attaching patch that will fix some small internet explorer layout issues.

            Show
            kevin van de velde Kevin Van de Velde (@mire) added a comment - Attaching patch that will fix some small internet explorer layout issues.
            Hide
            robintaylor Robin Taylor added a comment -

            IE bugfixes patch commited, revision 6581

            Show
            robintaylor Robin Taylor added a comment - IE bugfixes patch commited, revision 6581
            Hide
            tdonohue Tim Donohue added a comment -

            Closing this issue & marking as fixed for 1.8.0.

            Show
            tdonohue Tim Donohue added a comment - Closing this issue & marking as fixed for 1.8.0.

              People

              • Assignee:
                kevin van de velde Kevin Van de Velde (@mire)
                Reporter:
                blancojose Jose Blanco
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: