[ 
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.3.zip

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.
                
> 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, Bitstream order UI patch v0.3.zip, 
> GenerateBitDisplayOrder.java, JSPUI.jpg, Mirage Screen.jpg, Mirage Screen 
> (Patch V0.3).jpg, Reference Screen (Patch V0.3).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

        

------------------------------------------------------------------------------
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
Dspace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to