move label of all addressbook selectboxes into all-label (eg. "All categories"), resize selectboxes via css automatic, fix borders of favorites and row-counter in nextmatch header

This commit is contained in:
Ralf Becker 2016-02-17 13:23:27 +00:00
parent abf7dcc0eb
commit 8637e1c41b
15 changed files with 113 additions and 137 deletions

View File

@ -5,7 +5,7 @@
* @link www.egroupware.org
* @author Cornelius Weiss <egw@von-und-zu-weiss.de>
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @copyright (c) 2005-14 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @copyright (c) 2005-16 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @copyright (c) 2005/6 by Cornelius Weiss <egw@von-und-zu-weiss.de>
* @package addressbook
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
@ -215,11 +215,12 @@ class addressbook_ui extends addressbook_bo
'order' => 'n_family', // IO name of the column to sort after (optional for the sortheaders)
'sort' => 'ASC', // IO direction of the sort: 'ASC' or 'DESC'
'col_filter' => array(), // IO array of column-name value pairs (optional for the filterheaders)
'filter_label' => lang('Addressbook'), // I label for filter (optional)
//'cat_id_label' => lang('Categories'),
//'filter_label' => lang('Addressbook'), // I label for filter (optional)
'filter' => '', // =All // IO filter, if not 'no_filter' => True
'filter_no_lang' => True, // I set no_lang for filter (=dont translate the options)
'no_filter2' => True, // I disable the 2. filter (params are the same as for filter)
'filter2_label' => lang('Distribution lists'), // IO filter2, if not 'no_filter2' => True
//'filter2_label'=> lang('Distribution lists'), // IO filter2, if not 'no_filter2' => True
'filter2' => '', // IO filter2, if not 'no_filter2' => True
'filter2_no_lang'=> True, // I set no_lang for filter2 (=dont translate the options)
'lettersearch' => true,
@ -251,7 +252,7 @@ class addressbook_ui extends addressbook_bo
$content['nm'] = array_merge($content['nm'],$state);
}
}
$sel_options['cat_id'] = array('' => lang('all'), '0' => lang('None'));
$sel_options['cat_id'] = array('' => lang('All categories'), '0' => lang('None'));
// Edit and delete list actions depends on permissions
if($this->get_lists(EGW_ACL_EDIT))
@ -270,7 +271,7 @@ class addressbook_ui extends addressbook_bo
egw_cache::setSession('addressbook','active_tid',$content['nm']['col_filter']['tid']);
if ($this->lists_available())
{
$sel_options['filter2'] = $this->get_lists(EGW_ACL_READ,array('' => lang('none')));
$sel_options['filter2'] = $this->get_lists(EGW_ACL_READ,array('' => lang('No distribution list')));
$sel_options['filter2']['add'] = lang('Add a new list').'...'; // put it at the end
}
if ($do_email)
@ -293,7 +294,7 @@ class addressbook_ui extends addressbook_bo
{
$content['nm']['header_left'] = 'addressbook.index.left';
}
$sel_options['filter'] = $sel_options['owner'] = $this->get_addressbooks(EGW_ACL_READ,lang('All'));
$sel_options['filter'] = $sel_options['owner'] = $this->get_addressbooks(EGW_ACL_READ, lang('All addressbooks'));
$sel_options['to'] = array(
'to' => 'To',
'cc' => 'Cc',

View File

@ -60,8 +60,10 @@ addressbook vcard import addressbook de Adressbuch per vCard-Format importieren
addressbook-fieldname addressbook de Adressbuch Feldname
addvcard addressbook de VCard hinzufügen
advanced search addressbook de Erweiterte Suche
all addressbooks addressbook de Alle Adressbücher
all contacts addressbook de Alle Kontakte
all in one field addressbook de Alle Kategorien in einem Feld ausgeben
all types addressbook de Alle Typen
allow members of following groups to edit contact-data of accounts addressbook de Erlaube Mitgliedern der folgenden Gruppen die Kontaktdaten von Benutzern zu bearbeiten
allow users to maintain their own account-data admin de Erlaube Benutzern ihre eigenen Benutzerdaten zu verwalten
alt. csv import addressbook de Alt. CSV Import
@ -348,6 +350,7 @@ new contact submitted by %1 at %2 addressbook de Neuer Kontakt eingetragen von %
new window opened to edit infolog for your selection addressbook de Es wird ein neues Fenster zum erstellen des Infolog Eintrags geöffnet
next date addressbook de Nächster Termin
no categories selected addressbook de keine Kategorien ausgewählt
no distribution list addressbook de Keine Verteilerliste
no fallback addressbook de Keine Ausweichlösung
no vcard addressbook de Keine VCard
number addressbook de Nummer
@ -396,7 +399,6 @@ region addressbook de Region
remove from distribution list addressbook de Von Verteilerliste löschen
remove selected contacts from distribution list addressbook de Ausgewählte Kontakte vom Verteiler löschen
removed from distribution list addressbook de vom Verteiler gelöscht
rename selected distribution list addressbook de Ausgewählte Verteilerliste hinzufügen
repetition addressbook de Wiederholung
replacements for inserting contacts into documents addressbook de Platzhalter für das Einfügen von Kontakten in Dokumente
required fields * addressbook de unbedingt auszufüllende Felder *

View File

@ -60,8 +60,10 @@ addressbook vcard import addressbook en Addressbook vCard import
addressbook-fieldname addressbook en Address book field name
addvcard addressbook en Add vCard
advanced search addressbook en Advanced search
all addressbooks addressbook en All addressbooks
all contacts addressbook en All contacts
all in one field addressbook en All in one field
all types addressbook en All types
allow members of following groups to edit contact-data of accounts addressbook en Allow members of following groups to edit contact-data of accounts
allow users to maintain their own account-data admin en Allow users to maintain their own account data
alt. csv import addressbook en Alt. CSV Import
@ -348,6 +350,7 @@ new contact submitted by %1 at %2 addressbook en New contact submitted by %1 at
new window opened to edit infolog for your selection addressbook en New window opened to edit InfoLog.
next date addressbook en Next date
no categories selected addressbook en No categories selected
no distribution list addressbook en No distribution list
no fallback addressbook en No fallback
no vcard addressbook en No vCard
number addressbook en Number

View File

@ -109,9 +109,24 @@ input.et2_radiobox {
.addressbookHooked .egwGridView_grid label>span.et2_link {
display: none;
}
/**
* adjust width of select-boxes in nextmatch
*/
#addressbook-index .filtersContainer {
position: absolute;
left: 288px;
right: 215px;
}
#addressbook-index .filtersContainer select {
width: 32%;
}
select#addressbook-index_col_filter\[tid\] {
width: 82px;
}
#addressbook-index_addressbook-index-row select{
float:right;
width: 200px;
}
#addressbook-index_favorite_wrapper {
top:-1px;
}
}

