new olive theme
This commit is contained in:
parent
aca4f8a3c6
commit
abfba98334
BIN
arts/logo3.xcf
BIN
arts/logo3.xcf
Binary file not shown.
|
@ -3,7 +3,7 @@ pl:
|
|||
email: E-mail
|
||||
password: Hasło
|
||||
log_in: Zaloguj
|
||||
wrong_email_or_password: Podano nieprawidłowy login lub hasło.
|
||||
wrong_email_or_password: Podano nieprawidłowy login lub hasło
|
||||
mailbox: Poczta
|
||||
folders: Foldery
|
||||
folder: Folder
|
||||
|
@ -64,9 +64,9 @@ pl:
|
|||
add_folder: Dodaj folder
|
||||
total_messages: Total messages
|
||||
unseen: Unseen
|
||||
add_edit_folder: Zarządzanie folderami
|
||||
add_edit_folder: Zarządzaj
|
||||
user_logged_out: Użytkownik został wylogowany
|
||||
please_login: Logowanie
|
||||
add_to_contacts: Dodaj do kontaktów
|
||||
want_to_empty_trash_message: Czy chcesz opróznic kosz?
|
||||
|
||||
site_link: https://github.com/lmanolov/mailr
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<title><%=t(:mailr) %> » <%= t(:please_login)%></title>
|
||||
<%=stylesheet_link_tag "admin", "mailr" %>
|
||||
</head>
|
||||
<body>
|
||||
<%= yield %>
|
||||
</body>
|
||||
</html>
|
|
@ -1,27 +0,0 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<%= @htmllang %>" lang="<%= @htmllang %>">
|
||||
<head>
|
||||
<title><%= t :mailr %></title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<% @additional_css ||= [] %>
|
||||
<% @additional_js ||= [] %>
|
||||
<%=stylesheet_link_tag "admin", "tabs", "mailr", @additional_css %>
|
||||
<%=javascript_include_tag :defaults, "global", "webmail", @additional_js %>
|
||||
<%#=(@content_for_scripts ? @content_for_scripts : @additional_scripts )%>
|
||||
</head>
|
||||
<body id="bodyID" onload="<%=@onload_function%>">
|
||||
<div id="wholepage">
|
||||
<div id="container">
|
||||
<div id="sidebar_outer">
|
||||
<div id="logo"></div>
|
||||
<div id="sidebar">
|
||||
<%= yield :sidebar %>
|
||||
</div>
|
||||
</div>
|
||||
<div id="content"><%= yield %></div>
|
||||
<br class="clear"/>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
3
themes/olive/README.olive
Normal file
3
themes/olive/README.olive
Normal file
|
@ -0,0 +1,3 @@
|
|||
Theme based on Web App Theme Olive theme.
|
||||
|
||||
http://pilu.github.com/web-app-theme/#themes/olive
|
BIN
themes/olive/images/key.png
Normal file
BIN
themes/olive/images/key.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 612 B |
BIN
themes/olive/images/logo_small.png
Normal file
BIN
themes/olive/images/logo_small.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
52
themes/olive/javascripts/contact_choose.js
Executable file
52
themes/olive/javascripts/contact_choose.js
Executable file
|
@ -0,0 +1,52 @@
|
|||
|
||||
var fieldTo = ""
|
||||
var fieldToc = ""
|
||||
var fieldCC = ""
|
||||
var fieldBCC = ""
|
||||
|
||||
function respondTo(str) {
|
||||
if (fieldTo == "") fieldTo += str
|
||||
else fieldTo += "," + str
|
||||
}
|
||||
|
||||
function respondTo(str, contactId) {
|
||||
if (fieldTo == "") fieldTo += str
|
||||
else fieldTo += "," + str
|
||||
|
||||
if (fieldToc == "") fieldToc += contactId
|
||||
else fieldToc += "," + contactId
|
||||
}
|
||||
|
||||
function respondCC(str) {
|
||||
if (fieldCC == "") fieldCC += str
|
||||
else fieldCC += "," + str
|
||||
}
|
||||
|
||||
function respondBCC(str) {
|
||||
if (fieldBCC == "") fieldBCC += str
|
||||
else fieldBCC += "," + str
|
||||
}
|
||||
|
||||
function respondToCaller() {
|
||||
if (window.opener) {
|
||||
doc = window.opener.document;
|
||||
setAddrField(getFormFieldPoint(doc, 'mail_to'), fieldTo);
|
||||
setAddrField(getFormFieldPoint(doc, 'mail_toc'), fieldToc);
|
||||
setAddrField(getFormFieldPoint(doc, 'mail_cc'), fieldCC);
|
||||
setAddrField(getFormFieldPoint(doc, 'mail_bcc'), fieldBCC);
|
||||
window.close();
|
||||
}
|
||||
}
|
||||
|
||||
function getFormFieldPoint(doc, id) {
|
||||
if ( doc.getElementById ) elem = doc.getElementById( id );
|
||||
else if ( doc.all ) elem = doc.eval( "document.all." + id );
|
||||
return elem
|
||||
}
|
||||
|
||||
function setAddrField(fld, value) {
|
||||
if (value != "") {
|
||||
if (fld.value == "") fld.value = value;
|
||||
else fld.value += "," + value;
|
||||
}
|
||||
}
|
349
themes/olive/javascripts/effects2.js
Executable file
349
themes/olive/javascripts/effects2.js
Executable file
|
@ -0,0 +1,349 @@
|
|||
// Copyright (c) 2005 Thomas Fuchs (http://mir.aculo.us)
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining
|
||||
// a copy of this software and associated documentation files (the
|
||||
// "Software"), to deal in the Software without restriction, including
|
||||
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||
// permit persons to whom the Software is furnished to do so, subject to
|
||||
// the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be
|
||||
// included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
Effect2 = {}
|
||||
|
||||
/* ------------- transitions ------------- */
|
||||
|
||||
Effect2.Transitions = {}
|
||||
Effect2.Transitions.linear = function(pos) {
|
||||
return pos;
|
||||
}
|
||||
Effect2.Transitions.sinoidal = function(pos) {
|
||||
return (-Math.cos(pos*Math.PI)/2) + 0.5;
|
||||
}
|
||||
Effect2.Transitions.reverse = function(pos) {
|
||||
return 1-pos;
|
||||
}
|
||||
Effect2.Transitions.flicker = function(pos) {
|
||||
return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random(0.25);
|
||||
}
|
||||
Effect2.Transitions.wobble = function(pos) {
|
||||
return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;
|
||||
}
|
||||
|
||||
/* ------------- core effects ------------- */
|
||||
|
||||
Effect2.Base = function() {};
|
||||
Effect2.Base.prototype = {
|
||||
setOptions: function(options) {
|
||||
this.options = {
|
||||
transition: Effect2.Transitions.sinoidal,
|
||||
duration: 1.0, // seconds
|
||||
fps: 25.0, // max. 100fps
|
||||
sync: false, // true for combining
|
||||
from: 0.0,
|
||||
to: 1.0
|
||||
}.extend(options || {});
|
||||
},
|
||||
start: function(options) {
|
||||
this.setOptions(options || {});
|
||||
this.currentFrame = 0;
|
||||
this.startOn = new Date().getTime();
|
||||
this.finishOn = this.startOn + (this.options.duration*1000);
|
||||
if(this.options.beforeStart) this.options.beforeStart(this);
|
||||
if(!this.options.sync) this.loop();
|
||||
},
|
||||
loop: function() {
|
||||
timePos = new Date().getTime();
|
||||
if(timePos >= this.finishOn) {
|
||||
this.render(this.options.to);
|
||||
if(this.finish) this.finish();
|
||||
if(this.options.afterFinish) this.options.afterFinish(this);
|
||||
return;
|
||||
}
|
||||
pos = (timePos - this.startOn) / (this.finishOn - this.startOn);
|
||||
frame = Math.round(pos * this.options.fps * this.options.duration);
|
||||
if(frame > this.currentFrame) {
|
||||
this.render(pos);
|
||||
this.currentFrame = frame;
|
||||
}
|
||||
this.timeout = setTimeout(this.loop.bind(this), 10);
|
||||
},
|
||||
render: function(pos) {
|
||||
if(this.options.transition) pos = this.options.transition(pos);
|
||||
pos = pos * (this.options.to-this.options.from);
|
||||
pos += this.options.from;
|
||||
if(this.options.beforeUpdate) this.options.beforeUpdate(this);
|
||||
if(this.update) this.update(pos);
|
||||
if(this.options.afterUpdate) this.options.afterUpdate(this);
|
||||
},
|
||||
cancel: function() {
|
||||
if(this.timeout) clearTimeout(this.timeout);
|
||||
}
|
||||
}
|
||||
|
||||
Effect2.Parallel = Class.create();
|
||||
Effect2.Parallel.prototype = (new Effect2.Base()).extend({
|
||||
initialize: function(effects) {
|
||||
this.effects = effects || [];
|
||||
this.start(arguments[1]);
|
||||
},
|
||||
update: function(position) {
|
||||
for (var i = 0; i < this.effects.length; i++)
|
||||
this.effects[i].render(position);
|
||||
},
|
||||
finish: function(position) {
|
||||
for (var i = 0; i < this.effects.length; i++)
|
||||
if(this.effects[i].finish) this.effects[i].finish(position);
|
||||
}
|
||||
});
|
||||
|
||||
Effect2.Opacity = Class.create();
|
||||
Effect2.Opacity.prototype = (new Effect2.Base()).extend({
|
||||
initialize: function() {
|
||||
this.element = $(arguments[0] || document.rootElement);
|
||||
options = {
|
||||
from: 0.0,
|
||||
to: 1.0
|
||||
}.extend(arguments[1] || {});
|
||||
this.start(options);
|
||||
},
|
||||
update: function(position) {
|
||||
this.setOpacity(position);
|
||||
},
|
||||
setOpacity: function(opacity) {
|
||||
opacity = (opacity == 1) ? 0.99999 : opacity;
|
||||
this.element.style.opacity = opacity;
|
||||
this.element.style.filter = "alpha(opacity:"+opacity*100+")";
|
||||
}
|
||||
});
|
||||
|
||||
Effect2.MoveBy = Class.create();
|
||||
Effect2.MoveBy.prototype = (new Effect2.Base()).extend({
|
||||
initialize: function(element, toTop, toLeft) {
|
||||
this.element = $(element);
|
||||
this.originalTop =
|
||||
this.element.style.top ? parseFloat(this.element.style.top) : 0;
|
||||
this.originalLeft =
|
||||
this.element.style.left ? parseFloat(this.element.style.left) : 0;
|
||||
this.toTop = toTop;
|
||||
this.toLeft = toLeft;
|
||||
if(this.element.style.position == "")
|
||||
this.element.style.position = "relative";
|
||||
this.start(arguments[3]);
|
||||
},
|
||||
update: function(position) {
|
||||
topd = this.toTop * position + this.originalTop;
|
||||
leftd = this.toLeft * position + this.originalLeft;
|
||||
this.setPosition(topd, leftd);
|
||||
},
|
||||
setPosition: function(topd, leftd) {
|
||||
this.element.style.top = topd + "px";
|
||||
this.element.style.left = leftd + "px";
|
||||
}
|
||||
});
|
||||
|
||||
Effect2.Scale = Class.create();
|
||||
Effect2.Scale.prototype = (new Effect2.Base()).extend({
|
||||
initialize: function(element, percent) {
|
||||
this.element = $(element)
|
||||
options = {
|
||||
scaleX: true,
|
||||
scaleY: true,
|
||||
scaleContent: true,
|
||||
scaleFromCenter: false,
|
||||
scaleMode: 'box', // 'box' or 'contents'
|
||||
scaleFrom: 100.0
|
||||
}.extend(arguments[2] || {});
|
||||
this.originalTop = this.element.offsetTop;
|
||||
this.originalLeft = this.element.offsetLeft;
|
||||
if (this.element.style.fontSize=="") this.sizeEm = 1.0;
|
||||
if (this.element.style.fontSize && this.element.style.fontSize.indexOf("em")>0)
|
||||
this.sizeEm = parseFloat(this.element.style.fontSize);
|
||||
this.factor = (percent/100.0) - (options.scaleFrom/100.0);
|
||||
if(options.scaleMode=='box') {
|
||||
this.originalHeight = this.element.clientHeight;
|
||||
this.originalWidth = this.element.clientWidth;
|
||||
} else
|
||||
if(options.scaleMode=='contents') {
|
||||
this.originalHeight = this.element.scrollHeight;
|
||||
this.originalWidth = this.element.scrollWidth;
|
||||
}
|
||||
this.start(options);
|
||||
},
|
||||
|
||||
update: function(position) {
|
||||
currentScale = (this.options.scaleFrom/100.0) + (this.factor * position);
|
||||
if(this.options.scaleContent && this.sizeEm)
|
||||
this.element.style.fontSize = this.sizeEm*currentScale + "em";
|
||||
this.setDimensions(
|
||||
this.originalWidth * currentScale,
|
||||
this.originalHeight * currentScale);
|
||||
},
|
||||
|
||||
setDimensions: function(width, height) {
|
||||
if(this.options.scaleX) this.element.style.width = width + 'px';
|
||||
if(this.options.scaleY) this.element.style.height = height + 'px';
|
||||
if(this.options.scaleFromCenter) {
|
||||
topd = (height - this.originalHeight)/2;
|
||||
leftd = (width - this.originalWidth)/2;
|
||||
if(this.element.style.position=='absolute') {
|
||||
if(this.options.scaleY) this.element.style.top = this.originalTop-topd + "px";
|
||||
if(this.options.scaleX) this.element.style.left = this.originalLeft-leftd + "px";
|
||||
} else {
|
||||
if(this.options.scaleY) this.element.style.top = -topd + "px";
|
||||
if(this.options.scaleX) this.element.style.left = -leftd + "px";
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/* ------------- prepackaged effects ------------- */
|
||||
|
||||
Effect2.Fade = function(element) {
|
||||
options = {
|
||||
from: 1.0,
|
||||
to: 0.0,
|
||||
afterFinish: function(effect)
|
||||
{ Element.hide(effect.element);
|
||||
effect.setOpacity(1); }
|
||||
}.extend(arguments[1] || {});
|
||||
new Effect2.Opacity(element,options);
|
||||
}
|
||||
|
||||
Effect2.Appear = function(element) {
|
||||
options = {
|
||||
from: 0.0,
|
||||
to: 1.0,
|
||||
beforeStart: function(effect)
|
||||
{ effect.setOpacity(0);
|
||||
Element.show(effect.element); },
|
||||
afterUpdate: function(effect)
|
||||
{ Element.show(effect.element); }
|
||||
}.extend(arguments[1] || {});
|
||||
new Effect2.Opacity(element,options);
|
||||
}
|
||||
|
||||
Effect2.Puff = function(element) {
|
||||
new Effect2.Parallel(
|
||||
[ new Effect2.Scale(element, 200, { sync: true, scaleFromCenter: true }),
|
||||
new Effect2.Opacity(element, { sync: true, to: 0.0, from: 1.0 } ) ],
|
||||
{ duration: 1.0,
|
||||
afterUpdate: function(effect)
|
||||
{ effect.effects[0].element.style.position = 'absolute'; },
|
||||
afterFinish: function(effect)
|
||||
{ Element.hide(effect.effects[0].element); }
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Effect2.BlindUp = function(element) {
|
||||
$(element).style.overflow = 'hidden';
|
||||
new Effect2.Scale(element, 0,
|
||||
{ scaleContent: false,
|
||||
scaleX: false,
|
||||
afterFinish: function(effect)
|
||||
{ Element.hide(effect.element) }
|
||||
}.extend(arguments[1] || {})
|
||||
);
|
||||
}
|
||||
|
||||
Effect2.BlindDown = function(element) {
|
||||
$(element).style.height = '0px';
|
||||
$(element).style.overflow = 'hidden';
|
||||
Element.show(element);
|
||||
new Effect2.Scale(element, 100,
|
||||
{ scaleContent: false,
|
||||
scaleX: false,
|
||||
scaleMode: 'contents',
|
||||
scaleFrom: 0
|
||||
}.extend(arguments[1] || {})
|
||||
);
|
||||
}
|
||||
|
||||
Effect2.SwitchOff = function(element) {
|
||||
new Effect2.Appear(element,
|
||||
{ duration: 0.4,
|
||||
transition: Effect2.Transitions.flicker,
|
||||
afterFinish: function(effect)
|
||||
{ effect.element.style.overflow = 'hidden';
|
||||
new Effect2.Scale(effect.element, 1,
|
||||
{ duration: 0.3, scaleFromCenter: true,
|
||||
scaleX: false, scaleContent: false,
|
||||
afterUpdate: function(effect) {
|
||||
if(effect.element.style.position=="")
|
||||
effect.element.style.position = 'relative'; },
|
||||
afterFinish: function(effect) { Element.hide(effect.element); }
|
||||
} )
|
||||
}
|
||||
} )
|
||||
}
|
||||
|
||||
Effect2.DropOut = function(element) {
|
||||
new Effect2.Parallel(
|
||||
[ new Effect2.MoveBy(element, 100, 0, { sync: true }),
|
||||
new Effect2.Opacity(element, { sync: true, to: 0.0, from: 1.0 } ) ],
|
||||
{ duration: 0.5,
|
||||
afterFinish: function(effect)
|
||||
{ Element.hide(effect.effects[0].element); }
|
||||
});
|
||||
}
|
||||
|
||||
Effect2.Shake = function(element) {
|
||||
new Effect2.MoveBy(element, 0, 20,
|
||||
{ duration: 0.05, afterFinish: function(effect) {
|
||||
new Effect2.MoveBy(effect.element, 0, -40,
|
||||
{ duration: 0.1, afterFinish: function(effect) {
|
||||
new Effect2.MoveBy(effect.element, 0, 40,
|
||||
{ duration: 0.1, afterFinish: function(effect) {
|
||||
new Effect2.MoveBy(effect.element, 0, -40,
|
||||
{ duration: 0.1, afterFinish: function(effect) {
|
||||
new Effect2.MoveBy(effect.element, 0, 40,
|
||||
{ duration: 0.1, afterFinish: function(effect) {
|
||||
new Effect2.MoveBy(effect.element, 0, -20,
|
||||
{ duration: 0.05, afterFinish: function(effect) {
|
||||
}}) }}) }}) }}) }}) }});
|
||||
}
|
||||
|
||||
Effect2.SlideDown = function(element) {
|
||||
$(element).style.height = '0px';
|
||||
$(element).style.overflow = 'hidden';
|
||||
$(element).firstChild.style.position = 'relative';
|
||||
Element.show(element);
|
||||
new Effect2.Scale(element, 100,
|
||||
{ scaleContent: false,
|
||||
scaleX: false,
|
||||
scaleMode: 'contents',
|
||||
scaleFrom: 0,
|
||||
afterUpdate: function(effect)
|
||||
{ effect.element.firstChild.style.bottom =
|
||||
(effect.originalHeight - effect.element.clientHeight) + 'px'; }
|
||||
}.extend(arguments[1] || {})
|
||||
);
|
||||
}
|
||||
|
||||
Effect2.SlideUp = function(element) {
|
||||
$(element).style.overflow = 'hidden';
|
||||
$(element).firstChild.style.position = 'relative';
|
||||
Element.show(element);
|
||||
new Effect2.Scale(element, 0,
|
||||
{ scaleContent: false,
|
||||
scaleX: false,
|
||||
afterUpdate: function(effect)
|
||||
{ effect.element.firstChild.style.bottom =
|
||||
(effect.originalHeight - effect.element.clientHeight) + 'px'; },
|
||||
afterFinish: function(effect)
|
||||
{ Element.hide(effect.element); }
|
||||
}.extend(arguments[1] || {})
|
||||
);
|
||||
}
|
216
themes/olive/javascripts/global.js
Executable file
216
themes/olive/javascripts/global.js
Executable file
|
@ -0,0 +1,216 @@
|
|||
function changeLoc(loc) {
|
||||
window.location = loc
|
||||
}
|
||||
function getCookie(name) {
|
||||
var prefix = name + "=";
|
||||
var cStr = document.cookie;
|
||||
var start = cStr.indexOf(prefix);
|
||||
if (start == -1) {
|
||||
return null;
|
||||
}
|
||||
var end = cStr.indexOf(";", start + prefix.length);
|
||||
if (end == -1) {
|
||||
end = cStr.length;
|
||||
}
|
||||
var value = cStr.substring(start + prefix.length, end);
|
||||
return unescape(value);
|
||||
}
|
||||
function setCookie(name, value, expiration) {
|
||||
document.cookie = name + "=" + value + "; expires=" + expiration;
|
||||
}
|
||||
function toggleCheckbox(checkBox) {
|
||||
var element = document.getElementById(checkBox.id);
|
||||
if (element.value == "1" || element.checked) {
|
||||
element.checked = false;
|
||||
element.value = "0";
|
||||
} else {
|
||||
element.checked = true;
|
||||
element.value = "1";
|
||||
}
|
||||
}
|
||||
function toggleChkbox(checkBox) {
|
||||
if (checkBox.checked) {
|
||||
checkBox.checked = true;
|
||||
} else {
|
||||
checkBox.checked = false;
|
||||
}
|
||||
}
|
||||
function toggle_list(id) {
|
||||
ul = "ul_" + id;
|
||||
img = "img_" + id;
|
||||
hid = "h_" + id;
|
||||
ulElement = document.getElementById(ul);
|
||||
imgElement = document.getElementById(img);
|
||||
hiddenElement = document.getElementById(hid);
|
||||
if (ulElement) {
|
||||
if (ulElement.className == 'closed') {
|
||||
ulElement.className = "open";
|
||||
imgElement.src = "/themes/original/images/list_opened.gif";
|
||||
hiddenElement.value = "1"
|
||||
} else {
|
||||
ulElement.className = "closed";
|
||||
imgElement.src = "/themes/original/images/list_closed.gif";
|
||||
hiddenElement.value = "0"
|
||||
}
|
||||
}
|
||||
}
|
||||
function toggle_layer(id) {
|
||||
lElement = document.getElementById(id);
|
||||
imgElement = document.getElementById("img_" + id);
|
||||
if (lElement) {
|
||||
if (lElement.className == 'closed') {
|
||||
lElement.className = "open";
|
||||
imgElement.src = "/themes/original/images/list_opened.gif";
|
||||
return true;
|
||||
} else {
|
||||
lElement.className = "closed";
|
||||
imgElement.src = "/themes/original/images/list_closed.gif";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function toggle_layer_status(id) {
|
||||
lElement = document.getElementById(id);
|
||||
if (lElement) {
|
||||
if (lElement.className == 'closed') {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function toggle_text(id) {
|
||||
if (document.getElementById) elem = document.getElementById(id);
|
||||
else if (document.all) elem = eval("document.all." + id);
|
||||
else return false;
|
||||
if (!elem) return true;
|
||||
elemStyle = elem.style;
|
||||
if (elemStyle.display != "block") {
|
||||
elemStyle.display = "block"
|
||||
} else {
|
||||
elemStyle.display = "none"
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function getFF(id) {
|
||||
if (document.getElementById) elem = document.getElementById(id);
|
||||
else if (document.all) elem = document.eval("document.all." + id);
|
||||
return elem
|
||||
}
|
||||
function setFF(id, value) {
|
||||
if (getFF(id)) getFF(id).value = value;
|
||||
}
|
||||
function setCFF(id) {
|
||||
if (getFF(id)) getFF(id).checked = true;
|
||||
}
|
||||
function updateSUFromC(btnName) {
|
||||
var suem = getCookie('_cdf_em');
|
||||
var sueg = getCookie('_cdf_gr');
|
||||
if (suem != "" && suem != null && suem != "undefined") {
|
||||
setFF('sup_email', suem);
|
||||
setFF('signup_submit_button', btnName);
|
||||
}
|
||||
if (sueg && sueg != "") {
|
||||
if (sueg.indexOf(",") < 0 && sueg != "") {
|
||||
gr_id = sueg;
|
||||
setCFF('supgr_' + gr_id);
|
||||
} else while ((i = sueg.indexOf(",")) >= 0) {
|
||||
gr_id = sueg.substring(0, i);
|
||||
sueg = sueg.substring(i + 1);
|
||||
setCFF('supgr_' + gr_id);
|
||||
}
|
||||
if (sueg.indexOf(",") < 0 && sueg != "") {
|
||||
gr_id = sueg;
|
||||
setCFF('supgr_' + gr_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
function updateLUEfC() {
|
||||
var suem = getCookie('_cdf_em');
|
||||
if (suem != "" && suem != null && suem != "undefined") {
|
||||
setFF('login_user_email', suem);
|
||||
}
|
||||
}
|
||||
function replaceHRFST(ifrm) {
|
||||
var o = ifrm;
|
||||
var w = null;
|
||||
if (o.contentWindow) {
|
||||
w = o.contentWindow;
|
||||
} else if (window.frames && window.frames[o.id].window) {
|
||||
w = window.frames[o.id];
|
||||
} else return;
|
||||
var doc = w.document;
|
||||
if (!doc.getElementsByTagName) return;
|
||||
var anchors = doc.getElementsByTagName("a");
|
||||
for (var i = 0; i < anchors.length; i++) {
|
||||
var anchor = anchors[i];
|
||||
if (anchor.getAttribute("href")) anchor.target = "_top";
|
||||
}
|
||||
iHeight = doc.body.scrollHeight;
|
||||
ifrm.style.height = iHeight + "px"
|
||||
}
|
||||
function rs(n, u, w, h, x) {
|
||||
args = "width=" + w + ",height=" + h + ",resizable=yes,scrollbars=yes,status=0";
|
||||
remote = window.open(u, n, args);
|
||||
if (remote != null && remote.opener == null) remote.opener = self;
|
||||
if (x == 1) return remote;
|
||||
}
|
||||
function wizard_step_onclick(direction, alt_url) {
|
||||
if (document.forms[0]) {
|
||||
direction_elem = '';
|
||||
if (document.getElementById) {
|
||||
direction_elem = document.getElementById('wiz_dir');
|
||||
} else if (document.all) {
|
||||
direction_elem = document.eval("document.all.wiz_dir");
|
||||
}
|
||||
if (direction_elem) {
|
||||
direction_elem.value = direction;
|
||||
}
|
||||
if (document.forms[0].onsubmit) {
|
||||
document.forms[0].onsubmit();
|
||||
}
|
||||
document.forms[0].submit();
|
||||
} else {
|
||||
window.location = alt_url;
|
||||
}
|
||||
}
|
||||
function toggle_adtype(ad_type) {
|
||||
toggle_text('upload_banner_label');
|
||||
toggle_text('upload_banner');
|
||||
toggle_text('radio1_label');
|
||||
toggle_text('radio1');
|
||||
toggle_text('radio2_label');
|
||||
toggle_text('radio2');
|
||||
toggle_text('adtitle_label');
|
||||
toggle_text('adtitle');
|
||||
toggle_text('adtext_label');
|
||||
toggle_text('adtext');
|
||||
toggle_text('banner_size_label');
|
||||
toggle_text('banner_size');
|
||||
}
|
||||
function show_date_as_local_time() {
|
||||
var spans = document.getElementsByTagName('span');
|
||||
for (var i = 0; i < spans.length; i++) if (spans[i].className.match(/\bLOCAL_TIME\b/i)) {
|
||||
system_date = new Date(Date.parse(spans[i].innerHTML));
|
||||
if (system_date.getHours() >= 12) {
|
||||
adds = ' PM';
|
||||
h = system_date.getHours() - 12;
|
||||
} else {
|
||||
adds = ' AM';
|
||||
h = system_date.getHours();
|
||||
}
|
||||
spans[i].innerHTML = h + ":" + (system_date.getMinutes() + "").replace(/\b(\d)\b/g, '0$1') + adds;
|
||||
}
|
||||
}
|
||||
function PopupPic(sPicURL, sWidth, sHeight) {
|
||||
window.open("/popup.htm?" + sPicURL, "", "resizable=1,HEIGHT=" + sHeight + ",WIDTH=" + sWidth + ",scrollbars=yes");
|
||||
}
|
||||
function open_link(target, location) {
|
||||
if (target == 'blank') {
|
||||
window.open(location);
|
||||
} else {
|
||||
window.top.location = location;
|
||||
}
|
||||
}
|
201
themes/olive/javascripts/global_src.js
Executable file
201
themes/olive/javascripts/global_src.js
Executable file
|
@ -0,0 +1,201 @@
|
|||
function changeLoc(loc) { window.location = loc }
|
||||
function getCookie(name) {
|
||||
var prefix = name + "=";
|
||||
var cStr = document.cookie;
|
||||
var start = cStr.indexOf(prefix);
|
||||
if (start==-1) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var end = cStr.indexOf(";", start+prefix.length);
|
||||
if (end==-1) { end=cStr.length; }
|
||||
|
||||
var value=cStr.substring(start+prefix.length, end);
|
||||
return unescape(value);
|
||||
}
|
||||
function setCookie(name, value, expiration) {
|
||||
document.cookie = name+"="+value+"; expires="+expiration;
|
||||
}
|
||||
function toggleCheckbox(checkBox) {
|
||||
var element = document.getElementById(checkBox.id);
|
||||
if (element.value == "1" || element.checked) {
|
||||
element.checked = false;
|
||||
element.value = "0";
|
||||
} else {
|
||||
element.checked = true;
|
||||
element.value = "1";
|
||||
}
|
||||
}
|
||||
function toggleChkbox(checkBox) {
|
||||
if (checkBox.checked) {
|
||||
checkBox.checked = true;
|
||||
} else {
|
||||
checkBox.checked = false;
|
||||
}
|
||||
}
|
||||
function toggle_list(id){
|
||||
ul = "ul_" + id;
|
||||
img = "img_" + id;
|
||||
hid = "h_" + id;
|
||||
ulElement = document.getElementById(ul);
|
||||
imgElement = document.getElementById(img);
|
||||
hiddenElement = document.getElementById(hid);
|
||||
if (ulElement){
|
||||
if (ulElement.className == 'closed'){
|
||||
ulElement.className = "open";
|
||||
imgElement.src = "/themes/original/images/list_opened.gif";
|
||||
hiddenElement.value = "1"
|
||||
}else{
|
||||
ulElement.className = "closed";
|
||||
imgElement.src = "/themes/original/images/list_closed.gif";
|
||||
hiddenElement.value = "0"
|
||||
}
|
||||
}
|
||||
}
|
||||
function toggle_layer(id) {
|
||||
lElement = document.getElementById(id);
|
||||
imgElement = document.getElementById("img_" + id);
|
||||
if (lElement){
|
||||
if (lElement.className == 'closed'){
|
||||
lElement.className = "open";
|
||||
imgElement.src = "/themes/original/images/list_opened.gif";
|
||||
return true;
|
||||
}else{
|
||||
lElement.className = "closed";
|
||||
imgElement.src = "/themes/original/images/list_closed.gif";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function toggle_layer_status(id) {
|
||||
lElement = document.getElementById(id);
|
||||
if (lElement){
|
||||
if (lElement.className == 'closed'){
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function toggle_text(id){
|
||||
if ( document.getElementById )
|
||||
elem = document.getElementById( id );
|
||||
else if ( document.all )
|
||||
elem = eval( "document.all." + id );
|
||||
else
|
||||
return false;
|
||||
|
||||
if(!elem) return true;
|
||||
|
||||
elemStyle = elem.style;
|
||||
if ( elemStyle.display != "block" ) {
|
||||
elemStyle.display = "block"
|
||||
} else {
|
||||
elemStyle.display = "none"
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function getFF(id) {
|
||||
if ( document.getElementById ) elem = document.getElementById( id );
|
||||
else if ( document.all ) elem = document.eval( "document.all." + id );
|
||||
return elem
|
||||
}
|
||||
function setFF(id, value) {if(getFF(id))getFF(id).value=value;}
|
||||
function setCFF(id) {if(getFF(id))getFF(id).checked=true;}
|
||||
function updateSUFromC(btnName) {
|
||||
var suem = getCookie('_cdf_em');var sueg = getCookie('_cdf_gr');
|
||||
if (suem != "" && suem != null && suem != "undefined") { setFF('sup_email', suem); setFF('signup_submit_button',btnName); }
|
||||
|
||||
if (sueg && sueg != "") {
|
||||
if (sueg.indexOf(",") < 0 && sueg != "") { gr_id = sueg; setCFF('supgr_'+gr_id);
|
||||
} else while ((i = sueg.indexOf(",")) >= 0) { gr_id = sueg.substring(0,i); sueg = sueg.substring(i+1); setCFF('supgr_'+gr_id); }
|
||||
if (sueg.indexOf(",") < 0 && sueg != "") { gr_id = sueg; setCFF('supgr_'+gr_id);}
|
||||
}
|
||||
}
|
||||
function updateLUEfC() {
|
||||
var suem = getCookie('_cdf_em');
|
||||
if (suem != "" && suem != null && suem != "undefined") { setFF('login_user_email', suem); }
|
||||
}
|
||||
function replaceHRFST(ifrm) {
|
||||
var o = ifrm;
|
||||
var w = null;
|
||||
if (o.contentWindow) {
|
||||
// For IE5.5 and IE6
|
||||
w = o.contentWindow;
|
||||
} else if (window.frames && window.frames[o.id].window) {
|
||||
w = window.frames[o.id];
|
||||
} else return;
|
||||
var doc = w.document;
|
||||
if (!doc.getElementsByTagName) return;
|
||||
var anchors = doc.getElementsByTagName("a");
|
||||
for (var i=0; i<anchors.length; i++) {
|
||||
var anchor = anchors[i];
|
||||
if (anchor.getAttribute("href")) anchor.target = "_top";
|
||||
}
|
||||
iHeight = doc.body.scrollHeight;
|
||||
ifrm.style.height = iHeight + "px"
|
||||
}
|
||||
function rs(n,u,w,h,x){
|
||||
args="width="+w+",height="+h+",resizable=yes,scrollbars=yes,status=0";
|
||||
remote=window.open(u,n,args);
|
||||
if(remote != null && remote.opener == null) remote.opener = self;
|
||||
if(x == 1) return remote;
|
||||
}
|
||||
function wizard_step_onclick(direction, alt_url) {
|
||||
if(document.forms[0]) {
|
||||
direction_elem='';
|
||||
|
||||
if ( document.getElementById ) {
|
||||
direction_elem = document.getElementById( 'wiz_dir' );
|
||||
} else if ( document.all ) {
|
||||
direction_elem = document.eval( "document.all.wiz_dir");
|
||||
}
|
||||
if(direction_elem) {
|
||||
direction_elem.value = direction;
|
||||
}
|
||||
if (document.forms[0].onsubmit) {
|
||||
document.forms[0].onsubmit();
|
||||
}
|
||||
document.forms[0].submit();
|
||||
} else {
|
||||
window.location=alt_url;
|
||||
}
|
||||
}
|
||||
function toggle_adtype(ad_type){
|
||||
toggle_text('upload_banner_label');
|
||||
toggle_text('upload_banner');
|
||||
toggle_text('radio1_label');
|
||||
toggle_text('radio1');
|
||||
toggle_text('radio2_label');
|
||||
toggle_text('radio2');
|
||||
toggle_text('adtitle_label');
|
||||
toggle_text('adtitle');
|
||||
toggle_text('adtext_label');
|
||||
toggle_text('adtext');
|
||||
toggle_text('banner_size_label');
|
||||
toggle_text('banner_size');
|
||||
|
||||
}
|
||||
function show_date_as_local_time() {
|
||||
var spans = document.getElementsByTagName('span');
|
||||
for (var i=0; i<spans.length; i++)
|
||||
if (spans[i].className.match(/\bLOCAL_TIME\b/i)) {
|
||||
system_date = new Date(Date.parse(spans[i].innerHTML));
|
||||
if (system_date.getHours() >= 12) { adds = ' PM'; h = system_date.getHours() - 12; }
|
||||
else { adds = ' AM'; h = system_date.getHours(); }
|
||||
spans[i].innerHTML = h + ":" + (system_date.getMinutes()+"").replace(/\b(\d)\b/g, '0$1') + adds;
|
||||
}
|
||||
}
|
||||
function PopupPic(sPicURL,sWidth,sHeight) {
|
||||
window.open( "/popup.htm?"+sPicURL, "", "resizable=1,HEIGHT="+sHeight+",WIDTH="+sWidth+",scrollbars=yes");
|
||||
}
|
||||
|
||||
function open_link(target, location){
|
||||
if (target == 'blank'){
|
||||
window.open(location);
|
||||
} else {
|
||||
window.top.location = location;
|
||||
}
|
||||
}
|
21
themes/olive/javascripts/htmlstyle.js
Executable file
21
themes/olive/javascripts/htmlstyle.js
Executable file
|
@ -0,0 +1,21 @@
|
|||
var config = new HTMLArea.Config(); // create a new configuration object
|
||||
// having all the default values
|
||||
config.width = '520px';
|
||||
config.pageStyle =
|
||||
'body { font-family: verdana,sans-serif; font-size: 12px } ';
|
||||
|
||||
config.toolbar = [
|
||||
[ "fontname", "fontsize","formatblock","bold", "italic", "underline", "separator", "insertimage", "createlink"],
|
||||
["justifyleft", "justifycenter", "justifyright", "justifyfull", "separator", "forecolor", "hilitecolor", "separator", "popupeditor", "htmlmode"]
|
||||
];
|
||||
config.statusBar = false;
|
||||
|
||||
var configView = new HTMLArea.Config(); // create a new configuration object
|
||||
// having all the default values
|
||||
configView.width = '670px';
|
||||
configView.pageStyle =
|
||||
'body { font-family: verdana,sans-serif; font-size: 12px } ';
|
||||
|
||||
configView.toolbar = [];
|
||||
configView.statusBar = false;
|
||||
configView.readonly = true;
|
76
themes/olive/javascripts/jstrim.pl
Executable file
76
themes/olive/javascripts/jstrim.pl
Executable file
|
@ -0,0 +1,76 @@
|
|||
#! /usr/bin/perl -w
|
||||
|
||||
jsTrim("prototype_src.js", "prototype.js");
|
||||
jsTrim("global_src.js", "global.js");
|
||||
#jsTrim("jscripts/tiny_mce/themes/simple/editor_template_src.js", "jscripts/tiny_mce/themes/simple/editor_template.js");
|
||||
#jsTrim("jscripts/tiny_mce/themes/default/editor_template_src.js", "jscripts/tiny_mce/themes/default/editor_template.js");
|
||||
#jsTrim("jscripts/tiny_mce/themes/advanced/editor_template_src.js", "jscripts/tiny_mce/themes/advanced/editor_template.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js", "jscripts/tiny_mce/plugins/advhr/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js", "jscripts/tiny_mce/plugins/advimage/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js", "jscripts/tiny_mce/plugins/advlink/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js", "jscripts/tiny_mce/plugins/emotions/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/flash/editor_plugin_src.js", "jscripts/tiny_mce/plugins/flash/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js", "jscripts/tiny_mce/plugins/iespell/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js", "jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/preview/editor_plugin_src.js", "jscripts/tiny_mce/plugins/preview/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/print/editor_plugin_src.js", "jscripts/tiny_mce/plugins/print/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/save/editor_plugin_src.js", "jscripts/tiny_mce/plugins/save/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js", "jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/zoom/editor_plugin_src.js", "jscripts/tiny_mce/plugins/zoom/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/table/editor_plugin_src.js", "jscripts/tiny_mce/plugins/table/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js", "jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/paste/editor_plugin_src.js", "jscripts/tiny_mce/plugins/paste/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js", "jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js");
|
||||
#jsTrim("jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js", "jscripts/tiny_mce/plugins/directionality/editor_plugin.js");
|
||||
|
||||
sub jsTrim {
|
||||
my $inFile = $_[0];
|
||||
my $outFile = $_[1];
|
||||
my $comment = '';
|
||||
my $content = '';
|
||||
|
||||
# Load input file
|
||||
open(FILE, "<$inFile");
|
||||
undef $/;
|
||||
$content = <FILE>;
|
||||
close(FILE);
|
||||
|
||||
if ($content =~ s#^\s*(/\*.*?\*/)##s or $content =~ s#^\s*(//.*?)\n\s*[^/]##s) {
|
||||
$comment = "$1\n";
|
||||
}
|
||||
|
||||
local $^W;
|
||||
|
||||
# removing C/C++ - style comments:
|
||||
$content =~ s#/\*[^*]*\*+([^/*][^*]*\*+)*/|//[^\n]*|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^/"'\\]*)#$2#gs;
|
||||
|
||||
# save string literals
|
||||
my @strings = ();
|
||||
$content =~ s/("(\\.|[^"\\])*"|'(\\.|[^'\\])*')/push(@strings, "$1");'__CMPRSTR_'.$#strings.'__';/egs;
|
||||
|
||||
# remove C-style comments
|
||||
$content =~ s#/\*.*?\*/##gs;
|
||||
# remove C++-style comments
|
||||
$content =~ s#//.*?\n##gs;
|
||||
# removing leading/trailing whitespace:
|
||||
#$content =~ s#(?:(?:^|\n)\s+|\s+(?:$|\n))##gs;
|
||||
# removing newlines:
|
||||
#$content =~ s#\r?\n##gs;
|
||||
|
||||
# removing other whitespace (between operators, etc.) (regexp-s stolen from Mike Hall's JS Crunchinator)
|
||||
$content =~ s/\s+/ /gs; # condensing whitespace
|
||||
#$content =~ s/^\s(.*)/$1/gs; # condensing whitespace
|
||||
#$content =~ s/(.*)\s$/$1/gs; # condensing whitespace
|
||||
$content =~ s/\s([\x21\x25\x26\x28\x29\x2a\x2b\x2c\x2d\x2f\x3a\x3b\x3c\x3d\x3e\x3f\x5b\x5d\x5c\x7b\x7c\x7d\x7e])/$1/gs;
|
||||
$content =~ s/([\x21\x25\x26\x28\x29\x2a\x2b\x2c\x2d\x2f\x3a\x3b\x3c\x3d\x3e\x3f\x5b\x5d\x5c\x7b\x7c\x7d\x7e])\s/$1/gs;
|
||||
|
||||
# restore string literals
|
||||
$content =~ s/__CMPRSTR_([0-9]+)__/$strings[$1]/egs;
|
||||
|
||||
# Write to ouput file
|
||||
open(FILE, ">$outFile");
|
||||
flock(FILE, 2);
|
||||
seek(FILE, 0, 2);
|
||||
print FILE $comment, $content;
|
||||
close(FILE);
|
||||
}
|
521
themes/olive/javascripts/prototype_src.js
vendored
Executable file
521
themes/olive/javascripts/prototype_src.js
vendored
Executable file
|
@ -0,0 +1,521 @@
|
|||
var Prototype = {
|
||||
Version: '1.2.1'
|
||||
};
|
||||
|
||||
var Class = {
|
||||
create: function() {
|
||||
return function() {
|
||||
this.initialize.apply(this, arguments);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var Abstract = new Object();
|
||||
Object.prototype.extend = function(object) {
|
||||
for (property in object) {
|
||||
this[property] = object[property];
|
||||
}
|
||||
return this;
|
||||
};
|
||||
Function.prototype.bind = function(object) {
|
||||
var method = this;
|
||||
return function() {
|
||||
method.apply(object, arguments);
|
||||
}
|
||||
};
|
||||
|
||||
Function.prototype.bindAsEventListener = function(object) {
|
||||
var method = this;
|
||||
return function(event) {
|
||||
method.call(object, event || window.event);
|
||||
}
|
||||
};
|
||||
|
||||
Number.prototype.toColorPart = function() {
|
||||
var digits = this.toString(16);
|
||||
if (this < 16) return '0' + digits;
|
||||
return digits;
|
||||
};
|
||||
|
||||
var Try = {
|
||||
these: function() {
|
||||
var returnValue;
|
||||
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
var lambda = arguments[i];
|
||||
try {
|
||||
returnValue = lambda();
|
||||
break;
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
};
|
||||
|
||||
var PeriodicalExecuter = Class.create();
|
||||
PeriodicalExecuter.prototype = {
|
||||
initialize: function(callback, frequency) {
|
||||
this.callback = callback;
|
||||
this.frequency = frequency;
|
||||
this.currentlyExecuting = false;
|
||||
|
||||
this.registerCallback();
|
||||
},
|
||||
|
||||
registerCallback: function() {
|
||||
setTimeout(this.onTimerEvent.bind(this), this.frequency * 1000);
|
||||
},
|
||||
|
||||
onTimerEvent: function() {
|
||||
if (!this.currentlyExecuting) {
|
||||
try {
|
||||
this.currentlyExecuting = true;
|
||||
this.callback();
|
||||
} finally {
|
||||
this.currentlyExecuting = false;
|
||||
}
|
||||
}
|
||||
|
||||
this.registerCallback();
|
||||
}
|
||||
};
|
||||
function $() {
|
||||
var elements = new Array();
|
||||
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
var element = arguments[i];
|
||||
if (typeof element == 'string')
|
||||
element = document.getElementById(element);
|
||||
|
||||
if (arguments.length == 1)
|
||||
return element;
|
||||
|
||||
elements.push(element);
|
||||
}
|
||||
|
||||
return elements;
|
||||
};
|
||||
if (!Array.prototype.push) {
|
||||
Array.prototype.push = function() {
|
||||
var startLength = this.length;
|
||||
for (var i = 0; i < arguments.length; i++)
|
||||
this[startLength + i] = arguments[i];
|
||||
return this.length;
|
||||
};
|
||||
};
|
||||
|
||||
if (!Function.prototype.apply) {
|
||||
// Based on code from http://www.youngpup.net/
|
||||
Function.prototype.apply = function(object, parameters) {
|
||||
var parameterStrings = new Array();
|
||||
if (!object) object = window;
|
||||
if (!parameters) parameters = new Array();
|
||||
|
||||
for (var i = 0; i < parameters.length; i++)
|
||||
parameterStrings[i] = 'x[' + i + ']';
|
||||
|
||||
object.__apply__ = this;
|
||||
var result = eval('obj.__apply__(' +
|
||||
parameterStrings[i].join(', ') + ')');
|
||||
object.__apply__ = null;
|
||||
|
||||
return result;
|
||||
};
|
||||
};
|
||||
|
||||
var Ajax = {
|
||||
getTransport: function() {
|
||||
return Try.these(
|
||||
function() {return new ActiveXObject('Msxml2.XMLHTTP')},
|
||||
function() {return new ActiveXObject('Microsoft.XMLHTTP')},
|
||||
function() {return new XMLHttpRequest()}
|
||||
) || false;
|
||||
},
|
||||
|
||||
emptyFunction: function() {}
|
||||
};
|
||||
|
||||
Ajax.Base = function() {};
|
||||
Ajax.Base.prototype = {
|
||||
setOptions: function(options) {
|
||||
this.options = {
|
||||
method: 'post',
|
||||
asynchronous: true,
|
||||
parameters: ''
|
||||
}.extend(options || {});
|
||||
}
|
||||
};
|
||||
|
||||
Ajax.Request = Class.create();
|
||||
Ajax.Request.Events =
|
||||
['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
|
||||
|
||||
Ajax.Request.prototype = (new Ajax.Base()).extend({
|
||||
initialize: function(url, options) {
|
||||
this.transport = Ajax.getTransport();
|
||||
this.setOptions(options);
|
||||
|
||||
try {
|
||||
if (this.options.method == 'get')
|
||||
url += '?' + this.options.parameters + '&_=';
|
||||
|
||||
this.transport.open(this.options.method, url,
|
||||
this.options.asynchronous);
|
||||
|
||||
if (this.options.asynchronous) {
|
||||
this.transport.onreadystatechange = this.onStateChange.bind(this);
|
||||
setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10);
|
||||
}
|
||||
|
||||
this.transport.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
|
||||
this.transport.setRequestHeader('X-Prototype-Version', Prototype.Version);
|
||||
|
||||
if (this.options.method == 'post') {
|
||||
this.transport.setRequestHeader('Connection', 'close');
|
||||
this.transport.setRequestHeader('Content-type',
|
||||
'application/x-www-form-urlencoded');
|
||||
}
|
||||
|
||||
this.transport.send(this.options.method == 'post' ?
|
||||
this.options.parameters + '&_=' : null);
|
||||
|
||||
} catch (e) {
|
||||
}
|
||||
},
|
||||
|
||||
onStateChange: function() {
|
||||
var readyState = this.transport.readyState;
|
||||
if (readyState != 1)
|
||||
this.respondToReadyState(this.transport.readyState);
|
||||
},
|
||||
|
||||
respondToReadyState: function(readyState) {
|
||||
var event = Ajax.Request.Events[readyState];
|
||||
(this.options['on' + event] || Ajax.emptyFunction)(this.transport);
|
||||
}
|
||||
});
|
||||
|
||||
Ajax.Updater = Class.create();
|
||||
Ajax.Updater.prototype = (new Ajax.Base()).extend({
|
||||
initialize: function(container, url, options) {
|
||||
this.container = $(container);
|
||||
this.setOptions(options);
|
||||
|
||||
if (this.options.asynchronous) {
|
||||
this.onComplete = this.options.onComplete;
|
||||
this.options.onComplete = this.updateContent.bind(this);
|
||||
}
|
||||
|
||||
this.request = new Ajax.Request(url, this.options);
|
||||
|
||||
if (!this.options.asynchronous)
|
||||
this.updateContent();
|
||||
},
|
||||
|
||||
updateContent: function() {
|
||||
if (this.options.insertion) {
|
||||
new this.options.insertion(this.container,
|
||||
this.request.transport.responseText);
|
||||
} else {
|
||||
this.container.innerHTML = this.request.transport.responseText;
|
||||
}
|
||||
|
||||
if (this.onComplete) {
|
||||
setTimeout((function() {this.onComplete(this.request)}).bind(this), 10);
|
||||
}
|
||||
}
|
||||
});
|
||||
var Field = {
|
||||
clear: function() {
|
||||
for (var i = 0; i < arguments.length; i++)
|
||||
$(arguments[i]).value = '';
|
||||
},
|
||||
|
||||
focus: function(element) {
|
||||
$(element).focus();
|
||||
},
|
||||
|
||||
present: function() {
|
||||
for (var i = 0; i < arguments.length; i++)
|
||||
if ($(arguments[i]).value == '') return false;
|
||||
return true;
|
||||
},
|
||||
|
||||
select: function(element) {
|
||||
$(element).select();
|
||||
},
|
||||
|
||||
activate: function(element) {
|
||||
$(element).focus();
|
||||
$(element).select();
|
||||
}
|
||||
};
|
||||
var Form = {
|
||||
serialize: function(form) {
|
||||
var elements = Form.getElements($(form));
|
||||
var queryComponents = new Array();
|
||||
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var queryComponent = Form.Element.serialize(elements[i]);
|
||||
if (queryComponent)
|
||||
queryComponents.push(queryComponent);
|
||||
}
|
||||
|
||||
return queryComponents.join('&');
|
||||
},
|
||||
|
||||
getElements: function(form) {
|
||||
form = $(form);
|
||||
var elements = new Array();
|
||||
|
||||
for (tagName in Form.Element.Serializers) {
|
||||
var tagElements = form.getElementsByTagName(tagName);
|
||||
for (var j = 0; j < tagElements.length; j++)
|
||||
elements.push(tagElements[j]);
|
||||
}
|
||||
return elements;
|
||||
},
|
||||
|
||||
disable: function(form) {
|
||||
var elements = Form.getElements(form);
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var element = elements[i];
|
||||
element.blur();
|
||||
element.disable = 'true';
|
||||
}
|
||||
},
|
||||
|
||||
focusFirstElement: function(form) {
|
||||
form = $(form);
|
||||
var elements = Form.getElements(form);
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var element = elements[i];
|
||||
if (element.type != 'hidden' && !element.disabled) {
|
||||
Field.activate(element);
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
reset: function(form) {
|
||||
$(form).reset();
|
||||
}
|
||||
};
|
||||
|
||||
Form.Element = {
|
||||
serialize: function(element) {
|
||||
element = $(element);
|
||||
var method = element.tagName.toLowerCase();
|
||||
var parameter = Form.Element.Serializers[method](element);
|
||||
|
||||
if (parameter)
|
||||
return encodeURIComponent(parameter[0]) + '=' +
|
||||
encodeURIComponent(parameter[1]);
|
||||
},
|
||||
|
||||
getValue: function(element) {
|
||||
element = $(element);
|
||||
var method = element.tagName.toLowerCase();
|
||||
var parameter = Form.Element.Serializers[method](element);
|
||||
|
||||
if (parameter)
|
||||
return parameter[1];
|
||||
}
|
||||
};
|
||||
|
||||
Form.Element.Serializers = {
|
||||
input: function(element) {
|
||||
switch (element.type.toLowerCase()) {
|
||||
case 'hidden':
|
||||
case 'password':
|
||||
case 'text':
|
||||
return Form.Element.Serializers.textarea(element);
|
||||
case 'checkbox':
|
||||
case 'radio':
|
||||
return Form.Element.Serializers.inputSelector(element);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
inputSelector: function(element) {
|
||||
if (element.checked)
|
||||
return [element.name, element.value];
|
||||
},
|
||||
|
||||
textarea: function(element) {
|
||||
return [element.name, element.value];
|
||||
},
|
||||
|
||||
select: function(element) {
|
||||
var index = element.selectedIndex;
|
||||
var value = element.options[index].value || element.options[index].text;
|
||||
return [element.name, (index >= 0) ? value : ''];
|
||||
}
|
||||
};
|
||||
|
||||
var $F = Form.Element.getValue;
|
||||
|
||||
Abstract.TimedObserver = function() {};
|
||||
Abstract.TimedObserver.prototype = {
|
||||
initialize: function(element, frequency, callback) {
|
||||
this.frequency = frequency;
|
||||
this.element = $(element);
|
||||
this.callback = callback;
|
||||
|
||||
this.lastValue = this.getValue();
|
||||
this.registerCallback();
|
||||
},
|
||||
|
||||
registerCallback: function() {
|
||||
setTimeout(this.onTimerEvent.bind(this), this.frequency * 1000);
|
||||
},
|
||||
|
||||
onTimerEvent: function() {
|
||||
var value = this.getValue();
|
||||
if (this.lastValue != value) {
|
||||
this.callback(this.element, value);
|
||||
this.lastValue = value;
|
||||
}
|
||||
|
||||
this.registerCallback();
|
||||
}
|
||||
};
|
||||
|
||||
Form.Element.Observer = Class.create();
|
||||
Form.Element.Observer.prototype = (new Abstract.TimedObserver()).extend({
|
||||
getValue: function() {
|
||||
return Form.Element.getValue(this.element);
|
||||
}
|
||||
});
|
||||
|
||||
Form.Observer = Class.create();
|
||||
Form.Observer.prototype = (new Abstract.TimedObserver()).extend({
|
||||
getValue: function() {
|
||||
return Form.serialize(this.element);
|
||||
}
|
||||
});
|
||||
|
||||
document.getElementsByClassName = function(className) {
|
||||
var children = document.getElementsByTagName('*') || document.all;
|
||||
var elements = new Array();
|
||||
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
var child = children[i];
|
||||
var classNames = child.className.split(' ');
|
||||
for (var j = 0; j < classNames.length; j++) {
|
||||
if (classNames[j] == className) {
|
||||
elements.push(child);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return elements;
|
||||
};
|
||||
|
||||
var Element = {
|
||||
toggle: function() {
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
var element = $(arguments[i]);
|
||||
element.style.display =
|
||||
(element.style.display == 'none' ? '' : 'none');
|
||||
}
|
||||
},
|
||||
|
||||
hide: function() {
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
var element = $(arguments[i]);
|
||||
element.style.display = 'none';
|
||||
}
|
||||
},
|
||||
|
||||
show: function() {
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
var element = $(arguments[i]);
|
||||
element.style.display = '';
|
||||
}
|
||||
},
|
||||
|
||||
remove: function(element) {
|
||||
element = $(element);
|
||||
element.parentNode.removeChild(element);
|
||||
},
|
||||
|
||||
getHeight: function(element) {
|
||||
element = $(element);
|
||||
return element.offsetHeight;
|
||||
}
|
||||
};
|
||||
|
||||
var Toggle = new Object();
|
||||
Toggle.display = Element.toggle;
|
||||
|
||||
Abstract.Insertion = function(adjacency) {
|
||||
this.adjacency = adjacency;
|
||||
};
|
||||
|
||||
Abstract.Insertion.prototype = {
|
||||
initialize: function(element, content) {
|
||||
this.element = $(element);
|
||||
this.content = content;
|
||||
|
||||
if (this.adjacency && this.element.insertAdjacentHTML) {
|
||||
this.element.insertAdjacentHTML(this.adjacency, this.content);
|
||||
} else {
|
||||
this.range = this.element.ownerDocument.createRange();
|
||||
if (this.initializeRange) this.initializeRange();
|
||||
this.fragment = this.range.createContextualFragment(this.content);
|
||||
this.insertContent();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var Insertion = new Object();
|
||||
|
||||
Insertion.Before = Class.create();
|
||||
Insertion.Before.prototype = (new Abstract.Insertion('beforeBegin')).extend({
|
||||
initializeRange: function() {
|
||||
this.range.setStartBefore(this.element);
|
||||
},
|
||||
|
||||
insertContent: function() {
|
||||
this.element.parentNode.insertBefore(this.fragment, this.element);
|
||||
}
|
||||
});
|
||||
|
||||
Insertion.Top = Class.create();
|
||||
Insertion.Top.prototype = (new Abstract.Insertion('afterBegin')).extend({
|
||||
initializeRange: function() {
|
||||
this.range.selectNodeContents(this.element);
|
||||
this.range.collapse(true);
|
||||
},
|
||||
|
||||
insertContent: function() {
|
||||
this.element.insertBefore(this.fragment, this.element.firstChild);
|
||||
}
|
||||
});
|
||||
|
||||
Insertion.Bottom = Class.create();
|
||||
Insertion.Bottom.prototype = (new Abstract.Insertion('beforeEnd')).extend({
|
||||
initializeRange: function() {
|
||||
this.range.selectNodeContents(this.element);
|
||||
this.range.collapse(this.element);
|
||||
},
|
||||
|
||||
insertContent: function() {
|
||||
this.element.appendChild(this.fragment);
|
||||
}
|
||||
});
|
||||
|
||||
Insertion.After = Class.create();
|
||||
Insertion.After.prototype = (new Abstract.Insertion('afterEnd')).extend({
|
||||
initializeRange: function() {
|
||||
this.range.setStartAfter(this.element);
|
||||
},
|
||||
|
||||
insertContent: function() {
|
||||
this.element.parentNode.insertBefore(this.fragment,
|
||||
this.element.nextSibling);
|
||||
}
|
||||
});
|
47
themes/olive/javascripts/scriptaculous.js
Executable file
47
themes/olive/javascripts/scriptaculous.js
Executable file
|
@ -0,0 +1,47 @@
|
|||
// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining
|
||||
// a copy of this software and associated documentation files (the
|
||||
// "Software"), to deal in the Software without restriction, including
|
||||
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||
// permit persons to whom the Software is furnished to do so, subject to
|
||||
// the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be
|
||||
// included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
var Scriptaculous = {
|
||||
Version: '1.5_rc3',
|
||||
require: function(libraryName) {
|
||||
// inserting via DOM fails in Safari 2.0, so brute force approach
|
||||
document.write('<script type="text/javascript" src="'+libraryName+'"></script>');
|
||||
},
|
||||
load: function() {
|
||||
if((typeof Prototype=='undefined') ||
|
||||
parseFloat(Prototype.Version.split(".")[0] + "." +
|
||||
Prototype.Version.split(".")[1]) < 1.4)
|
||||
throw("script.aculo.us requires the Prototype JavaScript framework >= 1.4.0");
|
||||
var scriptTags = document.getElementsByTagName("script");
|
||||
for(var i=0;i<scriptTags.length;i++) {
|
||||
if(scriptTags[i].src && scriptTags[i].src.match(/scriptaculous\.js(\?.*)?$/)) {
|
||||
var path = scriptTags[i].src.replace(/scriptaculous\.js(\?.*)?$/,'');
|
||||
this.require(path + 'effects.js');
|
||||
this.require(path + 'dragdrop.js');
|
||||
this.require(path + 'controls.js');
|
||||
this.require(path + 'slider.js');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Scriptaculous.load();
|
258
themes/olive/javascripts/slider.js
Executable file
258
themes/olive/javascripts/slider.js
Executable file
|
@ -0,0 +1,258 @@
|
|||
// Copyright (c) 2005 Marty Haught
|
||||
//
|
||||
// See scriptaculous.js for full license.
|
||||
|
||||
if(!Control) var Control = {};
|
||||
Control.Slider = Class.create();
|
||||
|
||||
// options:
|
||||
// axis: 'vertical', or 'horizontal' (default)
|
||||
// increment: (default: 1)
|
||||
// step: (default: 1)
|
||||
//
|
||||
// callbacks:
|
||||
// onChange(value)
|
||||
// onSlide(value)
|
||||
Control.Slider.prototype = {
|
||||
initialize: function(handle, track, options) {
|
||||
this.handle = $(handle);
|
||||
this.track = $(track);
|
||||
|
||||
this.options = options || {};
|
||||
|
||||
this.axis = this.options.axis || 'horizontal';
|
||||
this.increment = this.options.increment || 1;
|
||||
this.step = parseInt(this.options.step) || 1;
|
||||
this.value = 0;
|
||||
|
||||
var defaultMaximum = Math.round(this.track.offsetWidth / this.increment);
|
||||
if(this.isVertical()) defaultMaximum = Math.round(this.track.offsetHeight / this.increment);
|
||||
|
||||
this.maximum = this.options.maximum || defaultMaximum;
|
||||
this.minimum = this.options.minimum || 0;
|
||||
|
||||
// Will be used to align the handle onto the track, if necessary
|
||||
this.alignX = parseInt (this.options.alignX) || 0;
|
||||
this.alignY = parseInt (this.options.alignY) || 0;
|
||||
|
||||
// Zero out the slider position
|
||||
this.setCurrentLeft(Position.cumulativeOffset(this.track)[0] - Position.cumulativeOffset(this.handle)[0] + this.alignX);
|
||||
this.setCurrentTop(this.trackTop() - Position.cumulativeOffset(this.handle)[1] + this.alignY);
|
||||
|
||||
this.offsetX = 0;
|
||||
this.offsetY = 0;
|
||||
|
||||
this.originalLeft = this.currentLeft();
|
||||
this.originalTop = this.currentTop();
|
||||
this.originalZ = parseInt(this.handle.style.zIndex || "0");
|
||||
|
||||
// Prepopulate Slider value
|
||||
this.setSliderValue(parseInt(this.options.sliderValue) || 0);
|
||||
|
||||
this.active = false;
|
||||
this.dragging = false;
|
||||
this.disabled = false;
|
||||
|
||||
// FIXME: use css
|
||||
this.handleImage = $(this.options.handleImage) || false;
|
||||
this.handleDisabled = this.options.handleDisabled || false;
|
||||
this.handleEnabled = false;
|
||||
if(this.handleImage)
|
||||
this.handleEnabled = this.handleImage.src || false;
|
||||
|
||||
if(this.options.disabled)
|
||||
this.setDisabled();
|
||||
|
||||
// Value Array
|
||||
this.values = this.options.values || false; // Add method to validate and sort??
|
||||
|
||||
Element.makePositioned(this.handle); // fix IE
|
||||
|
||||
this.eventMouseDown = this.startDrag.bindAsEventListener(this);
|
||||
this.eventMouseUp = this.endDrag.bindAsEventListener(this);
|
||||
this.eventMouseMove = this.update.bindAsEventListener(this);
|
||||
this.eventKeypress = this.keyPress.bindAsEventListener(this);
|
||||
|
||||
Event.observe(this.handle, "mousedown", this.eventMouseDown);
|
||||
Event.observe(document, "mouseup", this.eventMouseUp);
|
||||
Event.observe(document, "mousemove", this.eventMouseMove);
|
||||
Event.observe(document, "keypress", this.eventKeypress);
|
||||
},
|
||||
dispose: function() {
|
||||
Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);
|
||||
Event.stopObserving(document, "mouseup", this.eventMouseUp);
|
||||
Event.stopObserving(document, "mousemove", this.eventMouseMove);
|
||||
Event.stopObserving(document, "keypress", this.eventKeypress);
|
||||
},
|
||||
setDisabled: function(){
|
||||
this.disabled = true;
|
||||
if(this.handleDisabled)
|
||||
this.handleImage.src = this.handleDisabled;
|
||||
},
|
||||
setEnabled: function(){
|
||||
this.disabled = false;
|
||||
if(this.handleEnabled)
|
||||
this.handleImage.src = this.handleEnabled;
|
||||
},
|
||||
currentLeft: function() {
|
||||
return parseInt(this.handle.style.left || '0');
|
||||
},
|
||||
currentTop: function() {
|
||||
return parseInt(this.handle.style.top || '0');
|
||||
},
|
||||
setCurrentLeft: function(left) {
|
||||
this.handle.style.left = left +"px";
|
||||
},
|
||||
setCurrentTop: function(top) {
|
||||
this.handle.style.top = top +"px";
|
||||
},
|
||||
trackLeft: function(){
|
||||
return Position.cumulativeOffset(this.track)[0];
|
||||
},
|
||||
trackTop: function(){
|
||||
return Position.cumulativeOffset(this.track)[1];
|
||||
},
|
||||
getNearestValue: function(value){
|
||||
if(this.values){
|
||||
var i = 0;
|
||||
var offset = Math.abs(this.values[0] - value);
|
||||
var newValue = this.values[0];
|
||||
|
||||
for(i=0; i < this.values.length; i++){
|
||||
var currentOffset = Math.abs(this.values[i] - value);
|
||||
if(currentOffset < offset){
|
||||
newValue = this.values[i];
|
||||
offset = currentOffset;
|
||||
}
|
||||
}
|
||||
return newValue;
|
||||
}
|
||||
return value;
|
||||
},
|
||||
setSliderValue: function(sliderValue){
|
||||
// First check our max and minimum and nearest values
|
||||
sliderValue = this.getNearestValue(sliderValue);
|
||||
if(sliderValue > this.maximum) sliderValue = this.maximum;
|
||||
if(sliderValue < this.minimum) sliderValue = this.minimum;
|
||||
var offsetDiff = (sliderValue - (this.value||this.minimum)) * this.increment;
|
||||
|
||||
if(this.isVertical()){
|
||||
this.setCurrentTop(offsetDiff + this.currentTop());
|
||||
} else {
|
||||
this.setCurrentLeft(offsetDiff + this.currentLeft());
|
||||
}
|
||||
this.value = sliderValue;
|
||||
this.updateFinished();
|
||||
},
|
||||
minimumOffset: function(){
|
||||
return(this.isVertical() ?
|
||||
this.trackTop() + this.alignY :
|
||||
this.trackLeft() + this.alignX);
|
||||
},
|
||||
maximumOffset: function(){
|
||||
return(this.isVertical() ?
|
||||
this.trackTop() + this.alignY + (this.maximum - this.minimum) * this.increment :
|
||||
this.trackLeft() + this.alignX + (this.maximum - this.minimum) * this.increment);
|
||||
},
|
||||
isVertical: function(){
|
||||
return (this.axis == 'vertical');
|
||||
},
|
||||
startDrag: function(event) {
|
||||
if(Event.isLeftClick(event)) {
|
||||
if(!this.disabled){
|
||||
this.active = true;
|
||||
var pointer = [Event.pointerX(event), Event.pointerY(event)];
|
||||
var offsets = Position.cumulativeOffset(this.handle);
|
||||
this.offsetX = (pointer[0] - offsets[0]);
|
||||
this.offsetY = (pointer[1] - offsets[1]);
|
||||
this.originalLeft = this.currentLeft();
|
||||
this.originalTop = this.currentTop();
|
||||
}
|
||||
Event.stop(event);
|
||||
}
|
||||
},
|
||||
update: function(event) {
|
||||
if(this.active) {
|
||||
if(!this.dragging) {
|
||||
var style = this.handle.style;
|
||||
this.dragging = true;
|
||||
if(style.position=="") style.position = "relative";
|
||||
style.zIndex = this.options.zindex;
|
||||
}
|
||||
this.draw(event);
|
||||
// fix AppleWebKit rendering
|
||||
if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);
|
||||
Event.stop(event);
|
||||
}
|
||||
},
|
||||
draw: function(event) {
|
||||
var pointer = [Event.pointerX(event), Event.pointerY(event)];
|
||||
var offsets = Position.cumulativeOffset(this.handle);
|
||||
|
||||
offsets[0] -= this.currentLeft();
|
||||
offsets[1] -= this.currentTop();
|
||||
|
||||
// Adjust for the pointer's position on the handle
|
||||
pointer[0] -= this.offsetX;
|
||||
pointer[1] -= this.offsetY;
|
||||
var style = this.handle.style;
|
||||
|
||||
if(this.isVertical()){
|
||||
if(pointer[1] > this.maximumOffset())
|
||||
pointer[1] = this.maximumOffset();
|
||||
if(pointer[1] < this.minimumOffset())
|
||||
pointer[1] = this.minimumOffset();
|
||||
|
||||
// Increment by values
|
||||
if(this.values){
|
||||
this.value = this.getNearestValue(Math.round((pointer[1] - this.minimumOffset()) / this.increment) + this.minimum);
|
||||
pointer[1] = this.trackTop() + this.alignY + (this.value - this.minimum) * this.increment;
|
||||
} else {
|
||||
this.value = Math.round((pointer[1] - this.minimumOffset()) / this.increment) + this.minimum;
|
||||
}
|
||||
style.top = pointer[1] - offsets[1] + "px";
|
||||
} else {
|
||||
if(pointer[0] > this.maximumOffset()) pointer[0] = this.maximumOffset();
|
||||
if(pointer[0] < this.minimumOffset()) pointer[0] = this.minimumOffset();
|
||||
// Increment by values
|
||||
if(this.values){
|
||||
this.value = this.getNearestValue(Math.round((pointer[0] - this.minimumOffset()) / this.increment) + this.minimum);
|
||||
pointer[0] = this.trackLeft() + this.alignX + (this.value - this.minimum) * this.increment;
|
||||
} else {
|
||||
this.value = Math.round((pointer[0] - this.minimumOffset()) / this.increment) + this.minimum;
|
||||
}
|
||||
style.left = (pointer[0] - offsets[0]) + "px";
|
||||
}
|
||||
if(this.options.onSlide) this.options.onSlide(this.value);
|
||||
},
|
||||
endDrag: function(event) {
|
||||
if(this.active && this.dragging) {
|
||||
this.finishDrag(event, true);
|
||||
Event.stop(event);
|
||||
}
|
||||
this.active = false;
|
||||
this.dragging = false;
|
||||
},
|
||||
finishDrag: function(event, success) {
|
||||
this.active = false;
|
||||
this.dragging = false;
|
||||
this.handle.style.zIndex = this.originalZ;
|
||||
this.originalLeft = this.currentLeft();
|
||||
this.originalTop = this.currentTop();
|
||||
this.updateFinished();
|
||||
},
|
||||
updateFinished: function() {
|
||||
if(this.options.onChange) this.options.onChange(this.value);
|
||||
},
|
||||
keyPress: function(event) {
|
||||
if(this.active && !this.disabled) {
|
||||
switch(event.keyCode) {
|
||||
case Event.KEY_ESC:
|
||||
this.finishDrag(event, false);
|
||||
Event.stop(event);
|
||||
break;
|
||||
}
|
||||
if(navigator.appVersion.indexOf('AppleWebKit')>0) Event.stop(event);
|
||||
}
|
||||
}
|
||||
}
|
35
themes/olive/javascripts/webmail.js
Executable file
35
themes/olive/javascripts/webmail.js
Executable file
|
@ -0,0 +1,35 @@
|
|||
function chooseContacts(url) {
|
||||
rs('', url + '?mode=choose',550,480,0);
|
||||
}
|
||||
|
||||
function setBulk() {
|
||||
if (getFormField("mail_bulk").checked) getFormField("set_bulk").value = "set_bulk"
|
||||
document.forms['composeMail'].submit();
|
||||
}
|
||||
|
||||
function getFormField(id) {
|
||||
if ( document.getElementById ) elem = document.getElementById( id );
|
||||
else if ( document.all ) elem = document.eval( "document.all." + id );
|
||||
return elem;
|
||||
}
|
||||
|
||||
function toggle_msg_operations(setc) {
|
||||
var isOpened = toggle_layer('msgops');
|
||||
if (setc) setCookie("_wmlmo", ( isOpened ? "opened" : "closed"), 1000000);
|
||||
}
|
||||
|
||||
function toggle_msg_search(setc) {
|
||||
var isOpened = toggle_layer('msg_search');
|
||||
if (setc) setCookie("_wmlms", (isOpened ? "opened" : "closed"), 1000000);
|
||||
}
|
||||
|
||||
function checkAll(theForm) { // check all the checkboxes in the list
|
||||
for (var i=0;i<theForm.elements.length;i++) {
|
||||
var e = theForm.elements[i];
|
||||
var eName = e.name;
|
||||
if (eName != 'allbox' &&
|
||||
(e.type.indexOf("checkbox") == 0)) {
|
||||
e.checked = theForm.allbox.checked;
|
||||
}
|
||||
}
|
||||
}
|
554
themes/olive/stylesheets/admin.css
Executable file
554
themes/olive/stylesheets/admin.css
Executable file
|
@ -0,0 +1,554 @@
|
|||
* {
|
||||
padding:0;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: "Lucida Grande", "verdana", "tahoma";
|
||||
}
|
||||
|
||||
|
||||
body, div, p, th, td, li, dd {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 130%;
|
||||
font-weight: bold;
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 110%;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #858585;
|
||||
text-decoration: none;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
a:active {
|
||||
color: #000;
|
||||
background-color: transparent;
|
||||
border-color: #779;
|
||||
}
|
||||
|
||||
|
||||
#wholepage {
|
||||
width: 90%;
|
||||
margin: 1em auto;
|
||||
text-align: left;
|
||||
background-color: #fff;
|
||||
color: #858585;
|
||||
}
|
||||
|
||||
|
||||
#pageheader { padding: 10px; }
|
||||
#title { display: none; }
|
||||
#logo img { border: 0; }
|
||||
|
||||
#container { float: left; width: 100%; border: 1px solid #ccc; }
|
||||
|
||||
#sidebar_outer {
|
||||
float: left;
|
||||
width: 200px;
|
||||
margin:0; padding:0;
|
||||
}
|
||||
|
||||
#sidebar { margin: 10px; }
|
||||
|
||||
#advert {
|
||||
width: 120px;
|
||||
height: 240px;
|
||||
margin: 15px 30px;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
#advert img {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#content { margin:0 0 0 200px; padding: 5px; }
|
||||
|
||||
#content ol {
|
||||
padding-left: 25px;
|
||||
}
|
||||
|
||||
#content ul {
|
||||
padding-left: 25px;
|
||||
}
|
||||
|
||||
.clear { line-height: 0.1%; font-size: 0.1%; clear: both; }
|
||||
|
||||
/* Footer */
|
||||
div.footer {
|
||||
clear: both;
|
||||
padding-top: 15px;
|
||||
height: 30px;
|
||||
overflow: hidden;
|
||||
font-size: 10px;
|
||||
font-family: Verdana, Arial, Helvetica, sans-serif;
|
||||
text-align: center;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
div.footer a {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
|
||||
table.list {
|
||||
width: 98%;
|
||||
border-bottom: #E6E6E6 solid 0.5px;
|
||||
border-right: #E6E6E6 solid 0.5px;
|
||||
border-left: #E6E6E6 solid 0.5px;
|
||||
border-top: #E6E6E6 solid 0.5px;
|
||||
margin-top: 1px;
|
||||
margin-left: 1px;
|
||||
margin-right: 1px;
|
||||
margin-bottom: 1px;
|
||||
text-align: left;
|
||||
font-family: Verdana, Arial, Helvetica, sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
table.list a, table.list a:link, table.list a:active, table.list a:visited {
|
||||
color: #e70;
|
||||
text-decoration: none;
|
||||
font-family: Verdana, Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
table.list a:hover {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
table.list td#alphaListHeader a, table.list td#alphaListHeader a:link, table.list td#alphaListHeader a:active, table.list td#alphaListHeader a:visited {
|
||||
font-size:14px;
|
||||
color:#F2820A;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
table.list td#alphaListHeader a:hover {
|
||||
font-size:14px;
|
||||
background-color:#000000;
|
||||
color:#F2820A;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
table.list td {
|
||||
margin: 0px;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
padding-right: 0;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
table.list th {
|
||||
background-color: #E6E6E6;
|
||||
font-family: Verdana, Arial, Helvetica, sans-serif;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
color: #e70;
|
||||
text-align: left;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
table.list tr.even {
|
||||
background-color: #fcfcfc;
|
||||
}
|
||||
|
||||
table.list tr.odd{
|
||||
background-color: #f7f7f7
|
||||
}
|
||||
|
||||
table.list tr:hover { background: #eed !important; }
|
||||
|
||||
table.list a img { border: 0; }
|
||||
|
||||
/* Gallery styles */
|
||||
div.gal {float: left; height: 200px; width: 130px; background-color: #DDD;
|
||||
padding: 0 15px; margin: 5px 3px; border: 1.5px solid; border-color: #444 #AAA #AAA #444;}
|
||||
div.gal img {border: 1px solid; border-color: #444 #AAA #AAA #444;}
|
||||
div.lc img {height: 96px; width: 128px; margin: 40px 0 0 0;}
|
||||
div.pt img {height: 128px; width: 96px; margin: 8px 16px 0 0; margin-left:10px;}
|
||||
div.gal ul {margin: 0.25em 0 0 0; padding: 0; font: bold small Arial, Verdana, sans-serif;}
|
||||
div.gal ul li {padding: 0; list-style-type:none; }
|
||||
div.gal ul li.galcaption {display: block; text-align: left; padding: 0 15px; margin: 0;}
|
||||
div.gal ul li.galedit {display: block; text-align: left; padding: 0 15px; margin: 0;}
|
||||
div.gal ul li.galdel {display: block; text-align: left; padding: 0 15px; margin: 0;}
|
||||
|
||||
#iconmenu {
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#iconmenu ul {
|
||||
margin: 3px 0;
|
||||
padding: 0;
|
||||
float: left;
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
#iconmenu li {
|
||||
margin-left: 0;
|
||||
float: left;
|
||||
text-align: center;
|
||||
background-position: center top;
|
||||
background-repeat: no-repeat;
|
||||
list-style-type:none;
|
||||
margin: 16px 16px 0 0;
|
||||
}
|
||||
|
||||
#iconmenu li a {
|
||||
font-size: 12px;
|
||||
color: gray;
|
||||
display: block;
|
||||
width: 110px;
|
||||
margin: 0;
|
||||
padding: 64px 0 0 0;
|
||||
background-position: center top;
|
||||
background-repeat: no-repeat;
|
||||
text-align: center;
|
||||
border: 1px solid white;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#iconmenu li a:hover {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
background-position: center top;
|
||||
border: 1px dashed #DCDCDC;
|
||||
}
|
||||
|
||||
#mmhomepage, #mmhomepage a { background-image: url("/themes/original/images/homepage.gif"); }
|
||||
#mmlogo, #mmlogo a { background-image: url("/themes/original/images/logo.gif"); }
|
||||
#mmwebmail, #mmwebmail a { background-image: url("/themes/original/images/webmail.gif"); }
|
||||
#mmcontacts, #mmcontacts a { background-image: url("/themes/original/images/contacts.gif"); }
|
||||
#mmcontactgroups, #mmcontactgroups a { background-image: url("/themes/original/images/contact_groups.gif"); }
|
||||
#mmcontactscales, #mmcontactscales a { background-image: url("/themes/original/images/contact_scales.gif"); }
|
||||
#mmarticletypes, #mmarticletypes a { background-image: url("/themes/original/images/article_types.gif"); }
|
||||
#mmarticles, #mmarticles a { background-image: url("/themes/original/images/articles.gif"); }
|
||||
#mmgallery, #mmgallery a { background-image: url("/themes/original/images/image.gif"); }
|
||||
#mmcategories, #mmcategories a { background-image: url("/themes/original/images/categories.gif"); }
|
||||
#mmregion, #mmregion a { background-image: url("/themes/original/images/region.gif"); }
|
||||
#mmlogout, #mmlogout a { background-image: url("/themes/original/images/logout.gif"); }
|
||||
#mmwizard, #mmwizard a { background-image: url("/themes/original/images/wizard_mirr.gif"); }
|
||||
#mmpages, #mmpages a { background-image: url("/themes/original/images/pages.gif"); }
|
||||
#mmmenueditor, #mmmenueditor a { background-image: url("/themes/original/images/menueditor.gif"); }
|
||||
#mmforumcats, #mmforumcats a { background-image: url("/themes/original/images/forum.gif"); }
|
||||
#mmforums, #mmforums a { background-image: url("/themes/original/images/forum.gif"); }
|
||||
#mmchnagepassword, #mmchnagepassword a { background-image: url("/themes/original/images/password.gif"); }
|
||||
#mmblog, #mmblog a { background-image: url("/themes/original/images/blog.gif"); }
|
||||
#mmcar, #mmcar a { background-image: url("/themes/original/images/car.gif"); }
|
||||
#mmpathstatpath, #mmpathstatpath a { background-image: url("/themes/original/images/stats.gif"); }
|
||||
#mmnewsletters, #mmnewsletters a { background-image: url("/themes/original/images/newsletters.gif"); }
|
||||
#mmadvert, #mmadvert a { background-image: url("/themes/original/images/advert.gif"); }
|
||||
#mmforms, #mmforms a { background-image: url("/themes/original/images/formbuilder.gif"); }
|
||||
#mmattachments, #mmattachments a { background-image: url("/themes/original/images/attachment.gif"); }
|
||||
#mmphoto, #mmphoto a { background-image: url("/themes/original/images/photo.gif"); }
|
||||
#mmtypo, #mmtypo a { background-image: url("/themes/original/images/typo.gif"); }
|
||||
|
||||
/* Wizard */
|
||||
|
||||
div.wizfooter {
|
||||
border: 1px solid #DCDCDC;
|
||||
background-color: #ffb;
|
||||
line-height: 15px;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
color: blue;
|
||||
height: 65px;
|
||||
}
|
||||
|
||||
div.wizfooter table {
|
||||
width:100%;
|
||||
}
|
||||
|
||||
div.wizfooter table tr td.wizleft {
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
div.wizfooter table tr td.wizcenter {
|
||||
width:15%;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
div.wizfooter table tr td.wizright {
|
||||
text-align:right;
|
||||
}
|
||||
|
||||
div.wizfooter table tr td.wiztitle {
|
||||
width:45%;
|
||||
color: #000;
|
||||
text-align:center;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.wizfooter table tr td.wizexit {
|
||||
width:25%;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#wizsidebar {
|
||||
width: 180px;
|
||||
text-align: center;
|
||||
float: left;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
table.wizintructions {
|
||||
width: 95%;
|
||||
text-align: left;
|
||||
font-family: Verdana, Arial, Helvetica, sans-serif;
|
||||
font-size: 12px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
table.wizintructions tr.heading {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
table.wizintructions tr.current {
|
||||
background-color: #ffb;
|
||||
color: blue;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#wizsidebar td ul {
|
||||
padding-left: 12px;
|
||||
}
|
||||
|
||||
#wizsidebar td ul li {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
table.wizintructions tr.other {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
|
||||
div.menuitemmain {
|
||||
width:531px;
|
||||
}
|
||||
|
||||
div.rootmenuname {
|
||||
position:relative;
|
||||
top:-20px;
|
||||
left:25px;
|
||||
right:0px;
|
||||
bottom:0px;
|
||||
width:200px;
|
||||
}
|
||||
|
||||
div.rootmenucommands {
|
||||
position:relative;
|
||||
top:-38px;
|
||||
left:230px;
|
||||
right:0px;
|
||||
bottom:0px;
|
||||
width:301px;
|
||||
}
|
||||
|
||||
div.submenumain {
|
||||
width:460px;
|
||||
}
|
||||
|
||||
div.submenuname {
|
||||
position:relative;
|
||||
top:0px;
|
||||
left:0px;
|
||||
right:0px;
|
||||
bottom:0px;
|
||||
width:185px;
|
||||
}
|
||||
|
||||
div.submenucommands {
|
||||
position:relative;
|
||||
top:-15px;
|
||||
left:190px;
|
||||
right:0px;
|
||||
bottom:0px;
|
||||
width:195px;
|
||||
}
|
||||
|
||||
td.htmlarea {
|
||||
border: 1px solid;
|
||||
}
|
||||
|
||||
#suggest {
|
||||
padding: 10px;
|
||||
margin: 10px;
|
||||
border: 1px dotted;
|
||||
width: 362px;
|
||||
voice-family: "\"}\"";
|
||||
voice-family: inherit;
|
||||
width: 383px;
|
||||
}
|
||||
|
||||
#suggest p {
|
||||
padding: 0;
|
||||
margin-left: 0;
|
||||
margin-top:0;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.loginbox dl { margin: 10px 0 0 0; }
|
||||
.loginbox dt {
|
||||
float: left;
|
||||
width: 80px;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
font-weight: normal;
|
||||
}
|
||||
.loginbox dd {
|
||||
margin: 0 0 5px 90px;
|
||||
font-size: 11px;
|
||||
line-height: 24px;
|
||||
color: #666;
|
||||
margin-left: 80px;
|
||||
}
|
||||
.loginbox input { font-size: 14px; }
|
||||
.loginbox dd span { color: #ccc; font-size:10px; }
|
||||
.loginbox input#login_user_username { width: 300px; }
|
||||
.loginbox input#login_user_passw { width: 150px; margin-right: 5px; }
|
||||
|
||||
#path_stats img { border: 0; }
|
||||
#pathslegend img { border: 0; }
|
||||
#path_stats table.list tr td { font-size: 10px; }
|
||||
#path_stats table.list th { font-size: 10px; }
|
||||
|
||||
#homepage_description, #homepage_keywords, #article_keywords, #page_description, #page_keywords { width: 520px; }
|
||||
|
||||
div#nwscampaign {width: 100%; display: inline;}
|
||||
div#nwscampaign h4 { margin: 10px; }
|
||||
|
||||
.amenu { padding: 0.5em; display: inline; border: 1px; }
|
||||
.amenu li { display: inline; list-style-position: outside; }
|
||||
|
||||
#topm .amenu li.active a { color: #FFF;}
|
||||
#subm .amenu li.active a { text-decoration: underline; }
|
||||
|
||||
#topm .amenu li a { color: #000; text-decoration: none; padding: 0.5em; }
|
||||
#subm .amenu li a { text-decoration: none; padding: 0.5em; }
|
||||
|
||||
#topm .amenu { padding-left: 1em; }
|
||||
#topm ul { background-color: #144282; display: block; width: 94%; font-size: 1.5em; }
|
||||
|
||||
#subm .amenu { padding-left: 1em; }
|
||||
#subm ul { background-color: #ecf5ff; display: block; width: 94%; font-size: 1.25em; }
|
||||
|
||||
.campaign-edit { background-color: #f0f0f0; border: 0; padding: 0; width: 100%; }
|
||||
.campaign-view { background-color: #f0f0f0; border: 0; padding: 0; width: 100%; }
|
||||
.campaign-view a img {border: 0}
|
||||
.blueTitle { font-weight:bold; line-height:1.1; font-size: 14px; color: #1A5BB2; margin-bottom : 6px; }
|
||||
|
||||
.largeBlueTitle { font-weight:bold; line-height:1.1; font-size: 16px; color: #1A5BB2; margin-bottom : 6px; }
|
||||
.formDescriptor { font-size: 11px; padding:0 0 0 16px; margin-bottom : 10px; }
|
||||
.formLabel { padding:0 0 0 0px; margin-bottom : 10px; font-weight:bold; }
|
||||
.fieldSpacer { font-weight:bold; line-height:1.1; font-size: 14px; color: #1A5BB2; margin-bottom : 6px; }
|
||||
|
||||
li.error { color: red; }
|
||||
|
||||
.cpointer { cursor: pointer; cursor: hand; }
|
||||
|
||||
.partactive {
|
||||
padding-top: 10px;
|
||||
width: 150px;
|
||||
height: 25px;
|
||||
text-align: center;
|
||||
background-color: rgb(220,220,220);
|
||||
border: #555 solid 0.5px;
|
||||
}
|
||||
|
||||
.partsel {
|
||||
padding-top: 10px;
|
||||
width: 150px;
|
||||
height: 25px;
|
||||
text-align: center;
|
||||
background-color: rgb(190,190,190);
|
||||
border: #555 solid 0.5px;
|
||||
}
|
||||
|
||||
div#parts a img { border: 0; align: right }
|
||||
|
||||
.part-editor {
|
||||
padding: 5px 5px 5px 5px;
|
||||
border: #555 solid 0.5px;
|
||||
background-color: rgb(220,220,220);
|
||||
display: block;
|
||||
margin-left: 151px;
|
||||
min-height: 250px;
|
||||
}
|
||||
|
||||
.part-editor h2 { padding: 0; margin: 0; color: #00F; margin-bottom: 20px }
|
||||
.part-editor label { font-size: 10px; color: #00F }
|
||||
|
||||
div#parts {
|
||||
width: 150px;
|
||||
float: left;
|
||||
display: block;
|
||||
}
|
||||
|
||||
div#compose-choose {
|
||||
padding: 5px 5px 5px 5px;
|
||||
border: #555 solid 0.5px;
|
||||
background-color: rgb(220,220,220);
|
||||
display: block;
|
||||
min-height: 250px;
|
||||
}
|
||||
|
||||
div#compose-radios {
|
||||
padding-top: 10px;
|
||||
width: 150px;
|
||||
height: 25px;
|
||||
float: left;
|
||||
background-color: rgb(220,220,220);
|
||||
}
|
||||
|
||||
div#compose-radios a img { border: 0px; }
|
||||
|
||||
div#compose-imgprev {
|
||||
padding: 5px 5px 5px 5px;
|
||||
border: #555 solid 0.5px;
|
||||
background-color: rgb(220,220,220);
|
||||
display: block;
|
||||
margin-left: 151px;
|
||||
min-height: 250px;
|
||||
}
|
||||
|
||||
div#tab_content table tr td.cpointer a img { border: 0; }
|
||||
|
||||
.cutField { width: 100%; overflow: hidden; }
|
||||
|
||||
div#choose-urls { font-size: 0.75em; text-align: left; padding: 5px; }
|
||||
div#choose-urls h4 { margin: 0; padding: 0; }
|
||||
div#choose-urls ul { margin: 0; padding: 0; }
|
||||
div#choose-urls li { list-style-type:none; background: #EDF4F5; border: 1px solid #AAA; margin: 1px; }
|
||||
|
||||
div#left-menu-items ul { margin: 0; padding: 0; }
|
||||
div#left-menu-items li { list-style-type:none; background: #EDF4F5; border: 1px solid #AAA; margin: 1px;}
|
||||
div#left-menu-items a img { border: 0;}
|
||||
|
||||
div#left-menu-items ul li ul li { list-style-type:none; background: #F4F5ED; border: 1px solid #AAA; margin: 1px; }
|
||||
div#left-menu-items ul li ul { margin: 2px; padding: 2px; }
|
||||
div.lm-subitems { margin: 5px; }
|
||||
|
||||
.comboarrow {}
|
||||
.combodivshow {position:absolute; display: inline;z-index:10000 }
|
||||
.combodiv { position:abcoslute; display:none; z-index:10000 }
|
||||
.combosel { width: 220px; border-style: none; }
|
397
themes/olive/stylesheets/base.css
Normal file
397
themes/olive/stylesheets/base.css
Normal file
|
@ -0,0 +1,397 @@
|
|||
* {margin:0;padding:0}
|
||||
.clear { clear: both; height: 0; }
|
||||
|
||||
.wat-cf:after {
|
||||
content: ".";
|
||||
display: block;
|
||||
height: 0;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.wat-cf {display: inline-block;}
|
||||
|
||||
/* Hides from IE-mac \*/
|
||||
* html .wat-cf {height: 1%;}
|
||||
.wat-cf {display: block;}
|
||||
/* End hide from IE-mac */
|
||||
|
||||
h1 { margin: 15px 0; font-size: 22px; font-weight: normal; }
|
||||
h2 { font-size: 22px; margin: 15px 0; font-weight: normal;}
|
||||
h3 { font-size: 18px; margin: 10px 0; font-weight: normal;}
|
||||
h4 { font-size: 16px; margin: 10px 0; font-weight: normal;}
|
||||
hr {height: 1px; border: 0; }
|
||||
p { margin: 15px 0;}
|
||||
a img { border: none; }
|
||||
|
||||
body {
|
||||
font-size: 12px;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
#container {
|
||||
min-width: 960px;
|
||||
}
|
||||
|
||||
#header, #wrapper {
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
#header {
|
||||
position: relative;
|
||||
padding-top: 1px;
|
||||
}
|
||||
|
||||
#header h1 {
|
||||
margin: 0;
|
||||
padding: 10px 0;
|
||||
font-size: 26px;
|
||||
}
|
||||
|
||||
#header h1 a:link, #header h1 a:active, #header h1 a:hover, #header h1 a:visited {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#main {
|
||||
width: 960px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.actions-bar {
|
||||
padding: 10px 1px;
|
||||
}
|
||||
|
||||
.actions-bar .actions {
|
||||
float: left;
|
||||
}
|
||||
|
||||
|
||||
.actions-bar .pagination {
|
||||
float: right;
|
||||
padding: 1px 0;
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
width: 250px;
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
#sidebar h3 {
|
||||
padding: 10px 15px;
|
||||
margin: 0;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
#sidebar .block {
|
||||
margin-bottom: 20px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
#sidebar .block .content {
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
#sidebar ul.navigation li {
|
||||
padding: 3px 10px;
|
||||
}
|
||||
|
||||
#sidebar .block .sidebar-block, #sidebar .notice {
|
||||
padding:10px;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
#main .block {
|
||||
margin-bottom: 20px;
|
||||
padding-top: 1px;
|
||||
}
|
||||
|
||||
#main .block .content .inner {
|
||||
padding: 0 15px 15px;
|
||||
}
|
||||
|
||||
#main .main p.first {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#user-navigation {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
#main-navigation {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#user-navigation ul, #main-navigation ul, .secondary-navigation ul, #sidebar ul.navigation {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
#user-navigation ul li, #main-navigation ul li, .secondary-navigation ul li {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#main-navigation ul li {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#user-navigation ul li {
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
#main-navigation ul li a:link, #main-navigation ul li a:visited, #main-navigation ul li a:hover, #main-navigation ul li a:active,
|
||||
.secondary-navigation ul li a:link, .secondary-navigation ul li a:visited, .secondary-navigation ul li a:hover, .secondary-navigation ul li a:active,
|
||||
#user-navigation ul li a:link, #user-navigation ul li a:visited, #user-navigation ul li a:hover, #user-navigation ul li a:active {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#main-navigation ul li a {
|
||||
font-size: 14px;
|
||||
line-height: 14px;
|
||||
display: block;
|
||||
padding: 8px 15px;
|
||||
}
|
||||
|
||||
.secondary-navigation {
|
||||
font-size: 13px;
|
||||
border-bottom-width: 10px;
|
||||
border-bottom-style: solid;
|
||||
}
|
||||
|
||||
.secondary-navigation ul li a {
|
||||
display: block;
|
||||
padding: 10px 15px;
|
||||
}
|
||||
|
||||
#footer {
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
/* pagination */
|
||||
|
||||
.pagination a, .pagination span, .pagination em {
|
||||
padding: 2px 5px;
|
||||
margin-right: 5px;
|
||||
display: block;
|
||||
float: left;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
}
|
||||
|
||||
.pagination em {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.pagination a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* tables */
|
||||
.table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.table th {
|
||||
padding: 10px;
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.table th.first {
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
.table th.last {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.table .checkbox {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.table td {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.table td.last {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
/* forms */
|
||||
|
||||
input.checkbox {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.form .group {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.form div.left {
|
||||
width: 20%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.form div.right {
|
||||
width: 75%;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.form .columns .column {
|
||||
width: 48%;
|
||||
}
|
||||
|
||||
.form .columns .left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.form .columns .right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.form label.label, .form input.text_field, .form textarea.text_area {
|
||||
font-size: 1.2em;
|
||||
padding: 1px 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.form label.right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.form input.checkbox, .form input.radio {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.form label.checkbox, .form label.radio {
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
.form label.label {
|
||||
display: block;
|
||||
padding-bottom: 2px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.form div.fieldWithErrors label.label {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.form .fieldWithErrors .error {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.form input.text_field, .form textarea.text_area {
|
||||
width: 100%;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
/* lists */
|
||||
|
||||
ul.list {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
ul.list li {
|
||||
clear: left;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
ul.list li .left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
ul.list li .left .avatar {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
ul.list li .item {
|
||||
margin-left: 80px;
|
||||
}
|
||||
|
||||
ul.list li .item .avatar {
|
||||
float: left;
|
||||
margin: 0 5px 5px 0;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
/* box */
|
||||
|
||||
#box {
|
||||
width: 500px;
|
||||
margin: 50px auto;
|
||||
}
|
||||
|
||||
#box .block {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#box .block h2 {
|
||||
padding: 10px 15px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#box .block .content {
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
/* Inspired by http://particletree.com/features/rediscovering-the-button-element */
|
||||
|
||||
a.button:link, a.button:visited, a.button:hover, a.button:active, button.button {
|
||||
color: #222;
|
||||
display:block;
|
||||
float:left;
|
||||
margin:0 7px 0 0;
|
||||
background-color: #eee;
|
||||
border:1px solid #bfbfbf;
|
||||
font-size: 1em;
|
||||
line-height: 1.3em;
|
||||
font-weight:bold;
|
||||
cursor:pointer;
|
||||
padding:5px 10px 6px 7px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
button.button {
|
||||
width:auto;
|
||||
overflow:visible;
|
||||
padding:4px 10px 3px 7px; /* IE6 */
|
||||
}
|
||||
button.button[type] {
|
||||
padding:5px 10px 5px 7px; /* Firefox */
|
||||
line-height:17px; /* Safari */
|
||||
}
|
||||
|
||||
*:first-child+html button.button[type] {
|
||||
padding:4px 10px 3px 7px; /* IE7 */
|
||||
}
|
||||
|
||||
button.button img, a.button img {
|
||||
margin:0 3px -3px 0 !important;
|
||||
padding:0;
|
||||
border:none;
|
||||
width:16px;
|
||||
height:16px;
|
||||
}
|
||||
|
||||
button.button:hover, a.button:hover {
|
||||
background-color:#dedede;
|
||||
}
|
||||
|
||||
button.button:active, a.button:active {
|
||||
background-color:#e5e5e5;
|
||||
}
|
68
themes/olive/stylesheets/mailr.css
Executable file
68
themes/olive/stylesheets/mailr.css
Executable file
|
@ -0,0 +1,68 @@
|
|||
/* Nested Lists */
|
||||
.open { display: block; }
|
||||
.closed { display: none; }
|
||||
|
||||
#logo {
|
||||
background-image: url("/themes/original/images/logo.png");
|
||||
background-repeat: no-repeat;
|
||||
height: 125px;
|
||||
}
|
||||
|
||||
#SystemError {
|
||||
position: relative;
|
||||
color: #990000;
|
||||
background-color: #FFCCCC;
|
||||
border-top: 1px solid #FF0000;
|
||||
border-bottom: 1px solid #FF0000;
|
||||
padding: 3px 2em;
|
||||
margin: 0 0 10px 0;
|
||||
}
|
||||
|
||||
#SystemStatus {
|
||||
position: relative;
|
||||
color: #006600;
|
||||
background-color: #CCFFCC;
|
||||
border-top: 1px solid #00FF00;
|
||||
border-bottom: 1px solid #00FF00;
|
||||
padding: 3px 2em;
|
||||
margin: 0 0 10px 0;
|
||||
}
|
||||
|
||||
#login {
|
||||
text-align: left;
|
||||
position: relative;
|
||||
width: 400px;
|
||||
margin: 10% auto 0 auto;
|
||||
padding: 10px;
|
||||
color: #fff;
|
||||
background-color: #5350b9;
|
||||
}
|
||||
|
||||
table.form_layout { margin: 0 auto; }
|
||||
table.form_layout th { margin: 0; padding: 0 5px 10px 0; text-align: right; vertical-align: top; }
|
||||
table.form_layout td { margin: 0; padding: 0 0 10px 5px; text-align: left; vertical-align: top;}
|
||||
table.form_layout td.form_actions { text-align: right; }
|
||||
|
||||
/* Rounded Box Corners
|
||||
---------------------------------------------------------------------- */
|
||||
.box {margin: 0 0 0.75em 0; clear: both; position: relative;}
|
||||
b.cn { position: absolute; height: 10px; width: 10px; margin: 0; padding: 0; background: url("/themes/original/images/white.png") no-repeat; line-height: 1px; font-size: 1px; }
|
||||
b.tl {top: -1px; left: -1px; background-position: top left;}
|
||||
b.tr {top: -1px; right: -1px; background-position: top right;}
|
||||
b.bl {bottom: -1px; left: -1px; background-position: bottom left;}
|
||||
b.br {bottom: -1px; right: -1px; background-position: bottom right;}
|
||||
|
||||
/* IE Filters */
|
||||
* html b.bl {bottom:-2px}
|
||||
* html b.br {bottom:-2px}
|
||||
* html b.cn {background-image: url("/themes/original/images/white.gif");}
|
||||
|
||||
#container { background: url("/themes/original/images/d6deec.gif") top left repeat-y; }
|
||||
|
||||
#tab_content { width: 100%; }
|
||||
|
||||
#wholepage { color: #000 }
|
||||
|
||||
#logout {font-size: 10px; color: #5350b9; float: right;}
|
||||
|
||||
#new_folder ul {list-style: none;}
|
346
themes/olive/stylesheets/style.css
Normal file
346
themes/olive/stylesheets/style.css
Normal file
|
@ -0,0 +1,346 @@
|
|||
.small {
|
||||
font-size: 11px;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
text-transform: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: 1.4em;
|
||||
}
|
||||
|
||||
.gray {
|
||||
color:#999999;
|
||||
font-family: Georgia, serif;
|
||||
font-size: 13px;
|
||||
font-style: italic;
|
||||
font-weight: normal;
|
||||
text-transform: normal;
|
||||
letter-spacing: normal;
|
||||
line-height: 1.6em;
|
||||
}
|
||||
|
||||
.hightlight {
|
||||
background-color: #ffff88;
|
||||
font-weight: bold;
|
||||
color: #36393d;
|
||||
}
|
||||
|
||||
a:link, a:visited, a:hover, a:active, h1, h2, h3 { color: #A3AB74; }
|
||||
a { -moz-outline: none; }
|
||||
|
||||
body {
|
||||
color: #222;
|
||||
background: #EFF3E4;
|
||||
font-family: helvetica,Arial,sans-serif;
|
||||
}
|
||||
|
||||
hr {
|
||||
background: #f0f0ee;
|
||||
color: #f0f0ee;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 10px 0;
|
||||
|
||||
}
|
||||
|
||||
#header {
|
||||
background: #5E634E;
|
||||
}
|
||||
|
||||
#header h1 {
|
||||
padding: 15px 0;
|
||||
font-size: 28px;
|
||||
font-style: normal;
|
||||
font-weight: bold;
|
||||
text-transform: normal;
|
||||
letter-spacing: -1px;
|
||||
line-height: 1.2em;
|
||||
}
|
||||
|
||||
#header h1 a:link, #header h1 a:active, #header h1 a:hover, #header h1 a:visited {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
#user-navigation {
|
||||
top: auto;
|
||||
bottom: 5px;
|
||||
right: 25px;
|
||||
}
|
||||
|
||||
#main .block .content {
|
||||
background: #FFF;
|
||||
padding-top: 1px;
|
||||
}
|
||||
|
||||
#main .block .content h2 {
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
#main .block .content p {
|
||||
font-size:13px;
|
||||
line-height:1.45em;
|
||||
}
|
||||
|
||||
#main .block .content h2 {
|
||||
font-size:22px;
|
||||
font-style:normal;
|
||||
font-weight:bold;
|
||||
letter-spacing:-1px;
|
||||
line-height:1.2em;
|
||||
margin-left:15px;
|
||||
}
|
||||
|
||||
#sidebar .block {
|
||||
background: #FFF;
|
||||
}
|
||||
|
||||
#sidebar .notice {
|
||||
background: #869453;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#sidebar h3 {
|
||||
background: #5E634E;
|
||||
color: #FFF;
|
||||
border-bottom: 6px solid #DACF77;
|
||||
}
|
||||
|
||||
#main-navigation ul li {
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
#main-navigation ul li a {
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
#main-navigation ul li.active {
|
||||
padding: 0;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
#main-navigation ul li.active {
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
#main-navigation ul li.active a {
|
||||
padding: 8px 15px;
|
||||
}
|
||||
|
||||
#sidebar ul li a:link, #sidebar ul li a:visited {
|
||||
background: #FFF;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#sidebar ul li {
|
||||
border-bottom: 1px solid #F0F0EE;
|
||||
}
|
||||
|
||||
#sidebar ul li a:hover, #sidebar ul li a:active {
|
||||
background: #ADBFD6;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
#main-navigation {
|
||||
background: #DACF77;
|
||||
}
|
||||
|
||||
#main-navigation ul li {
|
||||
background: #DACF77;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#main-navigation ul li.active {
|
||||
background: #EFF3E4;
|
||||
}
|
||||
|
||||
#main-navigation ul li a:link, #main-navigation ul li a:visited, #main-navigation ul li a:hover, #main-navigation ul li a:active,
|
||||
.secondary-navigation ul li a:link, .secondary-navigation ul li a:visited, .secondary-navigation ul li a:hover, .secondary-navigation ul li a:active,
|
||||
#user-navigation ul li a:link, #user-navigation ul li a:visited, #user-navigation ul li a:hover, #user-navigation ul li a:active {
|
||||
text-decoration: none;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
#user-navigation a.logout {
|
||||
background: #cc0000;
|
||||
padding: 2px 6px;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 3px;
|
||||
}
|
||||
|
||||
.secondary-navigation li a:hover {
|
||||
background: #ADBFD6;
|
||||
}
|
||||
|
||||
#main-navigation ul li.active a:link, #main-navigation ul li.active a:visited, #main-navigation ul li.active a:hover, #main-navigation ul li.active a:active {
|
||||
color: #262626;
|
||||
}
|
||||
|
||||
.secondary-navigation {
|
||||
background: #5E634E;
|
||||
border-bottom: 6px solid #DACF77;
|
||||
}
|
||||
|
||||
.secondary-navigation ul li.active, .secondary-navigation ul li.active a:hover {
|
||||
background-color: #DACF77;
|
||||
}
|
||||
|
||||
.secondary-navigation ul li a {
|
||||
padding:8px 12px;
|
||||
}
|
||||
|
||||
#footer .block {
|
||||
color: #FFF;
|
||||
background: #262626;
|
||||
}
|
||||
|
||||
#footer .block p {
|
||||
margin: 0;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
/* pagination */
|
||||
|
||||
.pagination span.disabled {
|
||||
color: #bbb;
|
||||
border-color: #bbb;
|
||||
}
|
||||
|
||||
.pagination em {
|
||||
background: #869453;
|
||||
color: #FFF;
|
||||
border-color: #869453;
|
||||
}
|
||||
|
||||
.pagination a, .pagination span {
|
||||
color: #869453;
|
||||
border-color: #869453;
|
||||
}
|
||||
|
||||
.pagination a:hover {
|
||||
color: #FFF;
|
||||
background: #869453;
|
||||
}
|
||||
|
||||
/* tables */
|
||||
|
||||
.table th {
|
||||
background: #5E634E;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.table td {
|
||||
border-bottom:1px solid #F0F0EE;
|
||||
}
|
||||
|
||||
.table tr.even {
|
||||
background: #EFF3E4;
|
||||
}
|
||||
/* forms */
|
||||
|
||||
.form input.text_field, .form textarea.text_area {
|
||||
width: 100%;
|
||||
border:1px solid #CFCFCF;
|
||||
}
|
||||
|
||||
.form input.button {
|
||||
background: #EEE;
|
||||
color: #262626;
|
||||
padding: 2px 5px;
|
||||
border: 1px solid #262626;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.form .description {
|
||||
font-style: italic;
|
||||
color: #8C8C8C;
|
||||
font-size: .9em;
|
||||
}
|
||||
|
||||
/* flash-messages */
|
||||
.flash .message {
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
text-align:center;
|
||||
margin: 0 auto 15px;
|
||||
|
||||
}
|
||||
|
||||
.flash .message p {
|
||||
margin:8px;
|
||||
}
|
||||
.flash .error {
|
||||
border: 1px solid #fbb;
|
||||
background-color: #fdd;
|
||||
}
|
||||
.flash .warning {
|
||||
border: 1px solid #fffaaa;
|
||||
background-color: #ffffcc;
|
||||
}
|
||||
.flash .notice {
|
||||
border: 1px solid #1FDF00;
|
||||
background-color: #BBFFB6;
|
||||
}
|
||||
|
||||
/* lists */
|
||||
|
||||
ul.list li {
|
||||
border-bottom-color: #F0F0EE;
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-style: solid;
|
||||
}
|
||||
|
||||
ul.list li .item .avatar {
|
||||
border-color: #F0F0EE;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
/* box */
|
||||
|
||||
#box .block {
|
||||
background: #FFF;
|
||||
}
|
||||
|
||||
#box .block h2 {
|
||||
background: #869453;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
|
||||
/* rounded borders */
|
||||
|
||||
#main, #main-navigation, #main-navigation li, .secondary-navigation, #main .block, #sidebar .block, #sidebar h3, ul.list li,
|
||||
#footer .block, .form input.button, #box .block, #box .block h2 {
|
||||
-moz-border-radius-topleft: 4px;
|
||||
-webkit-border-top-left-radius: 4px;
|
||||
-moz-border-radius-topright: 4px;
|
||||
-webkit-border-top-right-radius: 4px;
|
||||
}
|
||||
|
||||
.secondary-navigation li.first a, .secondary-navigation ul li.first, .table th.first, .table th.first {
|
||||
-moz-border-radius-topleft: 4px;
|
||||
-webkit-border-top-left-radius: 4px;
|
||||
}
|
||||
|
||||
.table th.last {
|
||||
-moz-border-radius-topright: 4px;
|
||||
-webkit-border-top-right-radius: 4px;
|
||||
}
|
||||
|
||||
.secondary-navigation ul li.first {
|
||||
-moz-border-radius-topleft: 4px;
|
||||
-webkit-border-top-left-radius: 4px;
|
||||
}
|
||||
|
||||
#sidebar, #sidebar .block, #main .block, #sidebar ul.navigation, ul.list li, #footer .block, .form input.button, #box .block {
|
||||
-moz-border-radius-bottomleft: 4px;
|
||||
-webkit-border-bottom-left-radius: 4px;
|
||||
-moz-border-radius-bottomright: 4px;
|
||||
-webkit-border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
#block-login #logo {
|
||||
height: 65;
|
||||
background-color: #EFF3E4;
|
||||
}
|
111
themes/olive/stylesheets/tabs.css
Executable file
111
themes/olive/stylesheets/tabs.css
Executable file
|
@ -0,0 +1,111 @@
|
|||
#tab_main {
|
||||
background: #789A9F;
|
||||
padding-top: 1.8em;
|
||||
width: 98%;
|
||||
background-image: url("/themes/original/images/select.png");
|
||||
}
|
||||
|
||||
#tab_content {
|
||||
padding: 10px 0;
|
||||
background: #fff;
|
||||
min-height: 300px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#header {
|
||||
position: relative;
|
||||
width: 98%;
|
||||
height: 3em;
|
||||
width: 48em; /* a width is required for Opera, older Mozilla browsers, and Konqueror browsers */
|
||||
}
|
||||
|
||||
#header ul#primary {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
bottom: -1px;
|
||||
width: 48em; /* a width is required for Opera, older Mozilla browsers, and Konqueror browsers */
|
||||
}
|
||||
|
||||
#header ul#primary li {
|
||||
display: inline;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#header ul#primary a,#header ul#primary span,#header ul#primary a.current {
|
||||
width: 9em;
|
||||
display: block;
|
||||
float: left;
|
||||
padding: 2px 0;
|
||||
margin: 1px 2px 0 0;
|
||||
text-align: center;
|
||||
font-family: tahoma, verdana, sans-serif;
|
||||
font-size: 11px;
|
||||
text-decoration: none;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#header ul#primary span,#header ul#primary a.current,#header ul#primary a.current:hover {
|
||||
border: 1px solid #666;
|
||||
border-bottom: none;
|
||||
background: #789A9F;
|
||||
background-image: url("/themes/original/images/select.png");
|
||||
padding-bottom: 4px;
|
||||
margin-top: 0;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
#header ul#primary a {
|
||||
background: #EDF4F5;
|
||||
border: 1px solid #AAA;
|
||||
border-bottom: none;
|
||||
background-image: url("/themes/original/images/deselect.png");
|
||||
}
|
||||
|
||||
#header ul#primary a:hover {
|
||||
margin-top: 0;
|
||||
border-color: #666;
|
||||
background: #fff;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
#header ul#secondary {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
bottom: -1.4em;
|
||||
left: 1px;
|
||||
width: 48em; /* a width is required for Opera, older Mozilla browsers, and Konqueror browsers */
|
||||
}
|
||||
|
||||
#header ul#secondary li a,#header ul#secondary li span {
|
||||
width: auto;
|
||||
display: block;
|
||||
float: left;
|
||||
padding: 0 10px;
|
||||
margin: 0;
|
||||
text-align: auto;
|
||||
border: none;
|
||||
border-right: 1px dotted #AAA;
|
||||
background: none;
|
||||
}
|
||||
|
||||
#header ul#secondary li a {
|
||||
color: #000;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#header ul#secondary li a:hover {
|
||||
color: #E1FFFA;
|
||||
background: transparent;
|
||||
padding: 0 10px;
|
||||
border: none;
|
||||
border-right: 1px dotted #AAA;
|
||||
}
|
||||
|
||||
#header ul#secondary li a:active {
|
||||
color: #000;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#header ul#secondary li:last-child a { border: none; }
|
BIN
themes/olive/stylesheets/webmail/icon-folder-open.gif
Executable file
BIN
themes/olive/stylesheets/webmail/icon-folder-open.gif
Executable file
Binary file not shown.
After Width: | Height: | Size: 155 B |
161
themes/olive/stylesheets/webmail/webmail.css
Executable file
161
themes/olive/stylesheets/webmail/webmail.css
Executable file
|
@ -0,0 +1,161 @@
|
|||
#attachform { margin: 1em; padding: .5em; border: thin solid #888; background: #ddd; }
|
||||
|
||||
.actionmenu { padding: 0; display: inline; }
|
||||
.actionmenu li { display: inline; list-style-position: outside; }
|
||||
.actionmenu li + li:before { content: " | " }
|
||||
#topmenu .actionmenu { padding-left: 2em; }
|
||||
|
||||
#attachments table { border: thin solid black; border-collapse: collapse; }
|
||||
#attachments table thead tr { background: #888; }
|
||||
#attachments table th { color: #fff; text-align: left;}
|
||||
#attachments table tbody tr { border: thin solid black; background: #eee;}
|
||||
#attachments table tbody td, #attachments table thead th { padding: 0 1em; }
|
||||
|
||||
|
||||
#msgops { border: 1px solid #888; margin: 0 0 5px 5px; padding: 5px; }
|
||||
#msgops h4 {padding: 0; margin: 0; font-size: 12px;}
|
||||
#opch { font-size: .75em;}
|
||||
#destp { font-size: .75em; margin: 1em; padding: 1em; padding-left: 133px; }
|
||||
#msgmenu .actionmenu { padding-left: 2em; }
|
||||
|
||||
#msg_search { border: 1px solid #888; margin: 0 0 5px 5px; padding: 5px; }
|
||||
|
||||
.ct-unknown { border: thin solid #c00; background: #f88;}
|
||||
|
||||
#prefs { margin: 1em; padding: .5em; border: 1px solid #888; background: #ddd; }
|
||||
#prefs table { border-collapse: collapse; }
|
||||
#prefs table thead tr { background: #888; }
|
||||
#prefs table thead th { color: #fff; }
|
||||
#prefs tbody td { padding: 0 .5em; }
|
||||
#prefs .readonly .prefval { background: #f88; }
|
||||
#prefs input { margin: 5px; }
|
||||
|
||||
#folders { margin: 0 0 0 0; padding: 0; border: 1px solid #888; background: #fff; text-align: left; }
|
||||
#folders ul { margin: 0; padding: 10px; }
|
||||
#folders ul li { margin: 0; padding-left: 20px; list-style-type:none; font-size: 1em; background: url("icon-folder-open.gif") top left no-repeat; }
|
||||
#folders h4 { margin: 0; padding: 5px; text-align: left; }
|
||||
|
||||
#messages { margin: 0 0 0 0; padding: 0; width: 100%; }
|
||||
|
||||
#msgshow { margin: 10px; padding: 0; background: #fff; }
|
||||
|
||||
table.messageheader td{border-bottom-style:solid;border-bottom-width:1px;padding:.5em;font:78% verdana;}
|
||||
table.messageheader td.label{font-weight:bold;width:1%; }
|
||||
table.messageheader td{border-bottom-color:#E6E6E6; }
|
||||
table.messageheader td.label{background-color:#e1ebfb;}
|
||||
table.messageheader {
|
||||
border-top-width: 1px;
|
||||
border-style: solid;
|
||||
border-color:#C1C1C1;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
#msglist { margin: 0; padding: .5em; background: #fff; }
|
||||
#msglist thead th {
|
||||
border-top-color:#FFF;
|
||||
border-bottom-color:#C1C1C1;
|
||||
border-right-color:#C1C1C1;
|
||||
background-color:#E6E6E6;
|
||||
text-align:left;
|
||||
border-width:1px 1px 1px 0;
|
||||
border-style:solid;
|
||||
padding:1px 0 1px 5px;
|
||||
}
|
||||
#msglist thead th.sortcol{background-color:#C1C1C1;}
|
||||
#msglist tbody td{border-bottom-color:#E6E6E6; font-size: 0.8em; }
|
||||
#msglist tr.selected td {background-color:#D6DEEC;}
|
||||
#msglist tbody tr.seen { background: #f6f6f6; }
|
||||
#msglist tbody tr.notseen { font-weight:bold; }
|
||||
#msglist table { border-collapse:collapse; font-size: 14px;}
|
||||
#msglist tbody td {
|
||||
border-width: 0 0 1px 0;
|
||||
border-style: solid;
|
||||
padding:2px 0 2px 2px;
|
||||
vertical-align:center;
|
||||
}
|
||||
#msglist h2 { margin: 0; padding: 0; }
|
||||
#msglist a img { border: 0; }
|
||||
#msglist p.paginator { padding: 0; margin: 0; }
|
||||
|
||||
.msgpart { margin: 10px 0; padding: 0; width: 100%; }
|
||||
|
||||
.notviscode { visibility: hidden; width: 0px; height: 0px; display: none;}
|
||||
|
||||
#msg-fl-list { margin: 0; padding: .5em; background: #fff; }
|
||||
#msg-fl-list table { width: 100%; }
|
||||
#msg-fl-list thead th {
|
||||
border-top-color:#FFF;
|
||||
border-bottom-color:#C1C1C1;
|
||||
border-right-color:#C1C1C1;
|
||||
background-color:#E6E6E6;
|
||||
text-align:left;
|
||||
border-width:1px 1px 1px 0;
|
||||
border-style:solid;
|
||||
padding:1px 0 1px 5px;
|
||||
}
|
||||
#msg-fl-list thead th.sortcol{background-color:#C1C1C1;}
|
||||
#msg-fl-list tbody td{border-bottom-color:#E6E6E6;}
|
||||
#msg-fl-list tr.selected td {background-color:#D6DEEC;}
|
||||
#msg-fl-list tbody tr.seen { background: #f6f6f6; }
|
||||
#msg-fl-list tbody tr.notseen { font-weight:bold; }
|
||||
#msg-fl-list table { border-collapse:collapse;clear:both;}
|
||||
#msg-fl-list tbody td{border-width: 0 0 1px 0;border-style: solid;padding:2px 0 2px 5px;vertical-align:center;}
|
||||
|
||||
|
||||
#msg-compose { margin: 0; padding: 0; background: #fff; width: 100%; }
|
||||
#msghdr { margin: 0; padding: 5px 0; background: #ddd;}
|
||||
#msghdr label { text-align:left; padding:1px 0 1px 5px; font-weight:bold; color: #0000AA}
|
||||
#msgeditor { width: 100%; }
|
||||
#msgeditor textarea { font-size: 12px; width: 100%; }
|
||||
|
||||
.open { display: block; }
|
||||
.closed { display: none; }
|
||||
|
||||
a,a:visited{text-decoration:none;}
|
||||
a:hover{ text-decoration:underline;}
|
||||
a,a:visited{color:#039;}
|
||||
|
||||
// Autocomplete design
|
||||
div.auto_complete {
|
||||
position:absolute;
|
||||
width:250px;
|
||||
background-color:white;
|
||||
border:1px solid #888;
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
ul.contacts {
|
||||
list-style-type: none;
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
ul.contacts li.selected { background-color: #e1ebfb; }
|
||||
li.contact {
|
||||
list-style-type: none;
|
||||
display:block;
|
||||
margin:0;
|
||||
padding:2px;
|
||||
height:32px;
|
||||
border:0.3px solid #CCC;
|
||||
background-color: #fff;
|
||||
}
|
||||
li.contact div.email {
|
||||
font-weight:bold;
|
||||
font-size:12px;
|
||||
line-height:1.2em;
|
||||
}
|
||||
#list {
|
||||
margin:0;
|
||||
margin-top:10px;
|
||||
padding:0;
|
||||
list-style-type: none;
|
||||
width:250px;
|
||||
}
|
||||
#list li {
|
||||
margin:0;
|
||||
margin-bottom:4px;
|
||||
padding:5px;
|
||||
border:1px solid #888;
|
||||
cursor:move;
|
||||
}
|
24
themes/olive/views/contact_groups/edit.html.erb
Executable file
24
themes/olive/views/contact_groups/edit.html.erb
Executable file
|
@ -0,0 +1,24 @@
|
|||
<h1><%=_('Edit/Create Contact Group')%></h1>
|
||||
<%=
|
||||
form_tag(
|
||||
link_save,
|
||||
'method' => 'post',
|
||||
'class' => 'two_columns'
|
||||
)
|
||||
%>
|
||||
<%= form_input(:hidden_field, 'contactgroup', 'id') %>
|
||||
<%= form_input(:hidden_field, 'contactgroup', 'customer_id') %>
|
||||
|
||||
<table>
|
||||
<%= form_input(:text_field, 'contactgroup', 'name', _('Name'), 'class'=>'two_columns') %>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan=2 class="buttonBar">
|
||||
<input type="submit" name="Save" value="<%=_('Save')%>"/>
|
||||
<input type="button" value="<%=_('Back to groups')%>" onclick="window.location='<%=link_list%>'"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<%= end_form_tag %>
|
26
themes/olive/views/contact_groups/index.html.erb
Executable file
26
themes/olive/views/contact_groups/index.html.erb
Executable file
|
@ -0,0 +1,26 @@
|
|||
<h1><%=_('Contact Groups')%></h1>
|
||||
|
||||
<%- form_for @contact_group do |f| %>
|
||||
<%= hidden_field "contactgroup", "user_id" %>
|
||||
<table class="list">
|
||||
<tr>
|
||||
<th><%=_('Name')%></th>
|
||||
<th colspan=3> </th>
|
||||
</tr>
|
||||
<%
|
||||
for contactgroup in @contactgroups %>
|
||||
<tr class="even">
|
||||
<td><%= contactgroup.name %></td>
|
||||
<td><%= link_to(_('members'), :controller=>'contact', :action=>'list', :id=>contactgroup.id, :params=>{"mode"=>"groups"}) %></td>
|
||||
<td><%= link_to(_('edit'), :controller=>'/contacts/contact_group', :action=>'edit', :id=>contactgroup.id) %></td>
|
||||
<td><%= link_to(_('delete'), {:controller=>'/contacts/contact_group', :action=>'delete', :id=>contactgroup.id}, {:confirm=>sprintf(_('DELETE CONTACT GROUP \'%s\'?'), contactgroup.name)})%></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<tr>
|
||||
<td colspan=2 class="buttonBar">
|
||||
<input type="submit" value="<%=_('Add Contact Group')%>"/>
|
||||
<input type="button" value="<%=_('Back to folders')%>" onclick="window.location='/webmail/folders'">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<%- end %>
|
26
themes/olive/views/contacts/add_multiple.html.erb
Executable file
26
themes/olive/views/contacts/add_multiple.html.erb
Executable file
|
@ -0,0 +1,26 @@
|
|||
<h1><%=t :add_multiple_contacts %></h1>
|
||||
<% if flash["errors"] and not flash["errors"].empty?%>
|
||||
<%= t(:errors)%>
|
||||
<ul>
|
||||
<% flash["errors"].each do |message| %>
|
||||
<li><%= message %>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% end %>
|
||||
<form action="<%=link_import_preview%>" enctype="multipart/form-data" method="post">
|
||||
<%= radio_button("contact", "file_type", "1")%> <%= t(:csv_file)%>
|
||||
<%= radio_button("contact", "file_type", "2")%> <%= t(:tab_file)%>
|
||||
<table>
|
||||
<tr>
|
||||
<th><label for="contact[data]"><%=t(:select_file)%></label></th>
|
||||
<td><input type="file" name="contact[data]"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan=2>
|
||||
<input type="submit" value="<%= t(:import)%>"/>
|
||||
<input type="button" value="<%= t(:back_to_contacts)%>" onclick="window.location='<%=contacts_url%>'">
|
||||
<input type="button" value="<%= t(:back_to_folders)%>" onclick="window.location='<%=url_for(:controller => :webmail)%>'">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
11
themes/olive/views/contacts/choose.html.erb
Executable file
11
themes/olive/views/contacts/choose.html.erb
Executable file
|
@ -0,0 +1,11 @@
|
|||
<script language="javascript">
|
||||
<% for to in @tos %>
|
||||
respondTo("<%=to.full_address%>", "<%=to.id%>");
|
||||
<% end %>
|
||||
<% for cc in @ccs %>
|
||||
respondCC("<%=cc.full_address%>");
|
||||
<% end %>
|
||||
<% for bcc in @bccs %>
|
||||
respondBCC("<%=bcc.full_address%>");
|
||||
<% end %>
|
||||
</script>
|
43
themes/olive/views/contacts/import_preview.html.erb
Executable file
43
themes/olive/views/contacts/import_preview.html.erb
Executable file
|
@ -0,0 +1,43 @@
|
|||
<h1><%= _('Contacts You Are About To Import')%></h1>
|
||||
|
||||
<% if flash["errors"] and not flash["errors"].empty?%>
|
||||
<%= _('Errors')%>
|
||||
<ul>
|
||||
<% flash["errors"].each do |message| %>
|
||||
<li><%= message %>
|
||||
<% end %>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<form action="<%=link_contact_import%>" method="post">
|
||||
|
||||
<table class="list">
|
||||
<tr>
|
||||
<th> </th>
|
||||
<th width="100px"><%= _('First name')%></th>
|
||||
<th width="100px"><%= _('Last name')%></th>
|
||||
<th><%= _('E-mail')%></th>
|
||||
</tr>
|
||||
<%
|
||||
for i in 0...@contacts.length
|
||||
contact = @contacts[i]
|
||||
%>
|
||||
<tr class="<%= alternator %>">
|
||||
<td><%=i+1%></td>
|
||||
<td><input type="text" name="contact[<%=i%>][fname]" value="<%=contact.fname%>" size="15" /></td>
|
||||
<td><input type="text" name="contact[<%=i%>][lname]" value="<%=contact.lname%>" size="15" /></td>
|
||||
<td><input type="text" name="contact[<%=i%>][email]" value="<%=contact.email%>" size="45" /></td>
|
||||
</tr>
|
||||
|
||||
<% end %>
|
||||
|
||||
<tr>
|
||||
<td colspan=4 class="buttonBar">
|
||||
<input type="submit" value="<%= _('Import')%>">
|
||||
<input type="button" value="<%= _('Choose another file')%>" onclick="window.location='<%=link_contact_add_multiple%>'">
|
||||
<input type="button" value="<%= _('Back to contacts')%>" onclick="window.location='<%=link_contact_list%>'">
|
||||
<input type="button" value="<%= _('Back to folders')%>" onclick="window.location='<%=link_main_index%>'">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
115
themes/olive/views/contacts/index.html.erb
Executable file
115
themes/olive/views/contacts/index.html.erb
Executable file
|
@ -0,0 +1,115 @@
|
|||
<h1><%= t :contacts %></h1>
|
||||
<% unless @mode == "choose" %>
|
||||
<div id="header">
|
||||
<ul id="primary">
|
||||
<li><%=link_folders%></li>
|
||||
<li><%=link_send_mail%></li>
|
||||
<li><%=link_mail_prefs%></li>
|
||||
<li><%=link_mail_filters%></li>
|
||||
<li><span><%= t :contacts %></span>
|
||||
<ul id="secondary">
|
||||
<li><%=link_contact_add_one%></li>
|
||||
<li><%=link_to t(:add_multiple), add_multiple_contacts_path %></li>
|
||||
<% if ret = session["return_to"] %>
|
||||
<li><%=link_to(t(:back_to_message), ret) %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<% end -%>
|
||||
<div id="tab_main">
|
||||
<div id="tab_content">
|
||||
|
||||
<% if flash["alert"] %><ul><li><%= flash["alert"] %></li></ul><% end %>
|
||||
<form action="<%=link_contact_choose%>?mode=<%=@mode%>" method="post">
|
||||
<input type="hidden" name="mode" value="<%=@mode%>"/>
|
||||
<% if @group_id and not @group_id.nil? %>
|
||||
<input type="hidden" name="group_id" value="<%=@group_id%>"/>
|
||||
<% end %>
|
||||
<table class="list">
|
||||
<tr>
|
||||
<td colspan="4" id="alphaListHeader">
|
||||
<% CDF::CONFIG[:contact_letters].each do |letter| %>
|
||||
<%= link_to letter, contacts_path(:letter => letter) %>
|
||||
<% end %>
|
||||
|
||||
<%= link_to t(:show_all), contacts_path %>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3"><%= will_paginate @contacts %></td>
|
||||
</tr>
|
||||
<% if @mode == "choose" %>
|
||||
<tr>
|
||||
<th><%= "#{t :to} #{t :cc} #{t :bcc}" %></th>
|
||||
<th><%= t :name %></th>
|
||||
<th><%= t :email %></th>
|
||||
</tr>
|
||||
<% for contact in @contacts %>
|
||||
<tr class="<%= alternator %>">
|
||||
<td><input type="checkbox" name="contacts_to[<%=contact.id%>]" value="1"/>
|
||||
<input type="checkbox" name="contacts_cc[<%=contact.id%>]" value="1"/>
|
||||
<input type="checkbox" name="contacts_bcc[<%=contact.id%>]" value="1"/></td>
|
||||
<td><%=contact.full_name%></td>
|
||||
<td><%=contact.email%></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<tr class="rowsep"><td colspan="3"><%=t(:groups)%>:</td></tr>
|
||||
<% for group in @contactgroups %>
|
||||
<tr class="<%= alternator %>">
|
||||
<td><input type="checkbox" name="groups_to[<%=group.id%>]" value="1"/>
|
||||
<input type="checkbox" name="groups_cc[<%=group.id%>]" value="1"/>
|
||||
<input type="checkbox" name="groups_bcc[<%=group.id%>]" value="1"/></td>
|
||||
<td><%=group.name%></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<tr>
|
||||
<td colspan=3 class="buttonBar">
|
||||
<input type="submit" value="<%= t(:choose)%>">
|
||||
<input type="button" value="<%= t(:cancel)%>" onclick="javascript:window.close();">
|
||||
</td>
|
||||
</tr>
|
||||
<% elsif @mode == "groups"%>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th width="200px"><%= t(:name)%></th>
|
||||
<th><%= t(:email)%></th>
|
||||
</tr>
|
||||
<% for contact in @contacts %>
|
||||
<input type="hidden" id="contacts_for_group[<%=contact.id%>]" name="contacts_for_group[<%=contact.id%>]" value="<%=@contacts_for_group[contact.id]%>" >
|
||||
<tr class="<%= alternator %>">
|
||||
<td><input type="checkbox" id="contacts_for_group[<%=contact.id%>]" name="contacts_for_group[<%=contact.id%>]"
|
||||
value="<%=@contacts_for_group[contact.id]%>" onclick="toggleCheckbox(this)"
|
||||
<%=@contacts_for_group[contact.id] == 1 ? " checked " : " " %> ></td>
|
||||
<td><%=contact.full_name%></td>
|
||||
<td><%=contact.email%></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<tr>
|
||||
<td colspan=2 class="buttonBar">
|
||||
<input type="submit" value="<%= t(:save)%>">
|
||||
<input type="button" value="<%= t(:back_to_groups)%>" onclick="window.location='<%=link_contact_group_list%>'">
|
||||
</td>
|
||||
</tr>
|
||||
<% else %>
|
||||
<tr>
|
||||
<th width="200px"><%= t(:name)%></th>
|
||||
<th><%= t(:email)%></th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
<% for contact in @contacts %>
|
||||
<tr class="<%= alternator %>">
|
||||
<td><%= link_to(contact.full_name, :controller=>:contacts, :action => "edit", :id => contact.id ) %></td>
|
||||
<td><%= link_to( contact.email, :controller => :webmail, :action => "compose", :params => { "mail[to]" => contact.email } ) %></td>
|
||||
<td><%= link_to(t(:delete), {:controller=>:contacts, :action=>'delete', :id=>contact.id},
|
||||
{:confirm=>t(:delete_contact_question, :name => contact.show_name, :email => contact.email)})%>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
73
themes/olive/views/contacts/new.html.erb
Executable file
73
themes/olive/views/contacts/new.html.erb
Executable file
|
@ -0,0 +1,73 @@
|
|||
<h1><%=t(:edit_create_contact)%></h1>
|
||||
<div id="header">
|
||||
<ul id="primary">
|
||||
<li><%=link_folders%></li>
|
||||
<li><%=link_send_mail%></li>
|
||||
<li><%=link_mail_prefs%></li>
|
||||
<li><%=link_mail_filters%></li>
|
||||
<li><span><%= t :contacts %></span>
|
||||
<ul id="secondary">
|
||||
<li><%=link_to t(:back_to_contacts), contacts_url%></li>
|
||||
<% if ret = session["return_to"] %>
|
||||
<li><%=link_to(t(:back_to_message), ret) %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="tab_main">
|
||||
<div id="tab_content">
|
||||
|
||||
|
||||
<%= form_tag( contacts_path, 'method' => 'post', 'class' => 'two_columns') do %>
|
||||
<%= form_input(:hidden_field, 'contact', 'id') %>
|
||||
<%= form_input(:hidden_field, 'contact', 'customer_id') %>
|
||||
|
||||
<table>
|
||||
<%= form_input(:text_field, 'contact', 'fname', t(:first_name), 'class'=>'two_columns') %>
|
||||
<%= form_input(:text_field, 'contact', 'lname', t(:last_name), 'class'=>'two_columns') %>
|
||||
<%= form_input((@contact.new_record? ? :text_field : :read_only_field), 'contact', 'email', t(:email), 'class'=>'two_columns')%>
|
||||
</table>
|
||||
|
||||
<% for group in @contactgroups %>
|
||||
<input id="groups[<%=group.id%>]" type="hidden" name="groups[<%=group.id%>]" value="<%=@groups[group.id]%>">
|
||||
<% end %>
|
||||
<% if not(@contactgroups.empty?) %>
|
||||
<%=_('Contact belong to these groups')%>:
|
||||
<table class="list">
|
||||
<tr>
|
||||
<%
|
||||
end
|
||||
col = 1
|
||||
for group in @contactgroups %>
|
||||
<th>
|
||||
<input id="groups[<%=group.id%>]" type="checkbox" name="groups[<%=group.id%>]" value="<%=@groups[group.id]%>" onclick="toggleCheckbox(this)"
|
||||
<%=@groups[group.id] == 1 ? " checked " : " " %> >
|
||||
<%=group.name %>
|
||||
</th>
|
||||
<% if col%2 == 0 %>
|
||||
</tr>
|
||||
<tr>
|
||||
<% end
|
||||
col = col + 1 %>
|
||||
<% end %>
|
||||
<% if col%2 == 0 and not(@contactgroups.empty?) %>
|
||||
<th> </th>
|
||||
<% end %>
|
||||
<% if not(@contactgroups.empty?) %>
|
||||
</tr>
|
||||
</table>
|
||||
<% end %>
|
||||
|
||||
<table class="edit">
|
||||
<tr>
|
||||
<td colspan=2 class="buttonBar">
|
||||
<input type="submit" name="paction" value="<%=t(:save)%>"/>
|
||||
<input type="submit" name="paction" value="<%=t(:save_and_add_another)%>"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
48
themes/olive/views/folders/index.html.erb
Executable file
48
themes/olive/views/folders/index.html.erb
Executable file
|
@ -0,0 +1,48 @@
|
|||
<h1><%=t :mailbox %></h1>
|
||||
<div id="header">
|
||||
<ul id="primary">
|
||||
<li><span><%= t :folders %></span>
|
||||
<ul id="secondary">
|
||||
<li><%=link_back_to_messages%></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><%=link_send_mail%></li>
|
||||
<li><%=link_mail_prefs%></li>
|
||||
<li><%=link_mail_filters%></li>
|
||||
<li><%=link_main%></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="tab_main">
|
||||
<div id="tab_content">
|
||||
|
||||
<% content_for('sidebar') { %>
|
||||
<div id="folders">
|
||||
<h4><%= t :add_folder %></h4>
|
||||
<hr/>
|
||||
<%= form_tag folders_path, :id => 'new_folder' do %>
|
||||
<ul>
|
||||
<li><label for='folder'><%= t :name %>:</label></li>
|
||||
<li><%= text_field_tag 'folder', '', :size => 18 %></li>
|
||||
<li><%= submit_tag t(:add_folder) %></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
<div id="messages">
|
||||
<div id='msg-fl-list'>
|
||||
<table>
|
||||
<thead><tr><th><%= t :folder %></th><th><%= t :total_messages %></th><th><%= t :unseen%></th></tr></thead>
|
||||
<tbody>
|
||||
<% for folder in @folders %>
|
||||
<tr>
|
||||
<td><%=folder_manage_link(folder)%></td>
|
||||
<td><%= folder.total %></td>
|
||||
<td><%= folder.unseen > 0 ? "<b>#{folder.unseen}</b>" : "#{folder.unseen}" %></td></tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
13
themes/olive/views/layouts/login.html.erb
Executable file
13
themes/olive/views/layouts/login.html.erb
Executable file
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<title><%=t(:mailr) %> - <%= t(:please_login)%></title>
|
||||
<%=stylesheet_link_tag current_theme_stylesheet_path('base') %>
|
||||
<%=stylesheet_link_tag current_theme_stylesheet_path('style') %>
|
||||
</head>
|
||||
<body>
|
||||
<%= yield %>
|
||||
</body>
|
||||
</html>
|
29
themes/olive/views/layouts/public.html.erb
Executable file
29
themes/olive/views/layouts/public.html.erb
Executable file
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<title><%= t(:mailr) %></title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
|
||||
<%=stylesheet_link_tag current_theme_stylesheet_path('base') %>
|
||||
<%=stylesheet_link_tag current_theme_stylesheet_path('style') %>
|
||||
<%=javascript_include_tag current_theme_javascript_path('global') %>
|
||||
<%=javascript_include_tag current_theme_javascript_path('webmail') %>
|
||||
|
||||
<%=javascript_include_tag :defaults %>
|
||||
|
||||
</head>
|
||||
<body id="bodyID" onload="<%=@onload_function%>">
|
||||
<div id="container">
|
||||
<div id="wrapper" class="wat-cf">
|
||||
<div id="sidebar">
|
||||
<div id="logo"><%= yield :logo %></div>
|
||||
<div id="sidebar"><%= yield :sidebar %></div>
|
||||
</div>
|
||||
<div id="main"><%= yield %></div>
|
||||
<br class="clear"/>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
41
themes/olive/views/login/index.html.erb
Normal file
41
themes/olive/views/login/index.html.erb
Normal file
|
@ -0,0 +1,41 @@
|
|||
<div id="box">
|
||||
<div class="block" id="block-login">
|
||||
<div id="logo"><a href="<%= t(:site_link) %>"><img src="<%= current_theme_image_path('logo_small.png')%>" alt="Mailr"/></a>
|
||||
</div>
|
||||
<h2><%= t(:please_login) %></h2>
|
||||
<div class="content login">
|
||||
<div class="flash">
|
||||
<% if flash['error'] %>
|
||||
<div class="message error"><p><%= flash['error'] %></p></div>
|
||||
<% elsif flash['status'] %>
|
||||
<div class="message notice"><p><%= flash['status'] %></p></div>
|
||||
<% end %>
|
||||
</div>
|
||||
<form action="<%=url_for(:controller => 'login', :action => 'authenticate')%>" method="post" class="form login">
|
||||
<div class="group wat-cf">
|
||||
<div class="left">
|
||||
<label class="label right"><%= t(:email) %></label>
|
||||
</div>
|
||||
<div class="right">
|
||||
<%= text_field "login_user", "email" %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="group wat-cf">
|
||||
<div class="left">
|
||||
<label class="label right"><%= t(:password) %></label>
|
||||
</div>
|
||||
<div class="right">
|
||||
<%= password_field "login_user", "password" %></td>
|
||||
</div>
|
||||
</div>
|
||||
<div class="group navform wat-cf">
|
||||
<div class="right">
|
||||
<button class="button" type="submit">
|
||||
<img src="<%= current_theme_image_path('key.png')%>" alt="login" /> <%= t :log_in %>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
9
themes/olive/views/shared/_folders.html.erb
Executable file
9
themes/olive/views/shared/_folders.html.erb
Executable file
|
@ -0,0 +1,9 @@
|
|||
<div class="block">
|
||||
<h3><%=t :folders %> <%= link_to t(:add_edit_folder), folders_path %></h3>
|
||||
<ul class="navigation">
|
||||
<% @folders.each do |folder| -%>
|
||||
<li><%= raw folder_link(folder) %></li>
|
||||
<% end -%>
|
||||
</ul>
|
||||
</div>
|
||||
|
12
themes/olive/views/webmail/_contacts.html.erb
Executable file
12
themes/olive/views/webmail/_contacts.html.erb
Executable file
|
@ -0,0 +1,12 @@
|
|||
<ul class="contacts">
|
||||
<% for contact in @contacts do -%>
|
||||
<li class="contact">
|
||||
<%=h contact.fname %> <%= h contact.lname %>
|
||||
<div class='email'>
|
||||
<div class="notviscode"><</div>
|
||||
<%= h contact.email %>
|
||||
<div class="notviscode">></div>
|
||||
</div>
|
||||
</li>
|
||||
<% end -%>
|
||||
</ul>
|
18
themes/olive/views/webmail/_expr.html.erb
Executable file
18
themes/olive/views/webmail/_expr.html.erb
Executable file
|
@ -0,0 +1,18 @@
|
|||
<% @expression = @expressions[expr_counter] %>
|
||||
<tr>
|
||||
<td>
|
||||
<select name="expression[<%=expr_counter%>][field_name]">
|
||||
<%= options_for_select(CDF::CONFIG[:mail_filters_fields], @expressions[expr_counter].field_name)%>
|
||||
</select></td>
|
||||
<td>
|
||||
<select name="expression[<%=expr_counter%>][operator]">
|
||||
<%= options_for_select(CDF::CONFIG[:mail_filters_expressions], @expressions[expr_counter].operator)%>
|
||||
</select></td>
|
||||
<td>
|
||||
<%= text_field 'expression', 'expr_value', 'index'=>expr_counter %>
|
||||
</td>
|
||||
<td>
|
||||
<%= hidden_field "expression", 'case_sensitive', 'index'=>expr_counter %>
|
||||
<%= check_box "expression", 'case_sensitive', {'onclick'=>'toggleCheckbox(this)', "index"=>expr_counter } %> <%= _('case sensitive') %>
|
||||
</td>
|
||||
</tr>
|
19
themes/olive/views/webmail/_filter.html.erb
Executable file
19
themes/olive/views/webmail/_filter.html.erb
Executable file
|
@ -0,0 +1,19 @@
|
|||
<tr>
|
||||
<td><%=h @user.filters[filter_counter].name%></th>
|
||||
<td>
|
||||
<% if filter_counter > 0 %>
|
||||
<%=link_filter_up(@user.filters[filter_counter].id)%>
|
||||
<% else %>
|
||||
|
||||
<% end %>
|
||||
</td>
|
||||
<td>
|
||||
<% if filter_counter < @user.filters.size - 1 %>
|
||||
<%=link_filter_down(@user.filters[filter_counter].id)%>
|
||||
<% else %>
|
||||
|
||||
<% end %>
|
||||
</td>
|
||||
<td><%=link_filter_edit(@user.filters[filter_counter].id)%></td>
|
||||
<td><%=link_filter_delete(@user.filters[filter_counter].id)%></td>
|
||||
</tr>
|
14
themes/olive/views/webmail/_message_row.html.erb
Executable file
14
themes/olive/views/webmail/_message_row.html.erb
Executable file
|
@ -0,0 +1,14 @@
|
|||
<tr class="<%= message_row.unread ? 'notseen': 'seen' %>">
|
||||
<td class="mark"><input type="checkbox" name="messages[<%= message_row.uid %>]"/></td>
|
||||
<% if @folder_name == CDF::CONFIG[:mail_sent] %>
|
||||
<td class="to"><%= short_address(message_row.to_addr) %></td>
|
||||
<% else %>
|
||||
<td class="from"><%= short_address(message_row.from_addr) %></td>
|
||||
<% end %>
|
||||
<td class="subject"><div class='cutField'>
|
||||
<%= link_to(parse_subject(message_row.subject) << " " , :controller=>'webmail', :action=>'message', :msg_id=>message_row.uid)%>
|
||||
</td>
|
||||
<td class="date"><%= message_date(message_row.date) %></td>
|
||||
<td class="size"><%= message_size(message_row.size) %></td>
|
||||
<td class="attachind"><%= message_row.content_type == 'multipart' ? image_tag(current_theme_image_path('attachment.png')) : ' ' %></td>
|
||||
</tr>
|
13
themes/olive/views/webmail/_search.html.erb
Executable file
13
themes/olive/views/webmail/_search.html.erb
Executable file
|
@ -0,0 +1,13 @@
|
|||
<a href='#' onclick='toggle_msg_search(true);'>
|
||||
<%= t :search%><img id='img_msg_search' alt='open' src="<%= current_theme_image_path(@srch_img_src+'.gif') %>"/>
|
||||
</a>
|
||||
<div id="msg_search" class='<%=@srch_class%>'>
|
||||
<%= t :search_txt %>
|
||||
<select name="search_field">
|
||||
<%= options_for_select(CDF::CONFIG[:mail_search_fields], @search_field)%>
|
||||
</select>
|
||||
<label for="search_value"><%= t :for %></label>
|
||||
<input type="text" name="search_value" value="<%=@search_value%>" size='16' id='search_value'/>
|
||||
<%= submit_tag(t(:search), :name=>'op')%>
|
||||
<%= submit_tag(t(:show_all), :name=>'op')%>
|
||||
</div>
|
67
themes/olive/views/webmail/compose.html.erb
Executable file
67
themes/olive/views/webmail/compose.html.erb
Executable file
|
@ -0,0 +1,67 @@
|
|||
<% content_for('sidebar') { %>
|
||||
<%= render :partial => 'shared/folders' %>
|
||||
<% } %>
|
||||
|
||||
<h1><%= t :mailbox %></h1>
|
||||
<form name="composeMail" id='composeMail' action="<%= url_for(:controller => :webmail, :action => :compose) %>" enctype="multipart/form-data" method="post">
|
||||
<div id="header">
|
||||
<ul id="primary">
|
||||
<li><%= link_folders %></li>
|
||||
<li><span><%= t :compose %></span>
|
||||
<ul id="secondary">
|
||||
<li><%= link_compose_new %></li>
|
||||
<li><a href='#' onclick="getFormField('composeMail').submit();"><%= t :send %></a></li>
|
||||
<li><a href="#" onclick="chooseContacts('<%=url_for(:controller => :contacts, :action => :index) %>');"><%= t :choose_address %></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><%=link_mail_prefs%></li>
|
||||
<li><%=link_mail_filters%></li>
|
||||
<li><%=link_main%></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="tab_main">
|
||||
<div id="tab_content">
|
||||
|
||||
<div id="msg-compose">
|
||||
<input type="hidden" id="mail_toc" name="mail[toc]" value="<%=@mail.toc%>"/>
|
||||
<input type="hidden" id="mail_op" name="op" value="<%= t :send %>"/>
|
||||
<div id="msghdr">
|
||||
<table>
|
||||
<tr><td><label for=''><%= t :to %></label></td><td><%= text_field_with_auto_complete(:mail, :to, {"size"=>65}, :skip_style => true, :tokens=> ",") %></td></tr>
|
||||
<tr><td><label for=''><%= t :cc %></label></td><td><%= text_field_with_auto_complete(:mail, :cc, {"size"=>65}, :skip_style => true, :tokens=> ",") %></td></tr>
|
||||
<tr><td><label for=''><%= t :bcc %></label></td><td><%= text_field_with_auto_complete(:mail, :bcc, {"size"=>65}, :skip_style => true, :tokens=> ",") %></td></tr>
|
||||
<tr><td><label for=''><%= t :subject %></label></td><td><%= text_field('mail', 'subject', {"size"=>65}) %></td></tr>
|
||||
</table>
|
||||
<%= hidden_field('mail', 'from') %>
|
||||
<%= hidden_field('mail', 'content_type') %>
|
||||
</div>
|
||||
|
||||
<div class="msgpart ct-text-plain">
|
||||
<%= text_area "mail", "body", "rows"=>20, "cols"=>75 %>
|
||||
</div>
|
||||
|
||||
<div class="msgpart">
|
||||
<% if @mail.attachments and @mail.attachments.size > 0%>
|
||||
<table class="attachments">
|
||||
<% i = 0
|
||||
@mail.attachments.each { |att| %>
|
||||
<tr><td><%=attachment(att, i)%></td></tr>
|
||||
<% i = i + 1
|
||||
}%>
|
||||
</table>
|
||||
<% end %>
|
||||
<hr/>
|
||||
<label for="attachment"><%= t :attachment %>:</label><%=%><input type="file" name="attachment"/>
|
||||
<input type="button" name="mail_add_attachement" value="<%= t :add %>"
|
||||
onclick="getFormField('mail_op').value='<%= t :add %>';getFormField('composeMail').submit();">
|
||||
</div>
|
||||
</div>
|
||||
</div></div>
|
||||
</form>
|
||||
|
||||
<% content_for("scripts") { %>
|
||||
<%= @additional_scripts %>
|
||||
<% if ['text/html', 'multipart'].include?(@mail.content_type) %>
|
||||
<%= include_tinymce %>
|
||||
<% end %>
|
||||
<% } %>
|
26
themes/olive/views/webmail/error_connection.html.erb
Executable file
26
themes/olive/views/webmail/error_connection.html.erb
Executable file
|
@ -0,0 +1,26 @@
|
|||
<h1><%=_('Mailbox')%></h1>
|
||||
<div id="header">
|
||||
<ul id="primary">
|
||||
<li><span><%= _('Folders') %></span>
|
||||
<ul id="secondary">
|
||||
<li><%=link_refresh%></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><%=link_send_mail%></li>
|
||||
<li><%=link_mail_prefs%></li>
|
||||
<li><%=link_mail_filters%></li>
|
||||
<li><%=link_main%></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="tab_main">
|
||||
<div id="tab_content">
|
||||
|
||||
<% content_for('sidebar') { %>
|
||||
<div id="folders">
|
||||
<%=_('Error occured obtaining connection to mail server. Please excuse us!')%>
|
||||
</div>
|
||||
<% } %>
|
||||
<div id="messages">
|
||||
</div>
|
||||
|
||||
</div></div>
|
41
themes/olive/views/webmail/filter.html.erb
Executable file
41
themes/olive/views/webmail/filter.html.erb
Executable file
|
@ -0,0 +1,41 @@
|
|||
<h1><%=_('Mailbox')%></h1>
|
||||
<div id="header">
|
||||
<ul id="primary">
|
||||
<li><%=link_folders%></li>
|
||||
<li><%=link_send_mail%></li>
|
||||
<li><%=link_mail_prefs%></li>
|
||||
<li><span><%= t :filters %></span></li>
|
||||
<li><%=link_main%></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="tab_main">
|
||||
<div id="tab_content">
|
||||
|
||||
<div id="filters">
|
||||
<form action="/webmail/webmail/filter" method="post">
|
||||
<%=hidden_field 'filter', 'id' %>
|
||||
<table class="list" width='100%'>
|
||||
<tr>
|
||||
<td><label for="filter[name]"><%=_('Filter name')%></label></td>
|
||||
<td colspan='3'><%=text_field 'filter', 'name' %></td>
|
||||
</tr>
|
||||
<tr><td colspan="4"><%=_('Messages matching')%></td></tr>
|
||||
<%= render_partial_collection "expr", @expressions %>
|
||||
<tr><td colspan="4"><input type="submit" name="op" value="<%=_('Add')%>"/></td></tr>
|
||||
<tr>
|
||||
<td><label for="filter[destination_folder]"><%=_('Will be placed in')%></label></td>
|
||||
<td colspan='3'>
|
||||
<select name="filter[destination_folder]">
|
||||
<%= options_from_collection_for_select(@destfolders, 'name', 'name', @filter.destination_folder) %>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td colspan="4">
|
||||
<input type="submit" name="op" value="<%=_('Save')%>"/>
|
||||
<input type="button" name="op" value="<%=_('Cancel')%>" onclick="changeLoc('/webmail/webmail/filters');"/>
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div></div>
|
42
themes/olive/views/webmail/filters.html.erb
Executable file
42
themes/olive/views/webmail/filters.html.erb
Executable file
|
@ -0,0 +1,42 @@
|
|||
<% content_for('sidebar') { %>
|
||||
<%= render :partial => 'shared/folders' %>
|
||||
<% } %>
|
||||
<h1><%=_('Mailbox')%></h1>
|
||||
<div id="header">
|
||||
<ul id="primary">
|
||||
<li><%=link_folders%></li>
|
||||
<li><%=link_send_mail%></li>
|
||||
<li><%=link_mail_prefs%></li>
|
||||
<li><span><%= t :filters %></span>
|
||||
<ul id="secondary">
|
||||
<li><%=link_filter_add%></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><%=link_main%></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="tab_main">
|
||||
<div id="tab_content">
|
||||
|
||||
<div id="filters">
|
||||
<form action="/webmail/webmail/filters" method="post">
|
||||
<% if @user.filters and @user.filters.size > 0 %>
|
||||
<table class="list">
|
||||
<tr>
|
||||
<th><%=_('Filter name')%></th>
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
<%= render_partial_collection "filter", @user.filters %>
|
||||
</table>
|
||||
<% end %>
|
||||
</form>
|
||||
<% if flash['error'] %>
|
||||
<div id="SystemError"><%= flash['error'] %></div>
|
||||
<% elsif flash['status'] %>
|
||||
<div id="SystemStatus"><%= flash['status'] %></div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div></div>
|
29
themes/olive/views/webmail/folders.html.erb
Executable file
29
themes/olive/views/webmail/folders.html.erb
Executable file
|
@ -0,0 +1,29 @@
|
|||
<h1><%=_('Mailbox')%></h1>
|
||||
<div id="header">
|
||||
<ul id="primary">
|
||||
<li><span><%= _('Folders') %></span>
|
||||
<ul id="secondary">
|
||||
<li><%=link_refresh%></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><%=link_send_mail%></li>
|
||||
<li><%=link_mail_prefs%></li>
|
||||
<li><%=link_mail_filters%></li>
|
||||
<li><%=link_main%></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="tab_main">
|
||||
<div id="tab_content">
|
||||
|
||||
<% content_for('sidebar') { %>
|
||||
<%= render :partial => 'shared' %>
|
||||
<% } %>
|
||||
<div id="messages">
|
||||
<% if not(request['msg_id'] == '') %>
|
||||
<%= render_component(:controller => "webmail/webmail", :action => "message", :params => { 'msg_id' => request['msg_id']})%>
|
||||
<% else %>
|
||||
<%= render_component(:controller => "webmail/webmail", :action => "messages") %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
</div></div>
|
31
themes/olive/views/webmail/mailsent.html.erb
Executable file
31
themes/olive/views/webmail/mailsent.html.erb
Executable file
|
@ -0,0 +1,31 @@
|
|||
<h1><%=t(:mailbox)%></h1>
|
||||
<div id="header">
|
||||
<ul id="primary">
|
||||
<li><%=link_folders%></li>
|
||||
<li><span><%= t(:compose) %></span>
|
||||
<ul id="secondary">
|
||||
<li><%=link_compose_new%></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><%=link_mail_prefs%></li>
|
||||
<li><%=link_mail_filters%></li>
|
||||
<li><%=link_main%></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="tab_main">
|
||||
<div id="tab_content">
|
||||
|
||||
<div class="msghdr">
|
||||
<dl>
|
||||
<dt><%=t(:to)%></dt><dd><%= CGI.escapeHTML(@mail.to) %></dd>
|
||||
<% if @mail.cc %>
|
||||
<dt><%=t(:cc)%></dt><dd><%= CGI.escapeHTML(@mail.cc) %></dd>
|
||||
<% end
|
||||
if @mail.bcc %>
|
||||
<dt><%=t(:bcc)%></dt><dd><%= CGI.escapeHTML(@mail.bcc) %></dd>
|
||||
<% end %>
|
||||
<dt><%=t(:subject)%></dt><dd><%= CGI.escapeHTML(@mail.subject) %></dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
42
themes/olive/views/webmail/message.html.erb
Executable file
42
themes/olive/views/webmail/message.html.erb
Executable file
|
@ -0,0 +1,42 @@
|
|||
<h1><%=t :mailbox %></h1>
|
||||
<div id="header">
|
||||
<ul id="primary">
|
||||
<li><span><%= t :folders %></span>
|
||||
<ul id="secondary">
|
||||
<li><%=link_refresh%></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><%=link_send_mail%></li>
|
||||
<li><%=link_mail_prefs%></li>
|
||||
<li><%=link_mail_filters%></li>
|
||||
<li><%=link_main%></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="tab_main">
|
||||
<div id="tab_content">
|
||||
|
||||
<% content_for('sidebar') { %>
|
||||
<%= render :partial => 'shared/folders' %>
|
||||
<% } %>
|
||||
<div id="messages">
|
||||
|
||||
<div id="msgshow">
|
||||
<div id="topmenu">
|
||||
<ul class="actionmenu">
|
||||
<li>
|
||||
<%= link_to("« #{t :back_to_list}", :controller=>"webmail", :action=>"messages") %>
|
||||
</li>
|
||||
<li><%=link_reply_to_sender(@msg_id)%></li>
|
||||
<li><%=link_forward_message(@msg_id)%></li>
|
||||
<li><%=link_flag_for_deletion(@msg_id)%></li>
|
||||
<li><%=link_view_source(@msg_id)%></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<%= mail2html(@mail, @msg_id) %>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div></div>
|
||||
|
80
themes/olive/views/webmail/messages.html.erb
Executable file
80
themes/olive/views/webmail/messages.html.erb
Executable file
|
@ -0,0 +1,80 @@
|
|||
<h1><%= t :mailbox %></h1>
|
||||
<div id="header">
|
||||
<ul id="primary">
|
||||
<li><span><%= t :folders %></span>
|
||||
<ul id="secondary">
|
||||
<li><%=link_refresh%></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><%=link_send_mail%></li>
|
||||
<li><%=link_mail_prefs%></li>
|
||||
<li><%=link_mail_filters%></li>
|
||||
<li><%=link_main%></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="tab_main">
|
||||
<div id="tab_content">
|
||||
|
||||
<% content_for :sidebar do %>
|
||||
<%= render :partial => 'shared/folders' %>
|
||||
<% end %>
|
||||
|
||||
<div id="messages">
|
||||
<div id="msglist">
|
||||
<h2><%= @folder_name %></h2>
|
||||
<%= form_tag({:controller=>'webmail', :action=>'messages'})%>
|
||||
<div class='notviscode'><input type="submit" name="op" value="<%= t :search %>" /></div>
|
||||
<input type="hidden" name="page" value="<%=@page%>"/>
|
||||
|
||||
<a href='#' onclick='toggle_msg_operations(true);'>
|
||||
<%=t :operations%><img id='img_msgops' alt='open' src="<%= current_theme_image_path(@ops_img_src+'.gif') %>"/>
|
||||
</a>
|
||||
|
||||
<div id="msgops" class='<%=@ops_class%>'>
|
||||
<h4><%= t :operations_txt %></h4>
|
||||
<span id="opch">
|
||||
<%= submit_tag(t(:delete), :name=>'op')%>
|
||||
<%= submit_tag(t(:copy), :name=> 'op')%>
|
||||
<%= submit_tag(t(:move), :name=>'op')%>
|
||||
<%= submit_tag(t(:mark_read), :name=>'op')%>
|
||||
<%= submit_tag(t(:mark_unread), :name=>'op')%>
|
||||
</span><br/>
|
||||
<span id="destp">
|
||||
<%= t :destination_txt %>
|
||||
<select name="cpdest" size="1">
|
||||
<% for folder in @folders %>
|
||||
<option value="<%=folder.name%>"><%=folder.name%></option>
|
||||
<% end %>
|
||||
</select>
|
||||
</span>
|
||||
</div>
|
||||
<%= render :partial => "search" %>
|
||||
<%= page_navigation_webmail @pages if @pages.page_count > 1 %>
|
||||
<table width='98%'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="1%"><input type="checkbox" name="allbox" onclick="checkAll(this.form)" style="margin: 0 0 0 4px" /></th>
|
||||
<% if @folder_name == CDF::CONFIG[:mail_sent] %>
|
||||
<th width="20%"><%= link_to(t(:to), :controller=>:webmail, :action=>:messages, :op=>'SORT', :page=>@page, :scc=>'to_flat')%></th>
|
||||
<% else %>
|
||||
<th width="20%"><%= link_to(t(:from), :controller=>:webmail, :action=>:messages, :op=>'SORT', :page=>@page, :scc=>'from_flat')%></th>
|
||||
<% end%>
|
||||
<th width='60%'><%= link_to(t(:subject), :controller=>:webmail, :action=>:messages, :op=>'SORT', :page=>@page, :scc=>'subject')%></th>
|
||||
<th><%= link_to(t(:date), :controller=>:webmail, :action=>:messages, :op=>'SORT', :page=>@page, :scc=>'date')%></th>
|
||||
<th><%= link_to(t(:size), :controller=>:webmail, :action=>:messages, :op=>'SORT', :page=>@page, :scc=>'size')%></th>
|
||||
<th> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% for message in @messages %>
|
||||
<%= render :partial => 'message_row', :object => message %>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<%= page_navigation_webmail @pages if @pages.page_count > 1 %>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
1
themes/olive/views/webmail/noattachment.html.erb
Executable file
1
themes/olive/views/webmail/noattachment.html.erb
Executable file
|
@ -0,0 +1 @@
|
|||
No attachment found!
|
55
themes/olive/views/webmail/prefs.html.erb
Executable file
55
themes/olive/views/webmail/prefs.html.erb
Executable file
|
@ -0,0 +1,55 @@
|
|||
<% content_for('sidebar') { %>
|
||||
<%= render :partial => 'shared/folders' %>
|
||||
<% } %>
|
||||
<h1><%= t :mailbox %></h1>
|
||||
<div id="header">
|
||||
<ul id="primary">
|
||||
<li><%=link_folders%></li>
|
||||
<li><%=link_send_mail%></li>
|
||||
<li><span><%= t :preferences %></span></li>
|
||||
<li><%=link_mail_filters%></li>
|
||||
<li><%=link_main%></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="tab_main">
|
||||
<div id="tab_content">
|
||||
<div id="prefs">
|
||||
<form action="/webmail/prefs" method="post">
|
||||
<%= hidden_field "mailpref", "id" %>
|
||||
<%= hidden_field "mailpref", "customer_id" %>
|
||||
<table class="edit">
|
||||
<%= form_input(:text_field, 'customer', 'fname', t(:first_name), 'class'=>'two_columns') %>
|
||||
<%= form_input(:text_field, 'customer', 'lname', t(:last_name), 'class'=>'two_columns') %>
|
||||
<tr class="two_rows">
|
||||
<td><label><%= t :send_type %></label></td>
|
||||
<td><select name="mailpref[mail_type]">
|
||||
<%= options_for_select(CDF::CONFIG[:mail_send_types], @mailpref.mail_type)%>
|
||||
</select></td>
|
||||
</tr>
|
||||
|
||||
<tr class="two_rows">
|
||||
<td><label><%= t :messages_per_page %></label></td>
|
||||
<td><select name="mailpref[wm_rows]">
|
||||
<%= options_for_select(CDF::CONFIG[:mail_message_rows], @mailpref.wm_rows)%>
|
||||
</select></td>
|
||||
</tr>
|
||||
|
||||
<tr class="two_rows">
|
||||
<td><label for="mailpref_check_external_mail"><%=t :check_external_mail %></label></td>
|
||||
<td>
|
||||
<%=check_box('mailpref', 'check_external_mail')%>
|
||||
<%= t :check_external_mail_txt %>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="two_rows">
|
||||
<td colspan='2' class="buttonBar">
|
||||
<input type="submit" name="op" value="<%= t :save %>"/>
|
||||
<input type="button" value="<%= t :cancel %>" onclick="window.location='/webmail/webmail/folders'"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
13
themes/olive/views/webmail/view_source.html.erb
Executable file
13
themes/olive/views/webmail/view_source.html.erb
Executable file
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title><%=_('Mailr')%></title>
|
||||
<link rel="stylesheet" href="/stylesheets/webmail/webmail.css" type="text/css" media="screen" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="msg_source">
|
||||
<%=@msg_source%>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
0
themes/original/views/layouts/public.html.erb
Executable file → Normal file
0
themes/original/views/layouts/public.html.erb
Executable file → Normal file
Loading…
Reference in a new issue