• 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}} || '&nbsp;' %>\
    175 263 % } elsif ($col->{type} eq 'integer') {
    176 264 <td align="right"><% $document->{$col->{attr}} %>&nbsp;\
    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>