diff --git a/app/assets/fonts/openproject_icon/openproject-icon-font.eot b/app/assets/fonts/openproject_icon/openproject-icon-font.eot new file mode 100644 index 0000000000..60b17dcc89 Binary files /dev/null and b/app/assets/fonts/openproject_icon/openproject-icon-font.eot differ diff --git a/app/assets/fonts/openproject_icon/openproject-icon-font.svg b/app/assets/fonts/openproject_icon/openproject-icon-font.svg new file mode 100644 index 0000000000..1b589df74a --- /dev/null +++ b/app/assets/fonts/openproject_icon/openproject-icon-font.svg @@ -0,0 +1,219 @@ + + + +This SVG font generated by Fontastic.me + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/assets/fonts/openproject_icon/openproject-icon-font.ttf b/app/assets/fonts/openproject_icon/openproject-icon-font.ttf new file mode 100644 index 0000000000..10a48dfcb3 Binary files /dev/null and b/app/assets/fonts/openproject_icon/openproject-icon-font.ttf differ diff --git a/app/assets/fonts/openproject_icon/openproject-icon-font.woff b/app/assets/fonts/openproject_icon/openproject-icon-font.woff new file mode 100644 index 0000000000..f7941305e9 Binary files /dev/null and b/app/assets/fonts/openproject_icon/openproject-icon-font.woff differ diff --git a/app/assets/fonts/openproject_icon/openproject_icon_font.eot b/app/assets/fonts/openproject_icon/openproject_icon_font.eot deleted file mode 100644 index e8c922bb3d..0000000000 Binary files a/app/assets/fonts/openproject_icon/openproject_icon_font.eot and /dev/null differ diff --git a/app/assets/fonts/openproject_icon/openproject_icon_font.svg b/app/assets/fonts/openproject_icon/openproject_icon_font.svg deleted file mode 100644 index 96b7b673be..0000000000 --- a/app/assets/fonts/openproject_icon/openproject_icon_font.svg +++ /dev/null @@ -1,83 +0,0 @@ - - - -This SVG font generated by Fontastic.me - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/assets/fonts/openproject_icon/openproject_icon_font.ttf b/app/assets/fonts/openproject_icon/openproject_icon_font.ttf deleted file mode 100644 index fef4943e01..0000000000 Binary files a/app/assets/fonts/openproject_icon/openproject_icon_font.ttf and /dev/null differ diff --git a/app/assets/fonts/openproject_icon/openproject_icon_font.woff b/app/assets/fonts/openproject_icon/openproject_icon_font.woff deleted file mode 100644 index 1e6e621e5c..0000000000 Binary files a/app/assets/fonts/openproject_icon/openproject_icon_font.woff and /dev/null differ diff --git a/app/assets/images/sidebar_bg.png b/app/assets/images/sidebar_bg.png deleted file mode 100644 index a78b7af53e..0000000000 Binary files a/app/assets/images/sidebar_bg.png and /dev/null differ diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 4ef7259edb..ecc55cd8c2 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -838,7 +838,7 @@ $(window).resize(function() { // 2. wrap each in a span that we'll use for the new click element .wrapInner("") // 3. reinsert the so that it sits outside of the above - .append("") + .append("") // 4. attach a new click function that will follow the link if you clicked on the span itself and toggle if not .click(function(event) { diff --git a/app/assets/javascripts/jstoolbar/jstoolbar.js b/app/assets/javascripts/jstoolbar/jstoolbar.js index 26b36000a7..6f015b3730 100644 --- a/app/assets/javascripts/jstoolbar/jstoolbar.js +++ b/app/assets/javascripts/jstoolbar/jstoolbar.js @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * DotClear is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with DotClear; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA @@ -23,47 +23,47 @@ /* Modified by JP LANG for textile formatting */ function jsToolBar(textarea) { - if (!document.createElement) { return; } - - if (!textarea) { return; } - - if ((typeof(document["selection"]) == "undefined") - && (typeof(textarea["setSelectionRange"]) == "undefined")) { - return; - } - - this.textarea = textarea; - - this.editor = document.createElement('div'); - this.editor.className = 'jstEditor'; - - this.textarea.parentNode.insertBefore(this.editor,this.textarea); - this.editor.appendChild(this.textarea); - - this.toolbar = document.createElement("div"); - this.toolbar.className = 'jstElements'; - this.editor.parentNode.insertBefore(this.toolbar,this.editor); - - // Dragable resizing (only for gecko) - if (this.editor.addEventListener) - { - this.handle = document.createElement('div'); - this.handle.className = 'jstHandle'; - var dragStart = this.resizeDragStart; - var This = this; - this.handle.addEventListener('mousedown',function(event) { dragStart.call(This,event); },false); - // fix memory leak in Firefox (bug #241518) - window.addEventListener('unload',function() { - var del = This.handle.parentNode.removeChild(This.handle); - delete(This.handle); - },false); - - this.editor.parentNode.insertBefore(this.handle,this.editor.nextSibling); - } - - this.context = null; - this.toolNodes = {}; // lorsque la toolbar est dessinée , cet objet est garni - // de raccourcis vers les éléments DOM correspondants aux outils. + if (!document.createElement) { return; } + + if (!textarea) { return; } + + if ((typeof(document["selection"]) == "undefined") + && (typeof(textarea["setSelectionRange"]) == "undefined")) { + return; + } + + this.textarea = textarea; + + this.editor = document.createElement('div'); + this.editor.className = 'jstEditor'; + + this.textarea.parentNode.insertBefore(this.editor,this.textarea); + this.editor.appendChild(this.textarea); + + this.toolbar = document.createElement("div"); + this.toolbar.className = 'jstElements'; + this.editor.parentNode.insertBefore(this.toolbar,this.editor); + + // Dragable resizing (only for gecko) + if (this.editor.addEventListener) + { + this.handle = document.createElement('div'); + this.handle.className = 'jstHandle'; + var dragStart = this.resizeDragStart; + var This = this; + this.handle.addEventListener('mousedown',function(event) { dragStart.call(This,event); },false); + // fix memory leak in Firefox (bug #241518) + window.addEventListener('unload',function() { + var del = This.handle.parentNode.removeChild(This.handle); + delete(This.handle); + },false); + + this.editor.parentNode.insertBefore(this.handle,this.editor.nextSibling); + } + + this.context = null; + this.toolNodes = {}; // lorsque la toolbar est dessinée , cet objet est garni + // de raccourcis vers les éléments DOM correspondants aux outils. } function jsButton(title, fn, scope, className) { @@ -72,176 +72,176 @@ function jsButton(title, fn, scope, className) { } else { this.title = jsToolBar.strings[title] || title || null; } - this.fn = fn || function(){}; - this.scope = scope || null; - this.className = className || null; + this.fn = fn || function(){}; + this.scope = scope || null; + this.className = className || null; } jsButton.prototype.draw = function() { - if (!this.scope) return null; - - var button = document.createElement('button'); - button.setAttribute('type','button'); - if (this.className) button.className = this.className; - button.title = this.title; - var span = document.createElement('span'); - span.appendChild(document.createTextNode(this.title)); - button.appendChild(span); - - if (this.icon != undefined) { - button.style.backgroundImage = 'url('+this.icon+')'; - } - if (typeof(this.fn) == 'function') { - var This = this; - button.onclick = function() { try { This.fn.apply(This.scope, arguments) } catch (e) {} return false; }; - } - return button; + if (!this.scope) return null; + + var button = document.createElement('button'); + button.setAttribute('type','button'); + if (this.className) button.className = this.className; + button.title = this.title; + var span = document.createElement('span'); + span.appendChild(document.createTextNode(this.title)); + button.appendChild(span); + + if (this.icon != undefined) { + button.style.backgroundImage = 'url('+this.icon+')'; + } + if (typeof(this.fn) == 'function') { + var This = this; + button.onclick = function() { try { This.fn.apply(This.scope, arguments) } catch (e) {} return false; }; + } + return button; } function jsSpace(id) { - this.id = id || null; - this.width = null; + this.id = id || null; + this.width = null; } jsSpace.prototype.draw = function() { - var span = document.createElement('span'); - if (this.id) span.id = this.id; - span.appendChild(document.createTextNode(String.fromCharCode(160))); - span.className = 'jstSpacer'; - if (this.width) span.style.marginRight = this.width+'px'; - - return span; -} + var span = document.createElement('span'); + if (this.id) span.id = this.id; + span.appendChild(document.createTextNode(String.fromCharCode(160))); + span.className = 'jstSpacer'; + if (this.width) span.style.marginRight = this.width+'px'; + + return span; +} function jsCombo(title, options, scope, fn, className) { - this.title = title || null; - this.options = options || null; - this.scope = scope || null; - this.fn = fn || function(){}; - this.className = className || null; + this.title = title || null; + this.options = options || null; + this.scope = scope || null; + this.fn = fn || function(){}; + this.className = className || null; } jsCombo.prototype.draw = function() { - if (!this.scope || !this.options) return null; - - var select = document.createElement('select'); - if (this.className) select.className = className; - select.title = this.title; - - for (var o in this.options) { - //var opt = this.options[o]; - var option = document.createElement('option'); - option.value = o; - option.appendChild(document.createTextNode(this.options[o])); - select.appendChild(option); - } - - var This = this; - select.onchange = function() { - try { - This.fn.call(This.scope, this.value); - } catch (e) { alert(e); } - - return false; - } - - return select; + if (!this.scope || !this.options) return null; + + var select = document.createElement('select'); + if (this.className) select.className = className; + select.title = this.title; + + for (var o in this.options) { + //var opt = this.options[o]; + var option = document.createElement('option'); + option.value = o; + option.appendChild(document.createTextNode(this.options[o])); + select.appendChild(option); + } + + var This = this; + select.onchange = function() { + try { + This.fn.call(This.scope, this.value); + } catch (e) { alert(e); } + + return false; + } + + return select; } jsToolBar.prototype = { - base_url: '', - mode: 'wiki', - elements: {}, - help_link: '', - - getMode: function() { - return this.mode; - }, - - setMode: function(mode) { - this.mode = mode || 'wiki'; - }, - - switchMode: function(mode) { - mode = mode || 'wiki'; - this.draw(mode); - }, - - setHelpLink: function(link) { - this.help_link = link; - }, - - button: function(toolName) { - var tool = this.elements[toolName]; - if (typeof tool.fn[this.mode] != 'function') return null; - var b = new jsButton(tool.title, tool.fn[this.mode], this, 'jstb_'+toolName); - if (tool.icon != undefined) b.icon = tool.icon; - return b; - }, - space: function(toolName) { - var tool = new jsSpace(toolName) - if (this.elements[toolName].width !== undefined) - tool.width = this.elements[toolName].width; - return tool; - }, - combo: function(toolName) { - var tool = this.elements[toolName]; - var length = tool[this.mode].list.length; - - if (typeof tool[this.mode].fn != 'function' || length == 0) { - return null; - } else { - var options = {}; - for (var i=0; i < length; i++) { - var opt = tool[this.mode].list[i]; - options[opt] = tool.options[opt]; - } - return new jsCombo(tool.title, options, this, tool[this.mode].fn); - } - }, - draw: function(mode) { - this.setMode(mode); - - // Empty toolbar - while (this.toolbar.hasChildNodes()) { - this.toolbar.removeChild(this.toolbar.firstChild) - } - this.toolNodes = {}; // vide les raccourcis DOM/**/ - - var h = document.createElement('div'); - h.className = 'help' - h.innerHTML = this.help_link; - this.toolbar.appendChild(h); - - // Draw toolbar elements - var b, tool, newTool; - - for (var i in this.elements) { - b = this.elements[i]; - - var disabled = - b.type == undefined || b.type == '' - || (b.disabled != undefined && b.disabled) - || (b.context != undefined && b.context != null && b.context != this.context); - - if (!disabled && typeof this[b.type] == 'function') { - tool = this[b.type](i); - if (tool) newTool = tool.draw(); - if (newTool) { - this.toolNodes[i] = newTool; //mémorise l'accès DOM pour usage éventuel ultérieur - this.toolbar.appendChild(newTool); - } - } - } - }, - - singleTag: function(stag,etag) { - stag = stag || null; - etag = etag || stag; - - if (!stag || !etag) { return; } - - this.encloseSelection(stag,etag); - }, - + base_url: '', + mode: 'wiki', + elements: {}, + help_link: '', + + getMode: function() { + return this.mode; + }, + + setMode: function(mode) { + this.mode = mode || 'wiki'; + }, + + switchMode: function(mode) { + mode = mode || 'wiki'; + this.draw(mode); + }, + + setHelpLink: function(link) { + this.help_link = link; + }, + + button: function(toolName) { + var tool = this.elements[toolName]; + if (typeof tool.fn[this.mode] != 'function') return null; + var b = new jsButton(tool.title, tool.fn[this.mode], this, 'jstb_'+toolName); + if (tool.icon != undefined) b.icon = tool.icon; + return b; + }, + space: function(toolName) { + var tool = new jsSpace(toolName) + if (this.elements[toolName].width !== undefined) + tool.width = this.elements[toolName].width; + return tool; + }, + combo: function(toolName) { + var tool = this.elements[toolName]; + var length = tool[this.mode].list.length; + + if (typeof tool[this.mode].fn != 'function' || length == 0) { + return null; + } else { + var options = {}; + for (var i=0; i < length; i++) { + var opt = tool[this.mode].list[i]; + options[opt] = tool.options[opt]; + } + return new jsCombo(tool.title, options, this, tool[this.mode].fn); + } + }, + draw: function(mode) { + this.setMode(mode); + + // Empty toolbar + while (this.toolbar.hasChildNodes()) { + this.toolbar.removeChild(this.toolbar.firstChild) + } + this.toolNodes = {}; // vide les raccourcis DOM/**/ + + var h = document.createElement('div'); + h.className = 'help' + h.innerHTML = this.help_link; + this.toolbar.appendChild(h); + + // Draw toolbar elements + var b, tool, newTool; + + for (var i in this.elements) { + b = this.elements[i]; + + var disabled = + b.type == undefined || b.type == '' + || (b.disabled != undefined && b.disabled) + || (b.context != undefined && b.context != null && b.context != this.context); + + if (!disabled && typeof this[b.type] == 'function') { + tool = this[b.type](i); + if (tool) newTool = tool.draw(); + if (newTool) { + this.toolNodes[i] = newTool; //mémorise l'accès DOM pour usage éventuel ultérieur + this.toolbar.appendChild(newTool); + } + } + } + }, + + singleTag: function(stag,etag) { + stag = stag || null; + etag = etag || stag; + + if (!stag || !etag) { return; } + + this.encloseSelection(stag,etag); + }, + encloseLineSelection: function (prefix, suffix, fn) { this.textarea.focus(); prefix = prefix || ''; @@ -306,7 +306,7 @@ jsToolBar.prototype = { this.textarea.scrollTop = scrollPos; } }, - + encloseSelection: function (prefix, suffix, fn) { this.textarea.focus(); prefix = prefix || ''; @@ -343,37 +343,37 @@ jsToolBar.prototype = { this.textarea.scrollTop = scrollPos; } }, - - stripBaseURL: function(url) { - if (this.base_url != '') { - var pos = url.indexOf(this.base_url); - if (pos == 0) { - url = url.substr(this.base_url.length); - } - } - - return url; - } + + stripBaseURL: function(url) { + if (this.base_url != '') { + var pos = url.indexOf(this.base_url); + if (pos == 0) { + url = url.substr(this.base_url.length); + } + } + + return url; + } }; /** Resizer -------------------------------------------------------- */ jsToolBar.prototype.resizeSetStartH = function() { - this.dragStartH = this.textarea.offsetHeight + 0; + this.dragStartH = this.textarea.offsetHeight + 0; }; jsToolBar.prototype.resizeDragStart = function(event) { - var This = this; - this.dragStartY = event.clientY; - this.resizeSetStartH(); - document.addEventListener('mousemove', this.dragMoveHdlr=function(event){This.resizeDragMove(event);}, false); - document.addEventListener('mouseup', this.dragStopHdlr=function(event){This.resizeDragStop(event);}, false); + var This = this; + this.dragStartY = event.clientY; + this.resizeSetStartH(); + document.addEventListener('mousemove', this.dragMoveHdlr=function(event){This.resizeDragMove(event);}, false); + document.addEventListener('mouseup', this.dragStopHdlr=function(event){This.resizeDragStop(event);}, false); }; jsToolBar.prototype.resizeDragMove = function(event) { - this.textarea.style.height = (this.dragStartH+event.clientY-this.dragStartY)+'px'; + this.textarea.style.height = (this.dragStartH+event.clientY-this.dragStartY)+'px'; }; jsToolBar.prototype.resizeDragStop = function(event) { - document.removeEventListener('mousemove', this.dragMoveHdlr, false); - document.removeEventListener('mouseup', this.dragStopHdlr, false); + document.removeEventListener('mousemove', this.dragMoveHdlr, false); + document.removeEventListener('mouseup', this.dragStopHdlr, false); }; diff --git a/app/assets/javascripts/timelines/ui.js b/app/assets/javascripts/timelines/ui.js index b9bdef0fd3..2a2fc377eb 100644 --- a/app/assets/javascripts/timelines/ui.js +++ b/app/assets/javascripts/timelines/ui.js @@ -321,7 +321,7 @@ jQuery.extend(Timeline, { result += timeline.escape(theVal); result += '' .replace(/%t/, timeline.i18n('timelines.change')) - .replace(/%c/, 'icon tl-icon-' + kind); + .replace(/%c/, 'tl-icon-' + kind); result += '
'; } @@ -524,7 +524,7 @@ jQuery.extend(Timeline, { containers[currentContainer].append( jQuery(icon .replace(/%t/, timeline.i18n('timelines.zoom.out')) - .replace(/%c/, 'icon tl-icon-zoomout') + .replace(/%c/, 'tl-icon-zoomout') ).click(function() { slider.slider('value', slider.slider('value') - 1); })); @@ -533,7 +533,7 @@ jQuery.extend(Timeline, { containers[currentContainer + 2].append( jQuery(icon .replace(/%t/, timeline.i18n('timelines.zoom.in')) - .replace(/%c/, 'icon tl-icon-zoomin') + .replace(/%c/, 'tl-icon-zoomin') ).click(function() { slider.slider('value', slider.slider('value') + 1); })); @@ -574,7 +574,7 @@ jQuery.extend(Timeline, { containers[currentContainer].append( jQuery(icon .replace(/%t/, timeline.i18n('timelines.outline')) - .replace(/%c/, 'icon tl-icon-outline') + .replace(/%c/, 'tl-icon-outline') ).click(function() { timeline.expandTo(outlines[0].selectedIndex); })); @@ -939,7 +939,7 @@ jQuery.extend(Timeline, { jQuery('
' .replace(/%t/, timeline.i18n('timelines.change')) - .replace(/%c/, added? 'icon tl-icon-added' : deleted? 'icon tl-icon-deleted' : 'icon tl-icon-changed') + .replace(/%c/, added? 'tl-icon-added' : deleted? 'tl-icon-deleted' : 'tl-icon-changed') )); } diff --git a/app/assets/javascripts/top-shelf.js b/app/assets/javascripts/top-shelf.js index 33e48c802a..0a849091ee 100644 --- a/app/assets/javascripts/top-shelf.js +++ b/app/assets/javascripts/top-shelf.js @@ -57,7 +57,7 @@ }; $.fn.topShelf.defaults = { - className: "top-shelf", + className: "top-shelf icon icon-warning", title: "", message: "", link: "", diff --git a/app/assets/stylesheets/_mixins.sass b/app/assets/stylesheets/_mixins.sass new file mode 100644 index 0000000000..97021f7b30 --- /dev/null +++ b/app/assets/stylesheets/_mixins.sass @@ -0,0 +1,60 @@ +/*-- copyright + * OpenProject is a project management system. + * Copyright (C) 2012-2013 the OpenProject Foundation (OPF) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version 3. + * + * OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: + * Copyright (C) 2006-2013 Jean-Philippe Lang + * Copyright (C) 2010-2013 the ChiliProject Team + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * See doc/COPYRIGHT.rdoc for more details. ++*/ + +@mixin html_body_spacing + margin: 0 + padding: 0 + height: 100% + +@mixin default-transition + -webkit-transition: all 500ms ease-in-out 0s + -moz-transition: all 500ms ease-in-out 0s + -ms-transition: all 500ms ease-in-out 0s + -o-transition: all 500ms ease-in-out 0s + transition: all 500ms ease-in-out 0s + +@mixin main-menu-font + font-style: normal + font-family: 'LatoRegular','Lucida Grande',Helvetica,Arial,sans-serif + +@mixin header-fonts($color, $font-size: 14px) + color: $color + font-size: $font-size + font-family: 'LatoRegular', 'Lucida Grande', Helvetica, Arial, sans-serif + font-weight: normal + +@mixin breadcrumb-font($color) + color: $color + font-size: 12px + font-family: 'LatoRegular', 'Lucida Grande', Helvetica, Arial, sans-serif + font-weight: normal + +@mixin breadcrumb-font-bold($color) + color: $color + font-size: 12px + font-family: 'LatoBold', 'Lucida Grande', Helvetica, Arial, sans-serif + font-weight: normal diff --git a/app/assets/stylesheets/_variables.sass b/app/assets/stylesheets/_variables.sass new file mode 100644 index 0000000000..c43c6f3d8e --- /dev/null +++ b/app/assets/stylesheets/_variables.sass @@ -0,0 +1,35 @@ +/*-- copyright + * OpenProject is a project management system. + * Copyright (C) 2012-2013 the OpenProject Foundation (OPF) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version 3. + * + * OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: + * Copyright (C) 2006-2013 Jean-Philippe Lang + * Copyright (C) 2010-2013 the ChiliProject Team + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * See doc/COPYRIGHT.rdoc for more details. ++*/ + +$header_bg_color: #3493B3 !default +$header_logo_bg_color: #06799F !default + +$main_menu_bg_color: #053242 !default +$main_menu_bg_hover_selected_color: #04232F !default +$main_menu_width: 270px !default +$main_menu_folded_width: 50px !default + diff --git a/app/assets/stylesheets/context_menu.css.erb b/app/assets/stylesheets/context_menu.css.erb index e31cacdca4..6b754354ef 100644 --- a/app/assets/stylesheets/context_menu.css.erb +++ b/app/assets/stylesheets/context_menu.css.erb @@ -38,15 +38,15 @@ See doc/COPYRIGHT.rdoc for more details. } #context-menu ul, #context-menu li, #context-menu a { - display:block; - margin:0; - padding:0; - border:0; + display:block; + margin:0; + padding:0; + border:0; } #context-menu ul { width: 140px; - list-style:none; + list-style:none; position: absolute; left: -7px; z-index: 20; @@ -58,11 +58,11 @@ See doc/COPYRIGHT.rdoc for more details. } #context-menu li { - position:relative; - padding:1px; + position:relative; + padding:1px; padding: 6px; - z-index:39; - border:1px solid white; + z-index:39; + border:1px solid white; background-position: 6px center; background-repeat: no-repeat; cursor: pointer; @@ -77,10 +77,10 @@ See doc/COPYRIGHT.rdoc for more details. #context-menu a { border: none; - background-repeat: no-repeat; - background-position: 1px 50%; - padding: 1px 10px 1px 20px; - width:100%; /* IE */ + background-repeat: no-repeat; + background-position: 1px 50%; + padding: 1px 10px 1px 15px; + width:100%; /* IE */ } /* this one is here to counter the declaration to @@ -89,9 +89,10 @@ as opposed to links not having one (blue, bold). As long as that is defined there will be an inconsistency. But at least the context menu is consistent with this statement. */ -#context-menu a.icon { +#context-menu a.icon, #context-menu a.icon-context { color: #008BD0; font-weight: bold; + padding-left: 0; } #context-menu li>a { /* others */ @@ -110,6 +111,7 @@ But at least the context menu is consistent with this statement. */ #context-menu a:hover { color:#2A5685; border: none; + text-decoration: none; } #context-menu li.folder:hover { diff --git a/app/assets/stylesheets/default.css b/app/assets/stylesheets/default.css index d1b131f494..81a72eae66 100644 --- a/app/assets/stylesheets/default.css +++ b/app/assets/stylesheets/default.css @@ -37,8 +37,8 @@ See doc/COPYRIGHT.rdoc for more details. *= require application *= require layout/base *= require layout/top_menu - *= require content/breadcrumb - *= require content/main_menu + *= require layout/breadcrumb + *= require layout/main_menu *= require default/application *= require layout/footer */ diff --git a/app/assets/stylesheets/default/application.css.erb b/app/assets/stylesheets/default/application.css.erb index d78208fdd1..a78ccd5454 100644 --- a/app/assets/stylesheets/default/application.css.erb +++ b/app/assets/stylesheets/default/application.css.erb @@ -30,16 +30,6 @@ See doc/COPYRIGHT.rdoc for more details. /***** Layout *****/ -#content { - width: 75%; - background-color: #fff; - margin: 0px; - border-style: none solid solid solid; - padding: 6px 10px 10px 10px; - z-index: 10; -} -* html #content{ width: 75%; padding-left: 0; margin-top: 0px; padding: 6px 10px 10px 10px;} - #main.nosidebar #sidebar{ display: none; } #main.nosidebar #content{ width: auto } @@ -210,16 +200,8 @@ table.attributes { width: 100% } table.attributes th { vertical-align: top; text-align: left; } table.attributes td { vertical-align: top; } -table.boards a.board, h3.comments { background: url(<%= asset_path 'webalys/quote.png' %>) no-repeat 0% 50%; padding-left: 20px; } - td.center, th.center {text-align: center;} -div.issues h3 { background: url(<%= asset_path 'webalys/ticket.png' %>) no-repeat 0% 10%; padding-left: 20px; } -div.members h3 { background: url(<%= asset_path 'webalys/group.png' %>) no-repeat 0% 50%; padding-left: 20px; } -div.news h3 { background: url(<%= asset_path 'webalys/latest_news.png' %>) no-repeat 0% 50%; padding-left: 20px; } -div.projects h3 { background: url(<%= asset_path 'webalys/latest_projects.png' %>) no-repeat 0% 50%; padding-left: 20px; } -div.news h3 { background: url(<%= asset_path 'webalys/latest_news.png' %>) no-repeat 0% 50%; padding-left: 20px; } - #watchers ul {margin: 0; padding: 0;} #watchers li {list-style-type: none;margin: 0px 2px 0px 0px; padding: 0px 0px 0px 0px;float: left;} #watchers select {width: 200px; display: block;float: left;margin-right: 10px;} @@ -336,7 +318,6 @@ div#work_package-changesets p { margin-top: 0; margin-bottom: 1em;} div#activity dl, #search-results { margin-left: 2em; } div#activity dd, #search-results dd { margin-bottom: 1em; padding-left: 18px; font-size: 0.9em; } -div#activity dt, #search-results dt { margin-bottom: 0px; padding-left: 20px; line-height: 18px; background-position: 0 50%; background-repeat: no-repeat; } div#activity dt.me .time { border-bottom: 1px solid #999; } div#activity dt .time { color: #777; font-size: 80%; } div#activity dd .description, #search-results dd .description { font-style: italic; } @@ -349,25 +330,6 @@ div#search-results-counts {float: right;} div#search-results-counts ul { margin-top: 0.5em; } div#search-results-counts li { list-style-type: none; float: left; margin-left: 1em; } -dt.work_package { background-image: url(<%= asset_path 'webalys/ticket.png' %>); } -dt.work_package-edit { background-image: url(<%= asset_path 'webalys/ticket_edit.png' %>); } -dt.work_package-closed { background-image: url(<%= asset_path 'webalys/ticket_checked.png' %>); } -dt.work_package-note { background-image: url(<%= asset_path 'webalys/ticket_note.png' %>); } -dt.issue { background-image: url(<%= asset_path 'webalys/ticket.png' %>); } -dt.issue-edit { background-image: url(<%= asset_path 'webalys/ticket_edit.png' %>); } -dt.issue-closed { background-image: url(<%= asset_path 'webalys/ticket_checked.png' %>); } -dt.issue-note { background-image: url(<%= asset_path 'webalys/ticket_note.png' %>); } -dt.changeset { background-image: url(<%= asset_path 'webalys/changeset.png' %>); } -dt.news { background-image: url(<%= asset_path 'webalys/news.png' %>); } -dt.message { background-image: url(<%= asset_path 'webalys/quote.png' %>); } -dt.reply { background-image: url(<%= asset_path 'comments.png' %>); } -dt.wiki-page { background-image: url(<%= asset_path 'webalys/wiki_edit.png' %>); } -dt.attachment { background-image: url(<%= asset_path 'attachment.png' %>); } -dt.project { background-image: url(<%= asset_path 'webalys/latest_projects.png' %>); } -dt.time-entry { background-image: url(<%= asset_path 'webalys/time.png' %>); } - -#search-results dt.issue.closed { background-image: url(<%= asset_path 'webalys/ticket_checked.png' %>); } - .search-pagination { text-align: center; } .search-pagination a {padding: 0 5px; } @@ -408,7 +370,6 @@ ul.projects ul.projects { border-left: 3px solid #e0e0e0; } ul.projects li.root { list-style-type: none; margin-bottom: 1em; } ul.projects li.child { list-style-type: none; margin-top: 1em;} ul.projects div.root a.project { font-family: "Arial", Arial, sans-serif; font-weight: bold; font-size: 16px; margin: 0 0 10px 0; } -.my-project { padding-left: 18px; background: url(<%= asset_path 'webalys/fav.png' %>) no-repeat 0 50%; } #type_project_ids ul { margin: 0; padding-left: 1em; } #type_project_ids li { list-style-type: none; } @@ -567,7 +528,7 @@ div#tab-content-members fieldset div.select-boxes .select2-container { /***** Flash & error messages ****/ #errorExplanation, div.flash, .nodata, .warning { - padding: 4px 4px 4px 30px; + padding: 4px; margin-bottom: 12px; border: 2px solid; margin: 0 0 10px; @@ -609,7 +570,7 @@ div.flash.error a:hover, div.flash.warning a:hover, div.flash.notice a:hover, #e color: #A6750C; } -#errorExplanation ul { font-size: 0.9em;} +#errorExplanation ul { font-size: 0.9em; margin-left: 30px;} #errorExplanation h2, #errorExplanation p { display: none; } /***** Ajax indicator ******/ @@ -960,80 +921,6 @@ div.wiki img { vertical-align: middle; } cursor: move; } -a.close-icon { - display: block; - margin-top: 10px; - overflow: hidden; - width: 12px; - height: 12px; - background-repeat: no-repeat; - cursor: pointer; - background-image: url(<%= asset_path 'close.png' %>); -} - -a.close-icon:hover { - background-image: url(<%= asset_path 'close_hover.png' %>); -} - -/***** Icons *****/ -.icon { - background-position: 0% 50%; - background-repeat: no-repeat; - padding-left: 19px; - padding-top: 2px; - padding-bottom: 3px; -} - -.icon-add { background-image: url(<%= asset_path 'webalys/plus.png' %>); } -.icon-edit { background-image: url(<%= asset_path 'webalys/edit.png' %>); } -.icon-copy { background-image: url(<%= asset_path 'webalys/copy.png' %>); } -.icon-configure { background-image: url(<%= asset_path 'webalys/configure.png' %>); } -.icon-duplicate { background-image: url(<%= asset_path 'webalys/duplicate.png' %>); } -.icon-del { background-image: url(<%= asset_path 'webalys/delete.png' %>); } -.icon-move { background-image: url(<%= asset_path 'webalys/move.png' %>); } -.icon-rename { background-image: url(<%= asset_path 'webalys/rename.png' %>); } -.icon-save { background-image: url(<%= asset_path 'webalys/save.png' %>); } -.icon-multiple { background-image: url(<%= asset_path 'table_multiple.png' %>); } -.icon-folder { background-image: url(<%= asset_path 'folder.png' %>); } -.open .icon-folder { background-image: url(<%= asset_path 'folder_open.png' %>); } -.icon-package { background-image: url(<%= asset_path 'webalys/package.png' %>); } -.icon-parent { background-image: url(<%= asset_path 'link.png' %>); } -.icon-user { background-image: url(<%= asset_path 'webalys/user.png' %>); } -.icon-projects { background-image: url(<%= asset_path 'webalys/latest_projects.png' %>); } -.icon-help { background-image: url(<%= asset_path 'webalys/help.png' %>); } -.icon-attachment { background-image: url(<%= asset_path 'attachment.png' %>); } -.icon-history { background-image: url(<%= asset_path 'webalys/history.png' %>); } -.icon-time-add { background-image: url(<%= asset_path 'webalys/time.png' %>); } -.icon-stats { background-image: url(<%= asset_path 'webalys/stats.png' %>); } -.icon-warning { background-image: url(<%= asset_path 'webalys/warning.png' %>); } -.icon-reload { background-image: url(<%= asset_path 'webalys/arrow_circle.png' %>); } -.icon-unlock { background-image: url(<%= asset_path 'webalys/locked_un.png' %>); } -.icon-checked { background-image: url(<%= asset_path 'webalys/check.png' %>); } -.icon-details { background-image: url(<%= asset_path 'webalys/zoom_in.png' %>); } -.icon-report { background-image: url(<%= asset_path 'report.png' %>); } -.icon-comment { background-image: url(<%= asset_path 'webalys/quote.png' %>); } -.icon-summary { background-image: url(<%= asset_path 'webalys/summary.png' %>); } -.icon-server-authentication { background-image: url(<%= asset_path 'server_key.png' %>); } -.icon-issue { background-image: url(<%= asset_path 'webalys/ticket.png' %>); } -.icon-zoom-in { background-image: url(<%= asset_path 'webalys/zoom_in.png' %>); } -.icon-zoom-out { background-image: url(<%= asset_path 'webalys/zoom_out.png' %>); } - -.icon-file { background-image: url(<%= asset_path 'files/default.png' %>); } -.icon-file.text-plain { background-image: url(<%= asset_path 'files/text.png' %>); } -.icon-file.text-x-c { background-image: url(<%= asset_path 'files/c.png' %>); } -.icon-file.text-x-csharp { background-image: url(<%= asset_path 'files/csharp.png' %>); } -.icon-file.text-x-php { background-image: url(<%= asset_path 'files/php.png' %>); } -.icon-file.text-x-ruby { background-image: url(<%= asset_path 'files/ruby.png' %>); } -.icon-file.text-xml { background-image: url(<%= asset_path 'files/xml.png' %>); } -.icon-file.image-gif { background-image: url(<%= asset_path 'files/image.png' %>); } -.icon-file.image-jpeg { background-image: url(<%= asset_path 'files/image.png' %>); } -.icon-file.image-png { background-image: url(<%= asset_path 'files/image.png' %>); } -.icon-file.image-tiff { background-image: url(<%= asset_path 'files/image.png' %>); } -.icon-file.application-pdf { background-image: url(<%= asset_path 'files/pdf.png' %>); } -.icon-file.application-zip { background-image: url(<%= asset_path 'files/zip.png' %>); } -.icon-file.application-x-gzip { background-image: url(<%= asset_path 'files/zip.png' %>); } -.icon-file-excel { background-image: url(<%= asset_path 'files/excel.png' %>); } - img.gravatar { border: solid 1px #d5d5d5; background: #fff; @@ -1153,13 +1040,6 @@ a:hover { h1.title { margin: 12px 24px 9px; } -#content { - margin: 0 0 0 270px; - padding: 10px; - width: auto; - overflow: hidden; - height: auto; -} #content .title-bar { position: relative; } @@ -1190,13 +1070,6 @@ fieldset#filters div.add-filter { text-align: right; } -.title-bar .new-issue { - right: 10px; -} -.title-bar .new-issue a { - background: url(<%= asset_path 'webalys/plus.png' %>) no-repeat 6px center; - padding-left: 26px; -} .title-bar-extras { color: #333333; } @@ -1223,12 +1096,6 @@ fieldset#filters div.add-filter { font-family: inherit; font-size: 11px; } -input.apply { - background-image: url(<%= asset_path 'webalys/check.png' %>); -} -input.save { - background-image: url(<%= asset_path 'webalys/save.png' %>); -} /*------------------------------------------------------------------------------- * =04 - Issue Table @@ -1289,11 +1156,6 @@ form#issue-list { #content table td.updated { width: 80px; } -#content table a.toggle-select { - background: url(<%= asset_path 'webalys/check.png' %>) no-repeat center center; - display: block; - text-indent: -9999em; -} #multiple-action-buttons { float: left; margin: 10px 0; @@ -1315,34 +1177,6 @@ form#issue-list { * This section includes the layout and styles for the single issues page. ------------------------------------------------------------------------------*/ -.title-bar-actions { - position: absolute; - right: 0px; - top: 0; - padding: 0 100px 0 10px; - height: 100%; - margin-top: 2px; -} -.title-bar .title-bar-actions .contextual { - /* line-height: 3.5;*/ - padding-right: 0px; -} -.title-bar-actions .contextual a { - /* color: #fff;*/ -} -.title-bar .title-bar-actions .contextual a.icon { - margin-right: 0px; -} -.title-bar .update { - right: 0; -} -.title-bar .update a { - padding-left: 26px; - background: url(<%= asset_path 'webalys/edit.png' %>) no-repeat 5px center; - font-weight: bold; -} -div.issue { -} div.issue hr { margin-top: 10px; margin-bottom: 10px; @@ -1451,12 +1285,6 @@ table.files { background-repeat: no-repeat; background-position: center center; } -.contextual .edit { - background-image: url(<%= asset_path 'webalys/edit.png' %>); -} -.contextual .comment { - background-image: url(<%= asset_path 'webalys/quote.png' %>); -} .question-line { display: block; } @@ -1547,10 +1375,6 @@ ul.projects .description { list-style: none outside none; background: none; } -.nosidebar ul.projects li .my-project { - padding: 0 0 0 24px; - background: url(<%= asset_path 'webalys/fav.png' %>) no-repeat left top; -} ul.projects a { font-weight: bold; } @@ -1895,19 +1719,9 @@ tr.time-entry { /*===== Replacement Images =====*/ -.icon-edit, .title-bar .update a { - background-image: url(<%= asset_path 'webalys/edit.png' %>); -} -.icon-del { - background-image: url(<%= asset_path 'webalys/delete.png' %>); -} .journal .contextual a[title=Edit] img { display: none; } -.journal .contextual a[title=Edit] { - background: url(<%= asset_path 'webalys/edit.png' %>) no-repeat; -} - /* comments */ .wiki ol li { @@ -1935,19 +1749,6 @@ tr.time-entry { padding-left: 140px; } -/* Delete icon */ -table.files a.icon-delete { - float: left; - padding: 0; - display: block; - text-indent: -9999em; - width: 16px; - height: 16px; - background: url(<%= asset_path 'webalys/delete.png' %>) no-repeat 0 0; - margin-right: 6px; -} - - /* clearfix */ html > body #content:after { content: "."; @@ -1979,8 +1780,6 @@ a.has-thumb img { z-index: 1001; } -/* Make icons non repeating */ - #more-menu.drop-down ul li a.projects { border-top: 1px solid #555; } /************************************************************************* @@ -2050,10 +1849,6 @@ Additional wiki styles border: 1px solid #FFFF00; } -.wiki p.tip, .wiki span.tip { - background: url(<%= asset_path 'webalys/tip.png' %>) 4px 4px no-repeat; - border: 1px solid #C7CFCA; -} .wiki p.smalltip, .wiki span.smalltip { background: url(<%= asset_path 'wiki_styles/tip_small.png' %>) 4px 5px no-repeat #F5FFFA; border: 1px solid #C7CFCA; @@ -2216,19 +2011,14 @@ ul.action_menu_more { #lower-title-bar ul.action_menu_main > li.drop-down { position: relative; } -#content.hidden-navigation { - margin-left: 50px; -} .pagination .previous_page { - background: url(<%= asset_path 'webalys/double_arrow_left.png' %>) 0 1px no-repeat; width: 100%; height: 15px; padding-left: 18px; } .pagination .next_page { - background: url(<%= asset_path 'webalys/double_arrow_right.png' %>) right 1px no-repeat; width: 100%; height: 15px; padding-right: 18px; @@ -2369,11 +2159,6 @@ a.sort.desc { width: 700px; } -.my-project { - background: url(<%= asset_path 'webalys/fav.png' %>) no-repeat 0 50%; -} - - .required {color: #008BD0;} /* changed to Siemens red! */ /***** Flash & error messages ****/ @@ -2384,23 +2169,19 @@ div.flash { } div.flash.error, #errorExplanation { - background: #FAAA96 url(<%= asset_path 'webalys/error.png' %>) 8px 50% no-repeat; + background-color: #FAAA96; border: none; color: #000000; } -#errorExplanation { - background-position: 12px 50%; -} - div.flash.notice { - background: #C8F0BE url(<%= asset_path 'webalys/check.png' %>) 11px 6px no-repeat; + background-color: #C8F0BE; border: none; color: #000000; } div.flash.warning { /* orange */ - background: #FFC38C url(<%= asset_path 'webalys/warning.png' %>) 9px 5px no-repeat; + background-color: #FFC38C; border: none; color: #000000; text-align: left; @@ -2415,67 +2196,23 @@ div.flash.warning { /* orange */ /***** Icons *****/ -.icon { - background-position: 0px 1px; -} - -a.icon, input.input-as-link { +a.icon, a.icon-context, input.input-as-link { color: #4b4b4b; font-weight: normal; } -a.icon:hover, input.input-as-link:hover { +a.icon:hover, a.icon-context:hover { color: #008BD0; - text-decoration: underline; -} - -.icon-time { - background-image: url(<%= asset_path 'webalys/time.png' %>); - background-position: 3px 2px; -} - -.icon-lock { - background-image: url(<%= asset_path 'webalys/locked.png' %>); - background-position: 0px 2px; -} - -.icon-edit { - background-image: url(<%= asset_path 'webalys/edit.png' %>); - padding-top: 1px; -} -.icon-copy { background-image: url(<%= asset_path 'webalys/copy.png' %>); } -.icon-del { - background-image: url(<%= asset_path 'webalys/delete.png' %>); - /*padding-left: 16px; */ - background-position: 0px 2px; -} -.icon-fav { background-image: url(<%= asset_path 'webalys/watch.png' %>); } -.icon-fav-off { background-image: url(<%= asset_path 'webalys/watch_b.png' %>); } -.icon-reload { - background-position: 0px 3px; -} -.icon-checked { - background-position: 0px 4px; -} -.icon-notification { background-image: url(<%= asset_path 'webalys/envelope.png' %>); } -.icon-package { background-position: 1px 0px; } -.icon-more { - background-image: url(<%= asset_path 'webalys/arrow-down_2.png' %>); - padding-left: 16px; - background-position: 0px 5px; -} -.icon-save { - padding-top: 0px; + text-decoration: none; } -.icon-cancel { - background-image: url(<%= asset_path 'webalys/cancel.png' %>); - background-position: 0px 2px; +#content table th a.no-decoration-on-hover:hover, +a.no-decoration-on-hover:hover { + text-decoration: none; } -a.atom { - background-image: url(<%= asset_path 'webalys/feed.png' %>); - background-repeat: no-repeat; - padding: 1px 0 1px 14px; +input.input-as-link:hover { + color: #008BD0; + text-decoration: underline; } /* Disable the css-override for the edit links in issue journals */ diff --git a/app/assets/stylesheets/fonts/openproject_icon_font.css.sass b/app/assets/stylesheets/fonts/openproject_icon_font.css.sass index 52c4a9d4d4..fb6562d1f0 100644 --- a/app/assets/stylesheets/fonts/openproject_icon_font.css.sass +++ b/app/assets/stylesheets/fonts/openproject_icon_font.css.sass @@ -25,15 +25,17 @@ * * See doc/COPYRIGHT.rdoc for more details. ++*/ +$link_hover_color: #008BD0 + @font-face - font-family: "openproject_icon_font" - src: font-url('openproject_icon/openproject_icon_font.eot') - src: font-url('openproject_icon/openproject_icon_font.eot?#iefix') format("embedded-opentype"), font-url('openproject_icon/openproject_icon_font.ttf') format("truetype"), font-url('openproject_icon/openproject_icon_font.svg#untitled-font-1') format("svg"), font-url('openproject_icon/openproject_icon_font.woff') format("woff") + font-family: "openproject-icon-font" + src: font-url('openproject_icon/openproject-icon-font.eot') + src: font-url('openproject_icon/openproject-icon-font.eot?#iefix') format("embedded-opentype"), font-url('openproject_icon/openproject-icon-font.ttf') format("truetype"), font-url('openproject_icon/openproject-icon-font.svg#untitled-font-1') format("svg"), font-url('openproject_icon/openproject-icon-font.woff') format("woff") font-weight: normal font-style: normal -@mixin data-icon - font-family: "openproject_icon_font" !important +@mixin icon-common + font-family: "openproject-icon-font" !important font-style: normal !important font-weight: normal !important font-variant: normal !important @@ -43,258 +45,734 @@ -webkit-font-smoothing: antialiased -moz-osx-font-smoothing: grayscale +@mixin icon-rules + padding: 0 5px 0 10px + color: $link_hover_color + +@mixin icon2-rules + padding: 0 17px 0 7px + +@mixin icon3-rules + padding: 0 8px 0 0 + +@mixin icon4-rules + padding: 0 8px 0 3px + font-size: 11px + +@mixin icon5-rules + padding: 0 7px 0 7px + +@mixin icon-context-rules + padding: 0 4px 0 0 + color: $link_hover_color [data-icon]:before - @include data-icon + @include icon-common content: attr(data-icon) - padding: 0px 7px 0px 7px + @include icon-rules [data-icon2]:before - @include data-icon + @include icon-common content: attr(data-icon2) - padding: 0px 17px 0px 7px + @include icon2-rules [data-icon3]:before - @include data-icon + @include icon-common content: attr(data-icon3) - padding: 0px 8px 0px 0px + @include icon3-rules [data-icon4]:before - @include data-icon + @include icon-common content: attr(data-icon4) - padding: 0px 8px 0px 3px - font-size: 11px + @include icon4-rules + +[data-icon5]:before + @include icon-common + content: attr(data-icon5) + @include icon5-rules + +[class^="icon-"]:before, +[class*=" icon-"]:before + @include icon-common + +.icon:before + @include icon-rules + +.icon2:before + @include icon2-rules + +.icon3:before + @include icon3-rules + +.icon4:before + @include icon4-rules + +.icon5:before + @include icon5-rules + +#errorExplanation:before + @include icon-common + @include icon-rules + float: left + +#context-menu .icon:before, +.icon-context:before + @include icon-context-rules + +.pagination .previous_page:before, +.pagination .next_page:after + @include icon-common + @include icon-context-rules +.pagination .next_page:after + padding: 0 0 0 4px + +.icon-add:before + content: "\e000" + +.icon-added:before + content: "\e001" + +.icon-calendar:before + content: "\e002" + +.icon-budget:before + content: "\e003" + +.icon-arrow-left-right:before + content: "\e004" + +.icon-cancel:before + content: "\e005" + +dt.changeset:before, +.icon-changeset:before + content: "\e006" + +.icon-close:before + content: "\e007" + +.icon-copy:before + content: "\e008" + +.pagination .previous_page:before, +.icon-double-arrow-left:before + content: "\e009" + +.pagination .next_page:after, +.icon-double-arrow-right:before + content: "\e00a" + +.icon-duplicate:before + content: "\e00b" + +#errorExplanation:before, +.icon-error:before + content: "\e00c" + +.icon-outline:before + content: "\e00d" + +.icon-open-folder:before + content: "\e00e" + +.icon-not-watch:before + content: "\e00f" + +dt.news:before, +.icon-news:before + content: "\e010" + +.icon-new-planning-element:before + content: "\e011" + +.icon-move:before + content: "\e012" + +.icon-link:before + content: "\e013" + +.icon-issue-reportedbyme:before + content: "\e014" + +.icon-issue-assignedtome:before + content: "\e015" + +.icon-issue-watched:before + content: "\e016" + +.icon-help:before + content: "\e017" + +.icon-group:before + content: "\e018" + +.icon-xls:before, .icon-excel:before + content: "\e019" + +.icon-priority:before + content: "\e01a" + +dt.project:before, +.icon-projects:before + content: "\e01b" + +.icon-publish:before + content: "\e01c" + +dt.message:before, +.icon-quote:before + content: "\e01d" + +.icon-rename:before + content: "\e01e" + +.icon-stats:before + content: "\e01f" + +.icon-status:before + content: "\e020" + +dt.issue:before, +dt.work_package:before, +.icon-ticket:before + content: "\e021" + +dt.issue-closed:before, +dt.work_package-closed:before, +.icon-ticket-checked:before + content: "\e022" + +dt.issue-edit:before, +dt.work_package-edit:before, +.icon-ticket-edit:before + content: "\e023" + +dt.issue-note:before, +dt.work_package-note:before, +.icon-ticket-note:before + content: "\e024" + +dt.time-entry:before, +.icon-time:before + content: "\e025" + +.icon-tracker:before + content: "\e026" + +.icon-warning:before + content: "\e028" + +.icon-version:before + content: "\e029" + +.icon-unit:before + content: "\e02a" + +.icon-add-folder:before + content: "\e02b" + +.icon-align-center:before + content: "\e02c" + +.icon-align-justify:before + content: "\e02d" + +.icon-align-left:before + content: "\e02e" + +.icon-anchor:before + content: "\e02f" + +.icon-align-right:before + content: "\e030" + +.icon-arrow-circle1:before + content: "\e031" + +.icon-arrow-circle2:before + content: "\e032" + +.icon-arrow-circle3:before + content: "\e033" + +.icon-arrow-right1:before + content: "\e034" + +.icon-battery2:before + content: "\e035" + +.icon-badge:before + content: "\e036" + +.icon-attention2:before + content: "\e037" + +.icon-attention1:before + content: "\e038" + +dt.attachment:before, +.icon-attachment:before + content: "\e039" + +.icon-arrow-right8:before + content: "\e03a" + +.icon-arrow-right7:before + content: "\e03b" + +.icon-arrow-right6:before + content: "\e03c" + +.icon-arrow-right5:before + content: "\e03d" + +.icon-arrow-right4:before + content: "\e03e" + +.icon-arrow-right3:before + content: "\e03f" + +.icon-arrow-right2:before + content: "\e040" + +.icon-battery3:before + content: "\e041" + +.icon-bold:before + content: "\e042" + +.icon-book1:before + content: "\e043" + +.icon-book2:before + content: "\e044" + +.icon-book3:before + content: "\e045" + +.icon-bubble:before + content: "\e046" + +.icon-bubble2:before + content: "\e047" + +dt.reply:before, +.icon-bubble3:before + content: "\e048" + +.icon-bulb1:before + content: "\e049" + +.icon-calendar2:before + content: "\e04a" + +.icon-camera:before + content: "\e04b" + +.icon-contacts:before + content: "\e04c" + +.icon-console:before + content: "\e04d" + +.icon-color-underline:before + content: "\e04e" + +.icon-color-text:before + content: "\e04f" + +.icon-code-tag:before + content: "\e050" + +.icon-clock-reminder:before + content: "\e051" + +.icon-changeset3:before + content: "\e052" + +.icon-changeset2:before + content: "\e053" + +.icon-cart:before + content: "\e054" + +.icon-copy2:before + content: "\e055" + +.icon-copy3:before + content: "\e056" + +.icon-cup:before + content: "\e057" + +.icon-cut:before + content: "\e058" + +.icon-delete:before + content: "\e059" + +.icon-delete2:before + content: "\e05a" + +.icon-delete-folder:before + content: "\e05b" + +.icon-dependency:before + content: "\e05c" + +.icon-download1:before + content: "\e05d" + +.icon-edit:before + content: "\e05e" + +.icon-help1:before + content: "\e05f" + +.icon-heart:before + content: "\e060" + +.icon-headphone:before + content: "\e061" + +.icon-grid-view2:before + content: "\e062" + +.icon-grid-view1:before + content: "\e063" + +.icon-fullscreen:before + content: "\e064" + +.icon-folder:before + content: "\e065" + +.icon-flag:before + content: "\e066" + +.icon-fire:before + content: "\e067" + +.icon-battery1:before + content: "\e068" + +.icon-help2:before + content: "\e069" + +.icon-home1:before + content: "\e06a" + +.icon-home2:before + content: "\e06b" + +.icon-image1:before + content: "\e06c" + +.icon-image2:before + content: "\e06d" + +.icon-info:before + content: "\e06e" + +.icon-info2:before + content: "\e06f" + +.icon-italic:before + content: "\e070" + +.icon-key:before + content: "\e071" + +.icon-line-through:before + content: "\e072" + +.icon-mail:before + content: "\e073" + +.icon-logout2:before + content: "\e074" + +.icon-logout:before + content: "\e075" + +.icon-locked-folder:before + content: "\e076" + +.icon-locked:before + content: "\e077" + +.icon-location:before + content: "\e078" + +.icon-loading2:before + content: "\e079" + +.icon-loading:before + content: "\e07a" + +.icon-list-view2:before + content: "\e07b" + +.icon-list-view1:before + content: "\e07c" + +.icon-list-num:before + content: "\e07d" + +.icon-list-bullet1:before + content: "\e07e" + +.icon-mail2:before + content: "\e07f" + +.icon-map:before + content: "\e080" + +.icon-microphone:before + content: "\e081" + +.icon-minus:before + content: "\e082" + +.icon-minus2:before + content: "\e083" + +.icon-mobile1:before + content: "\e084" + +.icon-mobile2:before + content: "\e085" + +.icon-movie1:before + content: "\e086" -#top-menu, #main-menu - [class^="icon-"]:before, - [class*=" icon-"]:before - @include data-icon +.icon-music:before + content: "\e087" -#top-menu, #main-menu - .icon-arrow-1-down:before - content: "a" +.icon-mute1:before + content: "\e088" - .icon-edit-pen-1:before - content: "b" +.icon-plus:before + content: "\e089" - .icon-copy:before - content: "c" +.icon-play:before + content: "\e08a" - .icon-add:before - content: "d" +.icon-pin:before + content: "\e08b" - .icon-content-14:before - content: "e" +.icon-phone:before + content: "\e08c" - .icon-time:before - content: "f" +.icon-paragraph-right:before + content: "\e08d" - .icon-unit:before - content: "g" +.icon-paragraph-left:before + content: "\e08e" - .icon-refresh-reload-1:before - content: "h" +.icon-paragraph:before + content: "\e08f" - .icon-lock-secure-1:before - content: "i" +.icon-paint:before + content: "\e090" - .icon-unlock:before - content: "j" +.icon-notes1:before + content: "\e091" - .icon-check-1:before - content: "k" +.icon-not-supported:before + content: "\e092" - .icon-quote:before - content: "l" +.icon-print:before + content: "\e093" - .icon-letter-mail-1:before - content: "m" +.icon-process-arrow1:before + content: "\e094" - .icon-duplicate:before - content: "n" +.icon-process-arrow2:before + content: "\e095" - .icon-open-folder:before - content: "o" +.icon-process-arrow3:before + content: "\e096" - .icon-filled-folder-1:before - content: "p" +.icon-process-arrow4:before + content: "\e097" - .icon-text-document:before - content: "q" +.icon-project-tree:before + content: "\e098" - .icon-compressed-zip-file:before - content: "r" +.icon-quote2:before + content: "\e099" - .icon-document-file-1:before - content: "s" +.icon-redo:before + content: "\e09a" - .icon-image-photo-file-1:before - content: "t" +.icon-reload1:before + content: "\e09b" - .icon-movie-play-file-1:before - content: "u" +.icon-settings4:before + content: "\e09c" - .icon-music-file-1:before - content: "v" +.icon-settings3:before + content: "\e09d" - .icon-stats:before - content: "w" +.icon-settings2:before + content: "\e09e" - .icon-move:before - content: "x" +.icon-settings:before + content: "\e09f" - .icon-priority:before - content: "y" +.icon-search2:before + content: "\e0a0" - .icon-tracker:before - content: "z" +.icon-search:before + content: "\e0a1" - .icon-status:before - content: "A" +.icon-screen1:before + content: "\e0a2" - .icon-male-user-1:before - content: "B" +.icon-save1:before + content: "\e0a3" - .icon-budget:before - content: "C" +.icon-rubber:before + content: "\e0a4" - .icon-cancel:before - content: "D" +.icon-atom:before, .icon-rss2:before + content: "\e0a5" - .icon-feed-rss-2:before - content: "E" +.icon-rss:before + content: "\e0a6" - .icon-delete-trash-1:before - content: "F" +.icon-reload2:before + content: "\e0a7" - .icon-eye-view-1:before - content: "G" +.icon-square:before + content: "\e0a8" - .icon-not-watch:before - content: "H" +.icon-star1:before + content: "\e0a9" - .icon-close:before - content: "I" +.icon-star2:before + content: "\e0aa" - .icon-disc-floppy-font:before - content: "J" +.icon-stats1:before + content: "\e0ab" - .icon-calendar:before - content: "K" +.icon-stats2:before + content: "\e0ac" - .icon-help:before - content: "L" +.icon-stats3:before + content: "\e0ad" - .icon-version:before - content: "M" +.icon-stats4:before + content: "\e0ae" - .icon-added:before - content: "N" +.icon-text:before + content: "\e0af" - .icon-arrow-left-right:before - content: "O" +.icon-thumb-down:before + content: "\e0b0" - .icon-arrow-left-right:before - content: "O" +.icon-thumb-up:before + content: "\e0b1" - .icon-minus-zoom:before - content: "P" +.icon-undo:before + content: "\e0b2" - .icon-minus-zoom:before - content: "P" +.icon-underline:before + content: "\e0b3" - .icon-plus-zoom:before - content: "Q" +.icon-tone2:before + content: "\e0b4" - .icon-outline:before - content: "R" +.icon-tone1:before + content: "\e0b5" - .icon-rename:before - content: "S" +.icon-time-1:before + content: "\e0b6" - .icon-gears-setting:before - content: "T" +.icon-ticket-minus:before + content: "\e0b7" - .icon-ticket:before - content: "U" +.icon-ticket-down:before + content: "\e0b8" - .icon-ticket-edit:before - content: "V" +.icon-ticket2:before + content: "\e0b9" - .icon-ticket-checked:before - content: "W" +.icon-unit2:before + content: "\e0ba" - .icon-ticket-note:before - content: "X" +.icon-unlocked:before + content: "\e0bb" - .icon-wiki-edit:before - content: "Y" +.icon-user1:before + content: "\e0bc" - .icon-cup-2:before - content: "Z" +.icon-user-minus:before + content: "\e0bd" - .icon-new-planning-element:before - content: "0" +.icon-user-plus:before + content: "\e0be" - .icon-changeset:before - content: "1" +.icon-view1:before + content: "\e0bf" - .icon-news:before - content: "2" +.icon-view2:before + content: "\e0c0" - .icon-projects:before - content: "3" +.icon-view3:before + content: "\e0c1" - .icon-link:before - content: "4" +.icon-watch-1:before + content: "\e0c2" - .icon-bookmark-star-favorite:before - content: "5" +.icon-wiki:before + content: "\e0c3" - .icon-excel:before - content: "6" +.icon-zoom-out:before + content: "\e0c4" - .icon-content-44:before - content: "7" +.icon-zoom-in:before + content: "\e0c5" - .icon-publish:before - content: "8" +.icon-yes3:before + content: "\e0c6" - .icon-double-arrow-left:before - content: "9" +.icon-yes2:before + content: "\e0c7" - .icon-double-arrow-right:before - content: "!" +.icon-notice:before, +.icon-yes:before + content: "\e0c8" - .icon-warning:before - content: "#" +.icon-wiki2:before + content: "\e027" - .icon-warning:before - content: "#" +dt.wiki-page:before, +.icon-wiki-edit:before + content: "\e0c9" - .icon-chart-graph-file-1:before - content: "$" +.icon-arrow-right5-1:before + content: "\e0ca" - .icon-lightbulb-shine:before - content: "%" +.icon-arrow-right5-2:before + content: "\e0cb" - .icon-group:before - content: "&" +.icon-arrow-right5-3:before + content: "\e0cc" - .icon-gift:before - content: "'" +.icon-arrow-right6-1:before + content: "\e0cd" - .icon-home-1:before - content: "(" +.icon-arrow-right6-2:before + content: "\e0ce" - .icon-clip-paper-1:before - content: ")" +.icon-arrow-right6-3:before + content: "\e0cf" - .icon-issue-assignedtome:before - content: "*" +.icon-unit2:before + content: "\e0ba" - .icon-issue-reportedbyme:before - content: "+" +.icon-server-key:before + content: "\e0d0" - .icon-issue-watched:before - content: "," diff --git a/app/assets/stylesheets/jstoolbar.css.erb b/app/assets/stylesheets/jstoolbar.css.erb index c62e709dc9..c7e3ff43e3 100644 --- a/app/assets/stylesheets/jstoolbar.css.erb +++ b/app/assets/stylesheets/jstoolbar.css.erb @@ -28,98 +28,98 @@ See doc/COPYRIGHT.rdoc for more details. ++*/ .jstEditor { - padding-left: 0px; + padding-left: 0px; } .jstEditor textarea, .jstEditor iframe { margin: 0; } .jstHandle { - height: 10px; - font-size: 0.1em; - cursor: s-resize; - /*background: transparent url(img/resizer.png) no-repeat 45% 50%;*/ + height: 10px; + font-size: 0.1em; + cursor: s-resize; + /*background: transparent url(img/resizer.png) no-repeat 45% 50%;*/ } .jstElements { - padding: 3px 3px; + padding: 3px 3px; } .jstElements button { - margin-right : 6px; - width : 24px; - height: 24px; - padding: 4px; - border-style: solid; - border-width: 1px; - border-color: #ddd; - background-color : #f7f7f7; - background-position : 50% 50%; - background-repeat: no-repeat; + margin-right : 6px; + width : 24px; + height: 24px; + padding: 4px; + border-style: solid; + border-width: 1px; + border-color: #ddd; + background-color : #f7f7f7; + background-position : 50% 50%; + background-repeat: no-repeat; } .jstElements button:hover { - border-color : #000; + border-color : #000; } .jstElements button span { - display : none; + display : none; } .jstElements span { - display : inline; + display : inline; } .jstSpacer { - width : 0px; - font-size: 1px; - margin-right: 4px; + width : 0px; + font-size: 1px; + margin-right: 4px; } .jstElements .help { float: right; margin-right: 0.5em; padding-top: 8px; font-size: 0.9em; } -.jstElements .help a {padding: 2px 0 2px 20px; background: url(<%= asset_path 'webalys/help.png' %>) no-repeat 0 50%;} +.jstElements .help a {padding: 2px 0 2px 20px; } /* Buttons -------------------------------------------------------- */ .jstb_strong { - background-image: url(<%= asset_path 'jstoolbar/bt_strong.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_strong.png' %>); } .jstb_em { - background-image: url(<%= asset_path 'jstoolbar/bt_em.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_em.png' %>); } .jstb_ins { - background-image: url(<%= asset_path 'jstoolbar/bt_ins.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_ins.png' %>); } .jstb_del { - background-image: url(<%= asset_path 'jstoolbar/bt_del.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_del.png' %>); } .jstb_code { - background-image: url(<%= asset_path 'jstoolbar/bt_code.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_code.png' %>); } .jstb_h1 { - background-image: url(<%= asset_path 'jstoolbar/bt_h1.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_h1.png' %>); } .jstb_h2 { - background-image: url(<%= asset_path 'jstoolbar/bt_h2.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_h2.png' %>); } .jstb_h3 { - background-image: url(<%= asset_path 'jstoolbar/bt_h3.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_h3.png' %>); } .jstb_ul { - background-image: url(<%= asset_path 'jstoolbar/bt_ul.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_ul.png' %>); } .jstb_ol { - background-image: url(<%= asset_path 'jstoolbar/bt_ol.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_ol.png' %>); } .jstb_bq { - background-image: url(<%= asset_path 'jstoolbar/bt_bq.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_bq.png' %>); } .jstb_unbq { - background-image: url(<%= asset_path 'jstoolbar/bt_bq_remove.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_bq_remove.png' %>); } .jstb_pre { - background-image: url(<%= asset_path 'jstoolbar/bt_pre.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_pre.png' %>); } .jstb_link { - background-image: url(<%= asset_path 'jstoolbar/bt_link.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_link.png' %>); } .jstb_img { - background-image: url(<%= asset_path 'jstoolbar/bt_img.png' %>); + background-image: url(<%= asset_path 'jstoolbar/bt_img.png' %>); } diff --git a/app/assets/stylesheets/layout/base.css.sass b/app/assets/stylesheets/layout/base.css.sass index e8dc51ab6f..35bb825ffa 100644 --- a/app/assets/stylesheets/layout/base.css.sass +++ b/app/assets/stylesheets/layout/base.css.sass @@ -25,10 +25,8 @@ * * See doc/COPYRIGHT.rdoc for more details. ++*/ -@mixin html_body_spacing - margin: 0 - padding: 0 - height: 100% +@import "variables" +@import "mixins" html overflow-y: scroll @@ -42,13 +40,20 @@ body background: white #wrapper - background: url(image-path('sidebar_bg.png')) repeat-y 0 0 + background-image: -webkit-gradient(linear, left 0%, left 100%, from($main_menu_bg_color), to($main_menu_bg_color)) + background-image: -webkit-linear-gradient(top, $main_menu_bg_color 0%, $main_menu_bg_color 100%) + background-image: -moz-linear-gradient(top, $main_menu_bg_color 0%, $main_menu_bg_color 100%) + background-image: linear-gradient(to bottom, $main_menu_bg_color 0%, $main_menu_bg_color 100%) + background-repeat: no-repeat + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($main_menu_bg_color)}', endColorstr='#{ie-hex-str($main_menu_bg_color)}', GradientType=0) + + background-size: $main_menu_width 100% min-height: 100% position: relative &.nosidebar, &.nomenus background: none &.hidden-navigation - background-position: -220px 0 + background-size: $main_menu_folded_width 100% h1 margin: 0 @@ -71,3 +76,15 @@ h4, .wiki h3 padding-bottom: 155px overflow: auto +#content + margin: 0 0 0 $main_menu_width + padding: 10px + width: auto + overflow: hidden + height: auto + background-color: #fff + border-style: none solid solid solid + z-index: 10 + &.hidden-navigation + margin-left: $main_menu_folded_width + diff --git a/app/assets/stylesheets/content/breadcrumb.css.sass b/app/assets/stylesheets/layout/breadcrumb.css.sass similarity index 85% rename from app/assets/stylesheets/content/breadcrumb.css.sass rename to app/assets/stylesheets/layout/breadcrumb.css.sass index 2be4ea99c2..cc63266ffd 100644 --- a/app/assets/stylesheets/content/breadcrumb.css.sass +++ b/app/assets/stylesheets/layout/breadcrumb.css.sass @@ -25,17 +25,8 @@ * * See doc/COPYRIGHT.rdoc for more details. ++*/ -@mixin breadcrumb-font($color) - color: $color - font-size: 12px - font-family: 'LatoRegular', 'Lucida Grande', Helvetica, Arial, sans-serif - font-weight: normal - -@mixin breadcrumb-font-bold($color) - color: $color - font-size: 12px - font-family: 'LatoBold', 'Lucida Grande', Helvetica, Arial, sans-serif - font-weight: normal +@import "variables" +@import "mixins" #breadcrumb height: 40px @@ -43,7 +34,7 @@ background: none repeat scroll 0 0 #F8F8F8 border: none border-bottom: 1px solid #E7E7E7 - margin: 0 0 0 270px + margin: 0 0 0 $main_menu_width width: auto overflow: hidden position: relative @@ -52,7 +43,7 @@ ul margin: 0 0 0 0 &.hidden-navigation - margin-left: 50px + margin-left: $main_menu_folded_width h1 margin-bottom: 0px diff --git a/app/assets/stylesheets/layout/footer.css.sass b/app/assets/stylesheets/layout/footer.css.sass index 9f879d0638..f885c45b3f 100644 --- a/app/assets/stylesheets/layout/footer.css.sass +++ b/app/assets/stylesheets/layout/footer.css.sass @@ -48,6 +48,5 @@ color: #FFFFFF text-decoration: underline font-family: 'LatoBold', 'Lucida Grande', Helvetica, Arial, sans-serif - font-weight: normal - + font-weight: normal diff --git a/app/assets/stylesheets/content/main_menu.css.sass b/app/assets/stylesheets/layout/main_menu.css.sass similarity index 62% rename from app/assets/stylesheets/content/main_menu.css.sass rename to app/assets/stylesheets/layout/main_menu.css.sass index b003f7452f..d1a64d74d1 100644 --- a/app/assets/stylesheets/content/main_menu.css.sass +++ b/app/assets/stylesheets/layout/main_menu.css.sass @@ -25,26 +25,12 @@ * * See doc/COPYRIGHT.rdoc for more details. ++*/ -$main_menu_bg_color: #053242 -$main_menu_bg_hover_selected_color: #04232F -$main_menu_folded_width: 50px - -@mixin default-transition - -webkit-transition: all 500ms ease-in-out 0s - -moz-transition: all 500ms ease-in-out 0s - -ms-transition: all 500ms ease-in-out 0s - -o-transition: all 500ms ease-in-out 0s - transition: all 500ms ease-in-out 0s - -@mixin main-menu-font - font-style: normal - font-family: 'LatoRegular','Lucida Grande',Helvetica,Arial,sans-serif - +@import "variables" +@import "mixins" #main-menu bottom: auto - left: 6px - width: 270px + width: $main_menu_width float: left left: 0 background-color: $main_menu_bg_color @@ -86,15 +72,6 @@ $main_menu_folded_width: 50px color: #999 float: right padding-right: 9px - li - padding: 0 - width: 100% - border-bottom: 1px solid #DDDDDD - border-top: 1px solid #FFFFFF - &:first-child - border-top: 0 - a span - padding: 0 ul display: none padding-top: 1px @@ -102,36 +79,28 @@ $main_menu_folded_width: 50px &.menu-children.unattached border-top: 1px solid #ddd - ul - position: absolute - left: 185px - z-index: 20 - width: 100% - top: 0 - border: 1px solid #AFAFAF - background: #f3f3f3 - ul.menu-children background: #f8f8f8 border-right: 1px solid #E7E7E7 padding: 10px 0 li padding: 0 15px 0 0 - li a - font-size: 13px - line-height: 25px - height: 25px - border: none - padding: 0 0 0 50px - color: #04232F - li a:hover - border: none - background: none - li a.selected - border: none !important - background: none - color: #04232F - font-family: 'LatoBold','Lucida Grande',Helvetica,Arial,sans-serif + a + font-size: 13px + line-height: 25px + height: 25px + border: none + padding: 0 0 0 10px + color: #04232F + + &:hover + border: none + background: none + &.selected + border: none !important + background: none + color: #04232F + font-family: 'LatoBold','Lucida Grande',Helvetica,Arial,sans-serif a text-decoration: none @@ -150,24 +119,15 @@ $main_menu_folded_width: 50px right: 0 top: 0 width: 50px - height: 40px + height: 40px text-align: center - li .open - li .open .toggler - -moz-transform: rotate(180deg) - -webkit-transform: rotate(180deg) - -o-transform: rotate(180deg) - -ms-transform: rotate(180deg) - transform: rotate(180deg) - li .selected.open .toggler, li .open:hover .toggler - -moz-transform: rotate(180deg) - -webkit-transform: rotate(180deg) - -o-transform: rotate(180deg) - -ms-transform: rotate(180deg) - transform: rotate(180deg) + li + .open, .selected.open + .toggler:before + content: "\e0cc" #toggle-project-menu height: 40px - width: 270px + width: $main_menu_width border: none background-color: $main_menu_bg_color &:hover @@ -258,7 +218,6 @@ $main_menu_folded_width: 50px cursor: pointer @include main-menu-font - ul border: none overflow-x: hidden @@ -267,45 +226,3 @@ $main_menu_folded_width: 50px li a padding: 0px - - -/* this part is just copied from application.css with needed changes for sass - * should be refactored with the rest of the main_menu css*/ - - -#main-menu ul.menu_root li li .toggler - display: none - -#main-menu ul.menu_root li li li a - padding: 0 12px - -#main-menu ul.menu_root li li ul.profile-box li - padding: 6px 12px - -#main-menu ul.menu_root li li ul.profile-box li a - display: inline - padding: 0 - color: #226D81 - line-height: 1.5 - -#main-menu ul.menu_root li li ul.profile-box li a:hover - text-decoration: underline - - -/* Mimic ".icon .icon-time" */ -#main-menu ul.menu_root li a.time-details, #main-menu ul.menu_root li a.billable-time-details, #main-menu ul.menu_root li a.overhead-time-details - background-image: url(image-path('webalys/time.png')) - background-position: 30px 40% - background-repeat: no-repeat - padding-left: 50px - -#main-menu p.password - font-weight: bold - margin: 25px 0 - - - -#main-menu ul.menu_root li a.time-details, #main-menu ul.menu_root li a.overhead-time-details, #main-menu ul.menu_root li a.billable-time-details - padding-left: 40px - background-position: 12px 45% - diff --git a/app/assets/stylesheets/layout/top_menu.css.sass b/app/assets/stylesheets/layout/top_menu.css.sass index 93a58262e2..8fae6ecf3a 100644 --- a/app/assets/stylesheets/layout/top_menu.css.sass +++ b/app/assets/stylesheets/layout/top_menu.css.sass @@ -25,38 +25,24 @@ * * See doc/COPYRIGHT.rdoc for more details. ++*/ -@mixin header-fonts($color) - color: $color - font-size: 14px - font-family: 'LatoRegular', 'Lucida Grande', Helvetica, Arial, sans-serif - font-weight: normal +@import "variables" +@import "mixins" -@mixin header-pulldown-fonts($color) - color: $color - font-size: 13px - font-family: 'LatoRegular', 'Lucida Grande', Helvetica, Arial, sans-serif - font-weight: normal - -@mixin default-transition - -webkit-transition: all 500ms ease-in-out 0s - -moz-transition: all 500ms ease-in-out 0s - -ms-transition: all 500ms ease-in-out 0s - -o-transition: all 500ms ease-in-out 0s - transition: all 500ms ease-in-out 0s #logo float: left - width: 270px + width: $main_menu_width height: 55px - background-color: #06799F - .home-link-image - width: 150px + background-color: $header_logo_bg_color .home-link margin-top: 13px display: block - padding-left: 20px + background: url(image-path('logo_openproject_white_big.png')) no-repeat 20px 0 + background-size: 150px + height: 42px + text-indent: -9999em #top-menu - background-color: #3493B3 + background-color: $header_bg_color height: 55px padding: 0px z-index: 21 @@ -156,7 +142,7 @@ border-top: 0 line-height: 19px padding: 10px - @include header-pulldown-fonts(#555555) + @include header-fonts(#555555, 13px) #nav-login-content input[type=text] height: 16px width: 150px @@ -209,7 +195,7 @@ margin: 0 0 0 -2px border: 2px solid #E0E0E0 border-top: 0 - @include header-pulldown-fonts(#555555) + @include header-fonts(#555555, 13px) li padding: 0 10px @@ -238,7 +224,7 @@ #header height: 55px - min-width: 1100px + min-width: 1300px .chzn-container .chzn-results .highlighted background-color: #24b3e7 diff --git a/app/assets/stylesheets/timelines.css b/app/assets/stylesheets/timelines.css index d7b61c857d..a35d90b74d 100644 --- a/app/assets/stylesheets/timelines.css +++ b/app/assets/stylesheets/timelines.css @@ -190,6 +190,22 @@ not be applied in anything that is not display:table-cell */ vertical-align: bottom; } +.tl-icon-postponed, +.tl-icon-preponed, +.tl-icon-added, +.tl-icon-deleted, +.tl-icon-changed, +.tl-icon-calendar, +.tl-icon-zoomin, +.tl-icon-zoomout, +.tl-icon-outline { + background-position: 0% 50%; + background-repeat: no-repeat; + padding-left: 19px; + padding-top: 2px; + padding-bottom: 3px; +} + .tl-icon-postponed { cursor: default; background: url("../assets/bullet_red.png") no-repeat center; diff --git a/app/assets/stylesheets/top-shelf.css.erb b/app/assets/stylesheets/top-shelf.css.erb index beb7358c8c..33c363c060 100644 --- a/app/assets/stylesheets/top-shelf.css.erb +++ b/app/assets/stylesheets/top-shelf.css.erb @@ -28,7 +28,7 @@ See doc/COPYRIGHT.rdoc for more details. ++*/ .top-shelf { - background: #FFC38C url(<%= asset_path 'webalys/warning.png' %>) 22px 18px no-repeat; + background-color: #FFC38C; border-bottom: 1px solid black; font-size: 12px; font-weight: normal; @@ -38,6 +38,11 @@ See doc/COPYRIGHT.rdoc for more details. padding-top: 18px; } +.top-shelf:before { + position: absolute; + left: 15px; +} + .top-shelf h1 { font-size: 12px; font-weight: bold; diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 019eac0f4e..bd4f36bd5c 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -176,7 +176,7 @@ module ApplicationHelper link = '' if show_icon && User.current.member_of?(project) - link << image_tag('webalys/fav.png', :alt => l(:description_my_project), :title => l(:description_my_project)) + link << icon_wrapper("icon-context icon-star1",I18n.t(:description_my_project)) end if project.active? @@ -266,9 +266,9 @@ module ApplicationHelper # Renders flash messages def render_flash_messages if User.current.impaired? - flash.map { |k,v| content_tag('div', content_tag('a', join_flash_messages(v), :href => 'javascript:;'), :class => "flash #{k}") }.join.html_safe + flash.map { |k,v| content_tag('div', content_tag('a', join_flash_messages(v), :href => 'javascript:;'), :class => "flash #{k} icon icon-#{k}") }.join.html_safe else - flash.map { |k,v| content_tag('div', join_flash_messages(v), :class => "flash #{k}") }.join.html_safe + flash.map { |k,v| content_tag('div', join_flash_messages(v), :class => "flash #{k} icon icon-#{k}") }.join.html_safe end end @@ -916,7 +916,7 @@ module ApplicationHelper def checked_image(checked=true) if checked - image_tag('webalys/check.png', :alt => l(:label_checked), :title => l(:label_checked)) + icon_wrapper('icon-context icon-yes',l(:label_checked)) end end @@ -1062,4 +1062,9 @@ module ApplicationHelper s end + def icon_wrapper(icon_class, label) + content = content_tag(:span, '', :class => icon_class) + content += content_tag(:span, label, :class => 'hidden-for-sighted') + end + end diff --git a/app/helpers/breadcrumb_helper.rb b/app/helpers/breadcrumb_helper.rb index 0d84d8f185..698dc5caba 100644 --- a/app/helpers/breadcrumb_helper.rb +++ b/app/helpers/breadcrumb_helper.rb @@ -28,9 +28,7 @@ module BreadcrumbHelper def full_breadcrumb - home_link_text_with_icon = content_tag(:span, '',:'data-icon' => "(") - home_link_text_with_icon += content_tag(:span, I18n.t(:label_home), :class => 'hidden-for-sighted') - breadcrumb_list(link_to(home_link_text_with_icon, home_path), + breadcrumb_list(link_to(icon_wrapper("icon2 icon-home2", I18n.t(:label_home)), home_path), link_to_project_ancestors(@project), *breadcrumb_paths) end diff --git a/app/helpers/context_menus_helper.rb b/app/helpers/context_menus_helper.rb index 9a80f0c044..34c239c2ea 100644 --- a/app/helpers/context_menus_helper.rb +++ b/app/helpers/context_menus_helper.rb @@ -43,7 +43,7 @@ module ContextMenusHelper def context_menu_link(name, url, options={}) options[:class] ||= '' if options.delete(:selected) - options[:class] << ' icon-checked disabled' + options[:class] << ' icon-context icon-yes disabled' options[:disabled] = true end if options.delete(:disabled) diff --git a/app/helpers/journals_helper.rb b/app/helpers/journals_helper.rb index 3a36abfadf..9d80c2db49 100644 --- a/app/helpers/journals_helper.rb +++ b/app/helpers/journals_helper.rb @@ -94,15 +94,18 @@ module JournalsHelper # currently rendering the view # the quote link should somehow be supplied controller_name = controller.class.to_s.underscore.gsub(/_controller\z/,"").to_sym - l << link_to(image_tag('webalys/quote.png', :alt => l(:button_quote), :title => l(:button_quote)), + l << link_to(icon_wrapper('icon-context icon-quote', l(:button_quote)), { :controller => controller_name, :action => 'quoted', :id => model, - :journal_id => journal }, :class => 'quote-link') + :journal_id => journal }, + :title => l(:button_quote), + :class => 'quote-link no-decoration-on-hover') end if editable - l << link_to_in_place_notes_editor(image_tag('webalys/edit.png', :alt => l(:button_edit), :title => l(:button_edit)), "journal-#{journal.id}-notes", + l << link_to_in_place_notes_editor(icon_wrapper('icon-context icon-edit', l(:button_edit)), "journal-#{journal.id}-notes", { :controller => '/journals', :action => 'edit', :id => journal }, + :class => 'no-decoration-on-hover', :title => l(:button_edit)) end end diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 26c99fc141..dc53d6dac5 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -109,9 +109,9 @@ module UsersHelper def change_user_status_links(user) icons = { - 'unlock' => 'unlock', - 'activate' => 'unlock', - 'lock' => 'lock' + 'unlock' => 'unlocked', + 'activate' => 'unlocked', + 'lock' => 'locked' } build_change_user_status_action(user) do |title, name| link_to title, diff --git a/app/helpers/watchers_helper.rb b/app/helpers/watchers_helper.rb index 2f142f14d2..709abf13cb 100644 --- a/app/helpers/watchers_helper.rb +++ b/app/helpers/watchers_helper.rb @@ -57,7 +57,7 @@ module WatchersHelper path = send(:"#{(watched ? 'unwatch' : 'watch')}_path", :object_type => object.class.to_s.underscore.pluralize, :object_id => object.id, :replace => options.delete('replace') ) - html_options[:class] = html_options[:class].to_s + (watched ? ' icon icon-fav' : ' icon icon-fav-off') + html_options[:class] = html_options[:class].to_s + (watched ? ' icon icon-watch-1' : ' icon icon-not-watch') method = watched ? :delete : diff --git a/app/helpers/work_packages_helper.rb b/app/helpers/work_packages_helper.rb index 4d778a54e7..11be1f5659 100644 --- a/app/helpers/work_packages_helper.rb +++ b/app/helpers/work_packages_helper.rb @@ -517,10 +517,11 @@ module WorkPackagesHelper (locals[:project].categories.collect {|c| [c.name, c.id]}), :include_blank => true) - field += prompt_to_remote(image_tag('webalys/plus.png', :style => 'vertical-align: middle;'), + field += prompt_to_remote(icon_wrapper('icon-context icon-add',t(:label_work_package_category_new)), t(:label_work_package_category_new), 'category[name]', project_categories_path(locals[:project]), + :class => 'no-decoration-on-hover', :title => t(:label_work_package_category_new)) if authorize_for('categories', 'new') WorkPackageAttribute.new(:category, field) @@ -532,10 +533,11 @@ module WorkPackagesHelper field = form.select(:fixed_version_id, version_options_for_select(work_package.assignable_versions, work_package.fixed_version), :include_blank => true) - field += prompt_to_remote(image_tag('webalys/plus.png', :style => 'vertical-align: middle;'), + field += prompt_to_remote(icon_wrapper('icon-context icon-add',t(:label_version_new)), l(:label_version_new), 'version[name]', new_project_version_path(locals[:project]), + :class => 'no-decoration-on-hover', :title => l(:label_version_new)) if authorize_for('versions', 'new') WorkPackageAttribute.new(:fixed_version, field) diff --git a/app/views/activities/index.html.erb b/app/views/activities/index.html.erb index 74b8f6d257..ca35729874 100644 --- a/app/views/activities/index.html.erb +++ b/app/views/activities/index.html.erb @@ -39,7 +39,7 @@ See doc/COPYRIGHT.rdoc for more details.

<%= format_activity_day(day) %>

<% @events_by_day[day].sort {|x,y| y.event_datetime <=> x.event_datetime }.each do |e| -%> -
+
<%= avatar(e.event_author, :size => "24") if e.respond_to?(:event_author) %> <%= format_time(e.event_datetime.to_time, false) %> <%= content_tag('span', link_to(e.project.name, e.project), :class => 'project') if (@project.nil? || @project != e.project) && e.project %> diff --git a/app/views/admin/info.html.erb b/app/views/admin/info.html.erb index c4027a5636..e4616e2c87 100644 --- a/app/views/admin/info.html.erb +++ b/app/views/admin/info.html.erb @@ -38,7 +38,7 @@ See doc/COPYRIGHT.rdoc for more details. <% @checklist.each do |label, result| %> <%= l(label) %> - <%= image_tag((result ? 'webalys/check.png' : 'webalys/error.png'), :style => "vertical-align:bottom;", :alt => (result ? l(:general_text_Yes) : l(:general_text_No))) %> + <%= icon_wrapper((result ? 'icon-context icon-yes' : 'icon-context icon-error'), (result ? l(:general_text_Yes) : l(:general_text_No))) %> <% end %> diff --git a/app/views/admin/projects.html.erb b/app/views/admin/projects.html.erb index 72cf94a9b1..658980bf5a 100644 --- a/app/views/admin/projects.html.erb +++ b/app/views/admin/projects.html.erb @@ -44,7 +44,7 @@ See doc/COPYRIGHT.rdoc for more details. <%= text_field_tag 'name', params[:name], :size => 30 %> <%= submit_tag l(:button_apply), :class => "small", :name => nil %> -<%= link_to l(:button_clear), {:controller => '/admin', :action => 'projects'}, :class => 'icon icon-reload' %> +<%= link_to l(:button_clear), {:controller => '/admin', :action => 'projects'}, :class => 'icon icon-undo' %> <% end %>   @@ -68,12 +68,12 @@ See doc/COPYRIGHT.rdoc for more details. archive_project_path(project, :status => params[:status]), :confirm => l(:text_are_you_sure), :method => :put, - :class => 'icon icon-lock') if project.active? %> + :class => 'icon icon-locked') if project.active? %> <%= link_to(l(:button_unarchive), unarchive_project_path(project, :status => params[:status]), :method => :put, - :class => 'icon icon-unlock') if !project.active? && (project.parent.nil? || project.parent.active?) %> + :class => 'icon icon-unlocked') if !project.active? && (project.parent.nil? || project.parent.active?) %> <%= link_to(l(:button_copy), copy_from_project_path(project, :admin), @@ -81,7 +81,7 @@ See doc/COPYRIGHT.rdoc for more details. <%= link_to(l(:button_delete), confirm_destroy_project_path(project), - :class => 'icon icon-del') %> + :class => 'icon icon-delete') %> <% end %> diff --git a/app/views/attachments/_links.html.erb b/app/views/attachments/_links.html.erb index 94ef04cd50..4eaa69729d 100644 --- a/app/views/attachments/_links.html.erb +++ b/app/views/attachments/_links.html.erb @@ -37,9 +37,7 @@ See doc/COPYRIGHT.rdoc for more details. <%= h(" - #{attachment.description}") unless attachment.description.blank? %> (<%= number_to_human_size attachment.filesize %>) <% if options[:deletable] %> - <%= link_to image_tag('webalys/delete.png', - alt: l(:button_delete), - title: l(:button_delete)), + <%= link_to icon_wrapper('icon-context icon-delete', l(:button_delete)), attachment, { confirm: l(:text_are_you_sure), method: :delete, diff --git a/app/views/auth_sources/index.html.erb b/app/views/auth_sources/index.html.erb index 155e426ed9..9abf632d34 100644 --- a/app/views/auth_sources/index.html.erb +++ b/app/views/auth_sources/index.html.erb @@ -53,7 +53,7 @@ See doc/COPYRIGHT.rdoc for more details. <%= link_to l(:button_delete), { :action => 'destroy', :id => source }, :method => :delete, :confirm => l(:text_are_you_sure), - :class => 'icon icon-del', + :class => 'icon icon-delete', :disabled => source.users.any? %> diff --git a/app/views/boards/show.html.erb b/app/views/boards/show.html.erb index d9a362ec37..3d1aa39e73 100644 --- a/app/views/boards/show.html.erb +++ b/app/views/boards/show.html.erb @@ -69,7 +69,11 @@ See doc/COPYRIGHT.rdoc for more details. <% @topics.each do |topic| %> - <%= image_tag('webalys/locked.png', :alt => l(:label_board_locked)) if topic.locked? %><%= image_tag 'bullet_go.png', :alt => l(:label_board_sticky) if topic.sticky? %><%= link_to h(topic.subject), { :controller => '/messages', :action => 'show', :board_id => @board, :id => topic } %> + + <%= icon_wrapper('icon-context icon-locked',l(:label_board_locked)) if topic.locked? %> + <%= image_tag 'bullet_go.png', :alt => l(:label_board_sticky) if topic.sticky? %> + <%= link_to h(topic.subject), { :controller => '/messages', :action => 'show', :board_id => @board, :id => topic } %> + <%= link_to_user(topic.author) %> <%= format_time(topic.created_on) %> <%= topic.replies_count %> diff --git a/app/views/common/_calendar.html.erb b/app/views/common/_calendar.html.erb index e1fd116d54..9bf6ca26ef 100644 --- a/app/views/common/_calendar.html.erb +++ b/app/views/common/_calendar.html.erb @@ -60,7 +60,7 @@ while day <= calendar.enddt %> <% else %>
<%= h("#{i.project} -") unless @project && @project == i.project %> - <%= link_to_version i, {}, {:before_text => image_tag("webalys/package.png", :title => Version.model_name.human, :alt => Version.model_name.human, :class => "imgtag-icon") }%> + <%= link_to_version i, {}, {:before_text => icon_wrapper('icon-context icon-version', Version.model_name.human) }%>
<% end %> <% end %> diff --git a/app/views/enumerations/index.html.erb b/app/views/enumerations/index.html.erb index 8f5bf58939..98cd8af6b5 100644 --- a/app/views/enumerations/index.html.erb +++ b/app/views/enumerations/index.html.erb @@ -52,7 +52,7 @@ See doc/COPYRIGHT.rdoc for more details. <%= link_to l(:button_delete), { :action => 'destroy', :id => enumeration }, :method => :delete, :confirm => l(:text_are_you_sure), - :class => 'icon icon-del' %> + :class => 'icon icon-delete' %> <% end %> diff --git a/app/views/groups/_memberships.html.erb b/app/views/groups/_memberships.html.erb index 22d2e7d76a..8997189383 100644 --- a/app/views/groups/_memberships.html.erb +++ b/app/views/groups/_memberships.html.erb @@ -62,7 +62,7 @@ See doc/COPYRIGHT.rdoc for more details. <%= link_to l(:button_delete), membership_of_group_path(@group, membership), :method => :delete, :remote => true, - :class => 'icon icon-del' %> + :class => 'icon icon-delete' %> diff --git a/app/views/groups/_users.html.erb b/app/views/groups/_users.html.erb index d266e203c8..905b80ec32 100644 --- a/app/views/groups/_users.html.erb +++ b/app/views/groups/_users.html.erb @@ -42,7 +42,7 @@ See doc/COPYRIGHT.rdoc for more details. <%= link_to l(:button_delete), member_of_group_path(@group, user), :method => :delete, :remote => :true, - :class => 'icon icon-del' %> + :class => 'icon icon-delete' %> diff --git a/app/views/groups/index.html.erb b/app/views/groups/index.html.erb index 86898aad26..de646b6405 100644 --- a/app/views/groups/index.html.erb +++ b/app/views/groups/index.html.erb @@ -45,7 +45,7 @@ See doc/COPYRIGHT.rdoc for more details. <%= link_to h(group), :action => 'edit', :id => group %> <%= group.users.size %> - <%= link_to l(:button_delete), group, :confirm => l(:text_are_you_sure), :method => :delete, :class => 'icon icon-del' %> + <%= link_to l(:button_delete), group, :confirm => l(:text_are_you_sure), :method => :delete, :class => 'icon icon-delete' %> <% end %> diff --git a/app/views/layouts/_action_menu.html.erb b/app/views/layouts/_action_menu.html.erb index 7044de5d94..c0e5179676 100644 --- a/app/views/layouts/_action_menu.html.erb +++ b/app/views/layouts/_action_menu.html.erb @@ -32,7 +32,7 @@ See doc/COPYRIGHT.rdoc for more details. <%= content_for :action_menu_main %> <% if content_for?(:action_menu_more) %>