• section_browse_row.msn

    615 616  
    1 % unless ( $no_tr ) {
    1 2 <tr valign="top" id="row-<% $document->id %>">
    3 % }
    2 4 <td nowrap>\
    3 % if ($document_access == 2) {
    5 % if ($document_access == 2) {
    4 6 <input type="checkbox" class="common-check" name="<% 'delete_'.$document->id.'_id' %>">
    5 % } else {
    7 % } else {
    6 8 &nbsp;
    7 % }
    9 % }
    8 10 </td>
    9 11 %
    10 % for my $col (@$columns) {
    11 % my $attr = $col->{attr};
    12 % my $type = exists $col->{inline_type} ? $col->{inline_type} : $col->{type};
    13 % if ($attr eq '_sort_') {
    12 % for my $col (@$columns) {
    13 % my $attr = $col->{attr};
    14 % my $type = exists $col->{inline_type} ? $col->{inline_type} : $col->{type};
    15 % my $class_name = $document->class;
    16 % $class_name =~ s/:/-/g;
    17 % if ($attr eq '_sort_') {
    14 18 %
    15 19 <td width="20px"><% $document->{sorder} %>&nbsp;<a class="move-up" data-id="<% $document->id %>"
    16 20 href="document_move.html?id=<% $document->{id} %>&move=up&s=<% $id %><% $params_unsection ? '&'.$params_unsection : '' %>"><img
     
    18 22 href="document_move.html?id=<% $document->{id} %>&move=down&s=<% $id %><% $params_unsection ? '&'.$params_unsection : '' %>"><img
    19 23 src="/contenido/i/ico-down-9x10.gif" border=0 alt="Переместить документ на шаг вниз"></a>\
    20 24 %
    21 % } elsif ($attr eq 'dtime') {
    25 % } elsif ($attr eq 'dtime') {
    22 26 %
    23 27 <td nowrap><& "/contenido/components/show_dtime.msn", dtime=>$document->{dtime} &>\
    24 28 %
    25 % if ($document->{ctime} ne $document->{mtime}) {
    26 % my $colortime = '#c66';
    29 % if ($document->{ctime} ne $document->{mtime}) {
    30 % my $colortime = '#c66';
    27 31 %
    28 32 <div style="color:<% $colortime %>;"><& "/contenido/components/show_dtime.msn", dtime=>$document->{mtime} &></div>\
    29 33 %
    30 % }
    34 % }
    31 35 %
    32 % } elsif ($attr eq 'name') {
    36 % } elsif ($attr eq 'name') {
    33 37 %
    34 38 <td><span<% $document->contenido_status_style ? ' style="' . $document->contenido_status_style . '"' : '' %> class="<% $document->status ? '':'hiddensect' %>">\
    35 39 %
    36 % my $name=$document->name ? $document->name : 'Безымянный документ N'.$document->id;
    37 % if ($document_access == 2) {
    40 % my $name=$document->name ? $document->name : 'Безымянный документ N'.$document->id;
    41 % if ($document_access == 2) {
    38 42 %
    39 43 <a<% $document->contenido_status_style ? ' style="' . $document->contenido_status_style . '"' : '' %> href="document.html?id=<% $document->id %>&class=<% $document->class %><% $params_unclassed ? '&'.$params_unclassed : '' %>"><% $name | h %></a>\
    40 44 %
    41 % } else {
    45 % } else {
    42 46 %
    43 47 <% $name | h %>\
    44 48 %
    45 % }
    49 % }
    46 50 %
    47 51 </span>\
    48 52 %
    49 % } elsif ($attr eq 'id') {
    53 % } elsif ($attr eq 'id') {
    50 54 %
    51 55 <td><span class="<% $document->status ? '':'hiddensect' %>">\
    52 % if ($document_access == 2) {
    56 % if ($document_access == 2) {
    53 57 <a href="document.html?id=<% $document->id %>&class=<% $document->class %><% $params_unclassed ? '&'.$params_unclassed : '' %>"><% $document->id %>&nbsp;</a>\
    54 % } else {
    58 % } else {
    55 59 <% $document->id %>&nbsp;\
    56 % }
    60 % }
    57 61 </span>\
    58 62 %
    59 % } elsif ( exists $col->{inline} && $col->{inline} ) {
    60 % if ( $type =~ /^(string|integer|float)$/ && $col->{inline} ) {
    61 % my $style = $col->{inline_style} ? $col->{inline_style} : ($col->{type} =~ /^(integer|float)$/ ? 'text-align:right; ' : '' );
    62 % $style .= $col->{inline_width} ? ' width:'.$col->{inline_width}.'px; ' : ' width:65px; ';
    63 % } elsif ( exists $col->{inline} && $col->{inline} ) {
    64 % if ( $type =~ /^(string|integer|float)$/ && $col->{inline} ) {
    65 % my $style = $col->{inline_style} ? $col->{inline_style} : ($col->{type} =~ /^(integer|float)$/ ? 'text-align:right; ' : '' );
    66 % $style .= $col->{inline_width} ? ' width:'.$col->{inline_width}.'px; ' : ' width:65px; ';
    63 67 <td><input type="text" name="<% 'update_'.$document->id.'_'.$attr %>" value="<% $document->$attr |h %>" style="<% $style %>">
    64 % } elsif ($type eq 'checkbox') {
    65 % my $checked = $document->$attr ? ' checked' : '';
    68 % } elsif ($type eq 'checkbox') {
    69 % my $checked = $document->$attr ? ' checked' : '';
    66 70 <td align="center"><input type="checkbox" class="<% $attr %>-check" name="<% 'update_'.$document->id.'_'.$attr %>"<% $checked %>>
    67 % } elsif ($type eq 'text') {
    68 % my $style = $col->{inline_style} ? $col->{inline_style} : '';
    69 % $style .= $col->{inline_width} ? ' width:'.$col->{inline_width}.'px; ' : ' width:100px; ';
    70 % $style .= $col->{inline_height} ? ' width:'.$col->{inline_height}.'px; ' : ' height:70px; ';
    71 % my $value = $document->$attr;
    72 % for ( $value ) {
    73 % s/</&lt;/sgi;
    74 % s/>/&gt;/sgi;
    75 % }
    71 % } elsif ($type eq 'text') {
    72 % my $style = $col->{inline_style} ? $col->{inline_style} : '';
    73 % $style .= $col->{inline_width} ? ' width:'.$col->{inline_width}.'px; ' : ' width:100px; ';
    74 % $style .= $col->{inline_height} ? ' width:'.$col->{inline_height}.'px; ' : ' height:70px; ';
    75 % my $value = $document->$attr;
    76 % for ( $value ) {
    77 % s/</&lt;/sgi;
    78 % s/>/&gt;/sgi;
    79 % }
    76 80 <td><textarea name="<% 'update_'.$document->id.'_'.$attr %>" style="<% $style %>"><% $value %></textarea>
    77 % } elsif ($type eq 'select') {
    78 % my $options = {};
    79 % if ($toopi && (ref($toopi) eq 'HASH') && (exists($toopi->{$document->class}))) {
    80 % %{ $options } = %{ $toopi->{$document->class} };
    81 % }
    82 % my $values = $options->{$attr};
    81 % } elsif ($type eq 'select') {
    82 % my $options = {};
    83 % if ($toopi && (ref($toopi) eq 'HASH') && (exists($toopi->{$document->class}))) {
    84 % %{ $options } = %{ $toopi->{$document->class} };
    85 % }
    86 % my $values = $options->{$attr};
    83 87 <td><select name="<% 'update_'.$document->id.'_'.$attr %>" autocomplete="off">
    84 % if ( ref $values eq 'ARRAY' ) {
    85 % foreach my $val ( @$values ) {
    86 % my $selected = $val eq $document->$attr ? ' selected' : '';
    88 % if ( ref $values eq 'ARRAY' ) {
    89 % foreach my $val ( @$values ) {
    90 % my $selected = $val eq $document->$attr ? ' selected' : '';
    87 91 <option value="<% $val %>"<% $selected %>><% $val %>
    88 % }
    89 % }
    92 % }
    93 % }
    90 94 </select>
    91 % } elsif ($type eq 'status') {
    92 % my $cases = $col->{cases};
    93 % if ( ref $cases eq 'ARRAY' ) {
    95 % } elsif ($type eq 'status') {
    96 % my $cases = $col->{cases};
    97 % if ( ref $cases eq 'ARRAY' ) {
    94 98 <td><select name="<% 'update_'.$document->id.'_'.$attr %>" style="<% $col->{inline_width} ? 'width:'.$col->{inline_width}.'px;' : '' %> <% $col->{inline_style} || '' %>" autocomplete="off">
    95 % foreach my $case ( @$cases ) {
    96 % my $selected = $case->[0] eq $document->$attr ? ' selected' : '';
    99 % foreach my $case ( @$cases ) {
    100 % my $selected = $case->[0] eq $document->$attr ? ' selected' : '';
    97 101 <option value="<% $case->[0] %>"<% $selected %>><% $case->[1] %>
    98 % }
    102 % }
    99 103 </select>
    100 % }
    101 % } elsif ($type eq 'pickup' || $type eq 'autocomplete') {
    102 % my %opts = %{ $col->{lookup_opts} };
    103 % my $doc;
    104 % if ( $document->$attr ) {
    105 % $doc = $keeper->get_document_by_id( $document->$attr, %opts );
    106 % }
    104 % }
    105 % } elsif ($type eq 'pickup' || $type eq 'autocomplete') {
    106 % my %opts = %{ $col->{lookup_opts} };
    107 % my $doc;
    108 % if ( $document->$attr ) {
    109 % $doc = $keeper->get_document_by_id( $document->$attr, %opts );
    110 % }
    107 111 <td><input type="hidden" name="<% 'update_'.$document->id.'_'.$attr %>" id="<% 'update_'.$document->id.'_'.$attr %>" value="<% ($document->$attr || '') |h %>">
    108 112 <input type="text" class="<% 'autocomplete_'.$attr %>" id="<% 'autocomplete_'.$document->id.'_'.$attr %>" value="<% (ref $doc ? $doc->name : '') |h %>"
    109 113 title="<% defined $document->$attr ? 'Значение: '.$document->$attr : '' %>"
    110 114 rel="<% 'update_'.$document->id.'_'.$attr %>" style="<% $col->{inline_width} ? 'width:'.$col->{inline_width}.'px;' : '' %> <% $col->{inline_style} || '' %>"
    111 115 old-value="<% (ref $doc ? $doc->name : '') |h %>" onfocus="" onblur="">
    112 % } elsif ($type eq 'lookup') {
    113 % my %opts = %{ $col->{lookup_opts} };
    114 % delete $opts{search_by} if exists $opts{search_by};
    115 % my $docs;
    116 % if ( ref $lookup_elements eq 'HASH' && exists $lookup_elements->{$attr} ) {
    117 % $docs = $lookup_elements->{$attr};
    118 % } else {
    119 % $docs = $keeper->get_documents( %opts, return_mode => 'array_ref', names => 1 );
    120 % if ( ref $lookup_elements eq 'HASH' ) {
    121 % $lookup_elements->{$attr} = $docs;
    122 % }
    123 % }
    124 % if ( ref $docs eq 'ARRAY' && @$docs ) {
    116 % } elsif ($type eq 'lookup') {
    117 % my %opts = %{ $col->{lookup_opts} };
    118 % delete $opts{search_by} if exists $opts{search_by};
    119 % my $docs;
    120 % if ( ref $lookup_elements eq 'HASH' && exists $lookup_elements->{$attr} ) {
    121 % $docs = $lookup_elements->{$attr};
    122 % } else {
    123 % $docs = $keeper->get_documents( %opts, return_mode => 'array_ref', names => 1 );
    124 % if ( ref $lookup_elements eq 'HASH' ) {
    125 % $lookup_elements->{$attr} = $docs;
    126 % }
    127 % }
    128 % if ( ref $docs eq 'ARRAY' && @$docs ) {
    125 129 <td><select name="<% 'update_'.$document->id.'_'.$attr %>" style="<% $col->{inline_width} ? 'width:'.$col->{inline_width}.'px;' : '' %> <% $col->{inline_style} || '' %>" autocomplete="off">
    126 130 <option value="<% $col->{allow_null} ? '' : 0 %>"></option>
    127 % foreach my $case ( @$docs ) {
    128 % my $selected = $case->[0] eq $document->$attr ? ' selected' : '';
    131 % foreach my $case ( @$docs ) {
    132 % my $selected = $case->[0] eq $document->$attr ? ' selected' : '';
    129 133 <option value="<% $case->[0] %>"<% $selected %>><% $case->[1] %>
    130 % }
    134 % }
    131 135 </select>
    132 % } else {
    136 % } else {
    133 137 <td><% $document->$attr %><input type="hidden" name="<% 'update_'.$document->id.'_'.$attr %>" value="<% $document->$attr |h %>">\
    134 % }
    135 % } else {
    138 % }
    139 % } else {
    136 140 <td><% $document->$attr %><input type="hidden" name="<% 'update_'.$document->id.'_'.$attr %>" value="<% $document->$attr |h %>">\
    137 % }
    141 % }
    138 142 %
    139 % } elsif ($attr eq 'class') {
    143 % } elsif ($attr eq 'class') {
    140 144 %
    141 145 <td><% $document->class_name %>&nbsp;<font color="#999999">(<% $document->class %>)</font>\
    142 146 %
    143 % } elsif ($type eq 'datetime') {
    147 % } elsif ($type eq 'datetime') {
    144 148 %
    145 149 <td nowrap><& "/contenido/components/show_dtime.msn", dtime=>$document->{$attr} &>\
    146 150 %
    147 % } elsif ($attr eq '_act_') {
    151 % } elsif ($attr eq '_act_') {
    148 152 %
    149 153 <td nowrap>\
    150 % if ($document_access == 2) {
    154 % if ($document_access == 2) {
    151 155 %
    152 156 <a href="document.html?id=<% $document->id %>&class=<% $document->class %><% $params_unclassed ? '&'.$params_unclassed : '' %>" title="Редактировать документ"><img
    153 157 src="/contenido/i/actions/edit.gif" width="15" height="17" alt="Редактировать документ" align="absmiddle" border="0" hspace="1"></a>\
     
    155 159 src="/contenido/i/actions/copy.gif" width="15" height="17" alt="Копировать документ" align="absmiddle" border="0" hspace="1"></a>\
    156 160 <a href="confirm.html?id=<% $document->id %>&action=documents_deletion&from=<% $section->id %>&class=<% $document->class %><% $params_unclassed ? '&'.$params_unclassed : '' %>" title="Удалить документ"><img
    157 161 src="/contenido/i/actions/delete.gif" width="14" height="17" alt="Удалить документ" align="absmiddle" border="0" hspace="1"></a>\
    158 % if ( $document->status != 0 ) {
    159 <a href="document.html?deactivate=1&id=<% $document->id %>&class=<% $document->class %><% $params_unclassed ? '&'.$params_unclassed : '' %>" title="Скрыть/деактивировать документ"><img
    160 src="/contenido/i/actions/deactivate.gif" width="14" height="17" alt="Скрыть/деактивировать документ" align="absmiddle" border="0" hspace="1"></a>\
    161 % }
    162 % if ( $document->status != 1 ) {
    163 <a href="document.html?activate=1&id=<% $document->id %>&class=<% $document->class %><% $params_unclassed ? '&'.$params_unclassed : '' %>" title="Присвоить документу статус=1"><img
    164 src="/contenido/i/actions/activate.gif" width="14" height="17" alt="Присвоить документу статус=1" align="absmiddle" border="0" hspace="1"></a>\
    165 % }
    162 % if ( $document->status != 0 ) {
    163 <a href="document.html?deactivate=1&id=<% $document->id %>&class=<% $document->class %><% $params_unclassed ? '&'.$params_unclassed : '' %>"
    164 class="context-menu-<% $class_name %>" title="Статус документа" data-id="<% $document->id %>"><img
    165 src="/contenido/i/actions/activate.gif" width="14" height="17" alt="Документ активен" align="absmiddle" border="0" hspace="1"></a>\
    166 % } else {
    167 <a href="document.html?activate=1&id=<% $document->id %>&class=<% $document->class %><% $params_unclassed ? '&'.$params_unclassed : '' %>"
    168 class="context-menu-<% $class_name %>" title="Статус документа" data-id="<% $document->id %>"><img
    169 src="/contenido/i/actions/deactivate.gif" width="14" height="17" alt="Документ не активен" align="absmiddle" border="0" hspace="1"></a>\
    170 % }
    166 171 <br>\
    167 172 %
    168 % } else {
    173 % } else {
    169 174 &nbsp;\
    170 % }
    171 % if ( $inline_status ) {
    175 % }
    176 % if ( $inline_status ) {
    172 177 <input type="hidden" name="update_<% $document->id %>_class" value="<% $document->class %>">
    173 % }
    174 % if ( $delete_status ) {
    178 % }
    179 % if ( $delete_status ) {
    175 180 <input type="hidden" name="delete_<% $document->id %>_class" value="<% $document->class %>">
    176 % }
    181 % }
    177 182 %
    178 % } else {
    179 % my $attr = $attr;
    180 % if ($type eq 'date') {
    181 % my $date=$document->{$attr};
    182 % $date=~/(\d{4}-\d{2}-\d{2})/;
    183 % } else {
    184 % my $attr = $attr;
    185 % if ($type eq 'date') {
    186 % my $date=$document->{$attr};
    187 % $date=~/(\d{4}-\d{2}-\d{2})/;
    183 188 <td nowrap align="right"><% $1 || '&nbsp;' %>\
    184 % } elsif ($type eq 'datetime') {
    189 % } elsif ($type eq 'datetime') {
    185 190 <td nowrap align="right"><% $document->{$attr} || '&nbsp;' %>\
    186 % } elsif ($type eq 'integer') {
    191 % } elsif ($type eq 'integer') {
    187 192 <td align="right"><% $document->{$attr} %>&nbsp;\
    188 % } elsif ($type eq 'lookup' || $type eq 'pickup' || $type eq 'autocomplete') {
    193 % } elsif ($type eq 'lookup' || $type eq 'pickup' || $type eq 'autocomplete') {
    189 194 <td align="left">\
    190 % my $id = $document->{$attr};
    191 % if ($id) {
    192 % my ($doc)=$keeper->get_documents( ( ref($col->{lookup_opts}) ? %{$col->{lookup_opts}} : () ), id=>$id);
    193 % if ($doc) {
    195 % my $id = $document->{$attr};
    196 % if ($id) {
    197 % my ($doc)=$keeper->get_documents( ( ref($col->{lookup_opts}) ? %{$col->{lookup_opts}} : () ), id=>$id);
    198 % if ($doc) {
    194 199 <a href="document.html?id=<% $doc->id %>&class=<% $doc->class %><% $params_unclassed ? '&'.$params_unclassed : '' %>"><% $doc->name || $doc->id %></a>&nbsp;\
    195 % } else {
    200 % } else {
    196 201 <span class="hiddensect"><% $document->{$attr} %>???</span>\
    197 % }
    198 % } else {
    202 % }
    203 % } else {
    199 204 <span class="hiddensect">NULL</span>\
    200 % }
    201 % } elsif ($type eq 'checkbox') {
    205 % }
    206 % } elsif ($type eq 'checkbox') {
    202 207 <td align="center"><% $document->$attr ? '<img src="/contenido/i/checked-16x16.png" width="16" height="16">' : '&nbsp;' %>\
    203 % } elsif ($type eq 'status') {
    204 % my $status_map = ref $col->{cases} eq 'ARRAY' ? $col->{cases} : $keeper->default_status();
    205 % my ($doc_status) = grep { $_->[0] eq $document->{$attr} } @$status_map;
    206 % $doc_status ||= [$document->{$attr}, 'Неизвестный'];
    208 % } elsif ($type eq 'status') {
    209 % my $status_map = ref $col->{cases} eq 'ARRAY' ? $col->{cases} : $keeper->default_status();
    210 % my ($doc_status) = grep { $_->[0] eq $document->{$attr} } @$status_map;
    211 % $doc_status ||= [$document->{$attr}, 'Неизвестный'];
    207 212 <td nowrap><% $doc_status->[1].'('.$doc_status->[0].')' %>\
    208 % } else {
    213 % } else {
    209 214 <td><% defined($document->$attr) ? $document->$attr : '&nbsp;' %>\
    210 % }
    211 % }
    215 % }
    216 % }
    212 217 </td>
    213 218 %
    214 % } #- for @columns
    215 %
    219 % } #- for @columns
    220 % unless ( $no_tr ) {
    216 221 </tr>
    222 % }
    217 223 <%args>
    218 224
    225 $no_tr => undef
    219 226 $toopi => undef
    220 227 $filter => undef
    221 228 $document => undef