Bugzilla – Attachment 13789 Details for
Bug 7882
Add ability to move and reorder fields and subfields in MARC editor
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 7882: Add ability to sort fields and subfields
Bug-7882-Add-ability-to-sort-fields-and-subfields.patch (text/plain), 24.52 KB, created by
Elliott Davis
on 2012-11-29 21:22:33 UTC
(
hide
)
Description:
Bug 7882: Add ability to sort fields and subfields
Filename:
MIME Type:
Creator:
Elliott Davis
Created:
2012-11-29 21:22:33 UTC
Size:
24.52 KB
patch
obsolete
>From 92b585742e1c7da003c3536aae6d3b65e82d1e19 Mon Sep 17 00:00:00 2001 >From: Elliott Davis <elliott@bywatersolutions.com> >Date: Fri, 5 Oct 2012 09:01:36 -0500 >Subject: [PATCH] Bug 7882: Add ability to sort fields and subfields > >This patch incorporates jquery UI sortable to reorder fields when cataloging items in frameworks. > >To Test: > >Open Cataloging >Choose to add an item using whatever framework you like >Click and drag the arrowed fields around. >Subfields should not be interchangeable between fields and fields should not be interchangable between tabs >When you are done moving and adding information save your item >You should notice the marc record saved in the order you arranged the fields. >--- > koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css | 120 ++++++----- > .../prog/en/modules/cataloguing/addbiblio.tt | 243 ++++++++++---------- > .../intranet-tmpl/prog/img/cursor_split_16.png | Bin 0 -> 3206 bytes > 3 files changed, 188 insertions(+), 175 deletions(-) > create mode 100644 koha-tmpl/intranet-tmpl/prog/img/cursor_split_16.png > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css b/koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css >index d35a471..b7990f8 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css >+++ b/koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css >@@ -1,51 +1,60 @@ > #addbibliotabs { >- margin-top : 1em; >+ margin-top : 1em; > } >- >+ul li.tag { >+ list-style-type:none; >+ padding:0 0 0 25px; >+ background: url("../../img/cursor_split_16.png") no-repeat left top; >+} >+ul li, ul li li { >+ list-style-type:none; >+ margin: 0 5px 5px 5px; padding: 5px; height: 1.5em; >+} >+.ui-state-highlight { height: 1.5em; line-height: 1.2em; } > #addbibliotabs .ui-tabs-panel { >- float : left; >+ float : left; > } > > .buttonPlus { >- font-weight : bold; >- text-decoration : none; >+ font-weight : bold; >+ text-decoration : none; > } > > .buttonMinus { >- font-weight : bold; >- text-decoration : none; >+ font-weight : bold; >+ text-decoration : none; > } > > a.expandfield { >- text-decoration : none; >+ text-decoration : none; > } > > #yui-cms-loading { >- background : #FFFFFF; >- color : #333333; >- display : none; >+ background : #FFFFFF; >+ color : #333333; >+ display : none; > } > > #yui-cms-loading #yui-cms-float { >- text-align : center; >- font-size : 175%; >- background-image : url(../../img/loading.gif); >- background-repeat : no-repeat; >- background-position : top; >- padding-top : 50px; >+ text-align : center; >+ font-size : 175%; >+ background-image : url(../../img/loading.gif); >+ background-repeat : no-repeat; >+ background-position : top; >+ padding-top : 50px; > } > >- >+ > #authoritytabs { >- margin-top : 1em; >- margin-bottom : 1em; >+ margin-top : 1em; >+ margin-bottom : 1em; > } > > .toptabs .ui-tabs-nav li a { >- padding : .2em 1.2em; >+ padding : .2em 1.2em; > } > >-div.tag { >+li.tag, li.subfield_line { > clear: both; > } > >@@ -56,10 +65,10 @@ div.subfield_line { > width: 100%; > } > >-div.subfield_line label { >+li.subfield_line label { > font-size:89%; > float: left; >- padding-right : .4em; >+ padding-right : .4em; > width: 16em; > text-align: left; > clear:left; >@@ -70,44 +79,45 @@ div.subfield_line label { > } > > .tag_title { >- font-size : 90%; >- padding : .2em 0; >+ font-size : 90%; >+ padding : .2em 0; > } > > .tagnum { >- font-size : 110%; >- font-weight : bold; >- color : #000; >- padding : .1em .3em .1em 0; >+ font-size : 110%; >+ font-weight : bold; >+ color : #000; >+ padding : .1em .3em .1em 0; > } > > a.tagnum { >- font-size : 110%; >- font-weight : bold; >- color : #000; >- padding : .1em .3em .1em 0; >- text-decoration : none; >+ font-size : 110%; >+ font-weight : bold; >+ color : #000; >+ padding : .1em .3em .1em 0; >+ text-decoration : none; > } > > .subfield { >- color : #00698a; >- float: left; >- width: 10em; >- text-align:right; >+ color : #00698a; >+ float: left; >+ width: 10em; >+ text-align:right; >+ > } > > .subfieldcode { >- display: block; >- float: left; >+ display: block; >+ float: left; > } > > .labelsubfield { >- float:left; >+ float:left; > } > > .input_marceditor { >- float:left; >- width:30em; >+ float:left; >+ width:30em; > } > > .indicator { >@@ -115,23 +125,23 @@ a.tagnum { > } > > *html .input_marceditor { >- width : 15em; >+ width : 15em; > } > > #cataloguing_additem_newitem fieldset.rows label, #cataloguing_additem_newitem fieldset.rows span.label { >- font-size : 100%; >- width : 25%; >+ font-size : 100%; >+ width : 25%; > } > > #cataloguing_additem_newitem fieldset.rows li { >- padding-bottom : 3px; >+ padding-bottom : 3px; > } > #cataloguing_additem_newitem .input_marceditor { >- width : auto; >+ width : auto; > } > > .mandatory_marker { >- color: red; >+ color: red; > } > .linktools { display: block; white-space: nowrap; } > .linktools a { font-size : 75%; display:block;text-decoration:none;} >@@ -142,17 +152,17 @@ a.tagnum { > .readonly { border-width : 1px; border-style: inset; padding-left : 15px; background: #EEE url(../../img/locked.png) center left no-repeat; width:29em; } > > #cataloguing_additem_itemlist { >- margin-bottom : 1em; >+ margin-bottom : 1em; > } > .yui-gf div.first { >- width : 19%; >+ width : 19%; > } > > .yui-gf .yui-u { >- width: 79.2%; >+ width: 79.2%; > } > /* Class to be added to toolbar when it starts being fixed at the top of the screen*/ > .floating { >- -webkit-box-shadow: 0px 3px 2px 0px rgba(0, 0, 0, .5); >- box-shadow: 0px 3px 2px 0px rgba(0, 0, 0, .5); >+ -webkit-box-shadow: 0px 3px 2px 0px rgba(0, 0, 0, .5); >+ box-shadow: 0px 3px 2px 0px rgba(0, 0, 0, .5); > } >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt >index 7d54142..a7f50e9 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt >@@ -7,30 +7,34 @@ > <script type="text/javascript"> > //<![CDATA[ > >- $(document).ready(function() { >- $('#addbibliotabs').tabs().bind('show.ui-tabs', function(e, ui) { >- $("#"+ui.panel.id+" input:eq(0)").focus(); >- }); >- >- /* check cookie to hide/show marcdocs*/ >- if($.cookie("marcdocs_[% borrowernumber %]") == 'false'){ >- hideMARCdocLinks(); >+ $(document).ready(function() { >+ var $tabs = $('#addbibliotabs').tabs(); >+ $( "ul.sortable_field", $tabs ).sortable({ >+ placeholder: "ui-state-highlight", >+ }).disableSelection(); >+ $( "ul.sortable_subfield", $tabs ).sortable({ >+ placeholder: "ui-state-highlight", >+ }).disableSelection(); >+ >+ /* check cookie to hide/show marcdocs*/ >+ if($.cookie("marcdocs_[% borrowernumber %]") == 'false'){ >+ hideMARCdocLinks(); > $("#marcDocsSelect").removeAttr('checked'); >- } else { >- /* reset cookie expire date */ >- $.cookie("marcdocs_[% borrowernumber %]",'true', >- { path: "/", expires: 365 }); >- } >+ } else { >+ /* reset cookie expire date */ >+ $.cookie("marcdocs_[% borrowernumber %]",'true', >+ { path: "/", expires: 365 }); >+ } > >- }); >+ }); > > $('#header_search').tabs().bind('show.ui-tabs', function(e, ui) { $('#header_search > div:not(.ui-tabs-hide)').find('input').eq(0).focus(); }); > > > function confirmnotdup(redirect){ >- $("#confirm_not_duplicate").attr("value","1"); >+ $("#confirm_not_duplicate").attr("value","1"); > $("#redirect").attr("value",redirect); >- Check(); >+ Check(); > } > > function Dopop(link,i) { >@@ -43,7 +47,7 @@ function Dopop(link,i) { > */ > function PopupZ3950() { > var strQuery = GetZ3950Terms(); >- if(strQuery){ >+ if(strQuery){ > window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=[% biblionumber %]"+strQuery,"z3950search",'width=740,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes'); > } > } >@@ -87,13 +91,13 @@ function _UNIMARCFieldDoc(field, blocknumber) { > * Functions to hide/show marc docs links > */ > function hideMARCdocLinks() { >- $(".marcdocs").hide(); >- $.cookie("marcdocs_[% borrowernumber %]",'false', { path: "/", expires: 365 }); >+ $(".marcdocs").hide(); >+ $.cookie("marcdocs_[% borrowernumber %]",'false', { path: "/", expires: 365 }); > } > > function showMARCdocLinks() { >- $(".marcdocs").show(); >- $.cookie("marcdocs_[% borrowernumber %]",'true', { path: "/", expires: 365 }); >+ $(".marcdocs").show(); >+ $.cookie("marcdocs_[% borrowernumber %]",'true', { path: "/", expires: 365 }); > } > > /** >@@ -107,14 +111,14 @@ function AreMandatoriesNotOk(){ > var flag=0; > var tabflag= new Array(); > [% FOREACH BIG_LOO IN BIG_LOOP %] >- [% FOREACH innerloo IN BIG_LOO.innerloop %] >- [% IF ( innerloo.mandatory ) %] >- mandatoriesfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]")); >- [% END %] >- [% FOREACH subfield_loo IN innerloo.subfield_loop %] >- [% IF ( subfield_loo.mandatory ) %]mandatories.push("[% subfield_loo.id %]"); >- tab.push("[% BIG_LOO.number %]"); >- label.push("[% subfield_loo.marc_lib %]"); >+ [% FOREACH innerloo IN BIG_LOO.innerloop %] >+ [% IF ( innerloo.mandatory ) %] >+ mandatoriesfields.push(new Array("[% innerloo.tag %]","[% innerloo.index %][% innerloo.random %]","[% innerloo.index %]")); >+ [% END %] >+ [% FOREACH subfield_loo IN innerloo.subfield_loop %] >+ [% IF ( subfield_loo.mandatory ) %]mandatories.push("[% subfield_loo.id %]"); >+ tab.push("[% BIG_LOO.number %]"); >+ label.push("[% subfield_loo.marc_lib %]"); > [% END %] > [% END %] > [% END %] >@@ -126,9 +130,9 @@ function AreMandatoriesNotOk(){ > var subfield=mandatories[i].substr(17,1); > var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19); > if (tabflag[tag+subfield+tagnumber] == null) { >- tabflag[tag+subfield+tagnumber]=new Array(); >+ tabflag[tag+subfield+tagnumber]=new Array(); > tabflag[tag+subfield+tagnumber][0]=0; >- } >+ } > if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)){ > tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ; > document.getElementById(mandatories[i]).setAttribute('class','subfield_not_filled'); >@@ -151,58 +155,58 @@ function AreMandatoriesNotOk(){ > > /* Check for mandatories field(not subfields) */ > for(var i=0,len=mandatoriesfields.length; i<len; i++){ >- isempty = true; >- arr = mandatoriesfields[i]; >- divid = "tag_" + arr[0] + "_" + arr[1]; >- varegexp = new RegExp("^tag_" + arr[0] + "_code_"); >- >- if(parseInt(arr[0]) >= 10){ >- elem = document.getElementById(divid); >- eleminputs = elem.getElementsByTagName('input'); >- >- for(var j=0,len2=eleminputs.length; j<len2; j++){ >- >- if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){ >- inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]); >- >- for( var k=0; k<len2; k++){ >- if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){ >- isempty = false >- } >- } >- >- elemselect = elem.getElementsByTagName('select'); >- for( var k=0; k<elemselect.length; k++){ >- if(elemselect[k].id.match(inputregexp) && elemselect[k].value){ >- isempty = false >- } >- } >- } >- } >- >- elemtextareas = elem.getElementsByTagName('textarea'); >- for(var j=0,len2=elemtextareas.length; j<len2; j++){ >+ isempty = true; >+ arr = mandatoriesfields[i]; >+ divid = "tag_" + arr[0] + "_" + arr[1]; >+ varegexp = new RegExp("^tag_" + arr[0] + "_code_"); >+ >+ if(parseInt(arr[0]) >= 10){ >+ elem = document.getElementById(divid); >+ eleminputs = elem.getElementsByTagName('input'); >+ >+ for(var j=0,len2=eleminputs.length; j<len2; j++){ >+ >+ if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){ >+ inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]); >+ >+ for( var k=0; k<len2; k++){ >+ if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){ >+ isempty = false >+ } >+ } >+ >+ elemselect = elem.getElementsByTagName('select'); >+ for( var k=0; k<elemselect.length; k++){ >+ if(elemselect[k].id.match(inputregexp) && elemselect[k].value){ >+ isempty = false >+ } >+ } >+ } >+ } >+ >+ elemtextareas = elem.getElementsByTagName('textarea'); >+ for(var j=0,len2=elemtextareas.length; j<len2; j++){ > // this bit assumes that the only textareas in this context would be for subfields > if (elemtextareas[j].value) { > isempty = false; > } > } >- }else{ >- isempty = false; >- } >- >- if(isempty){ >- flag = 1; >- StrAlert += _("\t* Field ") + arr[0] + _(" is mandatory, at least one of its subfields must be filled.") + "\n"; >- } >- >+ }else{ >+ isempty = false; >+ } >+ >+ if(isempty){ >+ flag = 1; >+ StrAlert += _("\t* Field ") + arr[0] + _(" is mandatory, at least one of its subfields must be filled.") + "\n"; >+ } >+ > } > > if(flag){ >- return StrAlert; >- } else { >- return flag; >- } >+ return StrAlert; >+ } else { >+ return flag; >+ } > } > > /** >@@ -259,10 +263,10 @@ function Changefwk(FwkList) { > <script type="text/javascript"> > //<![CDATA[ > (function() { >- // configuring the loading mask >- YAHOO.widget.Loading.config({ >- opacity: 0.8 >- }); >+ // configuring the loading mask >+ YAHOO.widget.Loading.config({ >+ opacity: 0.8 >+ }); > })(); > //]]> > </script> >@@ -310,21 +314,21 @@ function Changefwk(FwkList) { > [% ELSE %] > <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();"> > <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" /> >- <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" /> >+ <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" /> > [% END %] >- >+ > <div id="toolbar"> > > <script type="text/javascript"> >- //<![CDATA[ >+ //<![CDATA[ > >- // prepare DOM for YUI Toolbar >+ // prepare DOM for YUI Toolbar > >- $(document).ready(function() { >+ $(document).ready(function() { > $('#toolbar').fixFloat(); >- $("#z3950searchc").empty(); >+ $("#z3950searchc").empty(); > $("#savebutton").empty(); >- yuiToolbar(); >+ yuiToolbar(); > > $("#marcDocsSelect").click(function(){ > if($(this).attr("checked")){ >@@ -333,7 +337,7 @@ function Changefwk(FwkList) { > hideMARCdocLinks(); > } > }); >- }); >+ }); > > function redirect(dest){ > $("#redirect").attr("value",dest); >@@ -350,9 +354,9 @@ function Changefwk(FwkList) { > ]; > [% END %] > >- // YUI Toolbar Functions >+ // YUI Toolbar Functions > >- function yuiToolbar() { >+ function yuiToolbar() { > [% IF ( CAN_user_editcatalogue_edit_items ) %] > var savesplitmenu = new YAHOO.widget.Button({ > type: "split", >@@ -373,36 +377,36 @@ function Changefwk(FwkList) { > onclick: {fn:function(){redirect("view");}} > }); > [% END %] >- new YAHOO.widget.Button({ >+ new YAHOO.widget.Button({ > id: "z3950search", > type: "button", > label: _("Z39.50 Search"), > container: "z3950searchc", > onclick: {fn:function(){if (confirm(_("Please note that this Z39.50 search could replace the current record."))) PopupZ3950()}} > }); >- } >- >- //]]> >- </script> >- >- <ul class="toolbar"> >- <li id="savebutton"><input id="addbiblio" type="submit" value="Save" /></li> >- <li id="z3950searchc"><input type="button" id="z3950search" value="Z39.50 Search" onclick="PopupZ3950(); return false;" /></li> >- <li id="changeframework"><label for="Frameworks">Change framework: </label> >- <select name="frameworkcode" id="Frameworks" onchange="Changefwk(this);"> >- <option value="Default">Default</option> >- [% FOREACH frameworkcodeloo IN frameworkcodeloop %] >+ } >+ >+ //]]> >+ </script> >+ >+ <ul class="toolbar"> >+ <li id="savebutton"><input id="addbiblio" type="submit" value="Save" /></li> >+ <li id="z3950searchc"><input type="button" id="z3950search" value="Z39.50 Search" onclick="PopupZ3950(); return false;" /></li> >+ <li id="changeframework"><label for="Frameworks">Change framework: </label> >+ <select name="frameworkcode" id="Frameworks" onchange="Changefwk(this);"> >+ <option value="Default">Default</option> >+ [% FOREACH frameworkcodeloo IN frameworkcodeloop %] > [% IF ( frameworkcodeloo.selected ) %] > <option value="[% frameworkcodeloo.value %]" selected="selected"> > [% ELSE %] > <option value="[% frameworkcodeloo.value %]"> > [% END %] >- [% frameworkcodeloo.frameworktext %] >+ [% frameworkcodeloo.frameworktext %] > </option> >- [% END %] >- </select> >+ [% END %] >+ </select> > <input type="hidden" name="op" value="addbiblio" /></li> >- </ul> >+ </ul> > </div> > > [% IF ( popup ) %] >@@ -420,11 +424,11 @@ function Changefwk(FwkList) { > </ul> > > [% FOREACH BIG_LOO IN BIG_LOOP %] >- <div id="tab[% BIG_LOO.number %]XX"> >+ <ul id="tab[% BIG_LOO.number %]XX" class="sortable_field"> > > [% FOREACH innerloo IN BIG_LOO.innerloop %] > [% IF ( innerloo.tag ) %] >- <div class="tag" id="tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]"> >+ <li class="tag" id="tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]"> > <div class="tag_title" id="div_indicator_tag_[% innerloo.tag %]_[% innerloo.index %][% innerloo.random %]"> > [% UNLESS hide_marc %] > [% IF advancedMARCEditor %] >@@ -504,10 +508,10 @@ function Changefwk(FwkList) { > </span> > > </div> >- >+ <ul class="sortable_subfield"> > [% FOREACH subfield_loo IN innerloo.subfield_loop %] > <!-- One line on the marc editor --> >- <div class="subfield_line" style="[% subfield_loo.visibility %]" id="subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]"> >+ <li class="subfield_line" style="[% subfield_loo.visibility %]" id="subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]"> > > [% UNLESS advancedMARCEditor %] > [% IF ( subfield_loo.fixedfield ) %]<label for="tag_[% subfield_loo.tag %]_subfield_[% subfield_loo.subfield %]_[% subfield_loo.index %]_[% subfield_loo.index_subfield %]" style="display:none;" class="labelsubfield"> >@@ -518,9 +522,9 @@ function Changefwk(FwkList) { > [% UNLESS hide_marc %] > <span class="subfieldcode"> > [% IF ( subfield_loo.fixedfield ) %] >- <img class="buttonUp" style="display:none;" src="/intranet-tmpl/prog/img/up.png" onclick="upSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]')" alt="Move Up" title="Move Up" /> >+ <img class="buttonUp" style="display:none;" src="/intranet-tmpl/prog/img/cursor_split_16.png" alt="Move Up" title="Move Up" /> > [% ELSE %] >- <img class="buttonUp" src="/intranet-tmpl/prog/img/up.png" onclick="upSubfield('subfield[% subfield_loo.tag %][% subfield_loo.subfield %][% subfield_loo.random %]')" alt="Move Up" title="Move Up" /> >+ <img class="buttonUp" src="/intranet-tmpl/prog/img/cursor_split_16.png" alt="Move Up" title="Move Up" /> > [% END %] > <input type="text" > title="[% subfield_loo.marc_lib_plain %]" >@@ -559,17 +563,16 @@ function Changefwk(FwkList) { > [% END %] > </span> > >- </div> >+ </li> > <!-- End of the line --> > [% END %] > >- </div> >- [% END %]<!-- if innerloo.tag --> >- [% END %]<!-- BIG_LOO.innerloop --> >- </div> >-[% END %]<!-- BIG_LOOP --> >- >-</div><!-- tabs --> >+ </ul> >+ [% END %]<!-- if innerloo.tag --> >+ [% END %]<!-- BIG_LOO.innerloop --> >+ </li> >+ [% END %]<!-- BIG_LOOP --> >+ </ul><!-- tabs --> > > <!-- Fields for fast add cataloguing --> > <input type="hidden" name="barcode" value="[% barcode %]" /> >diff --git a/koha-tmpl/intranet-tmpl/prog/img/cursor_split_16.png b/koha-tmpl/intranet-tmpl/prog/img/cursor_split_16.png >new file mode 100644 >index 0000000000000000000000000000000000000000..dc6d31da4d557a413f132153e916ee5dc18a0423 >GIT binary patch >literal 3206 >zcmd5<U5Fc16rNQqcDrqtib5;c>-5E+CiAzuNroib+5B`vyW2I*(tQxx$;{p4x|5mo >z&dnyf$W{~z1s~c~L@9^`A4PmnD5$hxWm}(o_Qe&YKDMO~g4(WUW|DNW8?{gnmu!+d >z_nhzh&bjBFdvk7P`tZ)deS;jw?JP`Yi|{$@{Xe-4-uK_#&^d0$EGf;gxv8V7;nbqK >z>6CG_Rjb21$0f&Gb=_FN43%+(*eU+jmsfa1%oKlObV{76XK<BFE>nDbdAejQFBl1v >zA5RY^TPgt5Fw;@1X4$UVO7T9f3g5lQ0*`zXwvggAj}XmG&7h1!F&c@=Q8{9WV+tBo >zqROZ|CXXCMvM9y{F(xQtM2f4DtV(gz{^QewC`rwEwV2Jf>0p%NtBloEL1;Fc(WVl0 >zXho0`iG(1^f-FbCBH}LDOm9VO_kafxU}UjtP*P{av5|+Vmz@Sn@jT3<Hh8`2FvqPr >z^)7|&wzCHL6S~ua6cvTAW1-HB5y*=dX4e<E3}2kfOd)LHyZhPe0RjK6Zx3%vuWw-l >z<Eg2CHm}us;9Ztmgm~Mz>r3F4mg-n2V%KR<1Lqd8%?^aaG>xu*y+JKMIMWcYg==8y >zf=H={5=0hBrOMo{TVGo0+XSB79IIM`RUPWiI4<$l462DTlqD1!%%Q%j2euiCO#;Dr >z6;S~x7M|A)9EC;OWSG?%24i@KI+sOBjEEAve5>#hsRf&1%L1;3ZXL$9x2$yn%oVB! >zm=K#f1@&&~O!rVja7sy*R7Fvxk(WhD6-6K2UoiC;#7b=4$~s2F%UL0t;$bFg5>u6x >z(R@CyWa3gjmd#00BBxCx#B5BA#kG85L<_+@qI<!1nQj}n!%l#GREx_a86~F0@^Ozn >zE=!r*$b_7U<&-fH;cq0A>`9WJNrz?}*lh+Y*z=CRnR;!AX3`8{ODTSa>Xioe!$4bY >zW(>!KEJ|ZyJ7axpGK>OFW*Hk*RK)d0*&;??yj)Eu)(M9~6I##@^(l$X;Ip)C-lv2F >zuZN&yu!57sh5B3a9|eu&I6fVWf}utHBp~E(I297(SFfutVl&X%nIe6b;h~BE)CAzo >zDu#{Gtz)?)iK-k|N2O5Vb&ZXxZdbgz7rZ|0)h!=H)^3oGCOngu<B}#S*@>WfwFLBa >zB`0c<JgQ9Ov%R5j5e_>>l2keI-wXfO!tYtmO~U(b^@qrKQt*zTPUR$pt+kaj4V4k- >zWT8saEY@3T-npe(u&mHUA|^DwhQ;`FZ@Hs+iZLPv9D6Qi0kK8esJ@I2Y*Ogq^c1*_ >z@@vopLmDRZO0R~r2i*(X*$C-w%j}&GMja%dHcaFZn-5Ow5P3&ww_^Jzpj0I;f)}f{ >z1D~f(4M7_Z9SjfB;(B?BqJ9!Pe7?lZl02D)ca}IbB(bxmU5RPU!Y$o4F-1p+3uonG >zKc<eG&lE=WSb_sGMAFgKCF!3Bzdw^j4A-w(&9PmiF-A$b;opI#9XsMZ$J8LYg{B>p >z#gr`S3>@5k5<8^6#E>MfF&6zJT%C3G3NB$<bN@eL|4v;HV(3-~l7nY(+k}g*(7oxx >zpnF%wHZ)KQH{tJ3e$s+l^j?;mW5=C&*3>EHf(vh<23aU#-CR0-11G^~t&r79tsly# >zJ{lH(e&^i_7tZ~9^X7-#wV{(&R=%EG9T*%OytA>faq{-9AIG0SyVlp&Tet81(HzRW >zU*CK6`t{4)2fO8=i|RAUw8)hQP@228>(Jxl=bxTjU0vO{b3=J$-;TG%vzIRYv@w3> >zzIf`JGaL86eQDRwtNF77%>jBazW&)S+;fS2YmbR9-hHdOef##6)txh?(x1DJBoAF# >z8Q!z!_hYLAS3kb^#(SSXHTm7q{pr^)Ute4MjjIm7kcfS?a&P(hu?9D=jnnU+J+D6d >S#jN-9p^%%-emZgL&A$L4Jm=T| > >literal 0 >HcmV?d00001 > >-- >1.7.2.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 7882
:
13184
|
13556
|
13789
|
14202
|
14908
|
18024
|
18025
|
18026
|
18027
|
22835
|
22836
|
23517
|
23521
|
23984
|
24227
|
24228
|
94638
|
94837
|
96344
|
96352
|
96384
|
96541
|
96542
|
96633
|
96634
|
96635