mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-01 05:29:20 +03:00
Added: Plugin: Contacts suggestion from ldap
Added: Custom favicon setting + Small fixes
This commit is contained in:
parent
d6d19c99bf
commit
7312b2854b
25 changed files with 526 additions and 25 deletions
|
|
@ -175,6 +175,11 @@ END;
|
|||
public static function NormalizeCharset($sEncoding, $bAsciAsUtf8 = false)
|
||||
{
|
||||
$sEncoding = \strtolower($sEncoding);
|
||||
|
||||
$sEncoding = \preg_replace('/^iso8/', 'iso-8', $sEncoding);
|
||||
$sEncoding = \preg_replace('/^cp-([\d])/', 'cp$1', $sEncoding);
|
||||
$sEncoding = \preg_replace('/^windows?12/', 'windows-12', $sEncoding);
|
||||
|
||||
switch ($sEncoding)
|
||||
{
|
||||
case 'asci':
|
||||
|
|
@ -185,6 +190,8 @@ END;
|
|||
\MailSo\Base\Enumerations\Charset::ISO_8859_1;
|
||||
break;
|
||||
case 'unicode-1-1-utf-7':
|
||||
case 'unicode-1-utf-7':
|
||||
case 'unicode-utf-7':
|
||||
$sEncoding = \MailSo\Base\Enumerations\Charset::UTF_7;
|
||||
break;
|
||||
case 'utf8':
|
||||
|
|
|
|||
|
|
@ -1378,6 +1378,7 @@ class Actions
|
|||
'Title' => 'RainLoop Webmail',
|
||||
'LoadingDescription' => 'RainLoop',
|
||||
'LoadingDescriptionEsc' => 'RainLoop',
|
||||
'FaviconUrl' => '',
|
||||
'LoginDescription' => '',
|
||||
'LoginPowered' => true,
|
||||
'LoginLogo' => '',
|
||||
|
|
@ -1472,6 +1473,7 @@ class Actions
|
|||
|
||||
$aResult['Title'] = $oConfig->Get('webmail', 'title', '');
|
||||
$aResult['LoadingDescription'] = $oConfig->Get('webmail', 'loading_description', '');
|
||||
$aResult['FaviconUrl'] = $oConfig->Get('webmail', 'favicon_url', '');
|
||||
|
||||
if ($oPremProvider)
|
||||
{
|
||||
|
|
@ -3686,6 +3688,7 @@ class Actions
|
|||
|
||||
$this->setConfigFromParams($oConfig, 'Title', 'webmail', 'title', 'string');
|
||||
$this->setConfigFromParams($oConfig, 'LoadingDescription', 'webmail', 'loading_description', 'string');
|
||||
$this->setConfigFromParams($oConfig, 'FaviconUrl', 'webmail', 'favicon_url', 'string');
|
||||
|
||||
$this->setConfigFromParams($oConfig, 'TokenProtection', 'security', 'csrf_protection', 'bool');
|
||||
$this->setConfigFromParams($oConfig, 'EnabledPlugins', 'plugins', 'enable', 'bool');
|
||||
|
|
@ -7030,7 +7033,7 @@ class Actions
|
|||
|
||||
}
|
||||
|
||||
$aResult = \RainLoop\Utils::RemoveSuggestionsdDuplicates($aResult);
|
||||
$aResult = \RainLoop\Utils::RemoveSuggestionDuplicates($aResult);
|
||||
if ($iLimit < \count($aResult))
|
||||
{
|
||||
$aResult = \array_slice($aResult, 0, $iLimit);
|
||||
|
|
@ -7038,7 +7041,7 @@ class Actions
|
|||
|
||||
$this->Plugins()->RunHook('ajax.suggestions-post', array(&$aResult, $sQuery, $oAccount, $iLimit));
|
||||
|
||||
$aResult = \RainLoop\Utils::RemoveSuggestionsdDuplicates($aResult);
|
||||
$aResult = \RainLoop\Utils::RemoveSuggestionDuplicates($aResult);
|
||||
if ($iLimit < \count($aResult))
|
||||
{
|
||||
$aResult = \array_slice($aResult, 0, $iLimit);
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ class Application extends \RainLoop\Config\AbstractConfig
|
|||
|
||||
'title' => array('RainLoop Webmail', 'Text displayed as page title'),
|
||||
'loading_description' => array('RainLoop', 'Text displayed on startup'),
|
||||
'favicon_url' => array('', ''),
|
||||
|
||||
'theme' => array('Default', 'Theme used by default'),
|
||||
'allow_themes' => array(true, 'Allow theme selection on settings screen'),
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@ class Suggestions extends \RainLoop\Providers\AbstractProvider
|
|||
*/
|
||||
public function Process($oAccount, $sQuery, $iLimit = 20)
|
||||
{
|
||||
|
||||
$aSuggestions = array();
|
||||
if ($oAccount instanceof \RainLoop\Model\Account &&
|
||||
$this->IsActive() && \is_array($this->aDrivers) && 0 < \strlen($sQuery))
|
||||
|
|
@ -54,7 +53,7 @@ class Suggestions extends \RainLoop\Providers\AbstractProvider
|
|||
}
|
||||
}
|
||||
|
||||
$aResult = \RainLoop\Utils::RemoveSuggestionsdDuplicates($aSuggestions);
|
||||
$aResult = \RainLoop\Utils::RemoveSuggestionDuplicates($aSuggestions);
|
||||
|
||||
if ($iLimit < \count($aResult))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -235,14 +235,15 @@ class Service
|
|||
$bAppJsDebug = !!$this->oActions->Config()->Get('labs', 'use_app_debug_js', false);
|
||||
$bAppCssDebug = !!$this->oActions->Config()->Get('labs', 'use_app_debug_css', false);
|
||||
|
||||
$sFaviconUrl = (string) $this->oActions->Config()->Get('webmail', 'favicon_url', '');
|
||||
|
||||
$sStaticPrefix = \RainLoop\Utils::WebStaticPath();
|
||||
|
||||
$aData = array(
|
||||
'Language' => $sLanguage,
|
||||
'Theme' => $sTheme,
|
||||
'FaviconIcoLink' => $sStaticPrefix.'favicon.ico',
|
||||
'FaviconPngLink' => $sStaticPrefix.'favicon.png',
|
||||
'AppleTouchLink' => $sStaticPrefix.'apple-touch-icon.png',
|
||||
'FaviconPngLink' => $sFaviconUrl ? $sFaviconUrl : $sStaticPrefix.'favicon.png',
|
||||
'AppleTouchLink' => $sFaviconUrl ? '' : $sStaticPrefix.'apple-touch-icon.png',
|
||||
'AppCssLink' => $sStaticPrefix.'css/app'.($bAppCssDebug ? '' : '.min').'.css',
|
||||
'BootJsLink' => $sStaticPrefix.'js/min/boot.js',
|
||||
'ComponentsJsLink' => $sStaticPrefix.'js/'.($bAppJsDebug ? '' : 'min/').'components.js',
|
||||
|
|
@ -255,8 +256,8 @@ class Service
|
|||
|
||||
$aTemplateParameters = array(
|
||||
'{{BaseAppDataScriptLink}}' => ($bAdmin ? './?/AdminAppData/' : './?/AppData/'),
|
||||
'{{BaseAppFaviconIcoFile}}' => $aData['FaviconIcoLink'],
|
||||
'{{BaseAppFaviconPngFile}}' => $aData['FaviconPngLink'],
|
||||
'{{BaseAppFaviconPngLinkTag}}' => $aData['FaviconPngLink'] ? '<link rel="shortcut icon" href="'.$aData['FaviconPngLink'].'" type="image/png" />' : '',
|
||||
'{{BaseAppFaviconTouchLinkTag}}' => $aData['AppleTouchLink'] ? '<link rel="apple-touch-icon" href="'.$aData['AppleTouchLink'].'" type="image/png" />' : '',
|
||||
'{{BaseAppAppleTouchFile}}' => $aData['AppleTouchLink'],
|
||||
'{{BaseAppMainCssLink}}' => $aData['AppCssLink'],
|
||||
'{{BaseAppBootScriptLink}}' => $aData['BootJsLink'],
|
||||
|
|
|
|||
|
|
@ -613,7 +613,7 @@ class Utils
|
|||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function RemoveSuggestionsdDuplicates($aSuggestions)
|
||||
public static function RemoveSuggestionDuplicates($aSuggestions)
|
||||
{
|
||||
$aResult = array();
|
||||
|
||||
|
|
|
|||
|
|
@ -22,8 +22,7 @@
|
|||
<meta name="app-version" content="{{BaseVersion}}" id="rlAppVersion" />
|
||||
<title></title>
|
||||
<style>#rl-content{display:none;}</style>
|
||||
<link rel="shortcut icon" href="{{BaseAppFaviconPngFile}}" type="image/png" />
|
||||
<link rel="apple-touch-icon" href="{{BaseAppAppleTouchFile}}" type="image/png" />
|
||||
{{BaseAppFaviconPngLinkTag}}{{BaseAppFaviconTouchLinkTag}}
|
||||
<link type="text/css" rel="stylesheet" href="{{BaseAppMainCssLink}}" />
|
||||
<link type="text/css" rel="stylesheet" id="rlThemeLink" />
|
||||
<script data-cfasync="false" src="{{BaseAppBootScriptLink}}"></script>
|
||||
|
|
|
|||
|
|
@ -27,6 +27,20 @@
|
|||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<label class="control-label" data-i18n="TAB_BRANDING/LABEL_FAVICON_URL"></label>
|
||||
<div class="controls">
|
||||
<div data-bind="component: {
|
||||
name: 'Input',
|
||||
params: {
|
||||
value: faviconUrl,
|
||||
trigger: faviconUrl.trigger,
|
||||
placeholder: 'https://',
|
||||
size: 5
|
||||
}
|
||||
}"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<ul class="nav nav-tabs" data-bind="visible: !community">
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ LABEL_DETERMINE_USER_LANGUAGE = "Versuche Sprache des Benutzers zu ermitteln"
|
|||
LEGEND_BRANDING = "Branding"
|
||||
LABEL_PAGE_TITLE = "Seitentitel"
|
||||
LABEL_LOADING_DESCRIPTION = "Ladevorgang-Beschreibung"
|
||||
LABEL_FAVICON_URL = "Favicon"
|
||||
LEGEND_LOGIN = "Anmeldung"
|
||||
LABEL_LOGIN_LOGO = "Logo"
|
||||
LABEL_LOGIN_DESCRIPTION = "Beschreibung"
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ LABEL_DETERMINE_USER_LANGUAGE = "Try to determine user language"
|
|||
LEGEND_BRANDING = "Branding"
|
||||
LABEL_PAGE_TITLE = "Page Title"
|
||||
LABEL_LOADING_DESCRIPTION = "Loading Description"
|
||||
LABEL_FAVICON_URL = "Favicon"
|
||||
LEGEND_LOGIN = "Login"
|
||||
LABEL_LOGIN_LOGO = "Logo"
|
||||
LABEL_LOGIN_DESCRIPTION = "Description"
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ LABEL_DETERMINE_USER_LANGUAGE = "Prova a determinare la lingua dell'utente"
|
|||
LEGEND_BRANDING = "Personalizzazione"
|
||||
LABEL_PAGE_TITLE = "Titolo della pagina"
|
||||
LABEL_LOADING_DESCRIPTION = "Messaggio di caricamento"
|
||||
LABEL_FAVICON_URL = "Favicon"
|
||||
LEGEND_LOGIN = "Pagina di accesso"
|
||||
LABEL_LOGIN_LOGO = "Logo"
|
||||
LABEL_LOGIN_DESCRIPTION = "Descrizione"
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ LABEL_DETERMINE_USER_LANGUAGE = "Probeer gebruiker taal te bepalen"
|
|||
LEGEND_BRANDING = "Huisstijl"
|
||||
LABEL_PAGE_TITLE = "Pagina titel"
|
||||
LABEL_LOADING_DESCRIPTION = "Beschrijving tijdens laden"
|
||||
LABEL_FAVICON_URL = "Favicon"
|
||||
LEGEND_LOGIN = "Login scherm"
|
||||
LABEL_LOGIN_LOGO = "Logo"
|
||||
LABEL_LOGIN_DESCRIPTION = "Beschrijving"
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ LABEL_DETERMINE_USER_LANGUAGE = "Spróbuj określić język użytkownika"
|
|||
LEGEND_BRANDING = "Personalizacja"
|
||||
LABEL_PAGE_TITLE = "Tytuł strony:"
|
||||
LABEL_LOADING_DESCRIPTION = "Komunikat ład. strony:"
|
||||
LABEL_FAVICON_URL = "Favicon:"
|
||||
LEGEND_LOGIN = "Login"
|
||||
LABEL_LOGIN_LOGO = "Logo:"
|
||||
LABEL_LOGIN_DESCRIPTION = "Opis:"
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ LABEL_DETERMINE_USER_LANGUAGE = "Tentar determinar o idioma do usuário"
|
|||
LEGEND_BRANDING = "Personalização"
|
||||
LABEL_PAGE_TITLE = "Título da página"
|
||||
LABEL_LOADING_DESCRIPTION = "Descrição do 'carregando'"
|
||||
LABEL_FAVICON_URL = "Favicon"
|
||||
LEGEND_LOGIN = "Tela de Entrada"
|
||||
LABEL_LOGIN_LOGO = "Logo"
|
||||
LABEL_LOGIN_DESCRIPTION = "Descrição"
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ LABEL_DETERMINE_USER_LANGUAGE = "Пытаться определить язык
|
|||
LEGEND_BRANDING = "Брендинг"
|
||||
LABEL_PAGE_TITLE = "Название страницы"
|
||||
LABEL_LOADING_DESCRIPTION = "Описание при загрузке"
|
||||
LABEL_FAVICON_URL = "Иконка (favicon)"
|
||||
LEGEND_LOGIN = "Экран входа"
|
||||
LABEL_LOGIN_LOGO = "Логотип"
|
||||
LABEL_LOGIN_DESCRIPTION = "Описание"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue