diff --git a/skins/elastic/templates/includes/menu.html b/skins/elastic/templates/includes/menu.html
index 3cbf5daf3..352eeb58a 100644
--- a/skins/elastic/templates/includes/menu.html
+++ b/skins/elastic/templates/includes/menu.html
@@ -1,7 +1,7 @@
diff --git a/skins/elastic/templates/login.html b/skins/elastic/templates/login.html
index 17e8f5054..0279481da 100644
--- a/skins/elastic/templates/login.html
+++ b/skins/elastic/templates/login.html
@@ -3,7 +3,7 @@
-
+
diff --git a/skins/elastic/templates/messageprint.html b/skins/elastic/templates/messageprint.html
index 6d2135c62..7764d3f4f 100644
--- a/skins/elastic/templates/messageprint.html
+++ b/skins/elastic/templates/messageprint.html
@@ -1,6 +1,6 @@
-
+
diff --git a/skins/elastic/ui.js b/skins/elastic/ui.js
index 4fba2524f..b768ca81a 100644
--- a/skins/elastic/ui.js
+++ b/skins/elastic/ui.js
@@ -344,11 +344,6 @@ function rcube_elastic_ui()
// added after page load it also works there.
$('li.mailbox > a').on('mouseover', function() { rcube_webmail.long_subject_title_ex(this); });
});
-
- // Store default logo path if not already set
- if (!$('#logo').data('src-default')) {
- $('#logo').data('src-default', $('#logo').attr('src'));
- }
};
/**
@@ -788,6 +783,7 @@ function rcube_elastic_ui()
$('html').removeClass('dark-mode');
}
+ screen_logo(mode);
$('iframe').each(switch_iframe_color_mode);
};
@@ -1653,7 +1649,7 @@ function rcube_elastic_ui()
case 'large': screen_resize_large(); break;
}
- screen_resize_logo(mode);
+ screen_logo(mode);
screen_resize_headers();
// On iOS and Android the content frame height is never correct, fix it.
@@ -1698,13 +1694,27 @@ function rcube_elastic_ui()
}
};
- function screen_resize_logo(mode)
+ function screen_logo(mode)
{
- if (mode == 'phone' && $('#logo').data('src-small')) {
- $('#logo').attr('src', $('#logo').data('src-small'));
- }
- else {
- $('#logo').attr('src', $('#logo').data('src-default'));
+ var logos = rcmail.env.additional_logos;
+ if (logos) {
+ // Store default logo path if not already set
+ if (!$('#logo').data('src-default')) {
+ $('#logo').data('src-default', $('#logo').attr('src'));
+ }
+
+ if (mode == 'phone' && logos['small']) {
+ $('#logo').attr('src', logos['small']);
+ }
+ else if (mode == 'phone' && color_mode == 'dark' && logos['small-dark']) {
+ $('#logo').attr('src', logos['small-dark']);
+ }
+ else if (color_mode == 'dark' && logos['dark']) {
+ $('#logo').attr('src', logos['dark']);
+ }
+ else {
+ $('#logo').attr('src', $('#logo').data('src-default'));
+ }
}
}
diff --git a/skins/larry/templates/contactprint.html b/skins/larry/templates/contactprint.html
index b83dcc464..2f0083c36 100644
--- a/skins/larry/templates/contactprint.html
+++ b/skins/larry/templates/contactprint.html
@@ -7,7 +7,7 @@
-
+
diff --git a/skins/larry/templates/messageprint.html b/skins/larry/templates/messageprint.html
index 53916656a..815926c55 100644
--- a/skins/larry/templates/messageprint.html
+++ b/skins/larry/templates/messageprint.html
@@ -7,7 +7,7 @@
-
+
diff --git a/tests/Rcmail/OutputHtml.php b/tests/Rcmail/OutputHtml.php
index 2943acbd3..ee1562c01 100644
--- a/tests/Rcmail/OutputHtml.php
+++ b/tests/Rcmail/OutputHtml.php
@@ -46,6 +46,18 @@ class Rcmail_RcmailOutputHtml extends PHPUnit\Framework\TestCase
"*" => "img08",
));
+ $set_template->setValue($output, 'login');
+ $result = $get_template_logo->invokeArgs($output, array('favicon'));
+ $this->assertSame(null, $result);
+
+ $set_template->setValue($output, 'login');
+ $result = $get_template_logo->invokeArgs($output, array('favicon', 'template'));
+ $this->assertSame('img02', $result);
+
+ $set_template->setValue($output, 'login');
+ $result = $get_template_logo->invokeArgs($output, array('favicon', 'all'));
+ $this->assertSame('img02', $result);
+
$set_template->setValue($output, 'login');
$result = $get_template_logo->invokeArgs($output, array('small'));
$this->assertSame('img01', $result);
@@ -62,16 +74,32 @@ class Rcmail_RcmailOutputHtml extends PHPUnit\Framework\TestCase
$result = $get_template_logo->invokeArgs($output, array());
$this->assertSame('img08', $result);
- $set_template->setValue($output, 'mail');
- $result = $get_template_logo->invokeArgs($output, array('small'));
- $this->assertSame('img03', $result);
-
$set_template->setValue($output, '_test_');
$result = $get_template_logo->invokeArgs($output, array());
$this->assertSame('img08', $result);
+ $set_template->setValue($output, '_test_');
+ $result = $get_template_logo->invokeArgs($output, array('print'));
+ $this->assertSame('img07', $result);
+
+ $set_template->setValue($output, '_test_');
+ $result = $get_template_logo->invokeArgs($output, array('print', 'template'));
+ $this->assertSame('img07', $result);
+
$set_skin->setValue($output, 'larry');
+ $set_template->setValue($output, 'login');
+ $result = $get_template_logo->invokeArgs($output, array('favicon'));
+ $this->assertSame(null, $result);
+
+ $set_template->setValue($output, 'login');
+ $result = $get_template_logo->invokeArgs($output, array('favicon', 'template'));
+ $this->assertSame('img06', $result);
+
+ $set_template->setValue($output, 'login');
+ $result = $get_template_logo->invokeArgs($output, array('favicon', 'all'));
+ $this->assertSame('img04', $result);
+
$set_template->setValue($output, 'login');
$result = $get_template_logo->invokeArgs($output, array('small'));
$this->assertSame('img05', $result);
@@ -84,8 +112,24 @@ class Rcmail_RcmailOutputHtml extends PHPUnit\Framework\TestCase
$result = $get_template_logo->invokeArgs($output, array());
$this->assertSame('img04', $result);
+ $set_template->setValue($output, '_test_');
+ $result = $get_template_logo->invokeArgs($output, array('print', 'template'));
+ $this->assertSame('img07', $result);
+
+ $set_template->setValue($output, '_test_');
+ $result = $get_template_logo->invokeArgs($output, array('print'));
+ $this->assertSame('img07', $result);
+
$set_skin->setValue($output, '_test_');
+ $set_template->setValue($output, 'login');
+ $result = $get_template_logo->invokeArgs($output, array('favicon'));
+ $this->assertSame(null, $result);
+
+ $set_template->setValue($output, 'login');
+ $result = $get_template_logo->invokeArgs($output, array('print', 'template'));
+ $this->assertSame('img06', $result);
+
$set_template->setValue($output, 'login');
$result = $get_template_logo->invokeArgs($output, array('small'));
$this->assertSame('img05', $result);
@@ -98,10 +142,22 @@ class Rcmail_RcmailOutputHtml extends PHPUnit\Framework\TestCase
$result = $get_template_logo->invokeArgs($output, array('print'));
$this->assertSame('img07', $result);
+ $set_template->setValue($output, '_test_');
+ $result = $get_template_logo->invokeArgs($output, array('_test_'));
+ $this->assertSame(null, $result);
+
$set_template->setValue($output, '_test_');
$result = $get_template_logo->invokeArgs($output, array());
$this->assertSame('img08', $result);
+ $set_template->setValue($output, '_test_');
+ $result = $get_template_logo->invokeArgs($output, array('print', 'template'));
+ $this->assertSame('img07', $result);
+
+ $set_template->setValue($output, '_test_');
+ $result = $get_template_logo->invokeArgs($output, array('print'));
+ $this->assertSame('img07', $result);
+
$rcmail->config->set('skin_logo', array(
"elastic:login[small]" => "img09",
"elastic:login" => "img10",
@@ -137,6 +193,14 @@ class Rcmail_RcmailOutputHtml extends PHPUnit\Framework\TestCase
$result = $get_template_logo->invokeArgs($output, array('print'));
$this->assertSame('img15', $result);
+ $set_template->setValue($output, '_test_');
+ $result = $get_template_logo->invokeArgs($output, array('_test_', 'all'));
+ $this->assertSame('img16', $result);
+
+ $set_template->setValue($output, '_test_');
+ $result = $get_template_logo->invokeArgs($output, array('_test_', 'template'));
+ $this->assertSame(null, $result);
+
$set_template->setValue($output, '_test_');
$result = $get_template_logo->invokeArgs($output, array('_test_'));
$this->assertSame(null, $result);
@@ -144,6 +208,38 @@ class Rcmail_RcmailOutputHtml extends PHPUnit\Framework\TestCase
$set_template->setValue($output, '_test_');
$result = $get_template_logo->invokeArgs($output, array());
$this->assertSame('img16', $result);
+
+ $rcmail->config->set('skin_logo', array(
+ "elastic:[print]" => "img17",
+ "elastic:messageprint" => "img18",
+ "elastic:*" => "img19",
+ ));
+
+ $set_skin->setValue($output, 'elastic');
+
+ $set_template->setValue($output, 'login');
+ $result = $get_template_logo->invokeArgs($output, array('print'));
+ $this->assertSame('img17', $result);
+
+ $set_template->setValue($output, 'messageprint');
+ $result = $get_template_logo->invokeArgs($output, array('_test_', 'template'));
+ $this->assertSame('img18', $result);
+
+ $set_template->setValue($output, 'contactprint');
+ $result = $get_template_logo->invokeArgs($output, array('print', 'template'));
+ $this->assertSame('img17', $result);
+
+ $set_template->setValue($output, 'contactprint');
+ $result = $get_template_logo->invokeArgs($output, array('_test_', 'template'));
+ $this->assertSame(null, $result);
+
+ $set_template->setValue($output, 'contactprint');
+ $result = $get_template_logo->invokeArgs($output, array('_test_', 'all'));
+ $this->assertSame('img19', $result);
+
+ $set_template->setValue($output, 'contactprint');
+ $result = $get_template_logo->invokeArgs($output, array());
+ $this->assertSame('img19', $result);
}
/**