Restore auto-reply indicator in top toolbar

pull/218/head
Francis Lachapelle 2016-07-20 14:24:15 -04:00
parent 4a6bdffc5b
commit 793be51d14
6 changed files with 44 additions and 20 deletions

1
NEWS
View File

@ -5,6 +5,7 @@ Enhancements
- [web] improve action progress when login in or sending a message (#3765, #3761)
- [web] don't allow to send the message while an upload is in progress
- [web] notify when successfuly copied or moved some messages
- [web] restored indicator in the top banner when a vacation message (auto-reply) is active
Bug fixes
- [web] fixed refresh of addressbook when deleting one or many cards

View File

@ -518,15 +518,6 @@
return [ud language];
}
- (BOOL) userHasVacationEnabled
{
NSDictionary *vacationOptions;
vacationOptions = [[[context activeUser] userDefaults] vacationOptions];
return (vacationOptions && [[vacationOptions objectForKey: @"enabled"] boolValue]);
}
/* UserDefaults, UserSettings */
- (NSString *) _dictionaryWithKeys: (NSArray *) keys
fromSource: (SOGoDefaultsSource *) source

View File

@ -18,6 +18,11 @@
* Boston, MA 02111-1307, USA.
*/
#import <Foundation/NSDictionary.h>
#import <SOGo/SOGoSystemDefaults.h>
#import <SOGo/SOGoUser.h>
#import "UIxTopnavToolbar.h"
@implementation UIxTopnavToolbar
@ -48,4 +53,13 @@
return navButtonClick;
}
- (BOOL) userHasVacationEnabled
{
NSDictionary *vacationOptions;
vacationOptions = [[[context activeUser] userDefaults] vacationOptions];
return (vacationOptions && [[vacationOptions objectForKey: @"enabled"] boolValue]);
}
@end

View File

@ -49,6 +49,9 @@
var:ng-click="navButtonClick"
ng-href="{{activeUser.path.mail}}">
<md-icon>email</md-icon>
<var:if condition="userHasVacationEnabled">
<md-icon class="md-default-theme md-warn md-bg sg-icon--badge" label:aria-label="Vacation message is enabled">forward</md-icon>
</var:if>
<md-tooltip><var:string label:value="Mail"/></md-tooltip>
</md-button>
<md-button class="md-icon-button"

View File

@ -34,17 +34,17 @@
return result;
}
var fgDefault = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-fg']) + ' { color:{{value}};}'),
bgDefault = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-bg']) + ' { background-color:{{value}};}'),
bdrDefault = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-bdr']) + ' { border-color:{{value}};}'),
fgDefaultHue = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{hue}}','.md-fg']) + ' { color:{{value}};}'),
bgDefaultHue = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{hue}}','.md-bg']) + ' { background-color:{{value}};}'),
fgColor = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}','.md-fg']) + ' { color:{{value}};}'),
bgColor = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}','.md-bg']) + ' { background-color:{{value}}; color:{{contrast}}; }'),
bdrColor = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}','.md-bdr']) + ' { border-color:{{value}};}'),
fgHue = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}.md-{{hue}}','.md-fg']) + ' { color:{{value}};}'),
bgHue = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}.md-{{hue}}','.md-bg']) + ' { background-color:{{value}};}'),
customSheet = getStyleSheet(),
var fgDefault = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-fg']) + ' { color:{{value}};}'),
bgDefault = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-bg']) + ' { background-color:{{value}};}'),
bdrDefault = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-bdr']) + ' { border-color:{{value}};}'),
fgDefaultHue = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{hue}}','.md-fg']) + ' { color:{{value}};}'),
bgDefaultHue = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{hue}}','.md-bg']) + ' { background-color:{{value}};}'),
fgColor = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}','.md-fg']) + ' { color:{{value}};}'),
bgColor = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}','.md-bg']) + ' { background-color:{{value}}; color:{{contrast}} !important; }'),
bdrColor = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}','.md-bdr']) + ' { border-color:{{value}};}'),
fgHue = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}.md-{{hue}}','.md-fg']) + ' { color:{{value}};}'),
bgHue = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}.md-{{hue}}','.md-bg']) + ' { background-color:{{value}};}'),
customSheet = getStyleSheet(),
index = 0;
// Clear out old rules from stylesheet

View File

@ -1,6 +1,8 @@
/// icon.scss -*- Mode: scss; indent-tabs-mode: nil; basic-offset: 2 -*-
@import 'extends';
$icon-badge-size: 2 * $baseline-grid;
// TODO: encode font in base64 to include it in the CSS
// perl -MMIME::Base64 -0777 -ne 'print encode_base64($_, "")' < fonts/MaterialIcons-Regular.woff
@ -53,6 +55,19 @@ md-icon {
right: $mg * 3;
transform: rotate(-15deg);
}
&.sg-icon--large {
font-size: $sg-md-grid-pitch;
font-size: 6 * $baseline-grid;
}
&.sg-icon--badge {
border-radius: 50%;
font-size: $icon-badge-size;
min-height: $icon-badge-size;
min-width: $icon-badge-size;
position: absolute;
right: ($icon-size - $icon-badge-size) / 2;
top: ($icon-size - $icon-badge-size) / 2;
}
&.md-rotate-45 {
transform: rotate(45deg);
}