new olive theme

This commit is contained in:
Wojciech Todryk 2011-06-26 21:37:50 +02:00
parent aca4f8a3c6
commit abfba98334
58 changed files with 4380 additions and 42 deletions

Binary file not shown.

View file

@ -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

View file

@ -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) %> &raquo; <%= t(:please_login)%></title>
<%=stylesheet_link_tag "admin", "mailr" %>
</head>
<body>
<%= yield %>
</body>
</html>

View file

@ -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>

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View 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;
}
}

View 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] || {})
);
}

View 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 = '&nbsp;PM';
h = system_date.getHours() - 12;
} else {
adds = '&nbsp;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;
}
}

View 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 = '&nbsp;PM'; h = system_date.getHours() - 12; }
else { adds = '&nbsp;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;
}
}

View 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;

View 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
View 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);
}
});

View 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();

View 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);
}
}
}

View 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;
}
}
}

View 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; }

View 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;
}

View 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;}

View 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
View 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; }

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

View 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;
}

View 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 %>

View 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>&nbsp;</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 %>

View 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>

View 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>

View 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>&nbsp;</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>

View 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 %>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<%= 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}&nbsp;#{t :cc}&nbsp;#{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>&nbsp;</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>&nbsp;</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>

View 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 " : " " %> >
&nbsp;<%=group.name %>
</th>
<% if col%2 == 0 %>
</tr>
<tr>
<% end
col = col + 1 %>
<% end %>
<% if col%2 == 0 and not(@contactgroups.empty?) %>
<th>&nbsp;</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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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">&lt;</div>
<%= h contact.email %>
<div class="notviscode">&gt;</div>
</div>
</li>
<% end -%>
</ul>

View 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 } %>&nbsp; <%= _('case sensitive') %>
</td>
</tr>

View 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 %>
&nbsp;
<% end %>
</td>
<td>
<% if filter_counter < @user.filters.size - 1 %>
<%=link_filter_down(@user.filters[filter_counter].id)%>
<% else %>
&nbsp;
<% end %>
</td>
<td><%=link_filter_edit(@user.filters[filter_counter].id)%></td>
<td><%=link_filter_delete(@user.filters[filter_counter].id)%></td>
</tr>

View 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) << "&nbsp;" , :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')) : '&nbsp;' %></td>
</tr>

View 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 %>&nbsp;
<select name="search_field">
<%= options_for_select(CDF::CONFIG[:mail_search_fields], @search_field)%>
</select>&nbsp;
<label for="search_value"><%= t :for %></label>&nbsp;
<input type="text" name="search_value" value="<%=@search_value%>" size='16' id='search_value'/>&nbsp;
<%= submit_tag(t(:search), :name=>'op')%>&nbsp;
<%= submit_tag(t(:show_all), :name=>'op')%>
</div>

View 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 %>
<% } %>

View 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>

View 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>

View 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>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</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>

View 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>

View 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>

View 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("&#171; #{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>

View 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 %>&nbsp;
<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>&nbsp;</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>

View file

@ -0,0 +1 @@
No attachment found!

View 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>

View 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
View file