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 @@
+
+
+
\ 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 @@
-
-
-
\ 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.