View File

@ -184,7 +184,7 @@
</template>
<template id="addressbook.index.right" template="" lang="" group="0" version="1.7.001">
<menulist>
<menupopup align="right" label="Type" id="col_filter[tid]" empty_label="All"/>
<menupopup align="right" id="col_filter[tid]" empty_label="All types"/>
</menulist>
</template>
<template id="addressbook.index" template="" lang="" group="0" version="1.9.002">

View File

@ -128,8 +128,23 @@ input.et2_radiobox {
.addressbookHooked .egwGridView_grid label > span.et2_link {
display: none;
}
/**
* adjust width of select-boxes in nextmatch
*/
#addressbook-index .filtersContainer {
position: absolute;
left: 288px;
right: 215px;
}
#addressbook-index .filtersContainer select {
width: 32%;
}
select#addressbook-index_col_filter\[tid\] {
width: 82px;
}
#addressbook-index_addressbook-index-row select {
float: right;
width: 200px;
}
#addressbook-index_favorite_wrapper {
top: -1px;

View File

@ -159,13 +159,13 @@ class etemplate_new extends etemplate_widget_template
// not sure if we want to handle it this way, thought otherwise we will have a few ajax request for each dialog fetching predefined selectboxes
$template = etemplate_widget_template::instance($this->name, $this->template_set, $this->version, $this->laod_via);
if (!$template) throw new egw_exception_assertion_failed("Template $this->name not instanciable! Maybe you forgot to rename template id.");
translation::add_app('etemplate');
$template->run('beforeSendToClient', array('', array('cont'=>$content)));
// some apps (eg. InfoLog) set app_header only in get_rows depending on filter settings
self::$request->app_header = $GLOBALS['egw_info']['flags']['app_header'];
// compile required translations translations
translation::add_app('etemplate');
$currentapp = $GLOBALS['egw_info']['flags']['currentapp'];
$langRequire = array('common' => array(), 'etemplate' => array()); // keep that order
foreach(translation::$loaded_apps as $l_app => $lang)

