Revision 392

Date:
2013/10/30 12:24:07
Author:
ahitrov
Revision Log:
Inline autocomplete bug fixes
Encode bug in structures saved in fields resolved. Now we can store hashes and lists without additional serialization
Files:

Legend:

 
Added
 
Removed
 
Modified
  • utf8/core/comps/contenido/ajax/document_search.html

     
    28 28 }
    29 29 $opts{$search_by} = $search_string;
    30 30 $opts{ilike} = 1;
    31 while ( my ($key, $val) = each %ARGS ) {
    32 next if $key =~ /^(class|table|min|term|show|search_by)$/;
    33 $opts{$key} = $val;
    34 }
    31 35 my $docs = $keeper->get_documents( %opts, return_mode => 'array_ref', light => 1, limit => 30 );
    32 36 if ( ref $docs eq 'ARRAY' && @$docs ) {
    33 37 @result = map { {id => $_->id, label => Encode::decode('utf-8', $_->$show), value => Encode::decode('utf-8', $_->$show)} } @$docs;
  • utf8/core/comps/contenido/components/section_browse.msn

     
    188 188 % $doc = $keeper->get_document_by_id( $document->$attr, %opts );
    189 189 % }
    190 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} || '' %>">
    191 <input type="text" class="<% 'autocomplete_'.$attr %>" id="<% 'autocomplete_'.$document->id.'_'.$attr %>" value="<% ref $doc ? $doc->name : '' %>"
    192 title="<% defined $document->$attr ? 'Значение: '.$document->$attr : '' %>"
    193 rel="<% 'update_'.$document->id.'_'.$attr %>" style="<% $col->{inline_width} ? 'width:'.$col->{inline_width}.'px;' : '' %> <% $col->{inline_style} || '' %>"
    194 old-value="<% ref $doc ? $doc->name : '' %>" onfocus="if ( )" onblur="">
    193 195 % } elsif ($col->{type} eq 'lookup') {
    194 196 % my %opts = %{ $col->{lookup_opts} };
    195 197 % delete $opts{search_by} if exists $opts{search_by};
  • utf8/core/lib/Contenido/Object.pm

     
    224 224 $virtual_fields{$attr} = 1;
    225 225 } else {
    226 226 #инициализируем из dump все кроме виртуальных свойств
    227 push @funct_exra_fields, "$attr=>(\$keeper->serialize_with eq 'json' ? Encode::encode('utf-8', \$dump->{$attr}, Encode::FB_HTMLCREF) : $func_start_encode\$dump->{$attr}$func_end_encode)";
    227 push @funct_exra_fields, "$attr=>(\$keeper->serialize_with eq 'json' ? (ref \$dump->{$attr} ? Data::Recursive::Encode->encode_utf8(\$dump->{$attr}) : Encode::encode('utf-8', \$dump->{$attr}, Encode::FB_HTMLCREF) ) : $func_start_encode\$dump->{$attr}$func_end_encode)";
    228 228 }
    229 229 }
    230 230 }

Небольшая справка по веткам

cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.

koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.

utf8 – актуальная ветка, заточенная под UTF-8.

Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.