Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c59e85c3

Von Moritz Bunkus vor mehr als 7 Jahren hinzugefügt

  • ID c59e85c3a7538b1279e25022a6cf431ca1dee700
  • Vorgänger 4fd03c00
  • Nachfolger b857a9fc

AreaInputTag: kleines Icon neben Input zum Umschalten auf Textarea

In Masken, in denen es keinen »Erneuern«-Button gab (neuer
Artikelcontroller), hatten die Benutzer*innen somit auch keine
Möglichkeit, aus dem normalen Input eine Textarea zu machen. Dies hier
ist nun eine manuelle Möglichkeit dafür.

Unterschiede anzeigen:

SL/Template/Plugin/L.pm
279 279
  my $maxrows = delete $attributes{max_rows};
280 280
  my $rows    = $::form->numtextrows($value, $cols, $maxrows, $minrows);
281 281

  
282
  return $rows > 1
283
    ? $self->textarea_tag($name, $value, %attributes, rows => $rows, cols => $cols)
284
    : $self->input_tag($name, $value, %attributes, size => $cols);
282
  $attributes{id} ||= _tag_id();
283
  my $id            = $attributes{id};
284

  
285
  return $self->textarea_tag($name, $value, %attributes, rows => $rows, cols => $cols) if $rows > 1;
286

  
287
  return '<span>'
288
    . $self->input_tag($name, $value, %attributes, size => $cols)
289
    . "<img src=\"image/edit-entry.png\" onclick=\"kivi.switch_areainput_to_textarea('${id}')\" style=\"margin-left: 2px;\">"
290
    . '</span>';
285 291
}
286 292

  
287 293
sub multiselect2side {
js/kivi.js
535 535

  
536 536
    return true;
537 537
  };
538

  
539
  ns.switch_areainput_to_textarea = function(id) {
540
    var $input = $('#' + id);
541
    if (!$input.length)
542
      return;
543

  
544
    var $area = $('<textarea></textarea>');
545

  
546
    $area.prop('rows', 3);
547
    $area.prop('cols', $input.prop('size') || 40);
548
    $area.prop('name', $input.prop('name'));
549
    $area.prop('id',   $input.prop('id'));
550
    $area.val($input.val());
551

  
552
    $input.parent().replaceWith($area);
553
    $area.focus();
554
  };
538 555
});
539 556

  
540 557
kivi = namespace('kivi');

Auch abrufbar als: Unified diff