mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-24 08:53:37 +01:00
* Api: allow to upload and use custom web-fonts for EGroupware and the rich-text editor (TinyMCE)
This commit is contained in:
parent
13c68e92df
commit
2a822ea0a8
@ -269,6 +269,8 @@ currently: admin de Aktuell:
|
|||||||
custom 1 admin de Benutzerdefiniert 1
|
custom 1 admin de Benutzerdefiniert 1
|
||||||
custom 2 admin de Benutzerdefiniert 2
|
custom 2 admin de Benutzerdefiniert 2
|
||||||
custom 3 admin de Benutzerdefiniert 3
|
custom 3 admin de Benutzerdefiniert 3
|
||||||
|
custom egroupware bold web font as woff2 file admin de Eigener EGroupware Bold Web-Font als woff2 Datei
|
||||||
|
custom egroupware web font as woff2 file admin de Eigener EGroupware Web-Font als woff2 Datei
|
||||||
custom fields admin de Benutzerdefinierte Felder
|
custom fields admin de Benutzerdefinierte Felder
|
||||||
custom fields tab admin de Benutzerdefinierte Felder Tab
|
custom fields tab admin de Benutzerdefinierte Felder Tab
|
||||||
custom translation admin de Eigene Übersetzung
|
custom translation admin de Eigene Übersetzung
|
||||||
|
@ -269,6 +269,8 @@ currently: admin en Currently:
|
|||||||
custom 1 admin en Custom 1
|
custom 1 admin en Custom 1
|
||||||
custom 2 admin en Custom 2
|
custom 2 admin en Custom 2
|
||||||
custom 3 admin en Custom 3
|
custom 3 admin en Custom 3
|
||||||
|
custom egroupware bold web font as woff2 file admin en Custom EGroupware Bold web font as woff2 file
|
||||||
|
custom egroupware web font as woff2 file admin en Custom EGroupware web font as woff2 file
|
||||||
custom fields admin en Custom fields
|
custom fields admin en Custom fields
|
||||||
custom fields tab admin en custom fields tab
|
custom fields tab admin en custom fields tab
|
||||||
custom translation admin en Custom translation
|
custom translation admin en Custom translation
|
||||||
|
@ -77,7 +77,7 @@
|
|||||||
<template id="admin.config.appearance" template="" lang="" group="0" version="18.1">
|
<template id="admin.config.appearance" template="" lang="" group="0" version="18.1">
|
||||||
<grid width="100%" class="admin-config egwGridView_grid">
|
<grid width="100%" class="admin-config egwGridView_grid">
|
||||||
<columns>
|
<columns>
|
||||||
<column width="70%"/>
|
<column width="50%"/>
|
||||||
<column/>
|
<column/>
|
||||||
</columns>
|
</columns>
|
||||||
<rows>
|
<rows>
|
||||||
@ -89,14 +89,16 @@
|
|||||||
<et2-description value="Upload your logo or enter the URL" label="%s:"></et2-description>
|
<et2-description value="Upload your logo or enter the URL" label="%s:"></et2-description>
|
||||||
<et2-vbox>
|
<et2-vbox>
|
||||||
<et2-select-thumbnail id="newsettings[login_logo_file]" width="100%" allowFreeEntries="true"></et2-select-thumbnail>
|
<et2-select-thumbnail id="newsettings[login_logo_file]" width="100%" allowFreeEntries="true"></et2-select-thumbnail>
|
||||||
<file onchange="egw.json('admin.admin_config.ajax_upload_anon_images',[widget.get_value(), []], function(_data){widget._parent._children[0].set_value(_data)}).sendRequest()" width="100%" label="upload"/>
|
<file width="100%" label="upload" accept="svg,png,jpeg,jpg"
|
||||||
|
onchange="egw.json('admin.admin_config.ajax_upload_anon_images',[widget.get_value(), []], function(_data){widget._parent._children[0].set_value(_data)}).sendRequest()"/>
|
||||||
</et2-vbox>
|
</et2-vbox>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<et2-description value="Upload your header logo or enter the URL (leave it empty if it is the same as login logo)" label="%s:"></et2-description>
|
<et2-description value="Upload your header logo or enter the URL (leave it empty if it is the same as login logo)" label="%s:"></et2-description>
|
||||||
<et2-vbox>
|
<et2-vbox>
|
||||||
<et2-select-thumbnail id="newsettings[login_logo_header]" width="100%" allowFreeEntries="true"></et2-select-thumbnail>
|
<et2-select-thumbnail id="newsettings[login_logo_header]" width="100%" allowFreeEntries="true"></et2-select-thumbnail>
|
||||||
<file onchange="egw.json('admin.admin_config.ajax_upload_anon_images',[widget.get_value(), []], function(_data){widget._parent._children[0].set_value(_data)}).sendRequest()" width="100%" label="upload"/>
|
<file width="100%" label="upload" accept="svg,png,jpeg,jpg"
|
||||||
|
onchange="egw.json('admin.admin_config.ajax_upload_anon_images',[widget.get_value(), []], function(_data){widget._parent._children[0].set_value(_data)}).sendRequest()"/>
|
||||||
</et2-vbox>
|
</et2-vbox>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
@ -114,14 +116,15 @@
|
|||||||
</et2-vbox>
|
</et2-vbox>
|
||||||
<et2-vbox>
|
<et2-vbox>
|
||||||
<et2-select-thumbnail id="newsettings[login_background_file]" width="100%" allowFreeEntries="true" multiple="true" placeholder="Upload your background image or enter the URL"></et2-select-thumbnail>
|
<et2-select-thumbnail id="newsettings[login_background_file]" width="100%" allowFreeEntries="true" multiple="true" placeholder="Upload your background image or enter the URL"></et2-select-thumbnail>
|
||||||
<file width="100%" label="upload" onchange="app.admin.login_background_update"/>
|
<file accept="svg,png,jpeg,jpg" width="100%" label="upload" onchange="app.admin.login_background_update"/>
|
||||||
</et2-vbox>
|
</et2-vbox>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<et2-description value="Upload your favicon or enter the URL" label="%s:"></et2-description>
|
<et2-description value="Upload your favicon or enter the URL" label="%s:"></et2-description>
|
||||||
<et2-vbox>
|
<et2-vbox>
|
||||||
<et2-select-thumbnail id="newsettings[favicon_file]" multiple="true"></et2-select-thumbnail>
|
<et2-select-thumbnail id="newsettings[favicon_file]" multiple="true"></et2-select-thumbnail>
|
||||||
<file width="100%" label="upload" onchange="egw.json('admin.admin_config.ajax_upload_anon_images',[widget.get_value(), []], function(_data){widget._parent._children[0].set_value(_data)}).sendRequest()"/>
|
<file accept="svg,png,ico" width="100%" label="upload"
|
||||||
|
onchange="egw.json('admin.admin_config.ajax_upload_anon_images',[widget.get_value(), []], function(_data){widget._parent._children[0].set_value(_data)}).sendRequest()"/>
|
||||||
</et2-vbox>
|
</et2-vbox>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
@ -143,6 +146,22 @@
|
|||||||
<et2-description value="Applications available on mobile devices" label="%s:"></et2-description>
|
<et2-description value="Applications available on mobile devices" label="%s:"></et2-description>
|
||||||
<et2-select-app id="newsettings[fw_mobile_app_list]" multiple="true" other=",enabled:home;groupdav;sitemgr-link;sitemgr;developer_tools;etemplate;stylite;archive;importexport;activesync;notifications;esyncpro;preferences;registration" width="100%"></et2-select-app>
|
<et2-select-app id="newsettings[fw_mobile_app_list]" multiple="true" other=",enabled:home;groupdav;sitemgr-link;sitemgr;developer_tools;etemplate;stylite;archive;importexport;activesync;notifications;esyncpro;preferences;registration" width="100%"></et2-select-app>
|
||||||
</row>
|
</row>
|
||||||
|
<row>
|
||||||
|
<et2-description value="Custom EGroupware web font as woff2 file" label="%s:"></et2-description>
|
||||||
|
<et2-vbox>
|
||||||
|
<et2-url id="newsettings[font_face_url]" allowPath="true"></et2-url>
|
||||||
|
<file width="100%" label="upload" accept="woff2"
|
||||||
|
onchange="egw.json('admin.admin_config.ajax_upload_anon_images',[widget.get_value(), []], function(_data){widget._parent._children[0].set_value(_data)}).sendRequest()"/>
|
||||||
|
</et2-vbox>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<et2-description value="Custom EGroupware Bold web font as woff2 file" label="%s:"></et2-description>
|
||||||
|
<et2-vbox>
|
||||||
|
<et2-url id="newsettings[font_face_url2]" allowPath="true"></et2-url>
|
||||||
|
<file width="100%" label="upload" accept="woff2"
|
||||||
|
onchange="egw.json('admin.admin_config.ajax_upload_anon_images',[widget.get_value(), []], function(_data){widget._parent._children[0].set_value(_data)}).sendRequest()"/>
|
||||||
|
</et2-vbox>
|
||||||
|
</row>
|
||||||
</rows>
|
</rows>
|
||||||
</grid>
|
</grid>
|
||||||
</template>
|
</template>
|
||||||
|
@ -31,7 +31,7 @@ function send_image()
|
|||||||
|
|
||||||
if (!file_exists($path) || empty($_GET['src']) ||
|
if (!file_exists($path) || empty($_GET['src']) ||
|
||||||
basename($_GET['src']) !== $_GET['src'] || // make sure no directory traversal
|
basename($_GET['src']) !== $_GET['src'] || // make sure no directory traversal
|
||||||
!preg_match('/^[a-z 0-9._-]+\.(jpe?g|png|gif|svg|ico)$/i', $_GET['src']) || // only allow images, not eg. Javascript!
|
!preg_match('/^[a-z 0-9._-]+\.(jpe?g|png|gif|svg|ico|woff2)$/i', $_GET['src']) || // only allow images, not eg. Javascript!
|
||||||
!file_exists($path .= '/' . $_GET['src']) ||
|
!file_exists($path .= '/' . $_GET['src']) ||
|
||||||
!($fp = fopen($path, 'r')))
|
!($fp = fopen($path, 'r')))
|
||||||
{
|
{
|
||||||
|
@ -42,6 +42,7 @@ export default [sl_css, css`
|
|||||||
:root,
|
:root,
|
||||||
:host,
|
:host,
|
||||||
.sl-theme-light {
|
.sl-theme-light {
|
||||||
|
--sl-font-sans: egroupware, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
|
||||||
--sl-button-font-size-medium: var(--sl-font-size-medium);
|
--sl-button-font-size-medium: var(--sl-font-size-medium);
|
||||||
--sl-input-help-text-font-size-medium: var(--sl-font-size-medium);
|
--sl-input-help-text-font-size-medium: var(--sl-font-size-medium);
|
||||||
--sl-spacing-small: 0.1rem;
|
--sl-spacing-small: 0.1rem;
|
||||||
|
@ -280,7 +280,9 @@ export class et2_htmlarea extends et2_editableWidget implements et2_IResizeable
|
|||||||
"Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,"+
|
"Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,"+
|
||||||
"monaco;Times New Roman=times new roman,times;Trebuchet "+
|
"monaco;Times New Roman=times new roman,times;Trebuchet "+
|
||||||
"MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;"+
|
"MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;"+
|
||||||
"Wingdings=wingdings,zapf dingbats",
|
"Wingdings=wingdings,zapf dingbats;"+
|
||||||
|
"EGroupware=egroupware,arial,helvetica,sans-serif;"+
|
||||||
|
"EGroupware Bold=egroupware2,arial black,avant garde",
|
||||||
fontsize_formats: '8pt 10pt 12pt 14pt 18pt 24pt 36pt',
|
fontsize_formats: '8pt 10pt 12pt 14pt 18pt 24pt 36pt',
|
||||||
content_css: egw.webserverUrl+'/api/tinymce.php?'+ // use the 3 prefs as cache-buster
|
content_css: egw.webserverUrl+'/api/tinymce.php?'+ // use the 3 prefs as cache-buster
|
||||||
btoa(egw.preference('rte_font', 'common')+'::'+
|
btoa(egw.preference('rte_font', 'common')+'::'+
|
||||||
|
@ -44,7 +44,9 @@ class HtmlArea extends Etemplate\Widget
|
|||||||
'Trebuchet MS, Helvetica, sans-serif' => 'Trebuchet MS',
|
'Trebuchet MS, Helvetica, sans-serif' => 'Trebuchet MS',
|
||||||
'Verdana, Geneva, sans-serif' => 'Verdana',
|
'Verdana, Geneva, sans-serif' => 'Verdana',
|
||||||
'webdings' => 'Webdings',
|
'webdings' => 'Webdings',
|
||||||
'wingdings,zapf dingbats' => 'Wingdings'
|
'wingdings,zapf dingbats' => 'Wingdings',
|
||||||
|
'egroupware,arial,helvetica,sans-serif' => 'EGroupware',
|
||||||
|
'egroupware2,arial black,avant garde' => 'EGroupware Bold',
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -199,7 +201,7 @@ class HtmlArea extends Etemplate\Widget
|
|||||||
$font_size = ($GLOBALS['egw_info']['user']['preferences']['common']['rte_font_size'] ?? '10').
|
$font_size = ($GLOBALS['egw_info']['user']['preferences']['common']['rte_font_size'] ?? '10').
|
||||||
($GLOBALS['egw_info']['user']['preferences']['common']['rte_font_unit'] ?? 'pt');
|
($GLOBALS['egw_info']['user']['preferences']['common']['rte_font_unit'] ?? 'pt');
|
||||||
|
|
||||||
return <<<EOF
|
return \pixelegg_framework::web_fonts().<<<EOF
|
||||||
/**
|
/**
|
||||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||||
* Licensed under the LGPL or a commercial license.
|
* Licensed under the LGPL or a commercial license.
|
||||||
|
@ -40,9 +40,10 @@ class ContentSecurityPolicy
|
|||||||
'connect-src' => null, // NOT array(), to call the hook
|
'connect-src' => null, // NOT array(), to call the hook
|
||||||
'frame-src' => null, // NOT array(), to call the hook
|
'frame-src' => null, // NOT array(), to call the hook
|
||||||
'manifest-src'=> ["'self'"],
|
'manifest-src'=> ["'self'"],
|
||||||
'frame-ancestors' => ["'self'"], // does not allow to frame (embed in frameset) other then self / clickjacking protection
|
'frame-ancestors' => ["'self'"], // does not allow to frame (embed in frameset) other than self / clickjacking protection
|
||||||
'media-src' => ["data:"],
|
'media-src' => ["data:"],
|
||||||
'img-src' => ["data:", "https:", "blob:"],
|
'img-src' => ["data:", "https:", "blob:"],
|
||||||
|
'font-src' => ["'self'"],
|
||||||
'default-src' => ["'none'"], // disallows all not explicit set sources!
|
'default-src' => ["'none'"], // disallows all not explicit set sources!
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1184,7 +1184,7 @@ option:checked {
|
|||||||
/* Component containers
|
/* Component containers
|
||||||
----------------------------------*/
|
----------------------------------*/
|
||||||
.ui-widget {
|
.ui-widget {
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 1.1em;
|
font-size: 1.1em;
|
||||||
}
|
}
|
||||||
.ui-widget .ui-widget {
|
.ui-widget .ui-widget {
|
||||||
@ -1194,7 +1194,7 @@ option:checked {
|
|||||||
.ui-widget select,
|
.ui-widget select,
|
||||||
.ui-widget textarea,
|
.ui-widget textarea,
|
||||||
.ui-widget button {
|
.ui-widget button {
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
.ui-widget-content {
|
.ui-widget-content {
|
||||||
@ -1886,7 +1886,7 @@ div#loginMainDiv.stockLoginBackground div#divAppIconBar div#divLogo div.login_lo
|
|||||||
div#loginMainDiv.stockLoginBackground div#divAppIconBar div#loginScreenMessage {
|
div#loginMainDiv.stockLoginBackground div#divAppIconBar div#loginScreenMessage {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: white;
|
color: white;
|
||||||
font-family: arial, helvetica, sans-serif;
|
font-family: egroupware, arial, helvetica, sans-serif;
|
||||||
}
|
}
|
||||||
div#loginMainDiv.stockLoginBackground div#centerBox form {
|
div#loginMainDiv.stockLoginBackground div#centerBox form {
|
||||||
border: 1px solid gray;
|
border: 1px solid gray;
|
||||||
@ -2982,7 +2982,7 @@ div.client_error_log tr td.stack > div {
|
|||||||
body,
|
body,
|
||||||
textarea,
|
textarea,
|
||||||
button {
|
button {
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
}
|
}
|
||||||
#egw_fw_basecontainer {
|
#egw_fw_basecontainer {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
@ -2990,7 +2990,7 @@ button {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
}
|
}
|
||||||
input {
|
input {
|
||||||
@ -5813,7 +5813,7 @@ button.image_button {
|
|||||||
-moz-appearance: none;
|
-moz-appearance: none;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
@ -7126,6 +7126,12 @@ table.egwGridView_grid img.et2_appicon {
|
|||||||
#egw_fw_header #egw_fw_topmenu #egw_fw_topmenu_items ul a#topmenu_acl {
|
#egw_fw_header #egw_fw_topmenu #egw_fw_topmenu_items ul a#topmenu_acl {
|
||||||
background-image: url(../../api/templates/default/images/topmenu_items/access.svg);
|
background-image: url(../../api/templates/default/images/topmenu_items/access.svg);
|
||||||
}
|
}
|
||||||
|
#egw_fw_header #egw_fw_topmenu #egw_fw_topmenu_items ul a#topmenu_useraccount {
|
||||||
|
background-image: url(../../api/templates/default/images/accounts.svg);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 18px;
|
||||||
|
background-position-x: -2px;
|
||||||
|
}
|
||||||
#egw_fw_header #egw_fw_topmenu #egw_fw_topmenu_items ul a#topmenu_calls {
|
#egw_fw_header #egw_fw_topmenu #egw_fw_topmenu_items ul a#topmenu_calls {
|
||||||
background-image: url(../../api/templates/default/images/phone.svg);
|
background-image: url(../../api/templates/default/images/phone.svg);
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
@ -1164,7 +1164,7 @@ option:checked {
|
|||||||
/* Component containers
|
/* Component containers
|
||||||
----------------------------------*/
|
----------------------------------*/
|
||||||
.ui-widget {
|
.ui-widget {
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 1.1em;
|
font-size: 1.1em;
|
||||||
}
|
}
|
||||||
.ui-widget .ui-widget {
|
.ui-widget .ui-widget {
|
||||||
@ -1174,7 +1174,7 @@ option:checked {
|
|||||||
.ui-widget select,
|
.ui-widget select,
|
||||||
.ui-widget textarea,
|
.ui-widget textarea,
|
||||||
.ui-widget button {
|
.ui-widget button {
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
.ui-widget-content {
|
.ui-widget-content {
|
||||||
@ -1866,7 +1866,7 @@ div#loginMainDiv.stockLoginBackground div#divAppIconBar div#divLogo div.login_lo
|
|||||||
div#loginMainDiv.stockLoginBackground div#divAppIconBar div#loginScreenMessage {
|
div#loginMainDiv.stockLoginBackground div#divAppIconBar div#loginScreenMessage {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: white;
|
color: white;
|
||||||
font-family: arial, helvetica, sans-serif;
|
font-family: egroupware, arial, helvetica, sans-serif;
|
||||||
}
|
}
|
||||||
div#loginMainDiv.stockLoginBackground div#centerBox form {
|
div#loginMainDiv.stockLoginBackground div#centerBox form {
|
||||||
border: 1px solid gray;
|
border: 1px solid gray;
|
||||||
@ -2962,7 +2962,7 @@ div.client_error_log tr td.stack > div {
|
|||||||
body,
|
body,
|
||||||
textarea,
|
textarea,
|
||||||
button {
|
button {
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
}
|
}
|
||||||
#egw_fw_basecontainer {
|
#egw_fw_basecontainer {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
@ -2970,7 +2970,7 @@ button {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
}
|
}
|
||||||
input {
|
input {
|
||||||
@ -5793,7 +5793,7 @@ button.image_button {
|
|||||||
-moz-appearance: none;
|
-moz-appearance: none;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
|
@ -1174,7 +1174,7 @@ option:checked {
|
|||||||
/* Component containers
|
/* Component containers
|
||||||
----------------------------------*/
|
----------------------------------*/
|
||||||
.ui-widget {
|
.ui-widget {
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 1.1em;
|
font-size: 1.1em;
|
||||||
}
|
}
|
||||||
.ui-widget .ui-widget {
|
.ui-widget .ui-widget {
|
||||||
@ -1184,7 +1184,7 @@ option:checked {
|
|||||||
.ui-widget select,
|
.ui-widget select,
|
||||||
.ui-widget textarea,
|
.ui-widget textarea,
|
||||||
.ui-widget button {
|
.ui-widget button {
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
.ui-widget-content {
|
.ui-widget-content {
|
||||||
@ -1876,7 +1876,7 @@ div#loginMainDiv.stockLoginBackground div#divAppIconBar div#divLogo div.login_lo
|
|||||||
div#loginMainDiv.stockLoginBackground div#divAppIconBar div#loginScreenMessage {
|
div#loginMainDiv.stockLoginBackground div#divAppIconBar div#loginScreenMessage {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: white;
|
color: white;
|
||||||
font-family: arial, helvetica, sans-serif;
|
font-family: egroupware, arial, helvetica, sans-serif;
|
||||||
}
|
}
|
||||||
div#loginMainDiv.stockLoginBackground div#centerBox form {
|
div#loginMainDiv.stockLoginBackground div#centerBox form {
|
||||||
border: 1px solid gray;
|
border: 1px solid gray;
|
||||||
@ -2972,7 +2972,7 @@ div.client_error_log tr td.stack > div {
|
|||||||
body,
|
body,
|
||||||
textarea,
|
textarea,
|
||||||
button {
|
button {
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
}
|
}
|
||||||
#egw_fw_basecontainer {
|
#egw_fw_basecontainer {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
@ -2980,7 +2980,7 @@ button {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
}
|
}
|
||||||
input {
|
input {
|
||||||
@ -5803,7 +5803,7 @@ button.image_button {
|
|||||||
-moz-appearance: none;
|
-moz-appearance: none;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
|
@ -109,6 +109,9 @@ class pixelegg_framework extends Api\Framework\Ajax
|
|||||||
{
|
{
|
||||||
$loginbox_color = $color_darker;
|
$loginbox_color = $color_darker;
|
||||||
}
|
}
|
||||||
|
// custom web-font
|
||||||
|
$ret['app_css'] .= self::web_fonts();
|
||||||
|
|
||||||
//always set header logo used in sharing regardless of custom color being set
|
//always set header logo used in sharing regardless of custom color being set
|
||||||
$header = !empty($GLOBALS['egw_info']['server']['login_logo_header']) ? Api\Framework::get_login_logo_or_bg_url('login_logo_header', 'logo')
|
$header = !empty($GLOBALS['egw_info']['server']['login_logo_header']) ? Api\Framework::get_login_logo_or_bg_url('login_logo_header', 'logo')
|
||||||
: Api\Framework::get_login_logo_or_bg_url('login_logo_file', 'logo');
|
: Api\Framework::get_login_logo_or_bg_url('login_logo_file', 'logo');
|
||||||
@ -122,8 +125,10 @@ class pixelegg_framework extends Api\Framework\Ajax
|
|||||||
";
|
";
|
||||||
$textsize = $GLOBALS['egw_info']['user']['preferences']['common']['textsize'] ?? '12';
|
$textsize = $GLOBALS['egw_info']['user']['preferences']['common']['textsize'] ?? '12';
|
||||||
$ret['app_css'] .= "
|
$ret['app_css'] .= "
|
||||||
:root, :host, body {
|
:root, :host, body, input {
|
||||||
font-size: {$textsize}px;
|
font-size: {$textsize}px;
|
||||||
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
|
||||||
|
Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
|
||||||
}
|
}
|
||||||
";
|
";
|
||||||
if (!empty($textsize) && is_numeric($textsize) && $textsize != '12')
|
if (!empty($textsize) && is_numeric($textsize) && $textsize != '12')
|
||||||
@ -224,6 +229,33 @@ body #egw_fw_sidebar #egw_fw_sidemenu .egw_fw_ui_category_active{background-colo
|
|||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return CSS to load and define our custom web-fonts as font-family: egroupware(2)
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public static function web_fonts()
|
||||||
|
{
|
||||||
|
$css = '';
|
||||||
|
// custom web-font
|
||||||
|
foreach([
|
||||||
|
'egroupware' => $GLOBALS['egw_info']['server']['font_face_url'] ?? null,
|
||||||
|
'egroupware2' => $GLOBALS['egw_info']['server']['font_face_url2'] ?? null,
|
||||||
|
] as $family => $url)
|
||||||
|
{
|
||||||
|
if ($url)
|
||||||
|
{
|
||||||
|
$css .= '
|
||||||
|
@font-face {
|
||||||
|
font-family: '.$family.';
|
||||||
|
src: url("'.htmlspecialchars(is_array($url) ? array_shift($url) : $url).'") format("woff2");
|
||||||
|
}
|
||||||
|
';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $css;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* displays a login screen
|
* displays a login screen
|
||||||
*
|
*
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
// Schriften
|
// Schriften
|
||||||
|
|
||||||
.basefontfamily{
|
.basefontfamily{
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
||||||
Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
|
Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
|
||||||
"Segoe UI Symbol";
|
"Segoe UI Symbol";
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ div#loginMainDiv.stockLoginBackground {
|
|||||||
div#loginScreenMessage {
|
div#loginScreenMessage {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: white;
|
color: white;
|
||||||
font-family: arial, helvetica, sans-serif;
|
font-family: egroupware, arial, helvetica, sans-serif;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
div#centerBox form {
|
div#centerBox form {
|
||||||
|
@ -1195,7 +1195,7 @@ option:checked {
|
|||||||
/* Component containers
|
/* Component containers
|
||||||
----------------------------------*/
|
----------------------------------*/
|
||||||
.ui-widget {
|
.ui-widget {
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 1.1em;
|
font-size: 1.1em;
|
||||||
}
|
}
|
||||||
.ui-widget .ui-widget {
|
.ui-widget .ui-widget {
|
||||||
@ -1205,7 +1205,7 @@ option:checked {
|
|||||||
.ui-widget select,
|
.ui-widget select,
|
||||||
.ui-widget textarea,
|
.ui-widget textarea,
|
||||||
.ui-widget button {
|
.ui-widget button {
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
.ui-widget-content {
|
.ui-widget-content {
|
||||||
@ -1897,7 +1897,7 @@ div#loginMainDiv.stockLoginBackground div#divAppIconBar div#divLogo div.login_lo
|
|||||||
div#loginMainDiv.stockLoginBackground div#divAppIconBar div#loginScreenMessage {
|
div#loginMainDiv.stockLoginBackground div#divAppIconBar div#loginScreenMessage {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: white;
|
color: white;
|
||||||
font-family: arial, helvetica, sans-serif;
|
font-family: egroupware, arial, helvetica, sans-serif;
|
||||||
}
|
}
|
||||||
div#loginMainDiv.stockLoginBackground div#centerBox form {
|
div#loginMainDiv.stockLoginBackground div#centerBox form {
|
||||||
border: 1px solid gray;
|
border: 1px solid gray;
|
||||||
@ -2993,7 +2993,7 @@ div.client_error_log tr td.stack > div {
|
|||||||
body,
|
body,
|
||||||
textarea,
|
textarea,
|
||||||
button {
|
button {
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
}
|
}
|
||||||
#egw_fw_basecontainer {
|
#egw_fw_basecontainer {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
@ -3001,7 +3001,7 @@ button {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
}
|
}
|
||||||
input {
|
input {
|
||||||
@ -5824,7 +5824,7 @@ button.image_button {
|
|||||||
-moz-appearance: none;
|
-moz-appearance: none;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: egroupware, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
@ -6934,6 +6934,12 @@ span.egw_tutorial_title {
|
|||||||
#egw_fw_header #egw_fw_topmenu #egw_fw_topmenu_items ul a#topmenu_acl {
|
#egw_fw_header #egw_fw_topmenu #egw_fw_topmenu_items ul a#topmenu_acl {
|
||||||
background-image: url(../../api/templates/default/images/topmenu_items/access.svg);
|
background-image: url(../../api/templates/default/images/topmenu_items/access.svg);
|
||||||
}
|
}
|
||||||
|
#egw_fw_header #egw_fw_topmenu #egw_fw_topmenu_items ul a#topmenu_useraccount {
|
||||||
|
background-image: url(../../api/templates/default/images/accounts.svg);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 18px;
|
||||||
|
background-position-x: -2px;
|
||||||
|
}
|
||||||
#egw_fw_header #egw_fw_topmenu #egw_fw_topmenu_items ul a#topmenu_calls {
|
#egw_fw_header #egw_fw_topmenu #egw_fw_topmenu_items ul a#topmenu_calls {
|
||||||
background-image: url(../../api/templates/default/images/phone.svg);
|
background-image: url(../../api/templates/default/images/phone.svg);
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
@ -9500,4 +9506,3 @@ table.egwGridView_grid img.et2_appicon {
|
|||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*# sourceMappingURL=fw_mobile.css.map */
|
|
Loading…
Reference in New Issue
Block a user