mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-10 05:55:25 +00:00
fix(calendar(js)): escape CSS selector names
SOGo uses the name of calendar categories verbatim to construct a CSS selector without escaping characters such as "/". This patch ensures those selector names are properly escaped so calendar categories applied to a calendar event match the according selector and appear in the correct color. This patch makes use of the CSS escape API which is supported by all major browsers. See https://caniuse.com/mdn-api_css_escape. Also see https://mathiasbynens.be/notes/css-escapes.
This commit is contained in:
committed by
Leon Klingele
parent
67cf3c0017
commit
5c944617d0
@@ -0,0 +1,19 @@
|
||||
/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
|
||||
/**
|
||||
* @type {angular.Module}
|
||||
*/
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* @ngInject
|
||||
*/
|
||||
cssEscape.$inject = ['$window'];
|
||||
function cssEscape($window) {
|
||||
return $window.CSS.escape;
|
||||
}
|
||||
|
||||
angular.module('SOGo.Common')
|
||||
.filter('cssEscape', cssEscape);
|
||||
})();
|
||||
@@ -26,11 +26,11 @@
|
||||
template: [
|
||||
'<style type="text/css">',
|
||||
/* Background color */
|
||||
' .bg-category{{ ngModel.id }} {',
|
||||
' .bg-category{{ ngModel.id | cssEscape }} {',
|
||||
' background-color: {{ ngModel.color }} !important;',
|
||||
' }',
|
||||
/* Border color */
|
||||
' .bdr-category{{ ngModel.id }} {',
|
||||
' .bdr-category{{ ngModel.id | cssEscape }} {',
|
||||
' border-color: {{ ngModel.color }} !important;',
|
||||
' }',
|
||||
'</style>'
|
||||
|
||||
Reference in New Issue
Block a user