View File

@ -16,7 +16,9 @@
*
* $content[$id] = array( // I = value set by the app, 0 = value on return / output
* 'get_rows' => // I method/callback to request the data for the rows eg. 'notes.bo.get_rows'
* 'cat_id_label' => // I label for category (optional)
* 'filter_label' => // I label for filter (optional)
* 'filter2_label' => // I label for filter2 (optional)
* 'filter_help' => // I help-msg for filter (optional)
* 'no_filter' => True// I disable the 1. filter
* 'no_filter2' => True// I disable the 2. filter (params are the same as for filter)
@ -194,7 +196,7 @@ class etemplate_widget_nextmatch extends etemplate_widget
// Add 'All', if not already there
if(!$value['options-cat_id'][''] && !$value['options-cat_id'][0])
{
$value['options-cat_id'][''] = lang('all');
$value['options-cat_id'][''] = lang('All categories');
}
$value['options-cat_id'] += etemplate_widget_menupopup::typeOptions('select-cat', ',,'.$cat_app,$no_lang=true,false,$value['cat_id']);
etemplate_widget_menupopup::fix_encoded_options($value['options-cat_id']);

View File

@ -1483,7 +1483,7 @@ var et2_nextmatch = et2_DOMWidget.extend([et2_IResizeable, et2_IInput, et2_IPrin
* Set the currently displayed columns, without updating user's preference
*
* @param {string[]} column_list List of column names
* @param {boolean} trigger_update=false - explicitly trigger an update
* @param {boolean} trigger_update =false - explicitly trigger an update
*/
set_columns: function(column_list, trigger_update)
{
@ -2283,7 +2283,7 @@ var et2_nextmatch_header_bar = et2_DOMWidget.extend(et2_INextmatchHeader,
this.filter_div = jQuery(document.createElement("div"))
.addClass('filtersContainer')
.appendTo(this.row_div);
// Search
this.search_box = jQuery(document.createElement("div"))
.addClass('search')
@ -2340,7 +2340,7 @@ var et2_nextmatch_header_bar = et2_DOMWidget.extend(et2_INextmatchHeader,
// Add category
if(!settings.no_cat) {
settings.cat_id_label = egw.lang("Category");
if (typeof settings.cat_id_label == 'undefined') settings.cat_id_label = '';
this.category = this._build_select('cat_id', 'select-cat', settings.cat_id, true);
}
@ -2539,7 +2539,7 @@ var et2_nextmatch_header_bar = et2_DOMWidget.extend(et2_INextmatchHeader,
// Legacy: Add in 'All' option for cat_id, if not provided.
if(name == 'cat_id' && options != null && (typeof options[''] == 'undefined' && typeof options[0] != 'undefined' && options[0].value != ''))
{
widget_options.empty_label = this.egw().lang('All');
widget_options.empty_label = this.egw().lang('All categories');
}
// Create widget

View File

@ -44,6 +44,7 @@ advanced search etemplate de Erweiterte Suche
align etemplate de Ausrichtung
alignment of label and input-field in table-cell etemplate de Ausrichtung der Beschriftung und des Eingabefeldes in der Tabellenzelle
alignment of the v/hbox containing table-cell etemplate de Ausrichtung der die V/HBox enthaltenden Tabellenzelle
all categories etemplate de Alle Kategorien
all days etemplate de alle Tage
all operations save the template! etemplate de alle Operation speichern das Template!
all users etemplate de Alle Benutzer
@ -61,6 +62,7 @@ applies the changes to the given version of the template etemplate de übernimmt
as default etemplate de als Vorgabe
attach etemplate de Anhängen
attach file etemplate de Datei anhängen
automatically refresh list etemplate de Liste automatisch aktualisieren
baseline etemplate de Grundlinie
blurtext etemplate de blurText
border etemplate de Rand
@ -108,6 +110,7 @@ contains etemplate de enthalten
copy "%1" etemplate de "%1" kopieren
copy to clipboard etemplate de In die Zwischenablage kopieren
create a new table for the application etemplate de Neue Tabelle für die Anwendung anlegen
create link etemplate de Verkünpfung erstellen
creates an english ('en') langfile from label and helptexts (for application in name) etemplate de erzeugt eine englische ('en') Sprachdatei aus den Beschriftungen und Hilfetexten (für die Anwendung in Name)
creator preferences de Ersteller
css class for the table-tag etemplate de CSS class der Tabelle
@ -119,6 +122,7 @@ custom etemplate de Benutzerdefiniert
custom fields etemplate de Benutzerdefinierte Felder
custom javascript for onchange etemplate de Benutzerdefiniertes Javascript für onChange
cut etemplate de Ausschneiden
data type etemplate de Datentyp
date etemplate de Datum
date+time etemplate de Datum+Uhrzeit
day etemplate de Tag
@ -133,6 +137,8 @@ delete all selected etemplates, without further inquiry etemplate de löscht ALL
delete and cut save the template! etemplate de Löschen und Ausschneiden speichern das Template!
delete column etemplate de Spalte löschen
delete index etemplate de Index löschen
delete link etemplate de Verknüpfung löschen
delete link? etemplate de Verknüpfung löschen?
delete the spezified etemplate etemplate de löscht das angegebene eTemplate
delete this column etemplate de diese Spalte löschen
delete this etemplate etemplate de dieses eTemplate löschen
@ -202,7 +208,9 @@ field must not be empty !!! etemplate de Das Feld darf nicht leer sein !!!
file etemplate de Datei
file '%1' not found! etemplate de Datei '%1' nicht gefunden!
file contains more than one etemplate, last one is shown !!! etemplate de Datei enthält mehr als ein eTemplate, das letzte wird angezeigt !!!
file information etemplate de Datei Information
file is of wrong type (%1 != %2)! etemplate de Datei hat ungültigen Typ (%1 != %2)!
file too large. maximum %1 etemplate de Datei ist zu gross. Maximal %1
file writen etemplate de Datei geschrieben
fileupload etemplate de DateiUpload
first etemplate de Zuerst
@ -273,6 +281,7 @@ length for char+varchar, precisions int: 2, 4, 8 and float: 4, 8 etemplate de L
link etemplate de Verknüpfung
link target %1 not found! etemplate de Keine Verknüpfung zu %1 gefunden!
linkapps etemplate de VerknüpfungAnwendungen
linked etemplate de Verknüptf
linkentry etemplate de VerknüpfungEintrag
linklist etemplate de VerknüpfungListe
links and attached files preferences de Verknüpfungen zu anderen Datensätzen und angefügten Dateien
@ -283,6 +292,7 @@ list of files linked to the current record preferences de Liste der Dokumente, d
load this template into the editor etemplate de lädt diese Template zum Bearbeiten
loading etemplate de lade
maximum size for uploads filemanager de Maximale Größe beim Hochladen
maybe etemplate de Vieleicht
message ... etemplate de Nachricht ...
message prepared for sending. etemplate de Nachricht zum Versand vorbereitet.
message(s) send failed! etemplate de Senden der Nachricht(en) fehlgeschlagen!
@ -315,12 +325,14 @@ nextmatch filterheader etemplate de Nextmatch Filterkopf
nextmatch header etemplate de Nextmatch Spaltenkopf
nextmatch sortheader etemplate de Nextmatch Sortierkopf
no column to swap with !!! etemplate de Keine Spalte um damit zu tauschen !!!
no default set etemplate de Keine Vorgabe gesetzt
no file etemplate de keine Datei
no filename given or selected via browse... etemplate de kein Dateiname angegeben oder mit [Browse...] ausgewählt
no filters etemplate de Keine Filter
no matches found etemplate de Keine Treffer gefunden
no rights to export more than %1 entries! common de Sie haben keine Rechte mehr als %1 Einträge zu exportieren!
no row to swap with !!! etemplate de Keine Zeile um damit zu tauschen !!!
no suggestions etemplate de Keine Vorschläge
not null etemplate de NOT NULL
nothing etemplate de nichts
nothing found - try again !!! etemplate de Nichts gefunden - nochmal versuchen !!!
@ -353,6 +365,7 @@ precision etemplate de Genauigkeit
preference etemplate de Einstellung
primary key etemplate de Primary Key
primary key for the table, gets automaticaly indexed etemplate de Hauptindex (Primary Key) der Tabelle, wird automatisch indiziert
protocol is required etemplate de Protokoll wird benötigt
radiobutton etemplate de Radioknopf
read etemplate de Lesen
read a list of entries. etemplate de Liest eine Liste von Einträgen.
@ -396,6 +409,7 @@ select an table of the application etemplate de Tabelle der Anwendung auswählen
select application etemplate de Anwendung auswählen
select application to search etemplate de Anwendung zum Suchen auswählen
select category etemplate de Kategorie auswählen
select color etemplate de Farbe auswählen
select columns etemplate de Spalten auswählen
select country etemplate de Land auswählen
select day etemplate de Tag auswählen
@ -420,6 +434,7 @@ select which accounts to show etemplate de Benutzer zum Anzeigen auswählen
select which values to show etemplate de auswählen welche Werte angezeigt werden
select year etemplate de Jahr auswählen
selectbox etemplate de Auswahlbox
server error etemplate de Serverfehler
set as default etemplate de Als Vorgabe setzen
set these columns as the default etemplate de Speichern Sie diese Spaltenauswahl als Vorgabe
sets today as date etemplate de setzt heutiges Datum
@ -440,6 +455,7 @@ start new search for the above pattern etemplate de neue Suche für das obige Mu
su etemplate de So
submit form etemplate de Formular abschicken
submitbutton etemplate de Schaltfläche
sure etemplate de Sicher
swap etemplate de tauschen
swap widget with next one etemplate de tauscht das Widget mit dem nächsten
swap with next column etemplate de tauscht Spalte mit der nächsten
@ -510,6 +526,7 @@ xml-file to import etemplate de XML Datei zum Importieren
xslt template etemplate de XSLT Template
year etemplate de Jahr
you are not allowed to export more than %1 entries! common de Sie sind nicht berechtigt mehr als %1 Datensätze zu exportieren!
you can not choose more then %1 item(s)! etemplate de Sie dürfen nicht mehr als %1 Einträge auswählen!
you can respond by visiting: etemplate de Sie können unter dem folgenden Verweis antworten:
you need to select a file first! etemplate de Sie müssen zuerst eine Datei auswählen!
your code is incorrect !!! etemplate de Ihr Code ist nicht richtig!!!

View File

@ -7,7 +7,6 @@
%1 more... etemplate en %1 more...
%1 new etemplates imported for application '%2' etemplate en %1 new eTemplates imported for application '%2'
%1 not implemented for %2! etemplate en %1 not implemented for %2!
%1' han an invalid format !!! etemplate en %1' han an invalid format !!!
%1, duplicate id etemplate en %1, duplicate ID
%s disabled etemplate en %s disabled
%s needed etemplate en %s needed
@ -45,6 +44,7 @@ advanced search etemplate en Advanced search
align etemplate en Align
alignment of label and input-field in table-cell etemplate en Alignment of label and input field in table cell
alignment of the v/hbox containing table-cell etemplate en Alignment of the V/HBox containing table cell
all categories etemplate en All categories
all days etemplate en All days
all operations save the template! etemplate en All operations save the template!
all users etemplate en All users
@ -294,7 +294,6 @@ linkto etemplate en Link to
list of files linked to the current record preferences en List of files linked to the current record
load this template into the editor etemplate en Load template to the editor
loading etemplate en Loading
m etemplate en m
maximum size for uploads filemanager en Maximum upload size
maybe etemplate en Maybe
message ... etemplate en Message ...

View File

@ -1103,12 +1103,28 @@ div.message.floating {
margin-top: -20px;
border: none;
}
.nextmatch_header_row {
width: 100%;
padding-bottom: 5px;
}
.nextmatch_header .header_count {
padding: 0px 20px;
margin: 0px 6px 0px;
border: 1px solid #E0E0E0;
font-size: 150%;
text-align: center;
padding: 0px 10px;
margin: 1px 6px 1px;
height: 22px;
border: 1px solid silver;
text-align: center;
border-radius: 3px;
float: right;
position: relative;
}
.nextmatch_header .header_count span {
position: relative;
top: 4px;
font-size: 11px;
color: gray;
}
.nextmatch_header .et2_dropdown button {
border: 1px solid silver;
}
.nextmatch_header_row > select,.nextmatch_header_row > label > select {
max-width: 14%;
@ -1141,16 +1157,18 @@ div.message.floating {
/* Favorites */
.nextmatch_header div[id$=favorite_wrapper] {
margin-top: 6px;
position: relative;
margin-top: 6px;
position: relative;
}
#nm_favorites_popup_filters .filter_id,
#nm_favorites_popup_filters .filter_value {
width: 45%;
display: inline-block;
width: 45%;
display: inline-block;
}
.nextmatch_header ul.favorites {
min-width: 20ex;
min-width: 30ex;
border: 1px solid silver;
box-shadow: 6px 6px 9px gray;
}
.ui-fav-sortable-placeholder {
height: 24px;
@ -1646,6 +1664,7 @@ div.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset button {
background-color: #fafafa;
border: 1px solid silver;
border-radius: 3px;
padding-left: 5px;
}
.et2_toolbar button.toolbar_toggled, .et2_searchbox button.et2_button.toolbar_toggled {
background-color: white;

View File

@ -583,10 +583,6 @@
background-image: none;
background-color: transparent;
}
.et2_nextmatch .nextmatch_header_row {
padding-bottom: 6px;
width: 100%;
}
.et2_nextmatch > img {
width: 16px;
height: 16px;
@ -817,40 +813,6 @@
box-shadow: inset 1px 2px 1px rgba(0, 0, 0, 0.5);
background-color: #1aa200;
}
/*.et2_nextmatch .nextmatch_header > .filters {
border: 1px solid @gray_10;
background-color: @gray_20;
background-image: url(../images/header_overlay.png);
background-position: center;
background-repeat: repeat-x;
margin-bottom: 3px;
}*/
/*################################################################
*
* count
*
################################################################*/
.nextmatch_header .header_count {
position: relative;
top: 0;
height: 22px;
height: 24px;
border: 1px solid #E0E0E0;
float: right;
padding: 0 10px;
text-align: center;
font-size: 11px;
border: 1px solid rgba(0, 0, 0, 0.15);
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
color: #000000;
}
.nextmatch_header .header_count span {
font-size: 11px;
top: 4px;
position: relative;
}
/*################################################################
*
* Kategorien
@ -3711,11 +3673,11 @@ div#egwpopup_message {
height: auto;
}
.egw_fw_ui_app_header_container .egw_fw_ui_app_header {
padding: 7px 2px 6px 20px;
padding: 1px 0 0 0;
font-weight: normal;
color: #408dd2;
color: silver;
overflow: hidden;
line-height: 2em;
height: 15px;
}
.colselection.ui-widget-content {
width: 33%;

View File

@ -532,14 +532,6 @@ div.header_row_right{
background-color: transparent;
}
// complete nextmatch....Background color!
.et2_nextmatch .nextmatch_header_row
{
padding-bottom: 6px;
width: 100%;
}
// ALL images
.et2_nextmatch > img {.dimension_width_height_s;}
@ -720,52 +712,6 @@ div.header_row_right{
}
/*.et2_nextmatch .nextmatch_header > .filters {
border: 1px solid @gray_10;
background-color: @gray_20;
background-image: url(../images/header_overlay.png);
background-position: center;
background-repeat: repeat-x;
margin-bottom: 3px;
}*/
/*################################################################
*
* count
*
################################################################*/
.nextmatch_header .header_count {
position: relative;
top: 0;
height: 22px;
.dimension_height_m;
border: 1px solid #E0E0E0;
float: right;
padding: 0 10px;
text-align: center;
.fontsize_normal;
.border_normal;
.rounded (3px);
color: @gray_100;
// count number
span {
.fontsize_normal;
top: 4px;
position: relative;
}
}
/*################################################################
*
* Kategorien

View File

@ -67,21 +67,16 @@
border-color: @gray_30;
height: auto;
// Statusmeldung
// Meldung oberhalb iFrame
.egw_fw_ui_app_header {
padding: 7px 2px 6px 20px;
font-weight: normal;
color: @egw_color_2_d;
overflow: hidden;
line-height: 2em;
}
}
// Statusmeldung
// Meldung oberhalb iFrame
.egw_fw_ui_app_header {
padding: 1px 0 0 0;
font-weight: normal;
color: silver;
overflow: hidden;
height: 15px;
}
}
.colselection.ui-widget-content {
width: 33%;