-
section_browse.msn
385 386 12 12 } 13 13 } 14 14 } 15 % if ( @inline_pickups ) { 16 $().ready(function() { 17 % foreach my $pickup ( @inline_pickups ) { 18 % my $lookup_opts = $pickup->{lookup_opts}; 19 % my $search_opts = join( '&', map { $_.'='.$lookup_opts->{$_} } keys %$lookup_opts ); 20 21 $('.autocomplete_<% $pickup->{attr} %>').autocomplete({ 22 minLength : 2, 23 source : '/contenido/ajax/document_search.html?<% $search_opts %>', 24 select : function( event, ui ) 25 { 26 var sStoreId = $(this).attr('rel'); 27 var item = ui.item; 28 // alert(mydump(item)); 29 $('#' + sStoreId).val( item.id ); 30 // $(this).val(item.label); 31 // alert( $('#' + sStoreId).val() ); 32 }, 33 change : function( event, ui ) 34 { 35 var sStoreId = $(this).attr('rel'); 36 var sValue = $(this).val(); 37 if ( sValue == '' ) { 38 $('#' + sStoreId).val(''); 39 } 40 } 41 }); 42 43 % } 44 }); 45 % } 46 47 48 function mydump(arr,level) { 49 var dumped_text = ""; 50 if(!level) level = 0; 51 52 var level_padding = ""; 53 for(var j=0;j<level+1;j++) level_padding += " "; 54 55 if(typeof(arr) == 'object') { 56 for(var item in arr) { 57 var value = arr[item]; 58 59 if(typeof(value) == 'object') { 60 dumped_text += level_padding + "'" + item + "' ...\n"; 61 dumped_text += mydump(value,level+1); 62 } else { 63 dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n"; 64 } 65 } 66 } else { 67 dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; 68 } 69 return dumped_text; 70 } 71 72 15 73 //--> 16 74 </script> 17 75 <form name="section_browse" action="sections.html" method="POST"> … … 123 181 % } 124 182 </select> 125 183 % } 184 % } elsif ($col->{type} eq 'pickup' || $col->{type} eq 'autocomplete') { 185 % my %opts = %{ $col->{lookup_opts} }; 186 % my $doc; 187 % if ( $document->$attr ) { 188 % $doc = $keeper->get_document_by_id( $document->$attr, %opts ); 189 % } 190 <td><input type="hidden" name="<% 'update_'.$document->id.'_'.$attr %>" id="<% 'update_'.$document->id.'_'.$attr %>" value="<% $document->$attr || '' %>"> 191 <input type="text" class="<% 'autocomplete_'.$attr %>" id="<% 'autocomplete_'.$document->id.'_'.$attr %>" value="<% ref $doc ? $doc->name : defined $document->$attr ? '['.$document->$attr.']' : '' %>" 192 rel="<% 'update_'.$document->id.'_'.$attr %>" style="<% $col->{inline_width} ? 'width:'.$col->{inline_width}.'px;' : '' %> <% $col->{inline_style} || '' %>"> 193 % } elsif ($col->{type} eq 'lookup') { 194 % my %opts = %{ $col->{lookup_opts} }; 195 % delete $opts{search_by} if exists $opts{search_by}; 196 % my $docs; 197 % if ( exists $lookup_elements{$col->{attr}} ) { 198 % $docs = $lookup_elements{$col->{attr}}; 199 % } else { 200 % $docs = $keeper->get_documents( %opts, return_mode => 'array_ref', names => 1 ); 201 % $lookup_elements{$col->{attr}} = $docs; 202 % } 203 % if ( ref $docs eq 'ARRAY' && @$docs ) { 204 <td><select name="<% 'update_'.$document->id.'_'.$attr %>" style="<% $col->{inline_width} ? 'width:'.$col->{inline_width}.'px;' : '' %> <% $col->{inline_style} || '' %>"> 205 <option value="<% $col->{allow_null} ? '' : 0 %>"></option> 206 % foreach my $case ( @$docs ) { 207 % my $selected = $case->[0] eq $document->$attr ? ' selected' : ''; 208 <option value="<% $case->[0] %>"<% $selected %>><% $case->[1] %> 209 % } 210 </select> 211 % } else { 212 <td><% $document->$attr %>\ 213 % } 126 214 % } 127 215 % 128 216 % } elsif ($col->{attr} eq 'class') { … … 174 262 <td nowrap align="right"><% $document->{$col->{attr}} || ' ' %>\ 175 263 % } elsif ($col->{type} eq 'integer') { 176 264 <td align="right"><% $document->{$col->{attr}} %> \ 177 % } elsif ($col->{type} eq 'lookup' || $col->{type} eq 'pickup') { 265 % } elsif ($col->{type} eq 'lookup' || $col->{type} eq 'pickup' || $col->{type} eq 'autocomplete') { 178 266 <td align="left">\ 179 267 % my $id = $document->{$col->{attr}}; 180 268 % if ($id) { … … 211 299 % } 212 300 % } 213 301 % if ( $inline_status || $delete_status ) { 214 <div style="text-align:right; padding:10px 0;"> 302 <div style="float:right; text-align:right; padding:5px 0 5px 10px; width:280px;"> 215 303 % if ( $inline_status ) { 216 304 <input type="submit" name="update" value="Сохранить изменения" class="input_btn"> 217 305 % } … … 220 308 % } 221 309 </div> 222 310 % } 311 % if ( $section->default_document_class || $section->default_table_class ) { 312 <div style="float:left; width:450px; padding:5px 0;"> 313 <& /contenido/components/inputs/parent.msn, name => 'tree', check => $section->id &> 314 <input type="submit" name="move" value="Перенести" class="input_btn"><input type="submit" name="link" value="Привязать" class="input_btn"> 315 </div> 316 % } 317 <br clear="all"> 223 318 </form> 224 319 <%args> 225 320 … … 243 338 my $params_unclassed = ref $filter eq 'HASH' ? join ('&', map { $_.'='.$filter->{$_} } grep { $_ ne 'class' } keys %$filter ) : ''; 244 339 my $params_unsection = ref $filter eq 'HASH' ? join ('&', map { $_.'='.$filter->{$_} } grep { $_ ne 's' } keys %$filter ) : ''; 245 340 341 my %lookup_elements; 342 my @inline_pickups = grep { exists $_->{inline} && ($_->{type} eq 'pickup' || $_->{type} eq 'autocomplete') } @$columns; 246 343 247 344 </%init>