Merge remote branch 'upstream/master'

This commit is contained in:
zottel 2012-05-07 09:11:45 +02:00
commit a2ea560bf3
40 changed files with 6304 additions and 611 deletions

View file

@ -9,7 +9,7 @@ require_once('include/nav.php');
require_once('include/cache.php'); require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '2.3.1331' ); define ( 'FRIENDICA_VERSION', '2.3.1334' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
define ( 'DB_UPDATE_VERSION', 1143 ); define ( 'DB_UPDATE_VERSION', 1143 );

View file

@ -952,7 +952,7 @@ function tag_deliver($uid,$item_id) {
$mention = false; $mention = false;
$u = q("select uid, nickname, language, username, email, `page-flags`, `notify-flags` from user where uid = %d limit 1", $u = q("select * from user where uid = %d limit 1",
intval($uid) intval($uid)
); );
if(! count($u)) if(! count($u))
@ -1027,10 +1027,20 @@ function tag_deliver($uid,$item_id) {
if(! count($c)) if(! count($c))
return; return;
q("update item set wall = 1, origin = 1, forum_mode = 1, `owner-name` = '%s', `owner-link` = '%s', `owner-avatar` = '%s' where id = %d limit 1", // also reset all the privacy bits to the forum default permissions
$private = ($u[0]['allow_cid'] || $u[0]['allow_gid'] || $u[0]['deny_cid'] || $u[0]['deny_gid']) ? 1 : 0;
q("update item set wall = 1, origin = 1, forum_mode = 1, `owner-name` = '%s', `owner-link` = '%s', `owner-avatar` = '%s',
`private` = %d, `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' where id = %d limit 1",
dbesc($c[0]['name']), dbesc($c[0]['name']),
dbesc($c[0]['url']), dbesc($c[0]['url']),
dbesc($c[0]['thumb']), dbesc($c[0]['thumb']),
intval($private),
dbesc($u[0]['allow_cid']),
dbesc($u[0]['allow_gid']),
dbesc($u[0]['deny_cid']),
dbesc($u[0]['deny_gid']),
intval($item_id) intval($item_id)
); );
@ -3029,32 +3039,7 @@ function item_expire($uid,$days) {
if($expire_items==0 && $item['type']!='note') if($expire_items==0 && $item['type']!='note')
continue; continue;
drop_item($item['id'],false);
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1",
dbesc(datetime_convert()),
dbesc(datetime_convert()),
intval($item['id'])
);
$r = q("DELETE FROM item_id where iid in (select id from item where parent = %d) and uid = %d",
intval($item['id']),
intval($uid)
);
$r = q("DELETE FROM sign where iid in (select id from item where parent = %d) and uid = %d",
intval($item['id']),
intval($uid)
);
// kill the kids
$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d ",
dbesc(datetime_convert()),
dbesc(datetime_convert()),
dbesc($item['parent-uri']),
intval($item['uid'])
);
} }
proc_run('php',"include/notifier.php","expire","$uid"); proc_run('php',"include/notifier.php","expire","$uid");
@ -3116,6 +3101,25 @@ function drop_item($id,$interactive = true) {
intval($item['id']) intval($item['id'])
); );
// clean up categories and tags so they don't end up as orphans
$matches = false;
$cnt = preg_match_all('/<(.*?)>/',$item['file'],$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],true);
}
}
$matches = false;
$cnt = preg_match_all('/\[(.*?)\]/',$item['file'],$matches,PREG_SET_ORDER);
if($cnt) {
foreach($matches as $mtch) {
file_tag_unsave_file($item['uid'],$item['id'],$mtch[1],false);
}
}
// If item is a link to a photo resource, nuke all the associated photos // If item is a link to a photo resource, nuke all the associated photos
// (visitors will not have photo resources) // (visitors will not have photo resources)
// This only applies to photos uploaded from the photos page. Photos inserted into a post do not // This only applies to photos uploaded from the photos page. Photos inserted into a post do not
@ -3139,6 +3143,17 @@ function drop_item($id,$interactive = true) {
// ignore the result // ignore the result
} }
// clean up item_id and sign meta-data tables
$r = q("DELETE FROM item_id where iid in (select id from item where parent = %d and uid = %d)",
intval($item['id']),
intval($item['uid'])
);
$r = q("DELETE FROM sign where iid in (select id from item where parent = %d and uid = %d)",
intval($item['id']),
intval($item['uid'])
);
// If it's the parent of a comment thread, kill all the kids // If it's the parent of a comment thread, kill all the kids

View file

@ -930,7 +930,8 @@ function prepare_body($item,$attach = false) {
foreach($matches as $mtch) { foreach($matches as $mtch) {
if(strlen($x)) if(strlen($x))
$x .= ','; $x .= ',';
$x .= xmlify(file_tag_decode($mtch[1])) . ' <a href="' . $a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&cat=' . xmlify(file_tag_decode($mtch[1])) . '" title="' . t('remove') . '" >' . t('[remove]') . '</a>'; $x .= xmlify(file_tag_decode($mtch[1]))
. ((local_user() == $item['uid']) ? ' <a href="' . $a->get_baseurl() . '/filerm/' . $item['id'] . '?f=&cat=' . xmlify(file_tag_decode($mtch[1])) . '" title="' . t('remove') . '" >' . t('[remove]') . '</a>' : '');
} }
if(strlen($x)) if(strlen($x))
$s .= '<div class="categorytags"><span>' . t('Categories:') . ' </span>' . $x . '</div>'; $s .= '<div class="categorytags"><span>' . t('Categories:') . ' </span>' . $x . '</div>';
@ -1490,7 +1491,7 @@ function file_tag_unsave_file($uid,$item,$file,$cat = false) {
intval($uid) intval($uid)
); );
$r = q("select file from item where uid = %d " . file_tag_file_query('item',$file,(($cat) ? 'category' : 'file')), $r = q("select file from item where uid = %d and deleted = 0 " . file_tag_file_query('item',$file,(($cat) ? 'category' : 'file')),
intval($uid) intval($uid)
); );

4
library/jquery_ac/README Normal file
View file

@ -0,0 +1,4 @@
This is jquery.autocomplete from
http://www.devbridge.com/projects/autocomplete/jquery/

19
library/jquery_ac/jquery-1.3.2.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,390 @@
/**
* Ajax Autocomplete for jQuery, version 1.1.3
* (c) 2010 Tomas Kirda
*
* Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
* For details, see the web site: http://www.devbridge.com/projects/autocomplete/jquery/
*
* Last Review: 04/19/2010
*/
/*jslint onevar: true, evil: true, nomen: true, eqeqeq: true, bitwise: true, regexp: true, newcap: true, immed: true */
/*global window: true, document: true, clearInterval: true, setInterval: true, jQuery: true */
(function($) {
var reEscape = new RegExp('(\\' + ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'].join('|\\') + ')', 'g');
function fnFormatResult(value, data, currentValue) {
var pattern = '(' + currentValue.replace(reEscape, '\\$1') + ')';
return value.replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>');
}
function Autocomplete(el, options) {
this.el = $(el);
this.el.attr('autocomplete', 'off');
this.suggestions = [];
this.data = [];
this.badQueries = [];
this.selectedIndex = -1;
this.currentValue = this.el.val();
this.intervalId = 0;
this.cachedResponse = [];
this.onChangeInterval = null;
this.ignoreValueChange = false;
this.serviceUrl = options.serviceUrl;
this.isLocal = false;
this.options = {
autoSubmit: false,
minChars: 1,
maxHeight: 300,
deferRequestBy: 0,
width: 0,
highlight: true,
params: {},
fnFormatResult: fnFormatResult,
delimiter: null,
zIndex: 9999
};
this.initialize();
this.setOptions(options);
}
$.fn.autocomplete = function(options) {
return new Autocomplete(this.get(0)||$('<input />'), options);
};
Autocomplete.prototype = {
killerFn: null,
initialize: function() {
var me, uid, autocompleteElId;
me = this;
uid = Math.floor(Math.random()*0x100000).toString(16);
autocompleteElId = 'Autocomplete_' + uid;
this.killerFn = function(e) {
if ($(e.target).parents('.autocomplete').size() === 0) {
me.killSuggestions();
me.disableKillerFn();
}
};
if (!this.options.width) { this.options.width = this.el.width(); }
this.mainContainerId = 'AutocompleteContainter_' + uid;
$('<div id="' + this.mainContainerId + '" style="position:absolute;z-index:9999;"><div class="autocomplete-w1"><div class="autocomplete" id="' + autocompleteElId + '" style="display:none; width:300px;"></div></div></div>').appendTo('body');
this.container = $('#' + autocompleteElId);
this.fixPosition();
if (window.opera) {
this.el.keypress(function(e) { me.onKeyPress(e); });
} else {
this.el.keydown(function(e) { me.onKeyPress(e); });
}
this.el.keyup(function(e) { me.onKeyUp(e); });
this.el.blur(function() { me.enableKillerFn(); });
this.el.focus(function() { me.fixPosition(); });
},
setOptions: function(options){
var o = this.options;
$.extend(o, options);
if(o.lookup){
this.isLocal = true;
if($.isArray(o.lookup)){ o.lookup = { suggestions:o.lookup, data:[] }; }
}
$('#'+this.mainContainerId).css({ zIndex:o.zIndex });
this.container.css({ maxHeight: o.maxHeight + 'px', width:o.width });
},
clearCache: function(){
this.cachedResponse = [];
this.badQueries = [];
},
disable: function(){
this.disabled = true;
},
enable: function(){
this.disabled = false;
},
fixPosition: function() {
var offset = this.el.offset();
$('#' + this.mainContainerId).css({ top: (offset.top + this.el.innerHeight()) + 'px', left: offset.left + 'px' });
},
enableKillerFn: function() {
var me = this;
$(document).bind('click', me.killerFn);
},
disableKillerFn: function() {
var me = this;
$(document).unbind('click', me.killerFn);
},
killSuggestions: function() {
var me = this;
this.stopKillSuggestions();
this.intervalId = window.setInterval(function() { me.hide(); me.stopKillSuggestions(); }, 300);
},
stopKillSuggestions: function() {
window.clearInterval(this.intervalId);
},
onKeyPress: function(e) {
if (this.disabled || !this.enabled) { return; }
// return will exit the function
// and event will not be prevented
switch (e.keyCode) {
case 27: //KEY_ESC:
this.el.val(this.currentValue);
this.hide();
break;
case 9: //KEY_TAB:
case 13: //KEY_RETURN:
if (this.selectedIndex === -1) {
this.hide();
return;
}
this.select(this.selectedIndex);
if(e.keyCode === 9){ return; }
break;
case 38: //KEY_UP:
this.moveUp();
break;
case 40: //KEY_DOWN:
this.moveDown();
break;
default:
return;
}
e.stopImmediatePropagation();
e.preventDefault();
},
onKeyUp: function(e) {
if(this.disabled){ return; }
switch (e.keyCode) {
case 38: //KEY_UP:
case 40: //KEY_DOWN:
return;
}
clearInterval(this.onChangeInterval);
if (this.currentValue !== this.el.val()) {
if (this.options.deferRequestBy > 0) {
// Defer lookup in case when value changes very quickly:
var me = this;
this.onChangeInterval = setInterval(function() { me.onValueChange(); }, this.options.deferRequestBy);
} else {
this.onValueChange();
}
}
},
onValueChange: function() {
clearInterval(this.onChangeInterval);
this.currentValue = this.el.val();
var q = this.getQuery(this.currentValue);
this.selectedIndex = -1;
if (this.ignoreValueChange) {
this.ignoreValueChange = false;
return;
}
if (q === '' || q.length < this.options.minChars) {
this.hide();
} else {
this.getSuggestions(q);
}
},
getQuery: function(val) {
var d, arr;
d = this.options.delimiter;
if (!d) { return $.trim(val); }
arr = val.split(d);
return $.trim(arr[arr.length - 1]);
},
getSuggestionsLocal: function(q) {
var ret, arr, len, val, i;
arr = this.options.lookup;
len = arr.suggestions.length;
ret = { suggestions:[], data:[] };
q = q.toLowerCase();
for(i=0; i< len; i++){
val = arr.suggestions[i];
if(val.toLowerCase().indexOf(q) === 0){
ret.suggestions.push(val);
ret.data.push(arr.data[i]);
}
}
return ret;
},
getSuggestions: function(q) {
var cr, me;
cr = this.isLocal ? this.getSuggestionsLocal(q) : this.cachedResponse[q];
if (cr && $.isArray(cr.suggestions)) {
this.suggestions = cr.suggestions;
this.data = cr.data;
this.suggest();
} else if (!this.isBadQuery(q)) {
me = this;
me.options.params.query = q;
$.get(this.serviceUrl, me.options.params, function(txt) { me.processResponse(txt); }, 'text');
}
},
isBadQuery: function(q) {
var i = this.badQueries.length;
while (i--) {
if (q.indexOf(this.badQueries[i]) === 0) { return true; }
}
return false;
},
hide: function() {
this.enabled = false;
this.selectedIndex = -1;
this.container.hide();
},
suggest: function() {
if (this.suggestions.length === 0) {
this.hide();
return;
}
var me, len, div, f, v, i, s, mOver, mClick;
me = this;
len = this.suggestions.length;
f = this.options.fnFormatResult;
v = this.getQuery(this.currentValue);
mOver = function(xi) { return function() { me.activate(xi); }; };
mClick = function(xi) { return function() { me.select(xi); }; };
this.container.hide().empty();
for (i = 0; i < len; i++) {
s = this.suggestions[i];
div = $((me.selectedIndex === i ? '<div class="selected"' : '<div') + ' title="' + s + '">' + f(s, this.data[i], v) + '</div>');
div.mouseover(mOver(i));
div.click(mClick(i));
this.container.append(div);
}
this.enabled = true;
this.container.show();
},
processResponse: function(text) {
var response;
try {
response = eval('(' + text + ')');
} catch (err) { return; }
if (!$.isArray(response.data)) { response.data = []; }
if(!this.options.noCache){
this.cachedResponse[response.query] = response;
if (response.suggestions.length === 0) { this.badQueries.push(response.query); }
}
if (response.query === this.getQuery(this.currentValue)) {
this.suggestions = response.suggestions;
this.data = response.data;
this.suggest();
}
},
activate: function(index) {
var divs, activeItem;
divs = this.container.children();
// Clear previous selection:
if (this.selectedIndex !== -1 && divs.length > this.selectedIndex) {
$(divs.get(this.selectedIndex)).removeClass();
}
this.selectedIndex = index;
if (this.selectedIndex !== -1 && divs.length > this.selectedIndex) {
activeItem = divs.get(this.selectedIndex);
$(activeItem).addClass('selected');
}
return activeItem;
},
deactivate: function(div, index) {
div.className = '';
if (this.selectedIndex === index) { this.selectedIndex = -1; }
},
select: function(i) {
var selectedValue, f;
selectedValue = this.suggestions[i];
if (selectedValue) {
this.el.val(selectedValue);
if (this.options.autoSubmit) {
f = this.el.parents('form');
if (f.length > 0) { f.get(0).submit(); }
}
this.ignoreValueChange = true;
this.hide();
this.onSelect(i);
}
},
moveUp: function() {
if (this.selectedIndex === -1) { return; }
if (this.selectedIndex === 0) {
this.container.children().get(0).className = '';
this.selectedIndex = -1;
this.el.val(this.currentValue);
return;
}
this.adjustScroll(this.selectedIndex - 1);
},
moveDown: function() {
if (this.selectedIndex === (this.suggestions.length - 1)) { return; }
this.adjustScroll(this.selectedIndex + 1);
},
adjustScroll: function(i) {
var activeItem, offsetTop, upperBound, lowerBound;
activeItem = this.activate(i);
offsetTop = activeItem.offsetTop;
upperBound = this.container.scrollTop();
lowerBound = upperBound + this.options.maxHeight - 25;
if (offsetTop < upperBound) {
this.container.scrollTop(offsetTop);
} else if (offsetTop > lowerBound) {
this.container.scrollTop(offsetTop - this.options.maxHeight + 25);
}
this.el.val(this.getValue(this.suggestions[i]));
},
onSelect: function(i) {
var me, fn, s, d;
me = this;
fn = me.options.onSelect;
s = me.suggestions[i];
d = me.data[i];
me.el.val(me.getValue(s));
if ($.isFunction(fn)) { fn(s, d, me.el); }
},
getValue: function(value){
var del, currVal, arr, me;
me = this;
del = me.options.delimiter;
if (!del) { return value; }
currVal = me.currentValue;
arr = currVal.split(del);
if (arr.length === 1) { return value; }
return currVal.substr(0, currVal.length - arr[arr.length - 1].length) + value;
}
};
}(jQuery));

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View file

@ -0,0 +1,6 @@

.autocomplete-w1 { background:url(img/shadow.png) no-repeat bottom right; position:absolute; top:0px; left:0px; margin:8px 0 0 6px; /* IE6 fix: */ _background:none; _margin:0; }
.autocomplete { border:1px solid #999; background:#FFF; cursor:default; text-align:left; max-height:350px; overflow:auto; margin:-6px 6px 6px -6px; /* IE6 specific: */ _height:350px; _margin:0; _overflow-x:hidden; }
.autocomplete .selected { background:#F0F0F0; }
.autocomplete div { padding:2px 5px; white-space:nowrap; }
.autocomplete strong { font-weight:normal; color:#3399FF; }

View file

@ -13,6 +13,14 @@ function acl_init(&$a){
$type = (x($_REQUEST,'type')?$_REQUEST['type']:""); $type = (x($_REQUEST,'type')?$_REQUEST['type']:"");
// For use with jquery.autocomplete for private mail completion
if(x($_REQUEST,'query') && strlen($_REQUEST['query'])) {
$type = 'm';
$search = $_REQUEST['query'];
}
if ($search!=""){ if ($search!=""){
$sql_extra = "AND `name` LIKE '%%".dbesc($search)."%%'"; $sql_extra = "AND `name` LIKE '%%".dbesc($search)."%%'";
$sql_extra2 = "AND (`attag` LIKE '%%".dbesc($search)."%%' OR `name` LIKE '%%".dbesc($search)."%%' OR `nick` LIKE '%%".dbesc($search)."%%')"; $sql_extra2 = "AND (`attag` LIKE '%%".dbesc($search)."%%' OR `name` LIKE '%%".dbesc($search)."%%' OR `nick` LIKE '%%".dbesc($search)."%%')";
@ -115,6 +123,23 @@ function acl_init(&$a){
else else
$r = array(); $r = array();
if($type == 'm') {
$x = array();
$x['query'] = $search;
$x['suggestions'] = array();
$x['data'] = array();
if(count($r)) {
foreach($r as $g) {
$x['suggestions'][] = sprintf( t('%s [%s]'),$g['name'],$g['url']);
// '<img src="' . $g['micro'] . ' height="16" width="16" alt="' . t('Image/photo') . '" />' .
$x['data'][] = intval($g['id']);
}
}
echo json_encode($x);
killme();
}
if(count($r)) { if(count($r)) {
foreach($r as $g){ foreach($r as $g){
$contacts[] = array( $contacts[] = array(

View file

@ -4,20 +4,7 @@ require_once('include/acl_selectors.php');
require_once('include/message.php'); require_once('include/message.php');
function message_init(&$a) { function message_init(&$a) {
$tabs = array( $tabs = array();
/*
array(
'label' => t('All'),
'url'=> $a->get_baseurl(true) . '/message',
'sel'=> ($a->argc == 1),
),
array(
'label' => t('Sent'),
'url' => $a->get_baseurl(true) . '/message/sent',
'sel'=> ($a->argv[1] == 'sent'),
),
*/
);
$new = array( $new = array(
'label' => t('New Message'), 'label' => t('New Message'),
'url' => $a->get_baseurl(true) . '/message/new', 'url' => $a->get_baseurl(true) . '/message/new',
@ -29,6 +16,21 @@ function message_init(&$a) {
'$tabs'=>$tabs, '$tabs'=>$tabs,
'$new'=>$new, '$new'=>$new,
)); ));
$base = $a->get_baseurl();
$a->page['htmlhead'] .= '<script src="' . $a->get_baseurl(true) . '/library/jquery_ac/jquery.autocomplete-min.js" ></script>';
$a->page['htmlhead'] .= <<< EOT
<script>$(document).ready(function() {
var a;
a = $("#recip").autocomplete({
serviceUrl: '$base/acl',
width: 350
});
});
</script>
EOT;
} }
@ -172,6 +174,15 @@ function message_content(&$a) {
$preselect = (isset($a->argv[2])?array($a->argv[2]):false); $preselect = (isset($a->argv[2])?array($a->argv[2]):false);
$select = contact_select('messageto','message-to-select', $preselect, 4, true, false, false, 10); $select = contact_select('messageto','message-to-select', $preselect, 4, true, false, false, 10);
// here's sort of where we want to do contact autocomplete
// comment out the contact selector line just above and use the following one instead,
// then figure out how to make it do the right thing
// pictures would be nice, but that didn't seem to work when I tried it
// (the json backend is found in mod/acl.php)
// $select = '<input type="text" id="recip" name="messageto" value="' . $preselect .'" />';
$tpl = get_markup_template('prv_message.tpl'); $tpl = get_markup_template('prv_message.tpl');
$o .= replace_macros($tpl,array( $o .= replace_macros($tpl,array(
'$header' => t('Send Private Message'), '$header' => t('Send Private Message'),
@ -198,7 +209,7 @@ function message_content(&$a) {
$o .= $header; $o .= $header;
$r = q("SELECT count(*) AS `total` FROM `mail` $r = q("SELECT count(*) AS `total` FROM `mail`
WHERE `mail`.`uid` = %d AND `from-url` $eq '%s' GROUP BY `parent-uri` ORDER BY `created` DESC", WHERE `mail`.`uid` = %d GROUP BY `parent-uri` ORDER BY `created` DESC",
intval(local_user()), intval(local_user()),
dbesc($myprofile) dbesc($myprofile)
); );

File diff suppressed because it is too large Load diff

View file

@ -1,32 +1,32 @@
Liebe/r $username, Hallo $[username],
wir haben gerade eine Anfrage erhalten dein Passwort auf $sitename zu ändern. Auf $[sitename] wurde eine Anfrage zum Zurücksetzen deines
Um diese Anfrage zu bestätigen folge bitte dem Bestätigungslink oder kopiere Passworts empfangen. Um diese zu bestätigen folge bitte dem Link
ihn in die Adresszeile deines Browsers. weiter unten oder kopiere ihn in die Adressleiste deines Browsers.
Solltest du KEINE Änderungsanfrage gestellt haben ignoriere diese EMail einfach Wenn du die Anfrage NICHT gesendet haben solltest, dann IGNORIERE
und folge dem angegebenen Link UNTER KEINEN UMSTÄNDEN. bitte diese Mail und den Link.
Dein Passwort wird nicht geändert wenn du die Anfrage nicht bestätigst. Dein Passwort wird nicht geändert werden solange wir nicht überprüfen
konnten, dass du die Anfrage gestellt hast.
Folge diesem Link zur Verifizierung der Anfrage: Folge diesem Link um deine Identität zu verifizieren:
$reset_link $[reset_link]
Anschließend wirst du eine EMail erhalten die dein neues Passwort enthält. Du wirst eine weitere Email erhalten mit dem neuen Passwort.
Du kannst dein Passwort jederzeit in den Einstellungen deines Accounts ändern Das Passwort kannst du anschließend wie gewohnt in deinen Account Einstellungen ändern.
nachdem du angemeldet bist.
Die Anmelde Daten sind die Folgenden: Die Login-Details sind die folgenden:
Adresse der Seite: $siteurl Adresse der Seite: $[siteurl]
Anmelde Name: $email Login Name: $[email]
Mit freundlichen Grüßen, Grüße,
$sitename Administrator $[sitename] Administrator

View file

@ -1,12 +1,11 @@
Hey, Hi,
Ich bin's, $sitename. ich bin $sitename.
Die Friendica-Entwickler haben gerade Update $update freigegeben, Die friendica Entwickler haben jüngst Update $update veröffentlicht,
aber als ich es installieren wollte, ist irgendetwas schief gegangen. aber als ich versucht habe es zu installieren ist etwas schrecklich schief gegangen.
Das sollte schnell repariert werden und alleine schaffe ich es nicht. Das sollte schnellst möglichst behoben werden und ich kann das nicht alleine machen.
Wende dich bitte an einen Friendica-Entwickler, wenn du mir nicht selbst helfen kannst. Bitte wende dich an einen friendica Entwickler, falls du mir nicht alleine helfen kannst. Meine Datenbank könnte unbrauchbar sein.
Meine Datenbank könnte ziemlich durcheinander sein.
Die Fehlermeldung ist '$error'. Die Fehlermeldung lautet '$error'.
Tut mir leid, Tut mir Leid!
dein Friendica Server unter $siteurl Deine friendica Instanz auf $siteurl

View file

@ -12,8 +12,9 @@ function theme_content(&$a){
$resize = get_pconfig(local_user(), 'cleanzero', 'resize' ); $resize = get_pconfig(local_user(), 'cleanzero', 'resize' );
$color = get_pconfig(local_user(), 'cleanzero', 'color' ); $color = get_pconfig(local_user(), 'cleanzero', 'color' );
$font_size = get_pconfig(local_user(), 'cleanzero', 'font_size' ); $font_size = get_pconfig(local_user(), 'cleanzero', 'font_size' );
$theme_width= get_pconfig(local_user(), 'cleanzero', 'theme_width' );
return cleanzero_form($a,$color,$font_size,$resize); return cleanzero_form($a,$color,$font_size,$resize,$theme_width);
} }
function theme_post(&$a){ function theme_post(&$a){
@ -24,6 +25,7 @@ function theme_post(&$a){
set_pconfig(local_user(), 'cleanzero', 'resize', $_POST['cleanzero_resize']); set_pconfig(local_user(), 'cleanzero', 'resize', $_POST['cleanzero_resize']);
set_pconfig(local_user(), 'cleanzero', 'color', $_POST['cleanzero_color']); set_pconfig(local_user(), 'cleanzero', 'color', $_POST['cleanzero_color']);
set_pconfig(local_user(), 'cleanzero', 'font_size', $_POST['cleanzero_font_size']); set_pconfig(local_user(), 'cleanzero', 'font_size', $_POST['cleanzero_font_size']);
set_pconfig(local_user(), 'cleanzero', 'theme_width', $_POST['cleanzero_theme_width']);
} }
} }
@ -32,8 +34,8 @@ function theme_admin(&$a){
$resize = get_config('cleanzero', 'resize' ); $resize = get_config('cleanzero', 'resize' );
$color = get_config('cleanzero', 'color' ); $color = get_config('cleanzero', 'color' );
$font_size = get_config('cleanzero', 'font_size' ); $font_size = get_config('cleanzero', 'font_size' );
$theme_width= get_config('cleanzero', 'theme_width' );
return cleanzero_form($a,$color,$font_size,$resize); return cleanzero_form($a,$color,$font_size,$resize,$theme_width);
} }
function theme_admin_post(&$a){ function theme_admin_post(&$a){
@ -41,11 +43,13 @@ function theme_admin_post(&$a){
set_config('cleanzero', 'resize', $_POST['cleanzero_resize']); set_config('cleanzero', 'resize', $_POST['cleanzero_resize']);
set_config('cleanzero', 'color', $_POST['cleanzero_color']); set_config('cleanzero', 'color', $_POST['cleanzero_color']);
set_config('cleanzero', 'font_size', $_POST['cleanzero_font_size']); set_config('cleanzero', 'font_size', $_POST['cleanzero_font_size']);
set_config('cleanzero', 'theme_width', $_POST['cleanzero_theme_width']);
} }
} }
function cleanzero_form(&$a, $color,$font_size,$resize){ function cleanzero_form(&$a, $color,$font_size,$resize,$theme_width){
$colors = array( $colors = array(
"cleanzero"=>"cleanzero", "cleanzero"=>"cleanzero",
"cleanzero-green"=>"green", "cleanzero-green"=>"green",
@ -65,6 +69,11 @@ function cleanzero_form(&$a, $color,$font_size,$resize){
"250"=>"3 (250px)", "250"=>"3 (250px)",
"150"=>"4 (150px)", "150"=>"4 (150px)",
); );
$theme_widths =array (
"standard"=>"standard",
"narrow"=>"narrow",
"wide"=>"wide",
);
$t = file_get_contents( dirname(__file__). "/theme_settings.tpl" ); $t = file_get_contents( dirname(__file__). "/theme_settings.tpl" );
$o .= replace_macros($t, array( $o .= replace_macros($t, array(
@ -73,6 +82,7 @@ function cleanzero_form(&$a, $color,$font_size,$resize){
'$title' => t("Theme settings"), '$title' => t("Theme settings"),
'$resize' => array('cleanzero_resize',t ('Set resize level for images in posts and comments (width and height)'),$resize,'',$resizes), '$resize' => array('cleanzero_resize',t ('Set resize level for images in posts and comments (width and height)'),$resize,'',$resizes),
'$font_size' => array('cleanzero_font_size', t('Set font-size for posts and comments'), $font_size, '', $font_sizes), '$font_size' => array('cleanzero_font_size', t('Set font-size for posts and comments'), $font_size, '', $font_sizes),
'$theme_width' => array('cleanzero_theme_width', t('Set theme width'), $theme_width, '', $theme_widths),
'$color' => array('cleanzero_color', t('Color scheme'), $color, '', $colors), '$color' => array('cleanzero_color', t('Color scheme'), $color, '', $colors),
)); ));
return $o; return $o;

View file

@ -1,21 +1,24 @@
<?php <?php
$color=false; $color=false;
$cleanzero_font_size=false; $cleanzero_font_size=false;
$cleanzero_theme_width=false;
$site_color = get_config("cleanzero","color"); $site_color = get_config("cleanzero","color");
$site_cleanzero_font_size = get_config("cleanzero", "font_size" ); $site_cleanzero_font_size = get_config("cleanzero", "font_size" );
$site_cleanzero_theme_width = get_config("cleanzero", "theme_width");
if (local_user()) { if (local_user()) {
$color = get_pconfig(local_user(), "cleanzero","color"); $color = get_pconfig(local_user(), "cleanzero","color");
$cleanzero_font_size = get_pconfig(local_user(), "cleanzero", "font_size"); $cleanzero_font_size = get_pconfig(local_user(), "cleanzero", "font_size");
$cleanzero_theme_width = get_pconfig(local_user(), "cleanzero", "theme_width");
} }
if ($color===false) $color=$site_color; if ($color===false) $color=$site_color;
if ($color===false) $color="cleanzero"; if ($color===false) $color="cleanzero";
if ($cleanzero_font_size===false) $cleanzero_font_size=$site_cleanzero_font_size; if ($cleanzero_font_size===false) $cleanzero_font_size=$site_cleanzero_font_size;
if ($cleanzero_theme_width===false) $cleanzero_theme_width=$site_cleanzero_theme_width;
if ($cleanzero_theme_width===false) $cleanzero_theme_width="standard";
if (file_exists("$THEMEPATH/$color/style.css")){ if (file_exists("$THEMEPATH/$color/style.css")){
@ -68,4 +71,70 @@
} }
"; ";
} }
if ($cleanzero_theme_width === "standard") {
echo "
section {
margin: 0px 10%;
margin-right:10%;
}
aside {
margin-left: 10%;
}
nav {
margin-left: 10%;
margin-right: 10%;
}
nav #site-location {
right: 10%;
}
";
}
if ($cleanzero_theme_width === "narrow") {
echo "
section {
margin: 0px 15%;
margin-right:15%;
}
aside {
margin-left: 15%;
}
nav {
margin-left: 15%;
margin-right: 15%;
}
nav #site-location {
right: 15%;
}
";
}
if ($cleanzero_theme_width === "wide") {
echo "
section {
margin: 0px 5%;
margin-right:5%;
}
aside {
margin-left: 5%;
}
nav {
margin-left: 5%;
margin-right: 5%;
}
nav #site-location {
right: 5%;
}
";
}

View file

@ -1,7 +1,7 @@
{{inc field_select.tpl with $field=$color}}{{endinc}} {{inc field_select.tpl with $field=$color}}{{endinc}}
{{inc field_select.tpl with $field=$font_size}}{{endinc}} {{inc field_select.tpl with $field=$font_size}}{{endinc}}
{{inc field_select.tpl with $field=$resize}}{{endinc}} {{inc field_select.tpl with $field=$resize}}{{endinc}}
{{inc field_select.tpl with $field=$theme_width}}{{endinc}}
<div class="settings-submit-wrapper"> <div class="settings-submit-wrapper">

View file

@ -31,6 +31,7 @@ $(document).ready(function() {
for (var Sitem=0, m = SavedID.length; Sitem < m; Sitem++) { for (var Sitem=0, m = SavedID.length; Sitem < m; Sitem++) {
$("#sortable_boxes").append($("#sortable_boxes").children("#" + SavedID[Sitem])); $("#sortable_boxes").append($("#sortable_boxes").children("#" + SavedID[Sitem]));
} }
}); });
function tautogrow(id){ function tautogrow(id){

View file

@ -1,3 +1,39 @@
<div id="twittersettings" style="display:none">
<form id="twittersettingsform" action="network" method="post" >
{{inc field_input.tpl with $field=$TSearchTerm}}{{endinc}}
<div class="settings-submit-wrapper">
<input id="twittersub" type="submit" value="$sub" class="settings-submit" name="diabook-settings-sub"></input>
</div>
</form>
</div>
<div id="mapcontrol" style="display:none;">
<form id="mapform" action="network" method="post" >
<span style="width: 500px;position: relative;float: right;right:20px;"><p>this ist still under development.
the idea is to provide a map with different layers(e.g. earth population, atomic power plants, wheat growing acreages, sunrise or what you want)
and markers(events, demos, friends, anything, that is intersting for you).
These layer and markers should be importable and deletable by the user.</p>
<p>help on this feature is very appreciated. i am not that good in js so it's a start, but needs tweaks and further dev.
just contact me, if you are intesrested in joining</p>
<p>http://localhost/friendica/profile/thomas</p>
<p>this is build with <b>mapquery</b> http://mapquery.org/ and
<b>openlayers</b>http://openlayers.org/</p>
</span>
<div id="map2" style="height:350px;width:350px;"></div>
<div id="mouseposition" style="width: 350px;"></div>
<div id="zoom">
zoom:<input type="text" id="mapzoom" value=""></input>
</div>
{{inc field_input.tpl with $field=$ELZoom}}{{endinc}}
{{inc field_input.tpl with $field=$ELPosX}}{{endinc}}
{{inc field_input.tpl with $field=$ELPosY}}{{endinc}}
<div class="settings-submit-wrapper">
<input id="mapsub" type="submit" value="$sub" class="settings-submit" name="diabook-settings-map-sub"></input>
</div>
</form>
</div>
<div id="pos_null" style="margin-bottom:-30px;"> <div id="pos_null" style="margin-bottom:-30px;">
</div> </div>
@ -7,11 +43,11 @@
{{ if $page }} {{ if $page }}
<div>$page</div> <div>$page</div>
{{ endif }} {{ endif }}
</div>
<div id="close_profiles"> <div id="close_profiles">
{{ if $comunity_profilest_title }} {{ if $comunity_profiles_title }}
<h3>$comunity_profilest_title<a id="close_comunity_profiles_icon" onClick="close_profiles()" class="icon close_box" title="close"></a></h3> <h3>$comunity_profiles_title<a id="close_comunity_profiles_icon" onClick="close_profiles()" class="icon close_box" title="$close"></a></h3>
<div id='lastusers-wrapper' class='items-wrapper'> <div id='lastusers-wrapper' class='items-wrapper'>
{{ for $comunity_profiles_items as $i }} {{ for $comunity_profiles_items as $i }}
$i $i
@ -22,7 +58,8 @@
<div id="close_helpers"> <div id="close_helpers">
{{ if $helpers }} {{ if $helpers }}
<h3>$helpers.title.1<a id="close_helpers_icon" onClick="close_helpers()" class="icon close_box" title="close"></a></h3> <h3>$helpers.title.1<a id="close_helpers_icon" onClick="close_helpers()" class="icon close_box" title="$close"></a></h3>
<a href="http://friendica.com/resources" title="How-to's" style="margin-left: 10px; " target="blank">How-To Guides</a><br>
<a href="http://kakste.com/profile/newhere" title="@NewHere" style="margin-left: 10px; " target="blank">NewHere</a><br> <a href="http://kakste.com/profile/newhere" title="@NewHere" style="margin-left: 10px; " target="blank">NewHere</a><br>
<a href="https://helpers.pyxis.uberspace.de/profile/helpers" style="margin-left: 10px; " title="Friendica Support" target="blank">Friendica Support</a><br> <a href="https://helpers.pyxis.uberspace.de/profile/helpers" style="margin-left: 10px; " title="Friendica Support" target="blank">Friendica Support</a><br>
<a href="https://letstalk.pyxis.uberspace.de/profile/letstalk" style="margin-left: 10px; " title="Let's talk" target="blank">Let's talk</a><br> <a href="https://letstalk.pyxis.uberspace.de/profile/letstalk" style="margin-left: 10px; " title="Let's talk" target="blank">Let's talk</a><br>
@ -32,7 +69,7 @@
<div id="close_services"> <div id="close_services">
{{ if $con_services }} {{ if $con_services }}
<h3>$con_services.title.1<a id="close_services_icon" onClick="close_services()" class="icon close_box" title="close"></a></h3> <h3>$con_services.title.1<a id="close_services_icon" onClick="close_services()" class="icon close_box" title="$close"></a></h3>
<div id="right_service_icons" style="margin-left: 16px; margin-top: 5px;"> <div id="right_service_icons" style="margin-left: 16px; margin-top: 5px;">
<a href="$url/facebook"><img alt="Facebook" src="view/theme/diabook/icons/facebook.png" title="Facebook"></a> <a href="$url/facebook"><img alt="Facebook" src="view/theme/diabook/icons/facebook.png" title="Facebook"></a>
<a href="$url/settings/connectors"><img alt="StatusNet" src="view/theme/diabook/icons/StatusNet.png?" title="StatusNet"></a> <a href="$url/settings/connectors"><img alt="StatusNet" src="view/theme/diabook/icons/StatusNet.png?" title="StatusNet"></a>
@ -48,7 +85,7 @@
<div id="close_friends" style="margin-bottom:53px;"> <div id="close_friends" style="margin-bottom:53px;">
{{ if $nv }} {{ if $nv }}
<h3>$nv.title.1<a id="close_friends_icon" onClick="close_friends()" class="icon close_box" title="close"></a></h3> <h3>$nv.title.1<a id="close_friends_icon" onClick="close_friends()" class="icon close_box" title="$close"></a></h3>
<a class="$nv.directory.2" href="$nv.directory.0" style="margin-left: 10px; " title="$nv.directory.3" >$nv.directory.1</a><br> <a class="$nv.directory.2" href="$nv.directory.0" style="margin-left: 10px; " title="$nv.directory.3" >$nv.directory.1</a><br>
<a class="$nv.global_directory.2" href="$nv.global_directory.0" target="blank" style="margin-left: 10px; " title="$nv.global_directory.3" >$nv.global_directory.1</a><br> <a class="$nv.global_directory.2" href="$nv.global_directory.0" target="blank" style="margin-left: 10px; " title="$nv.global_directory.3" >$nv.global_directory.1</a><br>
<a class="$nv.match.2" href="$nv.match.0" style="margin-left: 10px; " title="$nv.match.3" >$nv.match.1</a><br> <a class="$nv.match.2" href="$nv.match.0" style="margin-left: 10px; " title="$nv.match.3" >$nv.match.1</a><br>
@ -60,7 +97,7 @@ $nv.search
<div id="close_lastusers"> <div id="close_lastusers">
{{ if $lastusers_title }} {{ if $lastusers_title }}
<h3>$lastusers_title<a id="close_lastusers_icon" onClick="close_lastusers()" class="icon close_box" title="close"></a></h3> <h3>$lastusers_title<a id="close_lastusers_icon" onClick="close_lastusers()" class="icon close_box" title="$close"></a></h3>
<div id='lastusers-wrapper' class='items-wrapper'> <div id='lastusers-wrapper' class='items-wrapper'>
{{ for $lastusers_items as $i }} {{ for $lastusers_items as $i }}
$i $i
@ -80,7 +117,7 @@ $nv.search
<div id="close_lastphotos"> <div id="close_lastphotos">
{{ if $photos_title }} {{ if $photos_title }}
<h3>$photos_title<a id="close_photos_icon" onClick="close_lastphotos()" class="icon close_box" title="close"></a></h3> <h3>$photos_title<a id="close_photos_icon" onClick="close_lastphotos()" class="icon close_box" title="$close"></a></h3>
<div id='ra-photos-wrapper' class='items-wrapper'> <div id='ra-photos-wrapper' class='items-wrapper'>
{{ for $photos_items as $i }} {{ for $photos_items as $i }}
$i $i
@ -91,7 +128,7 @@ $nv.search
<div id="close_lastlikes"> <div id="close_lastlikes">
{{ if $like_title }} {{ if $like_title }}
<h3>$like_title<a id="close_lastlikes_icon" onClick="close_lastlikes()" class="icon close_box" title="close"></a></h3> <h3>$like_title<a id="close_lastlikes_icon" onClick="close_lastlikes()" class="icon close_box" title="$close"></a></h3>
<ul id='likes'> <ul id='likes'>
{{ for $like_items as $i }} {{ for $like_items as $i }}
<li id='ra-photos-wrapper'>$i</li> <li id='ra-photos-wrapper'>$i</li>
@ -100,6 +137,18 @@ $nv.search
{{ endif }} {{ endif }}
</div> </div>
<div id="close_twitter">
<h3 style="height:1.17em">$twitter.title.1<a id="close_twitter_icon" onClick="close_twitter()" class="icon close_box" title="$close"></a></h3>
<div id="twitter"> <div id="twitter">
</div> </div>
</div> </div>
<div id="close_mapquery">
{{ if $mapquery }}
<h3>$mapquery.title.1<a id="close_mapquery_icon" onClick="close_mapquery()" class="icon close_box" title="$close"></a></h3>
<div id="map" style="height:165px;width:165px;margin-left:3px;margin-top:3px;margin-bottom:1px;">
</div>
<div style="font-size:9px;margin-left:3px;">Data CC-By-SA by <a href="http://openstreetmap.org/">OpenStreetMap</a></div>
{{ endif }}
</div>
</div>

View file

@ -13,8 +13,12 @@ function theme_content(&$a){
$line_height = get_pconfig(local_user(), 'diabook', 'line_height' ); $line_height = get_pconfig(local_user(), 'diabook', 'line_height' );
$resolution = get_pconfig(local_user(), 'diabook', 'resolution' ); $resolution = get_pconfig(local_user(), 'diabook', 'resolution' );
$color = get_pconfig(local_user(), 'diabook', 'color' ); $color = get_pconfig(local_user(), 'diabook', 'color' );
$TSearchTerm = get_pconfig(local_user(), 'diabook', 'TSearchTerm' );
$ELZoom = get_pconfig(local_user(), 'diabook', 'ELZoom' );
$ELPosX = get_pconfig(local_user(), 'diabook', 'ELPosX' );
$ELPosY = get_pconfig(local_user(), 'diabook', 'ELPosY' );
return diabook_form($a,$font_size, $line_height, $resolution, $color); return diabook_form($a,$font_size, $line_height, $resolution, $color, $TSearchTerm, $ELZoom, $ELPosX, $ELPosY);
} }
function theme_post(&$a){ function theme_post(&$a){
@ -26,6 +30,10 @@ function theme_post(&$a){
set_pconfig(local_user(), 'diabook', 'line_height', $_POST['diabook_line_height']); set_pconfig(local_user(), 'diabook', 'line_height', $_POST['diabook_line_height']);
set_pconfig(local_user(), 'diabook', 'resolution', $_POST['diabook_resolution']); set_pconfig(local_user(), 'diabook', 'resolution', $_POST['diabook_resolution']);
set_pconfig(local_user(), 'diabook', 'color', $_POST['diabook_color']); set_pconfig(local_user(), 'diabook', 'color', $_POST['diabook_color']);
set_pconfig(local_user(), 'diabook', 'TSearchTerm', $_POST['diabook_TSearchTerm']);
set_pconfig(local_user(), 'diabook', 'ELZoom', $_POST['diabook_ELZoom']);
set_pconfig(local_user(), 'diabook', 'ELPosX', $_POST['diabook_ELPosX']);
set_pconfig(local_user(), 'diabook', 'ELPosY', $_POST['diabook_ELPosY']);
} }
} }
@ -35,8 +43,12 @@ function theme_admin(&$a){
$line_height = get_config('diabook', 'line_height' ); $line_height = get_config('diabook', 'line_height' );
$resolution = get_config('diabook', 'resolution' ); $resolution = get_config('diabook', 'resolution' );
$color = get_config('diabook', 'color' ); $color = get_config('diabook', 'color' );
$TSearchTerm = get_config('diabook', 'TSearchTerm' );
$ELZoom = get_config('diabook', 'ELZoom' );
$ELPosX = get_config('diabook', 'ELPosX' );
$ELPosY = get_config('diabook', 'ELPosY' );
return diabook_form($a,$font_size, $line_height, $resolution, $color); return diabook_form($a,$font_size, $line_height, $resolution, $color, $TSearchTerm, $ELZoom, $ELPosX, $ELPosY);
} }
function theme_admin_post(&$a){ function theme_admin_post(&$a){
@ -45,11 +57,15 @@ function theme_admin_post(&$a){
set_config('diabook', 'line_height', $_POST['diabook_line_height']); set_config('diabook', 'line_height', $_POST['diabook_line_height']);
set_config('diabook', 'resolution', $_POST['diabook_resolution']); set_config('diabook', 'resolution', $_POST['diabook_resolution']);
set_config('diabook', 'color', $_POST['diabook_color']); set_config('diabook', 'color', $_POST['diabook_color']);
set_config('diabook', 'TSearchTerm', $_POST['diabook_TSearchTerm']);
set_config('diabook', 'ELZoom', $_POST['diabook_ELZoom']);
set_config('diabook', 'ELPosX', $_POST['diabook_ELPosX']);
set_config('diabook', 'ELPosY', $_POST['diabook_ELPosY']);
} }
} }
function diabook_form(&$a, $font_size, $line_height, $resolution, $color){ function diabook_form(&$a, $font_size, $line_height, $resolution, $color, $TSearchTerm, $ELZoom, $ELPosX, $ELPosY){
$line_heights = array( $line_heights = array(
"1.3"=>"1.3", "1.3"=>"1.3",
"---"=>"---", "---"=>"---",
@ -95,6 +111,10 @@ function diabook_form(&$a, $font_size, $line_height, $resolution, $color){
'$line_height' => array('diabook_line_height', t('Set line-height for posts and comments'), $line_height, '', $line_heights), '$line_height' => array('diabook_line_height', t('Set line-height for posts and comments'), $line_height, '', $line_heights),
'$resolution' => array('diabook_resolution', t('Set resolution for middle column'), $resolution, '', $resolutions), '$resolution' => array('diabook_resolution', t('Set resolution for middle column'), $resolution, '', $resolutions),
'$color' => array('diabook_color', t('Set color scheme'), $color, '', $colors), '$color' => array('diabook_color', t('Set color scheme'), $color, '', $colors),
'$TSearchTerm' => array('diabook_TSearchTerm', t('Set twitter search term'), $TSearchTerm, '', $TSearchTerm),
'$ELZoom' => array('diabook_ELZoom', t('Set zoomfactor for Earth Layer'), $ELZoom, '', $ELZoom),
'$ELPosX' => array('diabook_ELPosX', t('Set longitude (X) for Earth Layer'), $ELPosX, '', $ELPosX),
'$ELPosY' => array('diabook_ELPosY', t('Set latitude (Y) for Earth Layer'), $ELPosY, '', $ELPosY),
)); ));
return $o; return $o;
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,107 @@
/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for
* full list of contributors). Published under the MIT license.
* See https://github.com/mapquery/mapquery/blob/master/LICENSE for the
* full text of the license. */
/**
#jquery.mapquery.mqMousePosition.js
The file containing the mqMousePosition Widget
### *$('selector')*.`mqMousePosition([options])`
_version added 0.1_
####**Description**: create a widget to show the location under the mouse pointer
+ **options**
- **map**: the mapquery instance
- **precision**: the number of decimals (default 2)
- **x**: the label for the x-coordinate (default x)
- **y**: the label for the y-coordinate (default y)
>Returns: widget
The mqMousePosition allows us to show the coordinates under the mouse pointer
$('#mousepointer').mqMousePointer({
map: '#map'
});
*/
(function($) {
$.template('mqMousePosition',
'<div class="mq-mouseposition ui-widget ui-helper-clearfix ">'+
'<span class="ui-widget-content ui-helper-clearfix ui-corner-all ui-corner-all">'+
'<div id="mq-mouseposition-x" class="mq-mouseposition-coordinate">'+
'</div><div id="mq-mouseposition-y" class="mq-mouseposition-coordinate">'+
'</div></div></span>');
$.widget("mapQuery.mqMousePosition", {
options: {
// The MapQuery instance
map: undefined,
// The number of decimals for the coordinates
// default: 2
// TODO: JCB20110630 use dynamic precision based on the pixel
// resolution, no need to configure precision
precision: 2,
// The label of the x-value
// default: 'x'
x: 'x',
// The label of the y-value
// default: 'y'
y: 'y'
},
_create: function() {
var map;
var self = this;
var element = this.element;
var mousepos;
//get the mapquery object
map = $(this.options.map).data('mapQuery');
map.bind("mousemove",
{widget:self,map:map},
self._onMouseMove);
$.tmpl('mqMousePosition',{
mouseposition:mousepos
}).appendTo(element);
},
_destroy: function() {
this.element.removeClass(' ui-widget ui-helper-clearfix ' +
'ui-corner-all')
.empty();
},
_mouseMoved: function(data, element, map) {
var x = data.layerX;
var y = data.layerY;
var mapProjection = map.options.projection;
var displayProjection = map.options.projection;
//if the coordinates should be displayed in something else,
//set them via the map displayProjection option
var pos = map.olMap.getLonLatFromLayerPx(new OpenLayers.Pixel(x,y));
if(map.options.displayProjection) {
displayProjection = map.options.displayProjection;
pos=pos.transform(
new OpenLayers.Projection(mapProjection),
new OpenLayers.Projection(displayProjection));
}
$("#mq-mouseposition-x", element).html(
this.options.x+': '+pos.lon.toFixed(this.options.precision));
$("#mq-mouseposition-y", element).html(
this.options.y+': '+pos.lat.toFixed(this.options.precision));
},
_onMouseMove: function(evt, data) {
evt.data.widget._mouseMoved(data,evt.data.control,evt.data.map);
}
});
})(jQuery);

View file

@ -0,0 +1,85 @@
/* Copyright (c) 2011 by MapQuery Contributors (see AUTHORS for
* full list of contributors). Published under the MIT license.
* See https://github.com/mapquery/mapquery/blob/master/LICENSE for the
* full text of the license. */
/**
#jquery.mapquery.mqZoomSlider.js
The file containing the mqZoomSlider Widget
### *$('selector')*.`mqZoomSlider([options])`
_version added 0.1_
####**Description**: create a widget to show a zoom slider
+ **options**:
- **map**: the mapquery instance
>Returns: widget
The mqZoomSlider widget allows us to display a vertical zoom slider.
$('#zoomslider').mqZoomSlider({
map: '#map'
});
*/
(function($) {
$.template('mqZoomSlider',
'<div class="mq-zoomslider ui-widget ui-helper-clearfix ">'+
'<div class="mq-zoomslider-slider"></div>'+
'</div>');
$.widget("mapQuery.mqZoomSlider", {
options: {
// The MapQuery instance
map: undefined
},
_create: function() {
var map;
var zoom;
var numzoomlevels;
var self = this;
var element = this.element;
//get the mapquery object
map = $(this.options.map).data('mapQuery');
$.tmpl('mqZoomSlider').appendTo(element);
numzoomlevels = map.options.numZoomLevels;
$(".mq-zoomslider-slider", element).slider({
max: numzoomlevels,
min:2,
orientation: 'vertical',
step: 1,
value: numzoomlevels - map.center().zoom,
slide: function(event, ui) {
map.center({zoom:numzoomlevels-ui.value});
},
change: function(event, ui) {
map.center({zoom:numzoomlevels-ui.value});
}
});
map.bind("zoomend",
{widget:self,map:map,control:element},
self._onZoomEnd);
},
_destroy: function() {
this.element.removeClass(' ui-widget ui-helper-clearfix ' +
'ui-corner-all')
.empty();
},
_zoomEnd: function (element,map) {
var slider = element.find('.mq-zoomslider-slider');
slider.slider('value',map.options.numZoomLevels-map.center().zoom);
},
_onZoomEnd: function(evt) {
evt.data.widget._zoomEnd(evt.data.control,evt.data.map);
}
});
})(jQuery);

View file

@ -0,0 +1,84 @@
/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)
* Licensed under the MIT License (LICENSE.txt).
*
* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
* Thanks to: Seamus Leahy for adding deltaX and deltaY
*
* Version: 3.0.6
*
* Requires: 1.2.2+
*/
(function($) {
var types = ['DOMMouseScroll', 'mousewheel'];
if ($.event.fixHooks) {
for ( var i=types.length; i; ) {
$.event.fixHooks[ types[--i] ] = $.event.mouseHooks;
}
}
$.event.special.mousewheel = {
setup: function() {
if ( this.addEventListener ) {
for ( var i=types.length; i; ) {
this.addEventListener( types[--i], handler, false );
}
} else {
this.onmousewheel = handler;
}
},
teardown: function() {
if ( this.removeEventListener ) {
for ( var i=types.length; i; ) {
this.removeEventListener( types[--i], handler, false );
}
} else {
this.onmousewheel = null;
}
}
};
$.fn.extend({
mousewheel: function(fn) {
return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
},
unmousewheel: function(fn) {
return this.unbind("mousewheel", fn);
}
});
function handler(event) {
var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;
event = $.event.fix(orgEvent);
event.type = "mousewheel";
// Old school scrollwheel delta
if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta/120; }
if ( orgEvent.detail ) { delta = -orgEvent.detail/3; }
// New school multidimensional scroll (touchpads) deltas
deltaY = delta;
// Gecko
if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
deltaY = 0;
deltaX = -1*delta;
}
// Webkit
if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; }
if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; }
// Add event and delta to the front of the arguments
args.unshift(event, delta, deltaX, deltaY);
return ($.event.dispatch || $.event.handle).apply(this, args);
}
})(jQuery);

View file

@ -0,0 +1,486 @@
/*
* jQuery Templating Plugin
* Copyright 2010, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
*/
(function( jQuery, undefined ){
var oldManip = jQuery.fn.domManip, tmplItmAtt = "_tmplitem", htmlExpr = /^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,
newTmplItems = {}, wrappedItems = {}, appendToTmplItems, topTmplItem = { key: 0, data: {} }, itemKey = 0, cloneIndex = 0, stack = [];
function newTmplItem( options, parentItem, fn, data ) {
// Returns a template item data structure for a new rendered instance of a template (a 'template item').
// The content field is a hierarchical array of strings and nested items (to be
// removed and replaced by nodes field of dom elements, once inserted in DOM).
var newItem = {
data: data || (parentItem ? parentItem.data : {}),
_wrap: parentItem ? parentItem._wrap : null,
tmpl: null,
parent: parentItem || null,
nodes: [],
calls: tiCalls,
nest: tiNest,
wrap: tiWrap,
html: tiHtml,
update: tiUpdate
};
if ( options ) {
jQuery.extend( newItem, options, { nodes: [], parent: parentItem } );
}
if ( fn ) {
// Build the hierarchical content to be used during insertion into DOM
newItem.tmpl = fn;
newItem._ctnt = newItem._ctnt || newItem.tmpl( jQuery, newItem );
newItem.key = ++itemKey;
// Keep track of new template item, until it is stored as jQuery Data on DOM element
(stack.length ? wrappedItems : newTmplItems)[itemKey] = newItem;
}
return newItem;
}
// Override appendTo etc., in order to provide support for targeting multiple elements. (This code would disappear if integrated in jquery core).
jQuery.each({
appendTo: "append",
prependTo: "prepend",
insertBefore: "before",
insertAfter: "after",
replaceAll: "replaceWith"
}, function( name, original ) {
jQuery.fn[ name ] = function( selector ) {
var ret = [], insert = jQuery( selector ), elems, i, l, tmplItems,
parent = this.length === 1 && this[0].parentNode;
appendToTmplItems = newTmplItems || {};
if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
insert[ original ]( this[0] );
ret = this;
} else {
for ( i = 0, l = insert.length; i < l; i++ ) {
cloneIndex = i;
elems = (i > 0 ? this.clone(true) : this).get();
jQuery.fn[ original ].apply( jQuery(insert[i]), elems );
ret = ret.concat( elems );
}
cloneIndex = 0;
ret = this.pushStack( ret, name, insert.selector );
}
tmplItems = appendToTmplItems;
appendToTmplItems = null;
jQuery.tmpl.complete( tmplItems );
return ret;
};
});
jQuery.fn.extend({
// Use first wrapped element as template markup.
// Return wrapped set of template items, obtained by rendering template against data.
tmpl: function( data, options, parentItem ) {
return jQuery.tmpl( this[0], data, options, parentItem );
},
// Find which rendered template item the first wrapped DOM element belongs to
tmplItem: function() {
return jQuery.tmplItem( this[0] );
},
// Consider the first wrapped element as a template declaration, and get the compiled template or store it as a named template.
template: function( name ) {
return jQuery.template( name, this[0] );
},
domManip: function( args, table, callback, options ) {
// This appears to be a bug in the appendTo, etc. implementation
// it should be doing .call() instead of .apply(). See #6227
if ( args[0] && args[0].nodeType ) {
var dmArgs = jQuery.makeArray( arguments ), argsLength = args.length, i = 0, tmplItem;
while ( i < argsLength && !(tmplItem = jQuery.data( args[i++], "tmplItem" ))) {}
if ( argsLength > 1 ) {
dmArgs[0] = [jQuery.makeArray( args )];
}
if ( tmplItem && cloneIndex ) {
dmArgs[2] = function( fragClone ) {
// Handler called by oldManip when rendered template has been inserted into DOM.
jQuery.tmpl.afterManip( this, fragClone, callback );
};
}
oldManip.apply( this, dmArgs );
} else {
oldManip.apply( this, arguments );
}
cloneIndex = 0;
if ( !appendToTmplItems ) {
jQuery.tmpl.complete( newTmplItems );
}
return this;
}
});
jQuery.extend({
// Return wrapped set of template items, obtained by rendering template against data.
tmpl: function( tmpl, data, options, parentItem ) {
var ret, topLevel = !parentItem;
if ( topLevel ) {
// This is a top-level tmpl call (not from a nested template using {{tmpl}})
parentItem = topTmplItem;
tmpl = jQuery.template[tmpl] || jQuery.template( null, tmpl );
wrappedItems = {}; // Any wrapped items will be rebuilt, since this is top level
} else if ( !tmpl ) {
// The template item is already associated with DOM - this is a refresh.
// Re-evaluate rendered template for the parentItem
tmpl = parentItem.tmpl;
newTmplItems[parentItem.key] = parentItem;
parentItem.nodes = [];
if ( parentItem.wrapped ) {
updateWrapped( parentItem, parentItem.wrapped );
}
// Rebuild, without creating a new template item
return jQuery( build( parentItem, null, parentItem.tmpl( jQuery, parentItem ) ));
}
if ( !tmpl ) {
return []; // Could throw...
}
if ( typeof data === "function" ) {
data = data.call( parentItem || {} );
}
if ( options && options.wrapped ) {
updateWrapped( options, options.wrapped );
}
ret = jQuery.isArray( data ) ?
jQuery.map( data, function( dataItem ) {
return dataItem ? newTmplItem( options, parentItem, tmpl, dataItem ) : null;
}) :
[ newTmplItem( options, parentItem, tmpl, data ) ];
return topLevel ? jQuery( build( parentItem, null, ret ) ) : ret;
},
// Return rendered template item for an element.
tmplItem: function( elem ) {
var tmplItem;
if ( elem instanceof jQuery ) {
elem = elem[0];
}
while ( elem && elem.nodeType === 1 && !(tmplItem = jQuery.data( elem, "tmplItem" )) && (elem = elem.parentNode) ) {}
return tmplItem || topTmplItem;
},
// Set:
// Use $.template( name, tmpl ) to cache a named template,
// where tmpl is a template string, a script element or a jQuery instance wrapping a script element, etc.
// Use $( "selector" ).template( name ) to provide access by name to a script block template declaration.
// Get:
// Use $.template( name ) to access a cached template.
// Also $( selectorToScriptBlock ).template(), or $.template( null, templateString )
// will return the compiled template, without adding a name reference.
// If templateString includes at least one HTML tag, $.template( templateString ) is equivalent
// to $.template( null, templateString )
template: function( name, tmpl ) {
if (tmpl) {
// Compile template and associate with name
if ( typeof tmpl === "string" ) {
// This is an HTML string being passed directly in.
tmpl = buildTmplFn( tmpl )
} else if ( tmpl instanceof jQuery ) {
tmpl = tmpl[0] || {};
}
if ( tmpl.nodeType ) {
// If this is a template block, use cached copy, or generate tmpl function and cache.
tmpl = jQuery.data( tmpl, "tmpl" ) || jQuery.data( tmpl, "tmpl", buildTmplFn( tmpl.innerHTML ));
}
return typeof name === "string" ? (jQuery.template[name] = tmpl) : tmpl;
}
// Return named compiled template
return name ? (typeof name !== "string" ? jQuery.template( null, name ):
(jQuery.template[name] ||
// If not in map, treat as a selector. (If integrated with core, use quickExpr.exec)
jQuery.template( null, htmlExpr.test( name ) ? name : jQuery( name )))) : null;
},
encode: function( text ) {
// Do HTML encoding replacing < > & and ' and " by corresponding entities.
return ("" + text).split("<").join("&lt;").split(">").join("&gt;").split('"').join("&#34;").split("'").join("&#39;");
}
});
jQuery.extend( jQuery.tmpl, {
tag: {
"tmpl": {
_default: { $2: "null" },
open: "if($notnull_1){_=_.concat($item.nest($1,$2));}"
// tmpl target parameter can be of type function, so use $1, not $1a (so not auto detection of functions)
// This means that {{tmpl foo}} treats foo as a template (which IS a function).
// Explicit parens can be used if foo is a function that returns a template: {{tmpl foo()}}.
},
"wrap": {
_default: { $2: "null" },
open: "$item.calls(_,$1,$2);_=[];",
close: "call=$item.calls();_=call._.concat($item.wrap(call,_));"
},
"each": {
_default: { $2: "$index, $value" },
open: "if($notnull_1){$.each($1a,function($2){with(this){",
close: "}});}"
},
"if": {
open: "if(($notnull_1) && $1a){",
close: "}"
},
"else": {
_default: { $1: "true" },
open: "}else if(($notnull_1) && $1a){"
},
"html": {
// Unecoded expression evaluation.
open: "if($notnull_1){_.push($1a);}"
},
"=": {
// Encoded expression evaluation. Abbreviated form is ${}.
_default: { $1: "$data" },
open: "if($notnull_1){_.push($.encode($1a));}"
},
"!": {
// Comment tag. Skipped by parser
open: ""
}
},
// This stub can be overridden, e.g. in jquery.tmplPlus for providing rendered events
complete: function( items ) {
newTmplItems = {};
},
// Call this from code which overrides domManip, or equivalent
// Manage cloning/storing template items etc.
afterManip: function afterManip( elem, fragClone, callback ) {
// Provides cloned fragment ready for fixup prior to and after insertion into DOM
var content = fragClone.nodeType === 11 ?
jQuery.makeArray(fragClone.childNodes) :
fragClone.nodeType === 1 ? [fragClone] : [];
// Return fragment to original caller (e.g. append) for DOM insertion
callback.call( elem, fragClone );
// Fragment has been inserted:- Add inserted nodes to tmplItem data structure. Replace inserted element annotations by jQuery.data.
storeTmplItems( content );
cloneIndex++;
}
});
//========================== Private helper functions, used by code above ==========================
function build( tmplItem, nested, content ) {
// Convert hierarchical content into flat string array
// and finally return array of fragments ready for DOM insertion
var frag, ret = content ? jQuery.map( content, function( item ) {
return (typeof item === "string") ?
// Insert template item annotations, to be converted to jQuery.data( "tmplItem" ) when elems are inserted into DOM.
(tmplItem.key ? item.replace( /(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g, "$1 " + tmplItmAtt + "=\"" + tmplItem.key + "\" $2" ) : item) :
// This is a child template item. Build nested template.
build( item, tmplItem, item._ctnt );
}) :
// If content is not defined, insert tmplItem directly. Not a template item. May be a string, or a string array, e.g. from {{html $item.html()}}.
tmplItem;
if ( nested ) {
return ret;
}
// top-level template
ret = ret.join("");
// Support templates which have initial or final text nodes, or consist only of text
// Also support HTML entities within the HTML markup.
ret.replace( /^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/, function( all, before, middle, after) {
frag = jQuery( middle ).get();
storeTmplItems( frag );
if ( before ) {
frag = unencode( before ).concat(frag);
}
if ( after ) {
frag = frag.concat(unencode( after ));
}
});
return frag ? frag : unencode( ret );
}
function unencode( text ) {
// Use createElement, since createTextNode will not render HTML entities correctly
var el = document.createElement( "div" );
el.innerHTML = text;
return jQuery.makeArray(el.childNodes);
}
// Generate a reusable function that will serve to render a template against data
function buildTmplFn( markup ) {
return new Function("jQuery","$item",
"var $=jQuery,call,_=[],$data=$item.data;" +
// Introduce the data as local variables using with(){}
"with($data){_.push('" +
// Convert the template into pure JavaScript
jQuery.trim(markup)
.replace( /([\\'])/g, "\\$1" )
.replace( /[\r\t\n]/g, " " )
.replace( /\$\{([^\}]*)\}/g, "{{= $1}}" )
.replace( /\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,
function( all, slash, type, fnargs, target, parens, args ) {
var tag = jQuery.tmpl.tag[ type ], def, expr, exprAutoFnDetect;
if ( !tag ) {
throw "Template command not found: " + type;
}
def = tag._default || [];
if ( parens && !/\w$/.test(target)) {
target += parens;
parens = "";
}
if ( target ) {
target = unescape( target );
args = args ? ("," + unescape( args ) + ")") : (parens ? ")" : "");
// Support for target being things like a.toLowerCase();
// In that case don't call with template item as 'this' pointer. Just evaluate...
expr = parens ? (target.indexOf(".") > -1 ? target + parens : ("(" + target + ").call($item" + args)) : target;
exprAutoFnDetect = parens ? expr : "(typeof(" + target + ")==='function'?(" + target + ").call($item):(" + target + "))";
} else {
exprAutoFnDetect = expr = def.$1 || "null";
}
fnargs = unescape( fnargs );
return "');" +
tag[ slash ? "close" : "open" ]
.split( "$notnull_1" ).join( target ? "typeof(" + target + ")!=='undefined' && (" + target + ")!=null" : "true" )
.split( "$1a" ).join( exprAutoFnDetect )
.split( "$1" ).join( expr )
.split( "$2" ).join( fnargs ?
fnargs.replace( /\s*([^\(]+)\s*(\((.*?)\))?/g, function( all, name, parens, params ) {
params = params ? ("," + params + ")") : (parens ? ")" : "");
return params ? ("(" + name + ").call($item" + params) : all;
})
: (def.$2||"")
) +
"_.push('";
}) +
"');}return _;"
);
}
function updateWrapped( options, wrapped ) {
// Build the wrapped content.
options._wrap = build( options, true,
// Suport imperative scenario in which options.wrapped can be set to a selector or an HTML string.
jQuery.isArray( wrapped ) ? wrapped : [htmlExpr.test( wrapped ) ? wrapped : jQuery( wrapped ).html()]
).join("");
}
function unescape( args ) {
return args ? args.replace( /\\'/g, "'").replace(/\\\\/g, "\\" ) : null;
}
function outerHtml( elem ) {
var div = document.createElement("div");
div.appendChild( elem.cloneNode(true) );
return div.innerHTML;
}
// Store template items in jQuery.data(), ensuring a unique tmplItem data data structure for each rendered template instance.
function storeTmplItems( content ) {
var keySuffix = "_" + cloneIndex, elem, elems, newClonedItems = {}, i, l, m;
for ( i = 0, l = content.length; i < l; i++ ) {
if ( (elem = content[i]).nodeType !== 1 ) {
continue;
}
elems = elem.getElementsByTagName("*");
for ( m = elems.length - 1; m >= 0; m-- ) {
processItemKey( elems[m] );
}
processItemKey( elem );
}
function processItemKey( el ) {
var pntKey, pntNode = el, pntItem, tmplItem, key;
// Ensure that each rendered template inserted into the DOM has its own template item,
if ( (key = el.getAttribute( tmplItmAtt ))) {
while ( pntNode.parentNode && (pntNode = pntNode.parentNode).nodeType === 1 && !(pntKey = pntNode.getAttribute( tmplItmAtt ))) { }
if ( pntKey !== key ) {
// The next ancestor with a _tmplitem expando is on a different key than this one.
// So this is a top-level element within this template item
// Set pntNode to the key of the parentNode, or to 0 if pntNode.parentNode is null, or pntNode is a fragment.
pntNode = pntNode.parentNode ? (pntNode.nodeType === 11 ? 0 : (pntNode.getAttribute( tmplItmAtt ) || 0)) : 0;
if ( !(tmplItem = newTmplItems[key]) ) {
// The item is for wrapped content, and was copied from the temporary parent wrappedItem.
tmplItem = wrappedItems[key];
tmplItem = newTmplItem( tmplItem, newTmplItems[pntNode]||wrappedItems[pntNode], null, true );
tmplItem.key = ++itemKey;
newTmplItems[itemKey] = tmplItem;
}
if ( cloneIndex ) {
cloneTmplItem( key );
}
}
el.removeAttribute( tmplItmAtt );
} else if ( cloneIndex && (tmplItem = jQuery.data( el, "tmplItem" )) ) {
// This was a rendered element, cloned during append or appendTo etc.
// TmplItem stored in jQuery data has already been cloned in cloneCopyEvent. We must replace it with a fresh cloned tmplItem.
cloneTmplItem( tmplItem.key );
newTmplItems[tmplItem.key] = tmplItem;
pntNode = jQuery.data( el.parentNode, "tmplItem" );
pntNode = pntNode ? pntNode.key : 0;
}
if ( tmplItem ) {
pntItem = tmplItem;
// Find the template item of the parent element.
// (Using !=, not !==, since pntItem.key is number, and pntNode may be a string)
while ( pntItem && pntItem.key != pntNode ) {
// Add this element as a top-level node for this rendered template item, as well as for any
// ancestor items between this item and the item of its parent element
pntItem.nodes.push( el );
pntItem = pntItem.parent;
}
// Delete content built during rendering - reduce API surface area and memory use, and avoid exposing of stale data after rendering...
delete tmplItem._ctnt;
delete tmplItem._wrap;
// Store template item as jQuery data on the element
jQuery.data( el, "tmplItem", tmplItem );
}
function cloneTmplItem( key ) {
key = key + keySuffix;
tmplItem = newClonedItems[key] =
(newClonedItems[key] || newTmplItem( tmplItem, newTmplItems[tmplItem.parent.key + keySuffix] || tmplItem.parent, null, true ));
}
}
}
//---- Helper functions for template item ----
function tiCalls( content, tmpl, data, options ) {
if ( !content ) {
return stack.pop();
}
stack.push({ _: content, tmpl: tmpl, item:this, data: data, options: options });
}
function tiNest( tmpl, data, options ) {
// nested template, using {{tmpl}} tag
return jQuery.tmpl( jQuery.template( tmpl ), data, options, this );
}
function tiWrap( call, wrapped ) {
// nested template, using {{wrap}} tag
var options = call.options || {};
options.wrapped = wrapped;
// Apply the template, which may incorporate wrapped content,
return jQuery.tmpl( jQuery.template( call.tmpl ), call.data, options, call.item );
}
function tiHtml( filter, textOnly ) {
var wrapped = this._wrap;
return jQuery.map(
jQuery( jQuery.isArray( wrapped ) ? wrapped.join("") : wrapped ).filter( filter || "*" ),
function(e) {
return textOnly ?
e.innerText || e.textContent :
e.outerHTML || outerHtml(e);
});
}
function tiUpdate() {
var coll = this.nodes;
jQuery.tmpl( null, null, null, this).insertBefore( coll[0] );
jQuery( coll ).remove();
}
})( jQuery );

View file

@ -31,7 +31,7 @@
opts.title = opts.term; opts.title = opts.term;
opts.title = opts.title || ''; opts.title = opts.title || '';
text = opts.titleLink ? ('<a href="'+ opts.titleLink +'">'+ opts.title + '</a>') : ('<span>' + opts.title +'<a id="close_friends_icon" onClick="close_twitter()" class="icon close_box" title="close"></a>'+ '</span>'); text = opts.titleLink ? ('<a href="'+ opts.titleLink +'">'+ opts.title + '</a>') : ('<span>' + opts.title +'</span>');
$text = $(text); $text = $(text);
if (opts.titleLink) if (opts.titleLink)
$text.css(opts.css['titleLink']); $text.css(opts.css['titleLink']);
@ -210,7 +210,7 @@
loading: { padding: '20px', textAlign: 'center', color: '#888' }, loading: { padding: '20px', textAlign: 'center', color: '#888' },
text: {}, text: {},
time: { fontSize: 'smaller', color: '#888' }, time: { fontSize: 'smaller', color: '#888' },
title: { 'border-bottom': '1px solid #D2D2D2', 'padding-top': '5px', 'padding-bottom': '0px', 'padding-left': '9px', 'margin-bottom': '0px', 'margin-top': '30px' , 'display': 'block', 'font-size': '1.17em', 'font-weight': 'bold'}, title: { 'display': 'none'},
titleLink: { textDecoration: 'none', color: '#3B5998' }, titleLink: { textDecoration: 'none', color: '#3B5998' },
user: { fontWeight: 'bold' } user: { fontWeight: 'bold' }
} }

View file

@ -1,4 +1,4 @@
<a class="embed_yt" href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); yt_iframe();javascript:$(this).parent().css("height", "370px"); return false;' style='float:left; margin: 1em; position: relative;'> <a class="embed_yt" href='$embedurl' onclick='this.innerHTML=Base64.decode("$escapedhtml"); yt_iframe();javascript:$(this).parent().css("height", "450px"); return false;' style='float:left; margin: 1em; position: relative;'>
<img width='$tw' height='$th' src='$turl' > <img width='$tw' height='$th' src='$turl' >
<div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url(images/icons/48/play.png) no-repeat center center;'></div> <div style='position: absolute; top: 0px; left: 0px; width: $twpx; height: $thpx; background: url(images/icons/48/play.png) no-repeat center center;'></div>
</a> </a>

View file

@ -3,21 +3,18 @@
/* /*
* Name: Diabook * Name: Diabook
* Description: Diabook: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu * Description: Diabook: report bugs and request here: http://pad.toktan.org/p/diabook or contact me : thomas_bierey@friendica.eu
* Version: (Version: 1.025) * Version: (Version: 1.026)
* Author: * Author:
*/ */
$a = get_app(); $a = get_app();
$a->theme_info = array(
'family' => 'diabook',
'version' => '1.025'
);
function diabook_init(&$a) { function diabook_init(&$a) {
//print diabook-version for debugging //print diabook-version for debugging
$diabook_version = "Diabook (Version: 1.025)"; $diabook_version = "Diabook (Version: 1.026)";
$a->page['htmlhead'] .= sprintf('<script "%s" ></script>', $diabook_version); $a->page['htmlhead'] .= sprintf('<META NAME="theme" CONTENT="%s"/>', $diabook_version);
//change css on network and profilepages //change css on network and profilepages
$cssFile = null; $cssFile = null;
@ -80,9 +77,9 @@ if ($color=="dark") $color_path = "/diabook-dark/";
} }
$ccCookie = $_COOKIE['close_pages'] + $_COOKIE['close_profiles'] + $_COOKIE['close_helpers'] + $_COOKIE['close_services'] + $_COOKIE['close_friends'] + $_COOKIE['close_twitter'] + $_COOKIE['close_lastusers'] + $_COOKIE['close_lastphotos'] + $_COOKIE['close_lastlikes']; $ccCookie = $_COOKIE['close_pages'] + $_COOKIE['close_mapquery'] + $_COOKIE['close_profiles'] + $_COOKIE['close_helpers'] + $_COOKIE['close_services'] + $_COOKIE['close_friends'] + $_COOKIE['close_twitter'] + $_COOKIE['close_lastusers'] + $_COOKIE['close_lastphotos'] + $_COOKIE['close_lastlikes'];
if($ccCookie != "9") { if($ccCookie != "10") {
// COMMUNITY // COMMUNITY
diabook_community_info(); diabook_community_info();
@ -96,7 +93,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
//right_aside at profile pages //right_aside at profile pages
if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){ if ($a->argv[0].$a->argv[1] === "profile".$a->user['nickname']){
if($ccCookie != "9") { if($ccCookie != "10") {
// COMMUNITY // COMMUNITY
diabook_community_info(); diabook_community_info();
@ -117,7 +114,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $imageresizeJS); $a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $imageresizeJS);
//load jquery.ui.js //load jquery.ui.js
if($ccCookie != "9") { if($ccCookie != "10") {
$jqueryuiJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery-ui-1.8.20.custom.min.js"; $jqueryuiJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery-ui-1.8.20.custom.min.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $jqueryuiJS); $a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $jqueryuiJS);
} }
@ -128,36 +125,113 @@ if ($color=="dark") $color_path = "/diabook-dark/";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $twitterJS); $a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $twitterJS);
} }
//load jquery.mapquery.js
if($_COOKIE['close_mapquery'] != "1") {
$mqtmplJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.tmpl.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $mqtmplJS);
$mapqueryJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.mapquery.core.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $mapqueryJS);
$openlayersJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/OpenLayers.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $openlayersJS);
$mqmouseposJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.mapquery.mqMousePosition.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $mqmouseposJS);
$mousewheelJS = $a->get_baseurl($ssl_state)."/view/theme/diabook/js/jquery.mousewheel.js";
$a->page['htmlhead'] .= sprintf('<script language="JavaScript" src="%s" ></script>', $mousewheelJS);
}
$a->page['htmlhead'] .= ' $a->page['htmlhead'] .= '
<script> <script>
$(function() { $(function() {
$("a.lightbox").fancybox(); // Select all links with lightbox class $("a.lightbox").fancybox(); // Select all links with lightbox class
$("a.#twittersettings-link").fancybox({onClosed: function() { $("#twittersettings").attr("style","display: none;");}} );
$("a.#mapcontrol-link").fancybox({onClosed: function() { $("#mapcontrol").attr("style","display: none;");}} );
}); });
$(window).load(function() { $(window).load(function() {
var footer_top = $(document).height() - 30; var footer_top = $(document).height() - 30;
$("div#footerbox").attr("style", "border-top: 1px solid #D2D2D2; width: 70%;right: 15%;position: absolute;top:"+footer_top+"px;"); $("div#footerbox").attr("style", "border-top: 1px solid #D2D2D2; width: 70%;right: 15%;position: absolute;top:"+footer_top+"px;");
}); });
</script>'; </script>';
//check if mapquerybox is active and print
if($_COOKIE['close_mapquery'] != "1") {
$ELZoom=false;
$ELPosX=false;
$ELPosy=false;
$site_ELZoom = get_config("diabook", "ELZoom" );
$site_ELPosX = get_config("diabook", "ELPosX" );
$site_ELPosY = get_config("diabook", "ELPosY" );
$ELZoom = get_pconfig(local_user(), "diabook", "ELZoom");
$ELPosX = get_pconfig(local_user(), "diabook", "ELPosX");
$ELPosY = get_pconfig(local_user(), "diabook", "ELPosY");
if ($ELZoom===false) $ELZoom=$site_ELZoom;
if ($ELPosX===false) $ELPosX=$site_ELPosX;
if ($ELPosY===false) $ELPosY=$site_ELPosY;
if ($ELZoom===false) $ELZoom="0";
if ($ELPosX===false) $ELPosX="0";
if ($ELPosY===false) $ELPosY="0";
$a->page['htmlhead'] .= '
<script>
$(document).ready(function() {
$("#map").mapQuery({
layers:[{ //add layers to your map; you need to define at least one to be able to see anything on the map
type:"osm" //add a layer of the type osm (OpenStreetMap)
}],
center:({zoom:'.$ELZoom.',position:['.$ELPosX.','.$ELPosY.']}),
});
});
function open_mapcontrol() {
$("div#mapcontrol").attr("style","display: block;width:900px;height:600px;");
$("#map2").mapQuery({layers:[{type:"osm"}],
center:({zoom:'.$ELZoom.',position:['.$ELPosX.','.$ELPosY.']})});
$("#mouseposition").mqMousePosition({
map: "#map2",
x:"lon",
y:"lat",
precision:2
});
map = $("#map2").mapQuery().data("mapQuery");
textarea = document.getElementById("mapzoom");
$("#map2").bind("mousewheel", function(event, delta) {
if (delta > 0 || delta < 0){
textarea.value = map.center().zoom; }
});
};
</script>';
}
//check if twitterbox is active and print //check if twitterbox is active and print
if($_COOKIE['close_twitter'] != "1") { if($_COOKIE['close_twitter'] != "1") {
$TSearchTerm=false;
$site_TSearchTerm = get_config("diabook", "TSearchTerm" );
$TSearchTerm = get_pconfig(local_user(), "diabook", "TSearchTerm");
if ($TSearchTerm===false) $TSearchTerm=$site_TSearchTerm;
if ($TSearchTerm===false) $TSearchTerm="friendica";
$a->page['htmlhead'] .= ' $a->page['htmlhead'] .= '
<script> <script>
$(function() { $(function() {
$("#twitter").twitterSearch({ $("#twitter").twitterSearch({
term: "friendica", term: "'.$TSearchTerm.'",
animInSpeed: 250, animInSpeed: 250,
bird: false, bird: false,
avatar: false, avatar: false,
colorExterior: "#fff", colorExterior: "#fff",
title: "Last Tweets",
timeout: 10000 }); timeout: 10000 });
}); });
function open_twittersettings() {
$("div#twittersettings").attr("style","display: block;");
};
</script>';} </script>';}
//check if community_home-plugin is activated and change css //check if community_home-plugin is activated and change css
@ -169,6 +243,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
<script> <script>
$(document).ready(function() { $(document).ready(function() {
$("div#login-submit-wrapper").attr("style","padding-top: 120px;"); $("div#login-submit-wrapper").attr("style","padding-top: 120px;");
}); });
</script>'; </script>';
} }
@ -187,6 +262,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
<script> <script>
function restore_boxes(){ function restore_boxes(){
$.cookie("close_pages","2", { expires: 365, path: "/" }); $.cookie("close_pages","2", { expires: 365, path: "/" });
$.cookie("close_mapquery","2", { expires: 365, path: "/" });
$.cookie("close_helpers","2", { expires: 365, path: "/" }); $.cookie("close_helpers","2", { expires: 365, path: "/" });
$.cookie("close_profiles","2", { expires: 365, path: "/" }); $.cookie("close_profiles","2", { expires: 365, path: "/" });
$.cookie("close_services","2", { expires: 365, path: "/" }); $.cookie("close_services","2", { expires: 365, path: "/" });
@ -209,7 +285,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
}); });
</script>'; </script>';
if($ccCookie != "9") { if($ccCookie != "10") {
$a->page['htmlhead'] .= ' $a->page['htmlhead'] .= '
<script> <script>
$("right_aside").ready(function(){ $("right_aside").ready(function(){
@ -219,6 +295,11 @@ if ($color=="dark") $color_path = "/diabook-dark/";
document.getElementById( "close_pages" ).style.display = "none"; document.getElementById( "close_pages" ).style.display = "none";
}; };
if($.cookie("close_mapquery") == "1")
{
document.getElementById( "close_mapquery" ).style.display = "none";
};
if($.cookie("close_profiles") == "1") if($.cookie("close_profiles") == "1")
{ {
document.getElementById( "close_profiles" ).style.display = "none"; document.getElementById( "close_profiles" ).style.display = "none";
@ -241,7 +322,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
if($.cookie("close_twitter") == "1") if($.cookie("close_twitter") == "1")
{ {
document.getElementById( "twitter" ).style.display = "none"; document.getElementById( "close_twitter" ).style.display = "none";
}; };
if($.cookie("close_lastusers") == "1") if($.cookie("close_lastusers") == "1")
@ -266,6 +347,11 @@ if ($color=="dark") $color_path = "/diabook-dark/";
$.cookie("close_pages","1", { expires: 365, path: "/" }); $.cookie("close_pages","1", { expires: 365, path: "/" });
}; };
function close_mapquery(){
document.getElementById( "close_mapquery" ).style.display = "none";
$.cookie("close_mapquery","1", { expires: 365, path: "/" });
};
function close_profiles(){ function close_profiles(){
document.getElementById( "close_profiles" ).style.display = "none"; document.getElementById( "close_profiles" ).style.display = "none";
$.cookie("close_profiles","1", { expires: 365, path: "/" }); $.cookie("close_profiles","1", { expires: 365, path: "/" });
@ -287,7 +373,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
}; };
function close_twitter(){ function close_twitter(){
document.getElementById( "twitter" ).style.display = "none"; document.getElementById( "close_twitter" ).style.display = "none";
$.cookie("close_twitter","1", { expires: 365, path: "/" }); $.cookie("close_twitter","1", { expires: 365, path: "/" });
}; };
@ -317,7 +403,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
$a->page['footer'] .= replace_macros($tpl, array()); $a->page['footer'] .= replace_macros($tpl, array());
// //
js_in_foot(); js_diabook_footer();
} }
@ -325,7 +411,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
$a = get_app(); $a = get_app();
// comunity_profiles // comunity_profiles
if($_COOKIE['close_profiles'] != "1") { if($_COOKIE['close_profiles'] != "1") {
$aside['$comunity_profilest_title'] = t('Community Profiles'); $aside['$comunity_profiles_title'] = t('Community Profiles');
$aside['$comunity_profiles_items'] = array(); $aside['$comunity_profiles_items'] = array();
$r = q("select gcontact.* from gcontact left join glink on glink.gcid = gcontact.id $r = q("select gcontact.* from gcontact left join glink on glink.gcid = gcontact.id
where glink.cid = 0 and glink.uid = 0 order by rand() limit 9"); where glink.cid = 0 and glink.uid = 0 order by rand() limit 9");
@ -478,7 +564,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
if($_COOKIE['close_pages'] != "1") { if($_COOKIE['close_pages'] != "1") {
if(local_user()) { if(local_user()) {
$page = ' $page = '
<h3 style="margin-top:0px;">'.t("Community Pages").'<a id="close_pages_icon" onClick="close_pages()" class="icon close_box" title="close"></a></h3></div> <h3 style="margin-top:0px;">'.t("Community Pages").'<a id="close_pages_icon" onClick="close_pages()" class="icon close_box" title="close"></a></h3>
<div id=""><ul style="margin-left: 7px;margin-top: 0px;padding-left: 0px;padding-top: 0px;">'; <div id=""><ul style="margin-left: 7px;margin-top: 0px;padding-left: 0px;padding-top: 0px;">';
$pagelist = array(); $pagelist = array();
@ -509,6 +595,30 @@ if ($color=="dark") $color_path = "/diabook-dark/";
}} }}
//END Community Page //END Community Page
//mapquery
if($_COOKIE['close_mapquery'] != "1") {
$mapquery = array();
$mapquery['title'] = Array("", "<a id='mapcontrol-link' href='#mapcontrol' style='text-decoration:none;' onclick='open_mapcontrol(); return false;'>".t('Earth Layers')."</a>", "", "");
$aside['$mapquery'] = $mapquery;
$ELZoom = get_pconfig(local_user(), 'diabook', 'ELZoom' );
$ELPosX = get_pconfig(local_user(), 'diabook', 'ELPosX' );
$ELPosY = get_pconfig(local_user(), 'diabook', 'ELPosY' );
$aside['$sub'] = t('Submit');
$aside['$ELZoom'] = array('diabook_ELZoom', t('Set zoomfactor for Earth Layer'), $ELZoom, '', $ELZoom);
$aside['$ELPosX'] = array('diabook_ELPosX', t('Set longitude (X) for Earth Layer'), $ELPosX, '', $ELPosX);
$aside['$ELPosY'] = array('diabook_ELPosY', t('Set latitude (Y) for Earth Layer'), $ELPosY, '', $ELPosY);
$baseurl = $a->get_baseurl($ssl_state);
$aside['$baseurl'] = $baseurl;
if (isset($_POST['diabook-settings-map-sub']) && $_POST['diabook-settings-map-sub']!=''){
set_pconfig(local_user(), 'diabook', 'ELZoom', $_POST['diabook_ELZoom']);
set_pconfig(local_user(), 'diabook', 'ELPosX', $_POST['diabook_ELPosX']);
set_pconfig(local_user(), 'diabook', 'ELPosY', $_POST['diabook_ELPosY']);
header("Location: network");
}
}
//end mapquery
//helpers //helpers
if($_COOKIE['close_helpers'] != "1") { if($_COOKIE['close_helpers'] != "1") {
$helpers = array(); $helpers = array();
@ -523,6 +633,24 @@ if ($color=="dark") $color_path = "/diabook-dark/";
$aside['$con_services'] = $con_services; $aside['$con_services'] = $con_services;
} }
//end connectable services //end connectable services
//twitter
if($_COOKIE['close_twitter'] != "1") {
$twitter = array();
$twitter['title'] = Array("", "<a id='twittersettings-link' href='#twittersettings' style='text-decoration:none;' onclick='open_twittersettings(); return false;'>".t('Last Tweets')."</a>", "", "");
$aside['$twitter'] = $twitter;
$TSearchTerm = get_pconfig(local_user(), 'diabook', 'TSearchTerm' );
$aside['$sub'] = t('Submit');
$aside['$TSearchTerm'] = array('diabook_TSearchTerm', t('Set twitter search term'), $TSearchTerm, '', $TSearchTerm);
$baseurl = $a->get_baseurl($ssl_state);
$aside['$baseurl'] = $baseurl;
if (isset($_POST['diabook-settings-sub']) && $_POST['diabook-settings-sub']!=''){
set_pconfig(local_user(), 'diabook', 'TSearchTerm', $_POST['diabook_TSearchTerm']);
header("Location: network");
}
}
//end twitter
$close = t('Close');
$aside['$close'] = $close;
//get_baseurl //get_baseurl
$url = $a->get_baseurl($ssl_state); $url = $a->get_baseurl($ssl_state);
$aside['$url'] = $url; $aside['$url'] = $url;
@ -532,7 +660,7 @@ if ($color=="dark") $color_path = "/diabook-dark/";
} }
function js_in_foot() { function js_diabook_footer() {
/** @purpose insert stuff in bottom of page /** @purpose insert stuff in bottom of page
*/ */
$a = get_app(); $a = get_app();
@ -543,13 +671,3 @@ if ($color=="dark") $color_path = "/diabook-dark/";
} }

View file

@ -6,6 +6,14 @@
{{inc field_select.tpl with $field=$resolution}}{{endinc}} {{inc field_select.tpl with $field=$resolution}}{{endinc}}
{{inc field_input.tpl with $field=$TSearchTerm}}{{endinc}}
{{inc field_input.tpl with $field=$ELPosX}}{{endinc}}
{{inc field_input.tpl with $field=$ELPosY}}{{endinc}}
{{inc field_input.tpl with $field=$ELZoom}}{{endinc}}
<div class="field select"> <div class="field select">
<a onClick="restore_boxes()" title="Restore right-hand column" style="cursor: pointer;">Restore right-hand column</a> <a onClick="restore_boxes()" title="Restore right-hand column" style="cursor: pointer;">Restore right-hand column</a>
</div> </div>

View file

@ -0,0 +1,29 @@
## Dispy Themes ##
**Dispy**: Light, Spartan, Sleek, and Functional
**Dispy Dark**: Dark, Spartan, Sleek, and Functional
### A Brief History ###
Their beginnings are unknown to me, but they are part of the themes
that Mike Macgirvin, Emmanual Revah, put together for Friendica, I *think*.
Later on, in the fall and winter of 2011-2012, I took over maintaining
the original dispy (now called dispy light). It went through a minor re-vamp,
keeping to its spartan look as much as possible.
I added more rounded corners, and as Friendica grew in capabilities and
features, so did it - but, I always wanted to keep the features down, so as
to be fast and spartan, which seems to appeal to a lot of the geekier
users (like myself).
Soon after I started maintaining dispy light, I developed its sister
theme - dark - according to another user's request (and other "+1"
votes for one like it). So *dark* was "born".
Anyway, I've added a few more things since, and I hope I haven't
over-done it ;-).
Simon

View file

@ -0,0 +1,71 @@
//
//* media stuff */
@media handheld and screen {
body {
font-size: 15pt;
}
}
//* Smartphones (portrait and landscape) ----------- */
@media only screen and (min-device-width: 320px)
and (max-device-width: 480px) {
body {
font-size: 12pt;
}
}
//* Smartphones (landscape) ----------- */
@media only screen and (min-width: 321px) {
body {
font-size: 12pt;
}
}
//* Smartphones (portrait) ----------- */
@media only screen and (max-width: 320px) {
body {
font-size: 12pt;
}
}
//* iPads (portrait and landscape) ----------- */
@media only screen and (min-device-width: 768px)
and (max-device-width: 1024px) {
body {
font-size: 14pt;
}
}
//* iPads (landscape) ----------- */
@media only screen and (min-device-width: 768px)
and (max-device-width: 1024px)
and (orientation: landscape) {
body {
font-size: 14pt;
}
}
//* iPads (portrait) ----------- */
@media only screen and (min-device-width: 768px)
and (max-device-width: 1024px)
and (orientation: portrait) {
body {
font-size: 14pt;
}
}
//* Desktops and laptops ----------- */
//adjusted to 1024 from 1224.
//not everybody has a fucking big screen ffs
@media only screen and (min-width: 1024px) {
body {
font-size: 14pt;
}
}
//* Large screens - */
@media only screen and (min-width: 1520px) {
body {
font-size: 16pt;
}
}
//* iPhone 4 ----------- */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (min-device-pixel-ratio: 1.5) {
body {
font-size: 14pt;
}
}

View file

@ -0,0 +1,66 @@
///* http://meyerweb.com/eric/tools/css/reset/
// v2.0 | 20110126
// License: none (public domain)
//*/
html, body, div, span,
applet, object, iframe,
h1, h2, h3, h4, h5, h6,
p, blockquote, pre, a,
abbr, acronym, address,
big, cite, code, del,
dfn, em, img, ins, kbd,
q, s, samp, small, strike,
strong, sub, sup, tt, var,
b, u, i, center, dl, dt,
dd, ol, ul, li, fieldset,
form, label, legend, table,
caption, tbody, tfoot, thead,
tr, th, td, article, aside,
canvas, details, embed,
figure, figcaption, footer,
header, hgroup, menu, nav,
output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
///* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ul, ol {
.list_reset;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
///* de-italicize address */
address {
font-style: normal;
}
a img,
:link img,
:visited img {
border: none;
}
q {
quotes: "" "";
}

View file

@ -13,6 +13,9 @@
// you "compile" the css (with `lessc`), but css (/**/) comments // you "compile" the css (with `lessc`), but css (/**/) comments
// do. i use them to our advantage :). // do. i use them to our advantage :).
// import our reset styles first
@import "../css/reset";
//* backgrounds */ //* backgrounds */
@dk_bg_colour: #1d1f1d; @dk_bg_colour: #1d1f1d;
@bg_colour: #2e2f2e; @bg_colour: #2e2f2e;
@ -138,7 +141,7 @@
} }
//* font size sizing */ //* font size sizing */
.default_font () { .default_font () {
font-size: 16px; font-size: 14pt;
line-height: 1.1em; line-height: 1.1em;
font-family: sans-serif; font-family: sans-serif;
} }

View file

@ -1,12 +1,21 @@
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}
body{line-height:1;}
ul,ol{margin:0px;padding:0px;list-style:none;list-style-position:inside;}
blockquote,q{quotes:none;}
blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;}
table{border-collapse:collapse;border-spacing:0;}
address{font-style:normal;}
a img,:link img,:visited img{border:none;}
q{quotes:"" "";}
article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;} article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
audio,canvas,video,time{display:inline-block;*display:inline;*zoom:1;} audio,canvas,video,time{display:inline-block;*display:inline;*zoom:1;}
audio:not([controls]),[hidden]{display:none;} audio:not([controls]),[hidden]{display:none;}
html{font-size:100%;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;} html{font-size:100%;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
body{margin:0;padding:0;font-size:16px;line-height:1.1em;font-family:sans-serif;color:#eeeecc;background-color:#2e2f2e;} body{margin:0;padding:0;font-size:14pt;line-height:1.1em;font-family:sans-serif;color:#eeeecc;background-color:#2e2f2e;}
button,input,select,textarea{color:#eeeecc;background-color:#2e2f2e;} button,input,select,textarea{color:#eeeecc;background-color:#2e2f2e;}
select{border:1px #555 dotted;padding:1px;margin:3px;color:#eeeecc;background:#2e2f2e;} select{border:1px dotted #555555;padding:1px;margin:3px;color:#eeeecc;background:#2e2f2e;max-width:85%;min-width:85px;}
option{padding:1px;color:#eeeecc;background:#2e2f2e;}option[selected="selected"]{color:#2e2f2e;background:#eeeecc;} option{padding:1px;color:#eeeecc;background:#2e2f2e;}option[selected="selected"]{color:#2e2f2e;background:#eeeecc;}
ul,ol{margin:0px;padding:0px;list-style:none;list-style-position:inside;}
tr:nth-child(even){background-color:#474947;} tr:nth-child(even){background-color:#474947;}
:focus{outline:0;} :focus{outline:0;}
[disabled="disabled"]{background:#4e4f4e;color:#ddddbb;} [disabled="disabled"]{background:#4e4f4e;color:#ddddbb;}
@ -23,18 +32,23 @@ sup{top:-0.5em;}
img{border:0 none;} img{border:0 none;}
a{color:#88a9d2;text-decoration:none;margin-bottom:1px;}a:hover{color:#638ec4;border-bottom:1px dotted #638ec4;} a{color:#88a9d2;text-decoration:none;margin-bottom:1px;}a:hover{color:#638ec4;border-bottom:1px dotted #638ec4;}
a:hover img{text-decoration:none;} a:hover img{text-decoration:none;}
blockquote{background:#444;color:#eeeecc;text-indent:5px;padding:5px;border:1px #aaa solid;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;} blockquote{background:#444444;color:#eeeecc;text-indent:5px;padding:5px;border:1px solid #9a9a9a;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
label{width:38%;display:inline-block;font-size:0.95em;margin:0 10px 1em 0;border:1px solid #2e2f2e;padding:5px;background:#eeeecc;color:#111111;-moz-box-shadow:3px 3px 5px 0px #111111;-o-box-shadow:3px 3px 5px 0px #111111;-webkit-box-shadow:3px 3px 5px 0px #111111;-ms-box-shadow:3px 3px 5px 0px #111111;box-shadow:3px 3px 5px 0px #111111;}
input{width:250px;height:25px;border:1px solid #999999;}input[type="checkbox"],input[type="radio"]{margin:0;width:15px;height:15px;}
input[type="submit"],input[type="button"]{background-color:#eeeeee;border:2px outset #b1b1b1;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 3px 4px 0 #111111;-o-box-shadow:1px 3px 4px 0 #111111;-webkit-box-shadow:1px 3px 4px 0 #111111;-ms-box-shadow:1px 3px 4px 0 #111111;box-shadow:1px 3px 4px 0 #111111;color:#2e302e;cursor:pointer;font-weight:bold;width:auto;-moz-text-shadow:1px 1px #111111;-o-text-shadow:1px 1px #111111;-webkit-text-shadow:1px 1px #111111;-ms-text-shadow:1px 1px #111111;text-shadow:1px 1px #111111;}
input[type="submit"]:active,input[type="button"]:active{-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
h1,h2,h3,h4,h5,h6{margin:10px 0px;font-weight:bold;border-bottom:1px solid #638ec4;}
.required{display:inline;color:#ff0;font-size:16px;font-weight:bold;margin:3px;} .required{display:inline;color:#ff0;font-size:16px;font-weight:bold;margin:3px;}
.fakelink,.lockview{color:#88a9d2;cursor:pointer;} .fakelink,.lockview{color:#88a9d2;cursor:pointer;}
.fakelink:hover{color:#638ec4;} .fakelink:hover{color:#638ec4;}
.smalltext{font-size:0.7em;} .smalltext{font-size:0.7em;}
#panel{position:absolute;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:1px solid #eeeeee;background-color:#2e302e;color:#eeeecc;padding:1em;} #panel{position:absolute;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:1px solid #eeeeee;background-color:#2e302e;color:#eeeecc;padding:1em;}
.pager{margin-top:60px;display:block;clear:both;text-align:center;}.pager span{padding:4px;margin:4px;} .pager{margin-top:60px;display:block;clear:both;text-align:center;font-size:small;font-weight:bold;}.pager span{padding:4px;margin:4px;}
.pager_current{background-color:#88a9d2;color:#eeeeee;} .pager_current{background-color:#88a9d2;color:#2e2f2e;}
.action{margin:5px 0;} .action{margin:5px 0;}
.tool{margin:5px 0;list-style:none;} .tool{margin:5px 0;list-style:none;}
#articlemain{width:100%;height:100%;margin:0 auto;} #articlemain{width:100%;height:100%;margin:0 auto;}
[class$="-desc"],[id$="-desc"]{color:#2e2f2e;background:#eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:3px 3px 5px 0px #111111;-o-box-shadow:3px 3px 5px 0px #111111;-webkit-box-shadow:3px 3px 5px 0px #111111;-ms-box-shadow:3px 3px 5px 0px #111111;box-shadow:3px 3px 5px 0px #111111;padding:3px;margin:5px 0;font-weight:bold;} [class$="-desc"],[id$="-desc"]{color:#2e2f2e;background:#eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:3px 3px 5px 0px #111111;-o-box-shadow:3px 3px 5px 0px #111111;-webkit-box-shadow:3px 3px 5px 0px #111111;-ms-box-shadow:3px 3px 5px 0px #111111;box-shadow:3px 3px 5px 0px #111111;margin:3px 10px 7px 0;padding:6px 7px;font-weight:bold;font-size:smaller;}
#asidemain .field{overflow:hidden;width:200px;} #asidemain .field{overflow:hidden;width:200px;}
#login-extra-links{overflow:auto !important;padding-top:60px !important;width:100% !important;}#login-extra-links a{margin-right:20px;} #login-extra-links{overflow:auto !important;padding-top:60px !important;width:100% !important;}#login-extra-links a{margin-right:20px;}
#login_standard{display:block !important;float:none !important;height:100% !important;position:relative !important;width:100% !important;}#login_standard .field label{width:200px !important;} #login_standard{display:block !important;float:none !important;height:100% !important;position:relative !important;width:100% !important;}#login_standard .field label{width:200px !important;}
@ -46,7 +60,7 @@ blockquote{background:#444;color:#eeeecc;text-indent:5px;padding:5px;border:1px
#login_openid label{width:180px !important;} #login_openid label{width:180px !important;}
nav{height:60px;background-color:#1d1f1d;color:#eeeeee;position:relative;padding:20px 20px 10px 95px;}nav a{text-decoration:none;color:#eeeeee;border:0px;}nav a:hover{text-decoration:none;color:#eeeeee;border:0px;} nav{height:60px;background-color:#1d1f1d;color:#eeeeee;position:relative;padding:20px 20px 10px 95px;}nav a{text-decoration:none;color:#eeeeee;border:0px;}nav a:hover{text-decoration:none;color:#eeeeee;border:0px;}
nav #banner{display:block;position:absolute;left:51px;top:25px;}nav #banner #logo-text a{font-size:40px;font-weight:bold;margin-left:3px;} nav #banner{display:block;position:absolute;left:51px;top:25px;}nav #banner #logo-text a{font-size:40px;font-weight:bold;margin-left:3px;}
ul#user-menu-popup{display:none;position:absolute;background-color:#555753;width:100%;padding:10px 0px;margin:0px;top:20px;left:0;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-moz-box-shadow:5px 5px 10px 0px #111111;-o-box-shadow:5px 5px 10px 0px #111111;-webkit-box-shadow:5px 5px 10px 0px #111111;-ms-box-shadow:5px 5px 10px 0px #111111;box-shadow:5px 5px 10px 0px #111111;z-index:10000;}ul#user-menu-popup li{display:block;}ul#user-menu-popup li a{display:block;padding:5px;}ul#user-menu-popup li a:hover{color:#eeeecc;background-color:#2e302e;} ul#user-menu-popup{display:none;position:absolute;background-color:#555753;width:100%;padding:10px 0px;margin:0px;top:20px;left:0;font-size:small;line-height:1;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-moz-box-shadow:5px 5px 10px 0px #111111;-o-box-shadow:5px 5px 10px 0px #111111;-webkit-box-shadow:5px 5px 10px 0px #111111;-ms-box-shadow:5px 5px 10px 0px #111111;box-shadow:5px 5px 10px 0px #111111;z-index:10000;}ul#user-menu-popup li{display:block;}ul#user-menu-popup li a{display:block;padding:5px;}ul#user-menu-popup li a:hover{color:#eeeecc;background-color:#2e302e;}
ul#user-menu-popup li a.nav-sep{border-top:1px solid #2e302e;} ul#user-menu-popup li a.nav-sep{border-top:1px solid #2e302e;}
nav .nav-link{display:inline-block;width:22px;height:22px;overflow:hidden;margin:0px 5px 5px;text-indent:50px;background:transparent url(dark/icons.png) 0 0 no-repeat;} nav .nav-link{display:inline-block;width:22px;height:22px;overflow:hidden;margin:0px 5px 5px;text-indent:50px;background:transparent url(dark/icons.png) 0 0 no-repeat;}
#nav-apps-link{background-position:0 -66px;}#nav-apps-link:hover{background-position:-22px -66px;} #nav-apps-link{background-position:0 -66px;}#nav-apps-link:hover{background-position:-22px -66px;}
@ -71,7 +85,7 @@ div.jGrowl div.info{background:#1353b1 url("../../../images/icons/48/info.png")
#nav-notifications-menu a:hover{color:black;text-decoration:underline;} #nav-notifications-menu a:hover{color:black;text-decoration:underline;}
nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkmenu.selected .icon.s22.notify{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAQAAABuvaSwAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAUJcAAFCXAZtv64UAAAHuSURBVCjPbZPbTlNBFIYHLixXRIhEQGNRMUopJAJyAyZ4Z2l8B+XwEBqKtjwOp8oDIAJKIJFUjdFIQCUYrRytdyb0459ht8wG9rrYs9b618y/TsYEH4ZK4qRYYIdDybZOI7TKakIfVhrJ8J2i5IBNyV93/kaaBuv3oV3MgwCTPKGHPkkPA0xRUMBrOgN4AP0o6BseEpF2m3es0qJTFQneyvMhgDsC9tZprnEcGuOPeMcDLUpW3jlLxlDBmJTFY6gLvsVv8tyh9G7U3Z6mwtCuJAoiECSh/w1+8otmTjLqF2KDNsNzRY1bruV0o6rFFtc9S5USh5RRWvAYv4xX9dYPS8ur1oBQC4Y99m2uHriRNda5ErLdU1l3jCI2xdJ3XOYLX6kP2W6K2OF54Et84jN154F31d6ukKOG92pSbcjWLRrbRhVGLTZeOtXqX46LoQSHhJo3jOo3ESrdBQbljIRKNyXUiKHNNSXhTdbZiUzyT/WJ23Zn3BBFy+2u4ZHc1eV2N7EkxAvbbqMRmZOSlbE0g/uajRgl6Iy8r1wpnaFTQ4ji+8XOEsuxYmdDWpJleXJ0+BPdoduL4p5Vavd5IOllmJfiWmSWu6d3pV4jteFWqaAGbLkdKSqtUXXUnN3DSvF8phfy/JfkxfOp9sVb2COz+hY/T0qkwwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMS0wOS0xNlQwOTozOTowMCswMjowMC9Oi90AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTEtMDktMTZUMDk6Mzk6MDArMDI6MDBeEzNhAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==");} nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkmenu.selected .icon.s22.notify{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAQAAABuvaSwAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAUJcAAFCXAZtv64UAAAHuSURBVCjPbZPbTlNBFIYHLixXRIhEQGNRMUopJAJyAyZ4Z2l8B+XwEBqKtjwOp8oDIAJKIJFUjdFIQCUYrRytdyb0459ht8wG9rrYs9b618y/TsYEH4ZK4qRYYIdDybZOI7TKakIfVhrJ8J2i5IBNyV93/kaaBuv3oV3MgwCTPKGHPkkPA0xRUMBrOgN4AP0o6BseEpF2m3es0qJTFQneyvMhgDsC9tZprnEcGuOPeMcDLUpW3jlLxlDBmJTFY6gLvsVv8tyh9G7U3Z6mwtCuJAoiECSh/w1+8otmTjLqF2KDNsNzRY1bruV0o6rFFtc9S5USh5RRWvAYv4xX9dYPS8ur1oBQC4Y99m2uHriRNda5ErLdU1l3jCI2xdJ3XOYLX6kP2W6K2OF54Et84jN154F31d6ukKOG92pSbcjWLRrbRhVGLTZeOtXqX46LoQSHhJo3jOo3ESrdBQbljIRKNyXUiKHNNSXhTdbZiUzyT/WJ23Zn3BBFy+2u4ZHc1eV2N7EkxAvbbqMRmZOSlbE0g/uajRgl6Iy8r1wpnaFTQ4ji+8XOEsuxYmdDWpJleXJ0+BPdoduL4p5Vavd5IOllmJfiWmSWu6d3pV4jteFWqaAGbLkdKSqtUXXUnN3DSvF8phfy/JfkxfOp9sVb2COz+hY/T0qkwwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMS0wOS0xNlQwOTozOTowMCswMjowMC9Oi90AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTEtMDktMTZUMDk6Mzk6MDArMDI6MDBeEzNhAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==");}
.show{display:block;} .show{display:block;}
#notifications{width:170px;height:20px;position:absolute;top:-19px;left:4px;} #notifications{width:170px;height:20px;font-size:small;top:-19px;left:4px;position:absolute;}
#nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#1d1f1d;color:transparent;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100;width:300px;height:60px;} #nav-floater{position:fixed;top:20px;right:1%;padding:5px;background:#1d1f1d;color:transparent;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;z-index:100;width:300px;height:60px;}
#nav-buttons{clear:both;list-style:none;padding:0px;margin:0px;height:25px;}#nav-buttons>li{padding:0;display:inline-block;margin:0px -4px 0px 0px;} #nav-buttons{clear:both;list-style:none;padding:0px;margin:0px;height:25px;}#nav-buttons>li{padding:0;display:inline-block;margin:0px -4px 0px 0px;}
.floaterflip{display:block;position:fixed;z-index:110;top:56px;right:19px;width:22px;height:22px;overflow:hidden;margin:0px;background:transparent url(dark/icons.png) -190px -60px no-repeat;} .floaterflip{display:block;position:fixed;z-index:110;top:56px;right:19px;width:22px;height:22px;overflow:hidden;margin:0px;background:transparent url(dark/icons.png) -190px -60px no-repeat;}
@ -79,7 +93,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
#search-text{border:1px solid #eeeecc;background:#2e2f2e;color:#eeeecc;font-size:8pt;margin:8px;width:10em;height:14px;} #search-text{border:1px solid #eeeecc;background:#2e2f2e;color:#eeeecc;font-size:8pt;margin:8px;width:10em;height:14px;}
#scrollup{position:fixed;right:5px;bottom:40px;z-index:100;}#scrollup a:hover{text-decoration:none;border:0;} #scrollup{position:fixed;right:5px;bottom:40px;z-index:100;}#scrollup a:hover{text-decoration:none;border:0;}
#user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:75%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;} #user-menu{-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;display:block;width:75%;margin:3px 0 0 0;position:relative;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:#555753;background-image:url("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAIAAwDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAMH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAAFBhESIQdBMVFh/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAABAAIR/9oADAMBAAIRAxEAPwCXiHO8dbsEi35BEhIehNlbUhxhBU82O+G9bKgToD2D+VlmZX9OWZBJuAiMxGlni0w0gJCED4HXv7pSi6eFML//2Q==");background-position:98% center;background-repeat:no-repeat;clear:both;top:4px;left:10px;padding:2px;}#user-menu>a{vertical-align:top;}
#user-menu-label{font-size:12px;padding:3px 20px 9px 5px;height:10px;} #user-menu-label{font-size:small;padding:3px 20px 9px 5px;height:10px;}
.nav-ajax-update,.nav-ajax-left{width:30px;height:19px;background:transparent url(dark/notifications.png) 0 0 no-repeat;color:#222;font-weight:bold;font-size:0.8em;padding-top:0.2em;text-align:center;float:left;margin:0 -1px 0 3px;display:block;visibility:hidden;} .nav-ajax-update,.nav-ajax-left{width:30px;height:19px;background:transparent url(dark/notifications.png) 0 0 no-repeat;color:#222;font-weight:bold;font-size:0.8em;padding-top:0.2em;text-align:center;float:left;margin:0 -1px 0 3px;display:block;visibility:hidden;}
.nav-ajax-update.show,.nav-ajax-left.show{visibility:visible;} .nav-ajax-update.show,.nav-ajax-left.show{visibility:visible;}
#net-update{background-position:0px 0px;} #net-update{background-position:0px 0px;}
@ -99,14 +113,14 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
#sysmsg_info{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;} #sysmsg_info{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;}
#sysmsg{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;} #sysmsg{position:fixed;bottom:0;-moz-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-o-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-webkit-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;-ms-box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;box-shadow:3px 3px 3px 10px 0 #111111 5px 5px 0px #111111;padding:10px;background-color:#fcaf3e;border:2px solid #f8911b;border-bottom:0;padding-bottom:50px;z-index:1000;}
#sysmsg_info br,#sysmsg br{display:block;margin:2px 0px;border-top:1px solid #eeeecc;} #sysmsg_info br,#sysmsg br{display:block;margin:2px 0px;border-top:1px solid #eeeecc;}
#asidemain{float:left;font-size:smaller;margin:20px 0 20px 35px;width:25%;display:inline;} #asidemain{float:left;font-size:0.75em;margin:20px 0 20px 35px;width:25%;display:inline;}
#asideright,#asideleft{display:none;} #asideright,#asideleft{display:none;}
.vcard .fn{font-size:1.7em;font-weight:bold;border-bottom:1px solid #729fcf;padding-bottom:3px;} .vcard .fn{font-size:1.5em;font-weight:bold;border-bottom:1px solid #638ec4;padding-bottom:3px;}
.vcard #profile-photo-wrapper{margin:20px;}.vcard #profile-photo-wrapper img{-moz-box-shadow:3px 3px 10px 0 #111111;-o-box-shadow:3px 3px 10px 0 #111111;-webkit-box-shadow:3px 3px 10px 0 #111111;-ms-box-shadow:3px 3px 10px 0 #111111;box-shadow:3px 3px 10px 0 #111111;} .vcard #profile-photo-wrapper{margin:20px;}.vcard #profile-photo-wrapper img{-moz-box-shadow:3px 3px 10px 0 #111111;-o-box-shadow:3px 3px 10px 0 #111111;-webkit-box-shadow:3px 3px 10px 0 #111111;-ms-box-shadow:3px 3px 10px 0 #111111;box-shadow:3px 3px 10px 0 #111111;}
#asidemain h4{font-size:1.2em;} #asidemain h4{font-size:1.2em;}
#asidemain #viewcontacts{text-align:right;} #asidemain #viewcontacts{text-align:right;}
#asidemain #contact-block{width:99%;}#asidemain #contact-block .contact-block-content{width:99%;}#asidemain #contact-block .contact-block-content .contact-block-div{float:left;margin:0 5px 5px 0;width:50px;height:50px;padding:3px;position:relative;} #asidemain #contact-block{width:99%;}#asidemain #contact-block .contact-block-content{width:99%;}#asidemain #contact-block .contact-block-content .contact-block-div{float:left;margin:0 5px 5px 0;width:50px;height:50px;padding:3px;position:relative;}
.aprofile dt{background:#eeeecc;color:#2e2f2e;font-weight:bold;-moz-box-shadow:1px 1px 5px 0 5px 5px 0px #111111;-o-box-shadow:1px 1px 5px 0 5px 5px 0px #111111;-webkit-box-shadow:1px 1px 5px 0 5px 5px 0px #111111;-ms-box-shadow:1px 1px 5px 0 5px 5px 0px #111111;box-shadow:1px 1px 5px 0 5px 5px 0px #111111;margin:15px 0 5px;padding-left:5px;} .aprofile dt{background:#eeeecc;color:#2e2f2e;font-weight:bold;-moz-box-shadow:3px 3px 5px 0px #111111;-o-box-shadow:3px 3px 5px 0px #111111;-webkit-box-shadow:3px 3px 5px 0px #111111;-ms-box-shadow:3px 3px 5px 0px #111111;box-shadow:3px 3px 5px 0px #111111;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;margin:15px 0 5px;padding-left:5px;}
#profile-extra-links ul{margin-left:0px;padding-left:0px;list-style:none;} #profile-extra-links ul{margin-left:0px;padding-left:0px;list-style:none;}
#dfrn-request-link{-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#eeeecc;display:block;font-size:1.2em;padding:0.2em 0.5em;background-color:#3465a4;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAE4SURBVCiRpZKxLgRRFIa//64dKruZFRIlolBviFKiVHsHrRaFikTCC+hEQtRegMQDqDUKJOPOvauSMJmjYEU2M0viT071/+fLOTlHZkadQgjLkh1LPEoj661WKw5mXG034JxtAgtmrJoVK5WZYYCy1AVQSOYbjeSqMmRmQ8v755Ne77lb5w+d4HMNJopCT7X+bwDQZKfTyf4BIAHeawHe+/kQ/FGM+QagvpFl2VSM/tyMmV7PV14AYMQ5nUp0AULIp0HXzpVvSdLYMmNVAjNdAuNAUQHgxy/ZvEQTSMw0A33DxkIIi2ma3gwC9PKSzRWF2wbdpml62DfyPF9yjlNgAnQGLJjZnXON3Xa7ff8NGPbKQPNrbAOI0a9J2ilLEzAL7P0GqJJizF+BUeDhL2cclJnZPvAg6eADf+imKjSMX1wAAAAASUVORK5CYII=");background-repeat:no-repeat;background-position:95% center;} #dfrn-request-link{-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#eeeecc;display:block;font-size:1.2em;padding:0.2em 0.5em;background-color:#3465a4;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAE4SURBVCiRpZKxLgRRFIa//64dKruZFRIlolBviFKiVHsHrRaFikTCC+hEQtRegMQDqDUKJOPOvauSMJmjYEU2M0viT071/+fLOTlHZkadQgjLkh1LPEoj661WKw5mXG034JxtAgtmrJoVK5WZYYCy1AVQSOYbjeSqMmRmQ8v755Ne77lb5w+d4HMNJopCT7X+bwDQZKfTyf4BIAHeawHe+/kQ/FGM+QagvpFl2VSM/tyMmV7PV14AYMQ5nUp0AULIp0HXzpVvSdLYMmNVAjNdAuNAUQHgxy/ZvEQTSMw0A33DxkIIi2ma3gwC9PKSzRWF2wbdpml62DfyPF9yjlNgAnQGLJjZnXON3Xa7ff8NGPbKQPNrbAOI0a9J2ilLEzAL7P0GqJJizF+BUeDhL2cclJnZPvAg6eADf+imKjSMX1wAAAAASUVORK5CYII=");background-repeat:no-repeat;background-position:95% center;}
#wallmessage-link{color:#eeeeee;display:block;font-size:1.2em;padding:0.2em 0.5em;} #wallmessage-link{color:#eeeeee;display:block;font-size:1.2em;padding:0.2em 0.5em;}
@ -141,7 +155,6 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
#profile-jot-submit-wrapper{float:right;width:100%;margin:10px 0 0 0;padding:0;} #profile-jot-submit-wrapper{float:right;width:100%;margin:10px 0 0 0;padding:0;}
#profile-jot-submit{height:auto;background-color:#555753;color:#eeeeee;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:2px outset #2e3436;margin:0;float:right;-moz-text-shadow:1px 1px #111111;-o-text-shadow:1px 1px #111111;-webkit-text-shadow:1px 1px #111111;-ms-text-shadow:1px 1px #111111;text-shadow:1px 1px #111111;width:auto;}#profile-jot-submit:active{-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;} #profile-jot-submit{height:auto;background-color:#555753;color:#eeeeee;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;border:2px outset #2e3436;margin:0;float:right;-moz-text-shadow:1px 1px #111111;-o-text-shadow:1px 1px #111111;-webkit-text-shadow:1px 1px #111111;-ms-text-shadow:1px 1px #111111;text-shadow:1px 1px #111111;width:auto;}#profile-jot-submit:active{-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
#jot-perms-icon{width:20px;height:22px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;overflow:hidden;} #jot-perms-icon{width:20px;height:22px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;overflow:hidden;}
#profile-jot-acl-wrapper{margin:0 10px;border:1px solid #555555;border-top:0;display:block !important;border:1px solid #555753 solid #eeeecc;-moz-box-shadow:5px 5px 5px 0px #111111;-o-box-shadow:5px 5px 5px 0px #111111;-webkit-box-shadow:5px 5px 5px 0px #111111;-ms-box-shadow:5px 5px 5px 0px #111111;box-shadow:5px 5px 5px 0px #111111;}
#group_allow_wrapper,#group_deny_wrapper,#acl-permit-outer-wrapper,#contact_allow_wrapper,#contact_deny_wrapper,#acl-deny-outer-wrapper{width:47%;} #group_allow_wrapper,#group_deny_wrapper,#acl-permit-outer-wrapper,#contact_allow_wrapper,#contact_deny_wrapper,#acl-deny-outer-wrapper{width:47%;}
#group_allow_wrapper,#group_deny_wrapper,#acl-permit-outer-wrapper{float:left;} #group_allow_wrapper,#group_deny_wrapper,#acl-permit-outer-wrapper{float:left;}
#contact_allow_wrapper,#contact_deny_wrapper,#acl-deny-outer-wrapper{float:right;} #contact_allow_wrapper,#contact_deny_wrapper,#acl-deny-outer-wrapper{float:right;}
@ -153,7 +166,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
#jot-title-wrapper{margin-bottom:5px;} #jot-title-wrapper{margin-bottom:5px;}
#jot-title-display{font-weight:bold;} #jot-title-display{font-weight:bold;}
.jothidden{display:none;} .jothidden{display:none;}
#jot-preview-content{background-color:#2e302e;color:#eeeecc;border:1px solid #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;padding:3px 3px 6px 10px;}#jot-preview-content .wall-item-outside-wrapper{border:0;-o-border-radius:0px 0px 0px 0px;-webkit-border-radius:0px 0px 0px 0px;-moz-border-radius:0px 0px 0px 0px;-ms-border-radius:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;} #jot-preview-content{background-color:#2e302e;color:#eeeecc;border:1px solid #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:5px 0 10px 0px #111111;-o-box-shadow:5px 0 10px 0px #111111;-webkit-box-shadow:5px 0 10px 0px #111111;-ms-box-shadow:5px 0 10px 0px #111111;box-shadow:5px 0 10px 0px #111111;padding:3px 3px 6px 10px;}#jot-preview-content .wall-item-outside-wrapper{border:0;-o-border-radius:0px 0px 0px 0px;-webkit-border-radius:0px 0px 0px 0px;-moz-border-radius:0px 0px 0px 0px;-ms-border-radius:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
#sectionmain{margin:20px;font-size:0.8em;min-width:475px;width:67%;float:left;display:inline;} #sectionmain{margin:20px;font-size:0.8em;min-width:475px;width:67%;float:left;display:inline;}
.tabs{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:10px 0;}.tabs li{display:inline;font-size:smaller;font-weight:bold;} .tabs{margin:0px;padding:0px;list-style:none;list-style-position:inside;margin:10px 0;}.tabs li{display:inline;font-size:smaller;font-weight:bold;}
.tab{border:1px solid #88a9d2;padding:4px;}.tab:hover,.tab.active:hover,.tab:active{background:#88a9d2;color:#2e2f2e;} .tab{border:1px solid #88a9d2;padding:4px;}.tab:hover,.tab.active:hover,.tab:active{background:#88a9d2;color:#2e2f2e;}
@ -161,26 +174,26 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
.tab a{border:0;text-decoration:none;} .tab a{border:0;text-decoration:none;}
.wall-item-outside-wrapper{border:1px solid #aaaaaa;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;}.wall-item-outside-wrapper.comment{margin-top:5px;} .wall-item-outside-wrapper{border:1px solid #aaaaaa;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:5px 0 10px 0 #111111;-o-box-shadow:5px 0 10px 0 #111111;-webkit-box-shadow:5px 0 10px 0 #111111;-ms-box-shadow:5px 0 10px 0 #111111;box-shadow:5px 0 10px 0 #111111;}.wall-item-outside-wrapper.comment{margin-top:5px;}
.wall-item-outside-wrapper-end{clear:both;} .wall-item-outside-wrapper-end{clear:both;}
.wall-item-content-wrapper{position:relative;padding:10px;width:auto;} .wall-item-content-wrapper{position:relative;padding:0.75em;width:auto;}
.wall-item-outside-wrapper .wall-item-comment-wrapper{} .wall-item-outside-wrapper .wall-item-comment-wrapper{}
.shiny{background:#2e3436;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;} .shiny{background:#2e3436;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
.wall-outside-wrapper .shiny{-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;} .wall-outside-wrapper .shiny{-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
.heart{color:red;} .heart{color:red;}
.wall-item-content{overflow-x:auto;margin:0px 15px 0px 5px;} .wall-item-content{overflow-x:auto;margin:0px 4em 1em 5px;}
[id^="tread-wrapper"],[class^="tread-wrapper"]{margin:15px 0 0 0;padding:0px;} [id^="tread-wrapper"],[class^="tread-wrapper"]{margin:1.2em 0 0 0;padding:0px;}
.wall-item-photo-menu{display:none;} .wall-item-photo-menu{display:none;}
.wall-item-photo-menu-button{display:none;text-indent:-99999px;background:#555753 url(dark/menu-user-pin.jpg) no-repeat 75px center;position:absolute;overflow:hidden;width:90px;height:20px;top:85px;left:0;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;} .wall-item-photo-menu-button{display:none;text-indent:-99999px;background:#555753 url(dark/menu-user-pin.jpg) no-repeat 75px center;position:absolute;overflow:hidden;width:90px;height:20px;top:85px;left:0;-o-border-radius:0 0 5px 5px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;-ms-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;}
.wall-item-info{float:left;width:110px;} .wall-item-info{float:left;width:110px;}
.wall-item-photo-wrapper{width:80px;height:80px;position:relative;padding:5px;background-color:#555753;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;} .wall-item-photo-wrapper{width:80px;height:80px;position:relative;padding:5px;background-color:#555753;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}
[class^="wall-item-tools"] *{}[class^="wall-item-tools"] *>*{} [class^="wall-item-tools"] *{}[class^="wall-item-tools"] *>*{}
.wall-item-tools{float:right;opacity:0.4;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}.wall-item-tools:hover{opacity:1;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;} .wall-item-tools{float:right;opacity:0.4;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}.wall-item-tools:hover{opacity:1;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}
.wall-item-subtools1{width:30px;height:30px;list-style:none outside none;margin:20px 0 30px -20px;padding:0;} .wall-item-subtools1{width:30px;height:30px;list-style:none outside none;margin:18px 0 30px -20px;padding:0;}
.wall-item-subtools2{width:25px;height:25px;list-style:none outside none;margin:-75px 0 0 5px;padding:0;} .wall-item-subtools2{width:25px;height:25px;list-style:none outside none;margin:-78px 0 0 5px;padding:0;}
.wall-item-title{font-size:1.2em;font-weight:bold;margin-bottom:1em;} .wall-item-title{font-size:1.2em;font-weight:bold;margin-bottom:1.4em;}
.wall-item-body{margin:20px 20px 10px 0px;text-align:left;overflow-x:auto;} .wall-item-body{margin:15px 10px 10px 0px;text-align:left;overflow-x:auto;}
.wall-item-lock-wrapper{float:right;width:22px;height:22px;margin:0 -5px 0 0;opacity:1;} .wall-item-lock-wrapper{float:right;width:22px;height:22px;margin:0 -5px 0 0;opacity:1;}
.wall-item-dislike,.wall-item-like{clear:left;font-size:0.8em;color:#888b85;margin:5px 0 5px 120px;} .wall-item-dislike,.wall-item-like{clear:left;font-size:0.8em;color:#888b85;margin:5px 0 5px 10.2em;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;opacity:0.5;}.wall-item-dislike:hover,.wall-item-like:hover{opacity:1;}
.wall-item-author,.wall-item-actions-author{clear:left;font-size:0.8em;color:#888b85;margin:20px 20px 0 110px;} .wall-item-author,.wall-item-actions-author{clear:left;float:left;font-size:0.8em;color:#888b85;margin:1em auto 0 0.2em;}
.wall-item-ago{display:inline;padding-left:10px;} .wall-item-ago{display:inline;padding-left:10px;}
.wall-item-wrapper-end{clear:both;} .wall-item-wrapper-end{clear:both;}
.wall-item-location{margin-top:15px;width:100px;overflow:hidden;-moz-text-overflow:ellipsis;-ms-text-verflow:ellipsis;-o-text-overflow:ellipsis;-webkit-text-overflow:ellipsis;text-overflow:ellipsis;}.wall-item-location .icon{float:left;} .wall-item-location{margin-top:15px;width:100px;overflow:hidden;-moz-text-overflow:ellipsis;-ms-text-verflow:ellipsis;-o-text-overflow:ellipsis;-webkit-text-overflow:ellipsis;text-overflow:ellipsis;}.wall-item-location .icon{float:left;}
@ -192,13 +205,13 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
.wall-item-photo-menu{min-width:92px;border:2px solid #ffffff;border-top:0px;background:#555753;position:absolute;left:-2px;top:101px;display:none;z-index:10003;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.wall-item-photo-menu li a{white-space:nowrap;display:block;padding:5px 2px;color:#eeeeee;}.wall-item-photo-menu li a:hover{color:#555753;background:#eeeeee;} .wall-item-photo-menu{min-width:92px;border:2px solid #ffffff;border-top:0px;background:#555753;position:absolute;left:-2px;top:101px;display:none;z-index:10003;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;}.wall-item-photo-menu li a{white-space:nowrap;display:block;padding:5px 2px;color:#eeeeee;}.wall-item-photo-menu li a:hover{color:#555753;background:#eeeeee;}
#item-delete-selected{overflow:auto;width:100%;} #item-delete-selected{overflow:auto;width:100%;}
#connect-services-header,#connect-services,#extra-help-header,#extra-help,#postit-header,#postit{margin:5px 0 0 0;} #connect-services-header,#connect-services,#extra-help-header,#extra-help,#postit-header,#postit{margin:5px 0 0 0;}
.ccollapse-wrapper{font-size:0.9em;margin-left:80px;} .ccollapse-wrapper{font-size:0.9em;margin-left:5em;}
.wall-item-outside-wrapper.comment{margin-left:80px;}.wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;} .wall-item-outside-wrapper.comment{margin-left:5em;}.wall-item-outside-wrapper.comment .wall-item-photo{width:40px !important;height:40px !important;}
.wall-item-outside-wrapper.comment .wall-item-photo-wrapper{width:40px;height:40px;} .wall-item-outside-wrapper.comment .wall-item-photo-wrapper{width:40px;height:40px;}
.wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:50px;top:45px;background-position:35px center;} .wall-item-outside-wrapper.comment .wall-item-photo-menu-button{width:50px;top:45px;background-position:35px center;}
.wall-item-outside-wrapper.comment .wall-item-info{width:60px;} .wall-item-outside-wrapper.comment .wall-item-info{width:60px;}
.wall-item-outside-wrapper.comment .wall-item-body{margin-left:10px;} .wall-item-outside-wrapper.comment .wall-item-body{margin-left:10px;}
.wall-item-outside-wrapper.comment .wall-item-author{margin-left:50px;} .wall-item-outside-wrapper.comment .wall-item-author{margin-left:0.2em;}
.wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:50px;top:60px;} .wall-item-outside-wrapper.comment .wall-item-photo-menu{min-width:50px;top:60px;}
.comment-wwedit-wrapper{} .comment-wwedit-wrapper{}
.comment-edit-wrapper{border-top:1px #aaa solid;} .comment-edit-wrapper{border-top:1px #aaa solid;}
@ -206,7 +219,7 @@ nav #nav-notifications-linkmenu.on .icon.s22.notify,nav #nav-notifications-linkm
.comment-wwedit-wrapper img,.comment-edit-wrapper img{width:20px;height:20px;} .comment-wwedit-wrapper img,.comment-edit-wrapper img{width:20px;height:20px;}
.comment-edit-photo-link,.comment-edit-photo{margin-left:10px;} .comment-edit-photo-link,.comment-edit-photo{margin-left:10px;}
.my-comment-photo{width:40px;height:40px;padding:5px;} .my-comment-photo{width:40px;height:40px;padding:5px;}
[class^="comment-edit-text"]{margin:5px 0 10px 20px;width:84.5%;} [class^="comment-edit-text"]{margin:5px 0 10px 20px;width:94%;}
.comment-edit-text-empty{height:20px;border:2px #c8bebe solid;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#c8bebe;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}.comment-edit-text-empty:hover{color:#999999;} .comment-edit-text-empty{height:20px;border:2px #c8bebe solid;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#c8bebe;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}.comment-edit-text-empty:hover{color:#999999;}
.comment-edit-text-full{height:10em;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;} .comment-edit-text-full{height:10em;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-webkit-transition:all 0.5s ease-in-out;-moz-transition:all 0.5s ease-in-out;-o-transition:all 0.5s ease-in-out;-ms-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out;}
.comment-edit-submit-wrapper{width:90%;margin:5px 5px 10px 50px;text-align:right;} .comment-edit-submit-wrapper{width:90%;margin:5px 5px 10px 50px;text-align:right;}
@ -395,7 +408,7 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
#adminpage .selectall{text-align:right;} #adminpage .selectall{text-align:right;}
#adminpage #users a{color:#eeeecc;text-decoration:underline;} #adminpage #users a{color:#eeeecc;text-decoration:underline;}
#users .name{color:#eeeecc;} #users .name{color:#eeeecc;}
.field{overflow:auto;}.field label{width:38%;display:inline-block;font-size:1.077em;margin:0 10px 1em 0;border:1px #2e2f2e solid;padding:5px;background:#eeeecc;color:#111;} .field{overflow:auto;}.field label{width:38%;display:inline-block;margin:0 10px 1em 0;border:1px #2e2f2e solid;padding:5px;background:#eeeecc;color:#111;}
.field .onoff{float:right;margin:0 330px 0 auto;width:80px;}.field .onoff a{display:block;border:1px solid #666666;padding:3px 6px 4px 10px;height:16px;text-decoration:none;} .field .onoff{float:right;margin:0 330px 0 auto;width:80px;}.field .onoff a{display:block;border:1px solid #666666;padding:3px 6px 4px 10px;height:16px;text-decoration:none;}
.field .onoff .on,.field .onoff .off{background-image:url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAUACIDASIAAhEBAxEB/8QAGgABAQACAwAAAAAAAAAAAAAAAAQDBQEGCf/EACgQAAIBAwIFAwUAAAAAAAAAAAECAAMEERIUBRMxUpEhIoEjM1Nxkv/EABcBAAMBAAAAAAAAAAAAAAAAAAABAgT/xAAaEQEAAgMBAAAAAAAAAAAAAAAAAQIRMVES/9oADAMBAAIRAxEAPwD1ERKFNFVaNNVUYACgACcNVt1dEKUwzZwNI9cSDczDVdnuKDjomrPyJOQ2SXNq/L0rTPMzp9vXHWZfo/jT+RNFQV6e2yPt6s/Ms3EWQofhnDqjszWFqzMcljRUknxEn3ES/dup8xxPZ0hXtKFViQzorEDpkiZtqvc3mIkzs40bVe5vMbVe5vMREbrN3xy4t7utSVaZVHZQSDnAP7iIm+K1xpkm09f/2Q==');background-repeat:no-repeat;} .field .onoff .on,.field .onoff .off{background-image:url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAUACIDASIAAhEBAxEB/8QAGgABAQACAwAAAAAAAAAAAAAAAAQDBQEGCf/EACgQAAIBAwIFAwUAAAAAAAAAAAECAAMEERIUBRMxUpEhIoEjM1Nxkv/EABcBAAMBAAAAAAAAAAAAAAAAAAABAgT/xAAaEQEAAgMBAAAAAAAAAAAAAAAAAQIRMVES/9oADAMBAAIRAxEAPwD1ERKFNFVaNNVUYACgACcNVt1dEKUwzZwNI9cSDczDVdnuKDjomrPyJOQ2SXNq/L0rTPMzp9vXHWZfo/jT+RNFQV6e2yPt6s/Ms3EWQofhnDqjszWFqzMcljRUknxEn3ES/dup8xxPZ0hXtKFViQzorEDpkiZtqvc3mIkzs40bVe5vMbVe5vMREbrN3xy4t7utSVaZVHZQSDnAP7iIm+K1xpkm09f/2Q==');background-repeat:no-repeat;}
.field .onoff .on{background-position:42px 1px;background-color:#999999;color:#111111;text-align:left;} .field .onoff .on{background-position:42px 1px;background-color:#999999;color:#111111;text-align:left;}
@ -404,10 +417,6 @@ div[id$="wrapper"]{height:100%;margin-bottom:1em;}div[id$="wrapper"] br{clear:le
.field textarea{width:80%;height:100px;} .field textarea{width:80%;height:100px;}
.field_help{display:block;margin-left:297px;color:#b1b1b1;} .field_help{display:block;margin-left:297px;color:#b1b1b1;}
.field.radio .field_help{margin-left:297px;} .field.radio .field_help{margin-left:297px;}
label{width:38%;display:inline-block;font-size:1.077em;margin:0 10px 1em 0;border:1px solid #2e2f2e;padding:5px;background:#eeeecc;color:#111111;-moz-box-shadow:3px 3px 5px 0px #111111;-o-box-shadow:3px 3px 5px 0px #111111;-webkit-box-shadow:3px 3px 5px 0px #111111;-ms-box-shadow:3px 3px 5px 0px #111111;box-shadow:3px 3px 5px 0px #111111;}
input{width:250px;height:25px;border:1px solid #999999;}input[type="checkbox"],input[type="radio"]{margin:0;width:15px;height:15px;}
input[type="submit"],input[type="button"]{background-color:#eeeeee;border:2px outset #b1b1b1;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 3px 4px 0 #111111;-o-box-shadow:1px 3px 4px 0 #111111;-webkit-box-shadow:1px 3px 4px 0 #111111;-ms-box-shadow:1px 3px 4px 0 #111111;box-shadow:1px 3px 4px 0 #111111;color:#2e302e;cursor:pointer;font-weight:bold;width:auto;-moz-text-shadow:1px 1px #111111;-o-text-shadow:1px 1px #111111;-webkit-text-shadow:1px 1px #111111;-ms-text-shadow:1px 1px #111111;text-shadow:1px 1px #111111;}
input[type="submit"]:active,input[type="button"]:active{-moz-box-shadow:0 0 0 0 #111111;-o-box-shadow:0 0 0 0 #111111;-webkit-box-shadow:0 0 0 0 #111111;-ms-box-shadow:0 0 0 0 #111111;box-shadow:0 0 0 0 #111111;}
.popup{width:100%;height:100%;top:0px;left:0px;position:absolute;display:none;}.popup .background{background-color:#111111;opacity:0.5;width:100%;height:100%;position:absolute;top:0px;left:0px;} .popup{width:100%;height:100%;top:0px;left:0px;position:absolute;display:none;}.popup .background{background-color:#111111;opacity:0.5;width:100%;height:100%;position:absolute;top:0px;left:0px;}
.popup .panel{top:25%;left:25%;width:50%;height:50%;padding:1em;position:absolute;border:4px solid #000000;background-color:white;} .popup .panel{top:25%;left:25%;width:50%;height:50%;padding:1em;position:absolute;border:4px solid #000000;background-color:white;}
#panel{z-index:100;} #panel{z-index:100;}
@ -488,6 +497,7 @@ input[type="submit"]:active,input[type="button"]:active{-moz-box-shadow:0 0 0 0
footer{display:block;clear:both;} footer{display:block;clear:both;}
#profile-jot-text{height:20px;color:#eeeecc;border:1px solid #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;width:99.5%;} #profile-jot-text{height:20px;color:#eeeecc;border:1px solid #eeeecc;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;width:99.5%;}
#photo-edit-perms-select,#photos-upload-permissions-wrapper,#profile-jot-acl-wrapper{display:block !important;background:#2e2f2e;color:#eeeecc;} #photo-edit-perms-select,#photos-upload-permissions-wrapper,#profile-jot-acl-wrapper{display:block !important;background:#2e2f2e;color:#eeeecc;}
#profile-jot-acl-wrapper{margin:0 10px;border:1px solid #555753;border-top:0;}
#acl-wrapper{width:660px;margin:0 auto;} #acl-wrapper{width:660px;margin:0 auto;}
#acl-search{float:right;background:#ffffff url("../../../images/search_18.png") no-repeat right center;padding-right:20px;margin:6px;color:#111111;} #acl-search{float:right;background:#ffffff url("../../../images/search_18.png") no-repeat right center;padding-right:20px;margin:6px;color:#111111;}
#acl-showall{float:left;display:block;width:auto;height:18px;background:#eeeecc url("../../../images/show_all_off.png") 8px 8px no-repeat;padding:7px 10px 7px 30px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#999999;margin:5px 0;}#acl-showall.selected{color:black;background:#ff9900 url(../../../images/show_all_on.png) 8px 8px no-repeat;} #acl-showall{float:left;display:block;width:auto;height:18px;background:#eeeecc url("../../../images/show_all_off.png") 8px 8px no-repeat;padding:7px 10px 7px 30px;-o-border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;border-radius:5px;color:#999999;margin:5px 0;}#acl-showall.selected{color:black;background:#ff9900 url(../../../images/show_all_on.png) 8px 8px no-repeat;}
@ -513,4 +523,4 @@ footer{display:block;clear:both;}
#sidebar-page-list ul{padding:0;margin:5px 0;} #sidebar-page-list ul{padding:0;margin:5px 0;}
#sidebar-page-list li{list-style:none;} #sidebar-page-list li{list-style:none;}
#jappix_mini{margin-left:130px;position:fixed;bottom:0;right:175px !important;z-index:999;} #jappix_mini{margin-left:130px;position:fixed;bottom:0;right:175px !important;z-index:999;}
@media handheld{body{font-size:15pt;}}@media only screen and (min-device-width:320px) and (max-device-width:480px){body{font-size:10px;}}@media only screen and (min-width:321px){body{font-size:10px;}}@media only screen and (max-width:320px){body{font-size:10px;}}@media only screen and (min-device-width:768px) and (max-device-width:1024px){body{font-size:16px;}}@media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:landscape){body{font-size:16px;}}@media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:portrait){body{font-size:16px;}}@media only screen and (min-width:1024px){body{font-size:16px;}}@media only screen and (min-width:1520px){body{font-size:18px;}}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){body{font-size:16px;}} @media handheld and screen{body{font-size:15pt;}}@media only screen and (min-device-width:320px) and (max-device-width:480px){body{font-size:12pt;}}@media only screen and (min-width:321px){body{font-size:12pt;}}@media only screen and (max-width:320px){body{font-size:12pt;}}@media only screen and (min-device-width:768px) and (max-device-width:1024px){body{font-size:14pt;}}@media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:landscape){body{font-size:14pt;}}@media only screen and (min-device-width:768px) and (max-device-width:1024px) and (orientation:portrait){body{font-size:14pt;}}@media only screen and (min-width:1024px){body{font-size:14pt;}}@media only screen and (min-width:1520px){body{font-size:16pt;}}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){body{font-size:14pt;}}

View file

@ -1,19 +1,19 @@
/* /*
* dispy-dark * dispy dark
* * Description: Dispy Dark: dark, sleek, functional
* author, maintainer: simon <http://simon.kisikew.org/> * author, maintainer: simon <http://simon.kisikew.org/>
* *
* Author's notes: * Author's notes:
* A few things of note here. The less file is our working copy, * A few things of note here. The less file is our working copy,
* and the CSS is *generated* from it. The CSS is the one that's * and the CSS is *generated* from it. The CSS is the one that's
* included in the HTML, and not the less one. This is to save * included in the HTML, and not the less one. This is to save
* bandwidth and processing time. * bandwidth and processing time, by not including less.js.
*/ */
/* from html5boilerplate */
/* these are to tell browsers they should be displayed a certain way */
@import "_base"; @import "_base";
///* from html5boilerplate */
///* these are to tell browsers they should be displayed a certain way */
article, article,
aside, aside,
details, details,
@ -37,12 +37,12 @@ time {
audio:not([controls]), [hidden] { audio:not([controls]), [hidden] {
display: none; display: none;
} }
/* ///*
* 1. Correct text resizing oddly in IE6/7 when body font-size is set using em units // * 1. Correct text resizing oddly in IE6/7 when body font-size is set using em units
* 2. Force vertical scrollbar in non-IE // * 2. Force vertical scrollbar in non-IE
* 3. Prevent iOS text size adjust on device orientation change, // * 3. Prevent iOS text size adjust on device orientation change,
* without disabling user zoom: h5bp.com/g // * without disabling user zoom: h5bp.com/g
*/ // */
html { html {
font-size: 100%; font-size: 100%;
overflow-y: scroll; overflow-y: scroll;
@ -61,11 +61,13 @@ button, input, select, textarea {
background-color: @bg_colour; background-color: @bg_colour;
} }
select { select {
border: 1px #555 dotted; .borders(1px, dotted, darken(@main_alt_colour, 60%));
padding: 1px; padding: 1px;
margin: 3px; margin: 3px;
color: @main_colour; color: @main_colour;
background: @bg_colour; background: @bg_colour;
max-width: 85%;
min-width: 85px;
} }
option { option {
padding: 1px; padding: 1px;
@ -76,13 +78,10 @@ option {
background: @main_colour; background: @main_colour;
} }
} }
ul, ol {
.list_reset;
}
tr:nth-child(even) { tr:nth-child(even) {
background-color: lighten(@bg_colour, 10%); background-color: lighten(@bg_colour, 10%);
} }
/* remember to define focus styles! */ ///* remember to define focus styles! */
:focus { :focus {
outline: 0; outline: 0;
} }
@ -90,7 +89,7 @@ tr:nth-child(even) {
background: @med_bg_colour; background: @med_bg_colour;
color: @disabled_colour; color: @disabled_colour;
} }
/* remember to highlight inserts somehow! */ ///* remember to highlight inserts somehow! */
ins, mark { ins, mark {
background-color: @bg_alt_colour; background-color: @bg_alt_colour;
color: @lt_main_colour; color: @lt_main_colour;
@ -102,14 +101,19 @@ mark {
font-style: italic; font-style: italic;
font-weight: bold; font-weight: bold;
} }
/* Redeclare monospace font family: h5bp.com/j */ ///* Redeclare monospace font family: h5bp.com/j */
pre, code, kbd, samp, .wall-item-body code { pre,
code,
kbd,
samp,
.wall-item-body code {
font-family: monospace, monospace; font-family: monospace, monospace;
_font-family: monospace; _font-family: monospace;
font-size: 1em; font-size: 1em;
} }
/* Improve readability of pre-formatted text in all browsers */ ///* Improve readability of pre-formatted text in all browsers */
pre, .wall-item-body code { pre,
.wall-item-body code {
.wrap; .wrap;
} }
q { q {
@ -122,7 +126,8 @@ q {
small { small {
font-size: 85%; font-size: 85%;
} }
/* Position subscript and superscript content without affecting line-height: h5bp.com/k */ ///* Position subscript and superscript content without affecting
// * line-height: h5bp.com/k */
sub, sup { sub, sup {
font-size: 75%; font-size: 75%;
line-height: 0; line-height: 0;
@ -151,13 +156,57 @@ a {
} }
} }
blockquote { blockquote {
background: #444; background: darken(@main_alt_colour, 66.5%);
color: @main_colour; color: @main_colour;
text-indent: 5px; text-indent: 5px;
padding: 5px; padding: 5px;
border: 1px #aaa solid; .borders(1px, solid, darken(@main_alt_colour, 33%));
.rounded_corners; .rounded_corners;
} }
label {
width: 38%;
display: inline-block;
font-size: 0.95em;
margin: 0 10px 1em 0;
.borders(1px, solid, @bg_colour);
padding: 5px;
background: @main_colour;
color: darken(@main_alt_colour, 86.5%);
.box_shadow(3px, 3px, 5px);
}
input {
.box(250px, 25px);
.borders(1px, solid, darken(@main_alt_colour, 33.5%));
&[type="checkbox"],
&[type="radio"] {
margin: 0;
.box(15px, 15px);
}
&[type="submit"],
&[type="button"] {
background-color: @main_alt_colour;
.borders(2px, outset, darken(@main_alt_colour, 24%));
.rounded_corners;
.box_shadow(1px, 3px, 4px, 0);
color: @bg_alt_colour;
cursor: pointer;
font-weight: bold;
width: auto;
.text_shadow;
}
&[type="submit"]:active,
&[type="button"]:active {
.box_shadow(0, 0, 0, 0);
}
}
h1, h2, h3,
h4, h5, h6 {
margin: 10px 0px;
font-weight: bold;
border-bottom: 1px solid @hover_colour;
}
//
.required { .required {
display: inline; display: inline;
color: #ff0; color: #ff0;
@ -188,6 +237,8 @@ blockquote {
display: block; display: block;
clear: both; clear: both;
text-align: center; text-align: center;
font-size: small;
font-weight: bold;
span { span {
padding: 4px; padding: 4px;
margin: 4px; margin: 4px;
@ -195,7 +246,7 @@ blockquote {
} }
.pager_current { .pager_current {
background-color: @link_colour; background-color: @link_colour;
color: @main_alt_colour; color: @bg_colour;
} }
@ -219,9 +270,10 @@ blockquote {
background: @main_colour; background: @main_colour;
.rounded_corners; .rounded_corners;
.box_shadow(3px, 3px, 5px); .box_shadow(3px, 3px, 5px);
padding: 3px; margin: 3px 10px 7px 0;
margin: 5px 0; padding: 6px 7px;
font-weight: bold; font-weight: bold;
font-size: smaller;
} }
@ -276,7 +328,8 @@ blockquote {
overflow: hidden !important; } overflow: hidden !important; }
label { label {
width: 180px !important; width: 180px !important;
} } }
}
/** /**
@ -315,6 +368,8 @@ ul#user-menu-popup {
margin: 0px; margin: 0px;
top: 20px; top: 20px;
left: 0; left: 0;
font-size: small;
line-height: 1;
.rounded_corners(0 0 5px 5px); .rounded_corners(0 0 5px 5px);
.box_shadow(5px, 5px, 10px, 0px); .box_shadow(5px, 5px, 10px, 0px);
z-index: 10000; z-index: 10000;
@ -378,7 +433,8 @@ nav .nav-link {
&:hover { &:hover {
background-position: -66px -88px; } background-position: -66px -88px; }
} }
#nav-notify-link, #nav-notifications-linkmenu { #nav-notify-link,
#nav-notifications-linkmenu {
background-position: -44px -110px; background-position: -44px -110px;
} }
#nav-notify-link:hover { #nav-notify-link:hover {
@ -417,9 +473,7 @@ nav .nav-link {
.pointer { .pointer {
cursor: pointer; cursor: pointer;
} }
//* popup notifications */
/* popup notifications */
div.jGrowl div { div.jGrowl div {
&.notice { &.notice {
background: @notice url("../../../images/icons/48/notice.png") no-repeat 5px center; background: @notice url("../../../images/icons/48/notice.png") no-repeat 5px center;
@ -434,7 +488,6 @@ div.jGrowl div {
margin-top: 50px; margin-top: 50px;
} }
} }
#nav-notifications-menu { #nav-notifications-menu {
margin: 30px 0 0 -20px; margin: 30px 0 0 -20px;
width: 275px; width: 275px;
@ -458,9 +511,9 @@ div.jGrowl div {
} }
a:hover { a:hover {
color: black; color: black;
text-decoration: underline; } text-decoration: underline;
}
} }
nav #nav-notifications-linkmenu { nav #nav-notifications-linkmenu {
&.on .icon.s22.notify, &.on .icon.s22.notify,
&.selected .icon.s22.notify { &.selected .icon.s22.notify {
@ -473,9 +526,10 @@ nav #nav-notifications-linkmenu {
} }
#notifications { #notifications {
.box(170px, 20px); .box(170px, 20px);
position: absolute; font-size: small;
top: -19px; top: -19px;
left: 4px; left: 4px;
position: absolute;
} }
#nav-floater { #nav-floater {
position: fixed; position: fixed;
@ -560,7 +614,7 @@ nav #nav-notifications-linkmenu {
} }
} }
#user-menu-label { #user-menu-label {
font-size: 12px; font-size: small;
padding: 3px 20px 9px 5px; padding: 3px 20px 9px 5px;
height: 10px; height: 10px;
} }
@ -700,7 +754,7 @@ nav #nav-notifications-linkmenu {
*/ */
#asidemain { #asidemain {
float: left; float: left;
font-size: smaller; font-size: 0.75em;
margin: 20px 0 20px 35px; margin: 20px 0 20px 35px;
width: 25%; width: 25%;
display: inline; display: inline;
@ -712,9 +766,9 @@ nav #nav-notifications-linkmenu {
} }
.vcard { .vcard {
.fn { .fn {
font-size: 1.7em; font-size: 1.5em;
font-weight: bold; font-weight: bold;
border-bottom: 1px solid #729fcf; border-bottom: 1px solid @hover_colour;
padding-bottom: 3px; padding-bottom: 3px;
} }
#profile-photo-wrapper { #profile-photo-wrapper {
@ -746,7 +800,8 @@ nav #nav-notifications-linkmenu {
background: @main_colour; background: @main_colour;
color: @bg_colour; color: @bg_colour;
font-weight: bold; font-weight: bold;
.box_shadow(1px 1px 5px 0); .box_shadow(3px, 3px, 5px);
.rounded_corners;
margin: 15px 0 5px; margin: 15px 0 5px;
padding-left: 5px; padding-left: 5px;
} }
@ -981,14 +1036,6 @@ nav #nav-notifications-linkmenu {
.rounded_corners; .rounded_corners;
overflow: hidden; overflow: hidden;
} }
#profile-jot-acl-wrapper {
margin: 0 10px;
.borders(1px, solid, darken(@main_alt_colour, 60%));
border-top: 0;
display: block !important;
.borders(1px solid @menu_bg_colour);
.box_shadow;
}
#group_allow_wrapper, #group_allow_wrapper,
#group_deny_wrapper, #group_deny_wrapper,
#acl-permit-outer-wrapper, #acl-permit-outer-wrapper,
@ -1046,10 +1093,12 @@ nav #nav-notifications-linkmenu {
color: @main_colour; color: @main_colour;
.borders(1px, solid, @main_colour); .borders(1px, solid, @main_colour);
.rounded_corners; .rounded_corners;
.box_shadow(5px, 0, 10px);
padding: 3px 3px 6px 10px; padding: 3px 3px 6px 10px;
.wall-item-outside-wrapper { .wall-item-outside-wrapper {
border: 0; border: 0;
.rounded_corners(0px 0px 0px 0px); .rounded_corners(0px 0px 0px 0px);
.box_shadow(0, 0, 0, 0);
} }
} }
@ -1115,7 +1164,7 @@ nav #nav-notifications-linkmenu {
} }
.wall-item-content-wrapper { .wall-item-content-wrapper {
position: relative; position: relative;
padding: 10px; padding: 0.75em;
width: auto; width: auto;
} }
.wall-item-outside-wrapper .wall-item-comment-wrapper { .wall-item-outside-wrapper .wall-item-comment-wrapper {
@ -1133,10 +1182,11 @@ nav #nav-notifications-linkmenu {
} }
.wall-item-content { .wall-item-content {
overflow-x: auto; overflow-x: auto;
margin: 0px 15px 0px 5px; margin: 0px 4em 1em 5px;
} }
[id^="tread-wrapper"], [class^="tread-wrapper"] { [id^="tread-wrapper"],
margin: 15px 0 0 0; [class^="tread-wrapper"] {
margin: 1.2em 0 0 0;
padding: 0px; padding: 0px;
} }
.wall-item-photo-menu { .wall-item-photo-menu {
@ -1182,22 +1232,22 @@ nav #nav-notifications-linkmenu {
.wall-item-subtools1 { .wall-item-subtools1 {
.box(30px, 30px); .box(30px, 30px);
list-style: none outside none; list-style: none outside none;
margin: 20px 0 30px -20px; margin: 18px 0 30px -20px;
padding: 0; padding: 0;
} }
.wall-item-subtools2 { .wall-item-subtools2 {
.box(25px, 25px); .box(25px, 25px);
list-style: none outside none; list-style: none outside none;
margin: -75px 0 0 5px; margin: -78px 0 0 5px;
padding: 0; padding: 0;
} }
.wall-item-title { .wall-item-title {
font-size: 1.2em; font-size: 1.2em;
font-weight: bold; font-weight: bold;
margin-bottom: 1em; margin-bottom: 1.4em;
} }
.wall-item-body { .wall-item-body {
margin: 20px 20px 10px 0px; margin: 15px 10px 10px 0px;
text-align: left; text-align: left;
overflow-x: auto; overflow-x: auto;
} }
@ -1212,14 +1262,20 @@ nav #nav-notifications-linkmenu {
clear: left; clear: left;
font-size: 0.8em; font-size: 0.8em;
color: lighten(@menu_bg_colour, 20%); color: lighten(@menu_bg_colour, 20%);
margin: 5px 0 5px 120px; margin: 5px 0 5px 10.2em;
.transition;
opacity: 0.5;
&:hover {
opacity: 1;
}
} }
.wall-item-author, .wall-item-author,
.wall-item-actions-author { .wall-item-actions-author {
clear: left; clear: left;
float: left;
font-size: 0.8em; font-size: 0.8em;
color: lighten(@menu_bg_colour, 20%); color: lighten(@menu_bg_colour, 20%);
margin: 20px 20px 0 110px; margin: 1em auto 0 0.2em;
} }
.wall-item-ago { .wall-item-ago {
display: inline; display: inline;
@ -1309,10 +1365,10 @@ nav #nav-notifications-linkmenu {
*/ */
.ccollapse-wrapper { .ccollapse-wrapper {
font-size: 0.9em; font-size: 0.9em;
margin-left: 80px; margin-left: 5em;
} }
.wall-item-outside-wrapper.comment { .wall-item-outside-wrapper.comment {
margin-left: 80px; margin-left: 5em;
.wall-item-photo { .wall-item-photo {
width: 40px !important; width: 40px !important;
height: 40px !important; height: 40px !important;
@ -1332,7 +1388,7 @@ nav #nav-notifications-linkmenu {
margin-left: 10px; margin-left: 10px;
} }
.wall-item-author { .wall-item-author {
margin-left: 50px; margin-left: 0.2em;
} }
.wall-item-photo-menu { .wall-item-photo-menu {
min-width: 50px; min-width: 50px;
@ -1371,7 +1427,7 @@ nav #nav-notifications-linkmenu {
[class^="comment-edit-text"] { [class^="comment-edit-text"] {
margin: 5px 0 10px 20px; margin: 5px 0 10px 20px;
width: 84.5%; width: 94%;
} }
.comment-edit-text-empty { .comment-edit-text-empty {
height: 20px; height: 20px;
@ -2346,7 +2402,6 @@ div {
label { label {
width: 38%; width: 38%;
display: inline-block; display: inline-block;
font-size: 1.077em;
margin: 0 10px 1em 0; margin: 0 10px 1em 0;
border: 1px @bg_colour solid; border: 1px @bg_colour solid;
padding: 5px; padding: 5px;
@ -2396,42 +2451,6 @@ div {
.field.radio .field_help { .field.radio .field_help {
margin-left: 297px; margin-left: 297px;
} }
label {
width: 38%;
display: inline-block;
font-size: 1.077em;
margin: 0 10px 1em 0;
.borders(1px, solid, @bg_colour);
padding: 5px;
background: @main_colour;
color: darken(@main_alt_colour, 86.5%);
.box_shadow(3px, 3px, 5px);
}
input {
.box(250px, 25px);
.borders(1px, solid, darken(@main_alt_colour, 33.5%));
&[type="checkbox"],
&[type="radio"] {
margin: 0;
.box(15px, 15px);
}
&[type="submit"],
&[type="button"] {
background-color: @main_alt_colour;
.borders(2px, outset, darken(@main_alt_colour, 24%));
.rounded_corners;
.box_shadow(1px, 3px, 4px, 0);
color: @bg_alt_colour;
cursor: pointer;
font-weight: bold;
width: auto;
.text_shadow;
}
&[type="submit"]:active,
&[type="button"]:active {
.box_shadow(0, 0, 0, 0);
}
}
/* /*
@ -2812,6 +2831,12 @@ footer {
background: @bg_colour; background: @bg_colour;
color: @main_colour; color: @main_colour;
} }
#profile-jot-acl-wrapper {
margin: 0 10px;
.borders(1px, solid, @menu_bg_colour);
border-top: 0;
// .box_shadow;
}
#acl-wrapper { #acl-wrapper {
width: 660px; width: 660px;
margin: 0 auto; margin: 0 auto;
@ -2986,74 +3011,4 @@ footer {
z-index: 999; z-index: 999;
} }
@import "../css/media";
//* media stuff */
@media handheld {
body {
font-size: 15pt;
}
}
//* Smartphones (portrait and landscape) ----------- */
@media only screen and (min-device-width: 320px)
and (max-device-width: 480px) {
body {
font-size: 10px;
}
}
//* Smartphones (landscape) ----------- */
@media only screen and (min-width: 321px) {
body {
font-size: 10px;
}
}
//* Smartphones (portrait) ----------- */
@media only screen and (max-width: 320px) {
body {
font-size: 10px;
}
}
//* iPads (portrait and landscape) ----------- */
@media only screen and (min-device-width: 768px)
and (max-device-width: 1024px) {
body {
font-size: 16px;
}
}
//* iPads (landscape) ----------- */
@media only screen and (min-device-width: 768px)
and (max-device-width: 1024px)
and (orientation: landscape) {
body {
font-size: 16px;
}
}
//* iPads (portrait) ----------- */
@media only screen and (min-device-width: 768px)
and (max-device-width: 1024px)
and (orientation: portrait) {
body {
font-size: 16px;
}
}
//* Desktops and laptops ----------- */
//adjusted to 1024 from 1224.
//not everybody has a fucking big screen ffs
@media only screen and (min-width: 1024px) {
body {
font-size: 16px;
}
}
//* Large screens - */
@media only screen and (min-width: 1520px) {
body {
font-size: 18px;
}
}
//* iPhone 4 ----------- */
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (min-device-pixel-ratio: 1.5) {
body {
font-size: 16px;
}
}

View file

@ -24,8 +24,8 @@ function initEditor(cb) {
mode : "specific_textareas", mode : "specific_textareas",
editor_selector: $editselect, editor_selector: $editselect,
auto_focus: "profile-jot-text", auto_focus: "profile-jot-text",
plugins : "bbcode,paste,fullscreen,autoresize,inlinepopups", plugins : "bbcode,paste,fullscreen,autoresize,inlinepopups,contextmenu,style",
theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code,fullscreen", theme_advanced_buttons1 : "bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code,fullscreen,charmap",
theme_advanced_buttons2 : "", theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "", theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top", theme_advanced_toolbar_location : "top",
@ -98,7 +98,6 @@ function initEditor(cb) {
$(".jothidden").show(); $(".jothidden").show();
if (typeof cb!="undefined") cb(); if (typeof cb!="undefined") cb();
}); });
} }
}); });
editor = true; editor = true;
@ -155,8 +154,6 @@ function enableOnUser(){
} }
} }
); );
}); });
function deleteCheckedItems() { function deleteCheckedItems() {
@ -345,5 +342,4 @@ function enableOnUser(){
}); });
$('#profile-jot-text').keyup(); $('#profile-jot-text').keyup();
} }
</script> </script>

View file

@ -59,7 +59,8 @@ select {
padding: 3px; padding: 3px;
margin: 3px; margin: 3px;
color: #222; color: #222;
background: #eee; } background: #eee;
}
option { option {
padding: 3px; padding: 3px;
@ -67,13 +68,13 @@ option {
background: #eee; background: #eee;
&[selected="selected"] { &[selected="selected"] {
color: #111; color: #111;
background: #cca; } } background: #cca; }
}
ul, ol { ul, ol {
padding: 0; } padding: 0;
}
/* remember to define focus styles! */ /* remember to define focus styles! */
:focus { :focus {
outline: 0; } outline: 0; }

View file

@ -2,13 +2,21 @@
/* /*
* Name: Dispy * Name: Dispy
* Description: <p style="white-space:pre;"> Dispy: Light, Spartan, Sleek, and Functional<br /> Dispy Dark: Dark, Spartan, Sleek, and Functional</p> * Description: Dispy family (light, dark): Sleek and Functional Themes
* Version: 1.2 * Version: 1.2.1
* Author: Simon <http://simon.kisikew.org/> * Author: Simon <http://simon.kisikew.org/>
* Maintainer: Simon <http://simon.kisikew.org/> * Maintainer: Simon <http://simon.kisikew.org/>
* Screenshot: <a href="screenshot.jpg">Screenshot</a> * Screenshot: <a href="screenshot.jpg">Screenshot</a>
*/ */
/* If you borrow any of these functions, make sure to
* RENAME your functions, otherwise both themes get conflicts,
* and the friendica instance will get HTTP 500 errors.
* To paraphrase Mike: "Might wish to wrap
* function_name with "if(! function_exists('function_name')) ... "
* or rename to prefix1_function_name (prefix2_function_name), etc.
*/
$a = get_app(); $a = get_app();
$a->theme_info = array( $a->theme_info = array(
'family' => 'dispy', 'family' => 'dispy',
@ -165,7 +173,7 @@ EOT;
$a->page['htmlhead'] .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $cssFile); $a->page['htmlhead'] .= sprintf('<link rel="stylesheet" type="text/css" href="%s" />', $cssFile);
} }
js_in_foot(); _js_in_foot();
} }
function dispy_community_info() { function dispy_community_info() {
@ -179,7 +187,8 @@ function dispy_community_info() {
return $a->page['aside_bottom'] = replace_macros($tpl, $aside); return $a->page['aside_bottom'] = replace_macros($tpl, $aside);
} }
function js_in_foot() { if(! function_exists('_js_in_foot')) {
function _js_in_foot() {
/** @purpose insert stuff in bottom of page /** @purpose insert stuff in bottom of page
*/ */
$a = get_app(); $a = get_app();
@ -189,3 +198,4 @@ function js_in_foot() {
return $a->page['bottom'] = replace_macros($tpl, $bottom); return $a->page['bottom'] = replace_macros($tpl, $bottom);
} }
}