From da1b47a029e678aee8b99ee11eec972dfb9a1a2b Mon Sep 17 00:00:00 2001 From: Domovoy Date: Mon, 23 Jul 2012 12:56:47 +0200 Subject: [PATCH 001/139] Progress on #1. Comments are now threaded, at least in the database, for normal view. --- include/conversation.php | 7 +++++-- mod/item.php | 5 +++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/include/conversation.php b/include/conversation.php index 4a9142bb20..67445c2904 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -582,7 +582,9 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { } $override_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false); - $show_comment_box = ((($page_writeable) && ($item_writeable) && ($comments_seen == $comments[$item['parent']])) ? true : false); + // The comment box should now appear under each writable item, not only at the end of the thread, don't bother with $comments_seen + //$show_comment_box = ((($page_writeable) && ($item_writeable) && ($comments_seen == $comments[$item['parent']])) ? true : false); + $show_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false); if(($comments[$item['parent']] > 2) && ($comments_seen <= ($comments[$item['parent']] - 2)) && ($item['gravity'] == 6)) { @@ -681,12 +683,13 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { } if(($show_comment_box) || (($show_comment_box == false) && ($override_comment_box == false) && ($item['last-child']))) { + // The parent is now the item itself, not his parent $comment = replace_macros($cmnt_tpl,array( '$return_path' => '', '$jsreload' => (($mode === 'display') ? $_SESSION['return_url'] : ''), '$type' => (($mode === 'profile') ? 'wall-comment' : 'net-comment'), '$id' => $item['item_id'], - '$parent' => $item['parent'], + '$parent' => $item['item_id'], '$qcomment' => $qcomment, '$profile_uid' => $profile_owner, '$mylink' => $a->contact['url'], diff --git a/mod/item.php b/mod/item.php index fddc3fd124..cc1e628c80 100644 --- a/mod/item.php +++ b/mod/item.php @@ -77,14 +77,15 @@ function item_post(&$a) { ); } // if this isn't the real parent of the conversation, find it - if($r !== false && count($r)) { + // We are now threading the comments, the parent may have a parent + /*if($r !== false && count($r)) { $parid = $r[0]['parent']; if($r[0]['id'] != $r[0]['parent']) { $r = q("SELECT * FROM `item` WHERE `id` = `parent` AND `parent` = %d LIMIT 1", intval($parid) ); } - } + }*/ if(($r === false) || (! count($r))) { notice( t('Unable to locate original post.') . EOL); From 2a1657e3617faff8964e979a7a8482dfc0ec08d9 Mon Sep 17 00:00:00 2001 From: Domovoy Date: Mon, 23 Jul 2012 13:58:47 +0200 Subject: [PATCH 002/139] Revert "Progress on #1. Comments are now threaded, at least in the database, for normal view." This reverts commit da1b47a029e678aee8b99ee11eec972dfb9a1a2b. Useless, comments are already threaded in the database using parent-uri --- include/conversation.php | 7 ++----- mod/item.php | 5 ++--- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/include/conversation.php b/include/conversation.php index 67445c2904..4a9142bb20 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -582,9 +582,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { } $override_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false); - // The comment box should now appear under each writable item, not only at the end of the thread, don't bother with $comments_seen - //$show_comment_box = ((($page_writeable) && ($item_writeable) && ($comments_seen == $comments[$item['parent']])) ? true : false); - $show_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false); + $show_comment_box = ((($page_writeable) && ($item_writeable) && ($comments_seen == $comments[$item['parent']])) ? true : false); if(($comments[$item['parent']] > 2) && ($comments_seen <= ($comments[$item['parent']] - 2)) && ($item['gravity'] == 6)) { @@ -683,13 +681,12 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { } if(($show_comment_box) || (($show_comment_box == false) && ($override_comment_box == false) && ($item['last-child']))) { - // The parent is now the item itself, not his parent $comment = replace_macros($cmnt_tpl,array( '$return_path' => '', '$jsreload' => (($mode === 'display') ? $_SESSION['return_url'] : ''), '$type' => (($mode === 'profile') ? 'wall-comment' : 'net-comment'), '$id' => $item['item_id'], - '$parent' => $item['item_id'], + '$parent' => $item['parent'], '$qcomment' => $qcomment, '$profile_uid' => $profile_owner, '$mylink' => $a->contact['url'], diff --git a/mod/item.php b/mod/item.php index cc1e628c80..fddc3fd124 100644 --- a/mod/item.php +++ b/mod/item.php @@ -77,15 +77,14 @@ function item_post(&$a) { ); } // if this isn't the real parent of the conversation, find it - // We are now threading the comments, the parent may have a parent - /*if($r !== false && count($r)) { + if($r !== false && count($r)) { $parid = $r[0]['parent']; if($r[0]['id'] != $r[0]['parent']) { $r = q("SELECT * FROM `item` WHERE `id` = `parent` AND `parent` = %d LIMIT 1", intval($parid) ); } - }*/ + } if(($r === false) || (! count($r))) { notice( t('Unable to locate original post.') . EOL); From 794ae669cefa8234da08718e81a5872832b79259 Mon Sep 17 00:00:00 2001 From: Simon L'nu Date: Wed, 25 Jul 2012 22:28:09 -0400 Subject: [PATCH 003/139] fixes to cursor Signed-off-by: Simon L'nu --- view/theme/dispy/head.tpl | 20 ++++++++++++++------ view/theme/dispy/icons/sparkle.cur | Bin 19942 -> 4286 bytes view/theme/dispy/jot-header.tpl | 2 +- view/theme/dispy/jot.tpl | 9 ++++++--- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/view/theme/dispy/head.tpl b/view/theme/dispy/head.tpl index d42b19aef7..5f6b26a78a 100644 --- a/view/theme/dispy/head.tpl +++ b/view/theme/dispy/head.tpl @@ -2,29 +2,33 @@ - - + + + - - + - + + {{ endif }} From a77fdfa6aa5d237915036c2dc140a9c1a1ea2886 Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Fri, 27 Jul 2012 08:58:27 -0400 Subject: [PATCH 004/139] remove special case for /.well-known/host-meta and add module for /.well-known --- boot.php | 11 +---------- mod/_well_known.php | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) create mode 100644 mod/_well_known.php diff --git a/boot.php b/boot.php index 6a894445ba..0ef0977341 100644 --- a/boot.php +++ b/boot.php @@ -458,6 +458,7 @@ if(! class_exists('App')) { $this->argc = count($this->argv); if((array_key_exists('0',$this->argv)) && strlen($this->argv[0])) { $this->module = str_replace(".", "_", $this->argv[0]); + $this->module = str_replace("-", "_", $this->module); } else { $this->argc = 1; @@ -465,16 +466,6 @@ if(! class_exists('App')) { $this->module = 'home'; } - /** - * Special handling for the webfinger/lrdd host XRD file - */ - - if($this->cmd === '.well-known/host-meta') { - $this->argc = 1; - $this->argv = array('hostxrd'); - $this->module = 'hostxrd'; - } - /** * See if there is any page number information, and initialise * pagination diff --git a/mod/_well_known.php b/mod/_well_known.php new file mode 100644 index 0000000000..155810df36 --- /dev/null +++ b/mod/_well_known.php @@ -0,0 +1,14 @@ +argc > 1) { + switch($a->argv[1]) { + case "host-meta": + hostxrd_init($a); + break; + } + } + http_status_exit(404); + killme(); +} \ No newline at end of file From 672f9fd87fd93a8e93da2958c97646dfa8f8299a Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Fri, 27 Jul 2012 09:02:28 -0400 Subject: [PATCH 005/139] include/plugin: define THISPLUGIN as "addon/$pluginname/$pluginname.php" to make life a litte bit easy to lazy plugin devs like me --- include/plugin.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/include/plugin.php b/include/plugin.php index 8f6d6ea985..3eeb0ccaa8 100644 --- a/include/plugin.php +++ b/include/plugin.php @@ -8,7 +8,10 @@ function uninstall_plugin($plugin){ q("DELETE FROM `addon` WHERE `name` = '%s' ", dbesc($plugin) ); - + + // define THISPLUGIN, make life easy to plugin devs :-) + define("THISPLUGIN", 'addon/' . $plugin . '/' . $plugin . '.php'); + @include_once('addon/' . $plugin . '/' . $plugin . '.php'); if(function_exists($plugin . '_uninstall')) { $func = $plugin . '_uninstall'; @@ -18,9 +21,11 @@ function uninstall_plugin($plugin){ if (! function_exists('install_plugin')){ function install_plugin($plugin) { - // silently fail if plugin was removed + // define THISPLUGIN, make life easy to plugin devs :-) + define("THISPLUGIN", 'addon/' . $plugin . '/' . $plugin . '.php'); + if(! file_exists('addon/' . $plugin . '/' . $plugin . '.php')) return false; logger("Addons: installing " . $plugin); @@ -77,7 +82,10 @@ function reload_plugins() { $pl = trim($pl); $fname = 'addon/' . $pl . '/' . $pl . '.php'; - + + // define THISPLUGIN, make life easy to plugin devs :-) + define("THISPLUGIN", $fname); + if(file_exists($fname)) { $t = @filemtime($fname); foreach($installed as $i) { @@ -163,6 +171,8 @@ function call_hooks($name, &$data = null) { if((is_array($a->hooks)) && (array_key_exists($name,$a->hooks))) { foreach($a->hooks[$name] as $hook) { + // define THISPLUGIN, make life easy to plugin devs :-) + define("THISPLUGIN", $hook[0]); @include_once($hook[0]); if(function_exists($hook[1])) { $func = $hook[1]; From 8ecf8167db91f43ec91ab77e194064662a1710c8 Mon Sep 17 00:00:00 2001 From: Domovoy Date: Fri, 27 Jul 2012 22:08:57 +0200 Subject: [PATCH 006/139] Threaded comments are starting to work. For now, only on normal view, and not during update --- include/conversation.php | 997 ++++++++++++++++++++---------- mod/item.php | 3 +- mod/network.php | 2 +- view/theme/duepuntozero/style.css | 6 +- view/threaded_conversation.tpl | 13 + view/wall_thread.tpl | 91 +++ 6 files changed, 781 insertions(+), 331 deletions(-) create mode 100644 view/threaded_conversation.tpl create mode 100644 view/wall_thread.tpl diff --git a/include/conversation.php b/include/conversation.php index 4a9142bb20..2794d8ab3b 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -299,6 +299,292 @@ function localize_item(&$item){ } +/** + * Recursively prepare a thread for HTML + */ + +function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $profile_owner) { + $result = array(); + + $wall_template = 'wall_thread.tpl'; + $wallwall_template = 'wallwall_thread.tpl'; + $items_seen = 0; + $nb_items = count($items); + $lastcollapsed = false; + $firstcollapsed = false; + + foreach($items as $item) { + // prevent private email reply to public conversation from leaking. + if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) { + // Don't count it as a visible item + $nb_items--; + continue; + } + + $items_seen++; + + $alike = array(); + $dlike = array(); + $comment = ''; + $template = $wall_template; + $commentww = ''; + $sparkle = ''; + $owner_url = $owner_photo = $owner_name = ''; + $buttons = ''; + $dropping = false; + $star = false; + $isstarred = "unstarred"; + $photo = $item['photo']; + $thumb = $item['thumb']; + $indent = ''; + $osparkle = ''; + + $toplevelpost = (($item['id'] == $item['parent']) ? true : false); + $item_writeable = (($item['writable'] || $item['self']) ? true : false); + $show_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false); + $lock = ((($item['private'] == 1) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid']) + || strlen($item['deny_cid']) || strlen($item['deny_gid'])))) + ? t('Private Message') + : false); + $redirect_url = $a->get_baseurl($ssl_state) . '/redir/' . $item['cid'] ; + $shareable = ((($profile_owner == local_user()) && ($item['private'] != 1)) ? true : false); + if(local_user() && link_compare($a->contact['url'],$item['author-link'])) + $edpost = array($a->get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit")); + else + $edpost = false; + if((intval($item['contact-id']) && $item['contact-id'] == remote_user()) || ($item['uid'] == local_user())) + $dropping = true; + + $drop = array( + 'dropping' => $dropping, + 'select' => t('Select'), + 'delete' => t('Delete'), + ); + + $filer = (($profile_owner == local_user()) ? t("save to folder") : false); + + $diff_author = ((link_compare($item['url'],$item['author-link'])) ? false : true); + $profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']); + if($item['author-link'] && (! $item['author-name'])) + $profile_name = $item['author-link']; + + $sp = false; + $profile_link = best_link_url($item,$sp); + if($profile_link === 'mailbox') + $profile_link = ''; + if($sp) + $sparkle = ' sparkle'; + else + $profile_link = zrl($profile_link); + + $normalised = normalise_link((strlen($item['author-link'])) ? $item['author-link'] : $item['url']); + if(($normalised != 'mailbox') && (x($a->contacts,$normalised))) + $profile_avatar = $a->contacts[$normalised]['thumb']; + else + $profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $a->get_cached_avatar_image($thumb)); + + $locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => ''); + call_hooks('render_location',$locate); + $location = ((strlen($locate['html'])) ? $locate['html'] : render_location_google($locate)); + + $tags=array(); + foreach(explode(',',$item['tag']) as $tag){ + $tag = trim($tag); + if ($tag!="") $tags[] = bbcode($tag); + } + + like_puller($a,$item,$alike,'like'); + like_puller($a,$item,$dlike,'dislike'); + + $like = ((x($alike,$item['uri'])) ? format_like($alike[$item['uri']],$alike[$item['uri'] . '-l'],'like',$item['uri']) : ''); + $dislike = ((x($dlike,$item['uri'])) ? format_like($dlike[$item['uri']],$dlike[$item['uri'] . '-l'],'dislike',$item['uri']) : ''); + + if($toplevelpost) { + if((! $item['self']) && ($mode !== 'profile')) { + if($item['wall']) { + + // On the network page, I am the owner. On the display page it will be the profile owner. + // This will have been stored in $a->page_contact by our calling page. + // Put this person as the wall owner of the wall-to-wall notice. + + $owner_url = zrl($a->page_contact['url']); + $owner_photo = $a->page_contact['thumb']; + $owner_name = $a->page_contact['name']; + $template = $wallwall_template; + $commentww = 'ww'; + } + } + else if($item['owner-link']) { + + $owner_linkmatch = (($item['owner-link']) && link_compare($item['owner-link'],$item['author-link'])); + $alias_linkmatch = (($item['alias']) && link_compare($item['alias'],$item['author-link'])); + $owner_namematch = (($item['owner-name']) && $item['owner-name'] == $item['author-name']); + if((! $owner_linkmatch) && (! $alias_linkmatch) && (! $owner_namematch)) { + + // The author url doesn't match the owner (typically the contact) + // and also doesn't match the contact alias. + // The name match is a hack to catch several weird cases where URLs are + // all over the park. It can be tricked, but this prevents you from + // seeing "Bob Smith to Bob Smith via Wall-to-wall" and you know darn + // well that it's the same Bob Smith. + + // But it could be somebody else with the same name. It just isn't highly likely. + + + $owner_url = $item['owner-link']; + $owner_photo = $item['owner-avatar']; + $owner_name = $item['owner-name']; + $template = $wallwall_template; + $commentww = 'ww'; + // If it is our contact, use a friendly redirect link + if((link_compare($item['owner-link'],$item['url'])) + && ($item['network'] === NETWORK_DFRN)) { + $owner_url = $redirect_url; + $osparkle = ' sparkle'; + } + else + $owner_url = zrl($owner_url); + } + } + if($profile_owner == local_user()) { + $isstarred = (($item['starred']) ? "starred" : "unstarred"); + + $star = array( + 'do' => t("add star"), + 'undo' => t("remove star"), + 'toggle' => t("toggle star status"), + 'classdo' => (($item['starred']) ? "hidden" : ""), + 'classundo' => (($item['starred']) ? "" : "hidden"), + 'starred' => t('starred'), + 'tagger' => t("add tag"), + 'classtagger' => "", + ); + } + } else { + $indent = 'comment'; + // Collapse comments + if($nb_items > 2) { + if(!$firstcollapsed && ($items_seen <= ($nb_items - 2))) { + $firstcollapsed = true; + } + else if($items_seen == ($nb_items - 1)) { + $lastcollapsed = true; + } + } + } + + logger('item, page_writeable:'. ($page_writeable ? 'yes' : 'no') .', show comment box: '. ($show_comment_box ? 'yes' : 'no'), LOGGER_DEBUG); + if($page_writeable) { + $buttons = array( + 'like' => array( t("I like this \x28toggle\x29"), t("like")), + 'dislike' => array( t("I don't like this \x28toggle\x29"), t("dislike")), + ); + if ($shareable) $buttons['share'] = array( t('Share this'), t('share')); + + + if($show_comment_box) { + $qc = $qcomment = null; + + if(in_array('qcomment',$a->plugins)) { + $qc = ((local_user()) ? get_pconfig(local_user(),'qcomment','words') : null); + $qcomment = (($qc) ? explode("\n",$qc) : null); + } + + $comment = replace_macros($cmnt_tpl,array( + '$return_path' => '', + '$jsreload' => (($mode === 'display') ? $_SESSION['return_url'] : ''), + '$type' => (($mode === 'profile') ? 'wall-comment' : 'net-comment'), + '$id' => $item['item_id'], + '$parent' => $item['item_id'], + '$qcomment' => $qcomment, + '$profile_uid' => $profile_owner, + '$mylink' => $a->contact['url'], + '$mytitle' => t('This is you'), + '$myphoto' => $a->contact['thumb'], + '$comment' => t('Comment'), + '$submit' => t('Submit'), + '$edbold' => t('Bold'), + '$editalic' => t('Italic'), + '$eduline' => t('Underline'), + '$edquote' => t('Quote'), + '$edcode' => t('Code'), + '$edimg' => t('Image'), + '$edurl' => t('Link'), + '$edvideo' => t('Video'), + '$preview' => t('Preview'), + '$ww' => (($mode === 'network') ? $commentww : '') + )); + } + } + + if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0) + $indent .= ' shiny'; + + localize_item($item); + + $body = prepare_body($item,true); + + $tmp_item = array( + // collapse comments in template. I don't like this much... + 'comment_firstcollapsed' => $comment_firstcollapsed, + 'comment_lastcollapsed' => $comment_lastcollapsed, + // template to use to render item (wall, walltowall, search) + 'template' => $template, + + 'type' => implode("",array_slice(explode("/",$item['verb']),-1)), + 'tags' => $tags, + 'body' => template_escape($body), + 'text' => strip_tags(template_escape($body)), + 'id' => $item['item_id'], + 'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])), + 'olinktitle' => sprintf( t('View %s\'s profile @ %s'), $owner_name, ((strlen($item['owner-link'])) ? $item['owner-link'] : $item['url'])), + 'to' => t('to'), + 'wall' => t('Wall-to-Wall'), + 'vwall' => t('via Wall-To-Wall:'), + 'profile_url' => $profile_link, + 'item_photo_menu' => item_photo_menu($item), + 'name' => template_escape($profile_name), + 'thumb' => $profile_avatar, + 'osparkle' => $osparkle, + 'sparkle' => $sparkle, + 'title' => template_escape($item['title']), + 'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), + 'lock' => $lock, + 'location' => template_escape($location), + 'indent' => $indent, + 'owner_url' => $owner_url, + 'owner_photo' => $owner_photo, + 'owner_name' => template_escape($owner_name), + 'plink' => get_plink($item), + 'edpost' => $edpost, + 'isstarred' => $isstarred, + 'star' => $star, + 'filer' => $filer, + 'drop' => $drop, + 'vote' => $buttons, + 'like' => $like, + 'dislike' => $dislike, + 'comment' => $comment, + 'previewing' => $previewing, + 'wait' => t('Please wait'), + ); + + $arr = array('item' => $item, 'output' => $tmp_item); + call_hooks('display_item', $arr); + + $item_result = $arr['output']; + + $item_result['children'] = array(); + if(count($item['children'])) { + $item_result['children'] = prepare_threads_body($a, $item['children'], $cmnt_tpl, $page_writeable, $mode, $profile_owner); + } + $item_result['private'] = $item['private']; + $result[] = $item_result; + } + + return $result; +} + /** * "Render" a conversation or list of items for HTML display. * There are two major forms of display: @@ -311,7 +597,7 @@ function localize_item(&$item){ */ if(!function_exists('conversation')) { -function conversation(&$a, $items, $mode, $update, $preview = false) { +function conversation(&$a, $items, $mode, $update, $preview = false, $thr_c = false) { require_once('bbcode.php'); @@ -500,364 +786,386 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { { // Normal View + // Threaded comments, $thr_c is used for now since we don't know what other parts of friendica uses this function + // Better not rely on the new code for stuff we haven't examined yet + if($thr_c) { + // get all the topmost parents + // this shouldn't be needed, as we should have only them in ou array + // But for now, this array respects the old style, just in case - // Figure out how many comments each parent has - // (Comments all have gravity of 6) - // Store the result in the $comments array - - $comments = array(); - foreach($items as $item) { - if((intval($item['gravity']) == 6) && ($item['id'] != $item['parent'])) { - if(! x($comments,$item['parent'])) - $comments[$item['parent']] = 1; - else - $comments[$item['parent']] += 1; - } elseif(! x($comments,$item['parent'])) - $comments[$item['parent']] = 0; // avoid notices later on - } - - // map all the like/dislike activities for each parent item - // Store these in the $alike and $dlike arrays - - foreach($items as $item) { - like_puller($a,$item,$alike,'like'); - like_puller($a,$item,$dlike,'dislike'); - } - - $comments_collapsed = false; - $comments_seen = 0; - $comment_lastcollapsed = false; - $comment_firstcollapsed = false; - $blowhard = 0; - $blowhard_count = 0; - - - foreach($items as $item) { - - $comment = ''; - $template = $tpl; - $commentww = ''; - $sparkle = ''; - $owner_url = $owner_photo = $owner_name = ''; - - // We've already parsed out like/dislike for special treatment. We can ignore them now - - if(((activity_match($item['verb'],ACTIVITY_LIKE)) - || (activity_match($item['verb'],ACTIVITY_DISLIKE))) - && ($item['id'] != $item['parent'])) - continue; - - $toplevelpost = (($item['id'] == $item['parent']) ? true : false); - - - // Take care of author collapsing and comment collapsing - // (author collapsing is currently disabled) - // If a single author has more than 3 consecutive top-level posts, squash the remaining ones. - // If there are more than two comments, squash all but the last 2. - - if($toplevelpost) { - - $item_writeable = (($item['writable'] || $item['self']) ? true : false); - - $comments_seen = 0; - $comments_collapsed = false; - $comment_lastcollapsed = false; - $comment_firstcollapsed = false; - - $threadsid++; - $threads[$threadsid]['id'] = $item['item_id']; - $threads[$threadsid]['private'] = $item['private']; - $threads[$threadsid]['items'] = array(); - - } - else { - - // prevent private email reply to public conversation from leaking. - if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) - continue; - - $comments_seen ++; - $comment_lastcollapsed = false; - $comment_firstcollapsed = false; - } - - $override_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false); - $show_comment_box = ((($page_writeable) && ($item_writeable) && ($comments_seen == $comments[$item['parent']])) ? true : false); - - - if(($comments[$item['parent']] > 2) && ($comments_seen <= ($comments[$item['parent']] - 2)) && ($item['gravity'] == 6)) { - - if (!$comments_collapsed){ - $threads[$threadsid]['num_comments'] = sprintf( tt('%d comment','%d comments',$comments[$item['parent']]),$comments[$item['parent']] ); - $threads[$threadsid]['hide_text'] = t('show more'); - $comments_collapsed = true; - $comment_firstcollapsed = true; + $threads = array(); + foreach($items as $item) { + if($item['id'] == $item['parent']) { + $threads[] = $item; } } - if(($comments[$item['parent']] > 2) && ($comments_seen == ($comments[$item['parent']] - 1))) { - $comment_lastcollapsed = true; + $threads = prepare_threads_body($a, $threads, $cmnt_tpl, $page_writeable, $mode, $profile_owner, $previewing); + } else { + + + // Figure out how many comments each parent has + // (Comments all have gravity of 6) + // Store the result in the $comments array + + $comments = array(); + foreach($items as $item) { + if((intval($item['gravity']) == 6) && ($item['id'] != $item['parent'])) { + if(! x($comments,$item['parent'])) + $comments[$item['parent']] = 1; + else + $comments[$item['parent']] += 1; + } elseif(! x($comments,$item['parent'])) + $comments[$item['parent']] = 0; // avoid notices later on } - $redirect_url = $a->get_baseurl($ssl_state) . '/redir/' . $item['cid'] ; + // map all the like/dislike activities for each parent item + // Store these in the $alike and $dlike arrays - $lock = ((($item['private'] == 1) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid']) - || strlen($item['deny_cid']) || strlen($item['deny_gid'])))) - ? t('Private Message') - : false); + foreach($items as $item) { + like_puller($a,$item,$alike,'like'); + like_puller($a,$item,$dlike,'dislike'); + } + + $comments_collapsed = false; + $comments_seen = 0; + $comment_lastcollapsed = false; + $comment_firstcollapsed = false; + $blowhard = 0; + $blowhard_count = 0; - // Top-level wall post not written by the wall owner (wall-to-wall) - // First figure out who owns it. + foreach($items as $item) { - $osparkle = ''; + $comment = ''; + $template = $tpl; + $commentww = ''; + $sparkle = ''; + $owner_url = $owner_photo = $owner_name = ''; - if(($toplevelpost) && (! $item['self']) && ($mode !== 'profile')) { + // We've already parsed out like/dislike for special treatment. We can ignore them now - if($item['wall']) { + if(((activity_match($item['verb'],ACTIVITY_LIKE)) + || (activity_match($item['verb'],ACTIVITY_DISLIKE))) + && ($item['id'] != $item['parent'])) + continue; - // On the network page, I am the owner. On the display page it will be the profile owner. - // This will have been stored in $a->page_contact by our calling page. - // Put this person as the wall owner of the wall-to-wall notice. + $toplevelpost = (($item['id'] == $item['parent']) ? true : false); + + + // Take care of author collapsing and comment collapsing + // (author collapsing is currently disabled) + // If a single author has more than 3 consecutive top-level posts, squash the remaining ones. + // If there are more than two comments, squash all but the last 2. + + if($toplevelpost) { + + $item_writeable = (($item['writable'] || $item['self']) ? true : false); + + $comments_seen = 0; + $comments_collapsed = false; + $comment_lastcollapsed = false; + $comment_firstcollapsed = false; + + $threadsid++; + $threads[$threadsid]['id'] = $item['item_id']; + $threads[$threadsid]['private'] = $item['private']; + $threads[$threadsid]['items'] = array(); - $owner_url = zrl($a->page_contact['url']); - $owner_photo = $a->page_contact['thumb']; - $owner_name = $a->page_contact['name']; - $template = $wallwall; - $commentww = 'ww'; } + else { - if((! $item['wall']) && $item['owner-link']) { + // prevent private email reply to public conversation from leaking. + if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) + continue; - $owner_linkmatch = (($item['owner-link']) && link_compare($item['owner-link'],$item['author-link'])); - $alias_linkmatch = (($item['alias']) && link_compare($item['alias'],$item['author-link'])); - $owner_namematch = (($item['owner-name']) && $item['owner-name'] == $item['author-name']); - if((! $owner_linkmatch) && (! $alias_linkmatch) && (! $owner_namematch)) { + $comments_seen ++; + $comment_lastcollapsed = false; + $comment_firstcollapsed = false; + } - // The author url doesn't match the owner (typically the contact) - // and also doesn't match the contact alias. - // The name match is a hack to catch several weird cases where URLs are - // all over the park. It can be tricked, but this prevents you from - // seeing "Bob Smith to Bob Smith via Wall-to-wall" and you know darn - // well that it's the same Bob Smith. + $override_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false); + // Show comment box on every writable item + $show_comment_box = ((($page_writeable) && ($item_writeable)) ? true : false); - // But it could be somebody else with the same name. It just isn't highly likely. - - $owner_url = $item['owner-link']; - $owner_photo = $item['owner-avatar']; - $owner_name = $item['owner-name']; - $template = $wallwall; - $commentww = 'ww'; - // If it is our contact, use a friendly redirect link - if((link_compare($item['owner-link'],$item['url'])) - && ($item['network'] === NETWORK_DFRN)) { - $owner_url = $redirect_url; - $osparkle = ' sparkle'; - } - else - $owner_url = zrl($owner_url); + if(($comments[$item['parent']] > 2) && ($comments_seen <= ($comments[$item['parent']] - 2)) && ($item['gravity'] == 6)) { + + if (!$comments_collapsed){ + $threads[$threadsid]['num_comments'] = sprintf( tt('%d comment','%d comments',$comments[$item['parent']]),$comments[$item['parent']] ); + $threads[$threadsid]['hide_text'] = t('show more'); + $comments_collapsed = true; + $comment_firstcollapsed = true; } } - } + if(($comments[$item['parent']] > 2) && ($comments_seen == ($comments[$item['parent']] - 1))) { - $likebuttons = ''; - $shareable = ((($profile_owner == local_user()) && ($item['private'] != 1)) ? true : false); - - if($page_writeable) { -/* if($toplevelpost) { */ - $likebuttons = array( - 'like' => array( t("I like this \x28toggle\x29"), t("like")), - 'dislike' => array( t("I don't like this \x28toggle\x29"), t("dislike")), - ); - if ($shareable) $likebuttons['share'] = array( t('Share this'), t('share')); -/* } */ - - $qc = $qcomment = null; - - if(in_array('qcomment',$a->plugins)) { - $qc = ((local_user()) ? get_pconfig(local_user(),'qcomment','words') : null); - $qcomment = (($qc) ? explode("\n",$qc) : null); + $comment_lastcollapsed = true; } - if(($show_comment_box) || (($show_comment_box == false) && ($override_comment_box == false) && ($item['last-child']))) { - $comment = replace_macros($cmnt_tpl,array( - '$return_path' => '', - '$jsreload' => (($mode === 'display') ? $_SESSION['return_url'] : ''), - '$type' => (($mode === 'profile') ? 'wall-comment' : 'net-comment'), - '$id' => $item['item_id'], - '$parent' => $item['parent'], - '$qcomment' => $qcomment, - '$profile_uid' => $profile_owner, - '$mylink' => $a->contact['url'], - '$mytitle' => t('This is you'), - '$myphoto' => $a->contact['thumb'], - '$comment' => t('Comment'), - '$submit' => t('Submit'), - '$edbold' => t('Bold'), - '$editalic' => t('Italic'), - '$eduline' => t('Underline'), - '$edquote' => t('Quote'), - '$edcode' => t('Code'), - '$edimg' => t('Image'), - '$edurl' => t('Link'), - '$edvideo' => t('Video'), - '$preview' => t('Preview'), - '$ww' => (($mode === 'network') ? $commentww : '') - )); + $redirect_url = $a->get_baseurl($ssl_state) . '/redir/' . $item['cid'] ; + + $lock = ((($item['private'] == 1) || (($item['uid'] == local_user()) && (strlen($item['allow_cid']) || strlen($item['allow_gid']) + || strlen($item['deny_cid']) || strlen($item['deny_gid'])))) + ? t('Private Message') + : false); + + + // Top-level wall post not written by the wall owner (wall-to-wall) + // First figure out who owns it. + + $osparkle = ''; + + if(($toplevelpost) && (! $item['self']) && ($mode !== 'profile')) { + + if($item['wall']) { + + // On the network page, I am the owner. On the display page it will be the profile owner. + // This will have been stored in $a->page_contact by our calling page. + // Put this person as the wall owner of the wall-to-wall notice. + + $owner_url = zrl($a->page_contact['url']); + $owner_photo = $a->page_contact['thumb']; + $owner_name = $a->page_contact['name']; + $template = $wallwall; + $commentww = 'ww'; + } + + if((! $item['wall']) && $item['owner-link']) { + + $owner_linkmatch = (($item['owner-link']) && link_compare($item['owner-link'],$item['author-link'])); + $alias_linkmatch = (($item['alias']) && link_compare($item['alias'],$item['author-link'])); + $owner_namematch = (($item['owner-name']) && $item['owner-name'] == $item['author-name']); + if((! $owner_linkmatch) && (! $alias_linkmatch) && (! $owner_namematch)) { + + // The author url doesn't match the owner (typically the contact) + // and also doesn't match the contact alias. + // The name match is a hack to catch several weird cases where URLs are + // all over the park. It can be tricked, but this prevents you from + // seeing "Bob Smith to Bob Smith via Wall-to-wall" and you know darn + // well that it's the same Bob Smith. + + // But it could be somebody else with the same name. It just isn't highly likely. + + + $owner_url = $item['owner-link']; + $owner_photo = $item['owner-avatar']; + $owner_name = $item['owner-name']; + $template = $wallwall; + $commentww = 'ww'; + // If it is our contact, use a friendly redirect link + if((link_compare($item['owner-link'],$item['url'])) + && ($item['network'] === NETWORK_DFRN)) { + $owner_url = $redirect_url; + $osparkle = ' sparkle'; + } + else + $owner_url = zrl($owner_url); + } + } } - } - if(local_user() && link_compare($a->contact['url'],$item['author-link'])) - $edpost = array($a->get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit")); - else - $edpost = false; + $likebuttons = ''; + $shareable = ((($profile_owner == local_user()) && ($item['private'] != 1)) ? true : false); - $drop = ''; - $dropping = false; + if($page_writeable) { + /* if($toplevelpost) { */ + $likebuttons = array( + 'like' => array( t("I like this \x28toggle\x29"), t("like")), + 'dislike' => array( t("I don't like this \x28toggle\x29"), t("dislike")), + ); + if ($shareable) $likebuttons['share'] = array( t('Share this'), t('share')); + /* } */ - if((intval($item['contact-id']) && $item['contact-id'] == remote_user()) || ($item['uid'] == local_user())) - $dropping = true; + $qc = $qcomment = null; - $drop = array( - 'dropping' => $dropping, - 'select' => t('Select'), - 'delete' => t('Delete'), - ); + if(in_array('qcomment',$a->plugins)) { + $qc = ((local_user()) ? get_pconfig(local_user(),'qcomment','words') : null); + $qcomment = (($qc) ? explode("\n",$qc) : null); + } - $star = false; - $filer = false; - - $isstarred = "unstarred"; - if ($profile_owner == local_user()) { - if($toplevelpost) { - $isstarred = (($item['starred']) ? "starred" : "unstarred"); - - $star = array( - 'do' => t("add star"), - 'undo' => t("remove star"), - 'toggle' => t("toggle star status"), - 'classdo' => (($item['starred']) ? "hidden" : ""), - 'classundo' => (($item['starred']) ? "" : "hidden"), - 'starred' => t('starred'), - 'tagger' => t("add tag"), - 'classtagger' => "", - ); + if(($show_comment_box) || (($show_comment_box == false) && ($override_comment_box == false) && ($item['last-child']))) { + $comment = replace_macros($cmnt_tpl,array( + '$return_path' => '', + '$jsreload' => (($mode === 'display') ? $_SESSION['return_url'] : ''), + '$type' => (($mode === 'profile') ? 'wall-comment' : 'net-comment'), + '$id' => $item['item_id'], + '$parent' => $item['item_id'], + '$qcomment' => $qcomment, + '$profile_uid' => $profile_owner, + '$mylink' => $a->contact['url'], + '$mytitle' => t('This is you'), + '$myphoto' => $a->contact['thumb'], + '$comment' => t('Comment'), + '$submit' => t('Submit'), + '$edbold' => t('Bold'), + '$editalic' => t('Italic'), + '$eduline' => t('Underline'), + '$edquote' => t('Quote'), + '$edcode' => t('Code'), + '$edimg' => t('Image'), + '$edurl' => t('Link'), + '$edvideo' => t('Video'), + '$preview' => t('Preview'), + '$ww' => (($mode === 'network') ? $commentww : '') + )); + } } - $filer = t("save to folder"); + + if(local_user() && link_compare($a->contact['url'],$item['author-link'])) + $edpost = array($a->get_baseurl($ssl_state)."/editpost/".$item['id'], t("Edit")); + else + $edpost = false; + + $drop = ''; + $dropping = false; + + if((intval($item['contact-id']) && $item['contact-id'] == remote_user()) || ($item['uid'] == local_user())) + $dropping = true; + + $drop = array( + 'dropping' => $dropping, + 'select' => t('Select'), + 'delete' => t('Delete'), + ); + + $star = false; + $filer = false; + + $isstarred = "unstarred"; + if ($profile_owner == local_user()) { + if($toplevelpost) { + $isstarred = (($item['starred']) ? "starred" : "unstarred"); + + $star = array( + 'do' => t("add star"), + 'undo' => t("remove star"), + 'toggle' => t("toggle star status"), + 'classdo' => (($item['starred']) ? "hidden" : ""), + 'classundo' => (($item['starred']) ? "" : "hidden"), + 'starred' => t('starred'), + 'tagger' => t("add tag"), + 'classtagger' => "", + ); + } + $filer = t("save to folder"); + } + + + $photo = $item['photo']; + $thumb = $item['thumb']; + + // Post was remotely authored. + + $diff_author = ((link_compare($item['url'],$item['author-link'])) ? false : true); + + $profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']); + + if($item['author-link'] && (! $item['author-name'])) + $profile_name = $item['author-link']; + + $sp = false; + $profile_link = best_link_url($item,$sp); + if($profile_link === 'mailbox') + $profile_link = ''; + if($sp) + $sparkle = ' sparkle'; + else + $profile_link = zrl($profile_link); + + $normalised = normalise_link((strlen($item['author-link'])) ? $item['author-link'] : $item['url']); + if(($normalised != 'mailbox') && (x($a->contacts,$normalised))) + $profile_avatar = $a->contacts[$normalised]['thumb']; + else + $profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $a->get_cached_avatar_image($thumb)); + + $like = ((x($alike,$item['uri'])) ? format_like($alike[$item['uri']],$alike[$item['uri'] . '-l'],'like',$item['uri']) : ''); + $dislike = ((x($dlike,$item['uri'])) ? format_like($dlike[$item['uri']],$dlike[$item['uri'] . '-l'],'dislike',$item['uri']) : ''); + + $locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => ''); + call_hooks('render_location',$locate); + + $location = ((strlen($locate['html'])) ? $locate['html'] : render_location_google($locate)); + + $indent = (($toplevelpost) ? '' : ' comment'); + + if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0) + $indent .= ' shiny'; + + // + localize_item($item); + + + $tags=array(); + foreach(explode(',',$item['tag']) as $tag){ + $tag = trim($tag); + if ($tag!="") $tags[] = bbcode($tag); + } + + // Build the HTML + + $body = prepare_body($item,true); + //$tmp_item = replace_macros($template, + $tmp_item = array( + // collapse comments in template. I don't like this much... + 'comment_firstcollapsed' => $firstcollapsed, + 'comment_lastcollapsed' => $lastcollapsed, + // template to use to render item (wall, walltowall, search) + 'template' => $template, + + 'type' => implode("",array_slice(explode("/",$item['verb']),-1)), + 'tags' => $tags, + 'body' => template_escape($body), + 'text' => strip_tags(template_escape($body)), + 'id' => $item['item_id'], + 'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])), + 'olinktitle' => sprintf( t('View %s\'s profile @ %s'), $owner-name, ((strlen($item['owner-link'])) ? $item['owner-link'] : $item['url'])), + 'to' => t('to'), + 'wall' => t('Wall-to-Wall'), + 'vwall' => t('via Wall-To-Wall:'), + 'profile_url' => $profile_link, + 'item_photo_menu' => item_photo_menu($item), + 'name' => template_escape($profile_name), + 'thumb' => $profile_avatar, + 'osparkle' => $osparkle, + 'sparkle' => $sparkle, + 'title' => template_escape($item['title']), + 'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), + 'lock' => $lock, + 'location' => template_escape($location), + 'indent' => $indent, + 'owner_url' => $owner_url, + 'owner_photo' => $owner_photo, + 'owner_name' => template_escape($owner_name), + 'plink' => get_plink($item), + 'edpost' => $edpost, + 'isstarred' => $isstarred, + 'star' => $star, + 'filer' => $filer, + 'drop' => $drop, + 'vote' => $likebuttons, + 'like' => $like, + 'dislike' => $dislike, + 'comment' => $comment, + 'previewing' => $previewing, + 'wait' => t('Please wait'), + + ); + + + $arr = array('item' => $item, 'output' => $tmp_item); + call_hooks('display_item', $arr); + + $threads[$threadsid]['items'][] = $arr['output']; } - - - $photo = $item['photo']; - $thumb = $item['thumb']; - - // Post was remotely authored. - - $diff_author = ((link_compare($item['url'],$item['author-link'])) ? false : true); - - $profile_name = (((strlen($item['author-name'])) && $diff_author) ? $item['author-name'] : $item['name']); - - if($item['author-link'] && (! $item['author-name'])) - $profile_name = $item['author-link']; - - $sp = false; - $profile_link = best_link_url($item,$sp); - if($profile_link === 'mailbox') - $profile_link = ''; - if($sp) - $sparkle = ' sparkle'; - else - $profile_link = zrl($profile_link); - - $normalised = normalise_link((strlen($item['author-link'])) ? $item['author-link'] : $item['url']); - if(($normalised != 'mailbox') && (x($a->contacts,$normalised))) - $profile_avatar = $a->contacts[$normalised]['thumb']; - else - $profile_avatar = (((strlen($item['author-avatar'])) && $diff_author) ? $item['author-avatar'] : $a->get_cached_avatar_image($thumb)); - - $like = ((x($alike,$item['uri'])) ? format_like($alike[$item['uri']],$alike[$item['uri'] . '-l'],'like',$item['uri']) : ''); - $dislike = ((x($dlike,$item['uri'])) ? format_like($dlike[$item['uri']],$dlike[$item['uri'] . '-l'],'dislike',$item['uri']) : ''); - - $locate = array('location' => $item['location'], 'coord' => $item['coord'], 'html' => ''); - call_hooks('render_location',$locate); - - $location = ((strlen($locate['html'])) ? $locate['html'] : render_location_google($locate)); - - $indent = (($toplevelpost) ? '' : ' comment'); - - if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0) - $indent .= ' shiny'; - - // - localize_item($item); - - - $tags=array(); - foreach(explode(',',$item['tag']) as $tag){ - $tag = trim($tag); - if ($tag!="") $tags[] = bbcode($tag); - } - - // Build the HTML - - $body = prepare_body($item,true); - //$tmp_item = replace_macros($template, - $tmp_item = array( - // collapse comments in template. I don't like this much... - 'comment_firstcollapsed' => $comment_firstcollapsed, - 'comment_lastcollapsed' => $comment_lastcollapsed, - // template to use to render item (wall, walltowall, search) - 'template' => $template, - - 'type' => implode("",array_slice(explode("/",$item['verb']),-1)), - 'tags' => $tags, - 'body' => template_escape($body), - 'text' => strip_tags(template_escape($body)), - 'id' => $item['item_id'], - 'linktitle' => sprintf( t('View %s\'s profile @ %s'), $profile_name, ((strlen($item['author-link'])) ? $item['author-link'] : $item['url'])), - 'olinktitle' => sprintf( t('View %s\'s profile @ %s'), $owner-name, ((strlen($item['owner-link'])) ? $item['owner-link'] : $item['url'])), - 'to' => t('to'), - 'wall' => t('Wall-to-Wall'), - 'vwall' => t('via Wall-To-Wall:'), - 'profile_url' => $profile_link, - 'item_photo_menu' => item_photo_menu($item), - 'name' => template_escape($profile_name), - 'thumb' => $profile_avatar, - 'osparkle' => $osparkle, - 'sparkle' => $sparkle, - 'title' => template_escape($item['title']), - 'ago' => (($item['app']) ? sprintf( t('%s from %s'),relative_date($item['created']),$item['app']) : relative_date($item['created'])), - 'lock' => $lock, - 'location' => template_escape($location), - 'indent' => $indent, - 'owner_url' => $owner_url, - 'owner_photo' => $owner_photo, - 'owner_name' => template_escape($owner_name), - 'plink' => get_plink($item), - 'edpost' => $edpost, - 'isstarred' => $isstarred, - 'star' => $star, - 'filer' => $filer, - 'drop' => $drop, - 'vote' => $likebuttons, - 'like' => $like, - 'dislike' => $dislike, - 'comment' => $comment, - 'previewing' => $previewing, - 'wait' => t('Please wait'), - - ); - - - $arr = array('item' => $item, 'output' => $tmp_item); - call_hooks('display_item', $arr); - - $threads[$threadsid]['items'][] = $arr['output']; } } } + $page_template = get_markup_template("conversation.tpl"); + if($thr_c) + $page_template = get_markup_template("threaded_conversation.tpl"); $o = replace_macros($page_template, array( '$baseurl' => $a->get_baseurl($ssl_state), '$mode' => $mode, @@ -1159,12 +1467,43 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { } +function get_item_children($arr, $parent) { + $children = array(); + foreach($arr as $item) { + if(($item['id'] != $item['parent']) && ($item['thr-parent'] == $parent['uri'])) { + $item['children'] = get_item_children($arr, $item); + $children[] = $item; + } + } + return $children; +} + +function sort_item_children($items) { + $result = $items; + usort($result,'sort_thr_created_rev'); + foreach($result as $k => $i) { + if(count($result[$k]['children'])) { + $result[$k]['children'] = sort_item_children($result[$k]['children']); + } + } + return $result; +} + +function add_children_to_list($children, &$arr) { + foreach($children as $y) { + $arr[] = $y; + if(count($y['children'])) + add_children_to_list($y['children'], $arr); + } +} + function conv_sort($arr,$order) { if((!(is_array($arr) && count($arr)))) return array(); $parents = array(); + $children = array(); foreach($arr as $x) if($x['id'] == $x['parent']) @@ -1177,21 +1516,22 @@ function conv_sort($arr,$order) { if(count($parents)) foreach($parents as $i=>$_x) - $parents[$i]['children'] = array(); + $parents[$i]['children'] = get_item_children($arr, $_x); - foreach($arr as $x) { + /*foreach($arr as $x) { if($x['id'] != $x['parent']) { $p = find_thread_parent_index($parents,$x); if($p !== false) $parents[$p]['children'][] = $x; } - } + }*/ if(count($parents)) { foreach($parents as $k => $v) { if(count($parents[$k]['children'])) { - $y = $parents[$k]['children']; + $parents[$k]['children'] = sort_item_children($parents[$k]['children']); + /*$y = $parents[$k]['children']; usort($y,'sort_thr_created_rev'); - $parents[$k]['children'] = $y; + $parents[$k]['children'] = $y;*/ } } } @@ -1201,8 +1541,9 @@ function conv_sort($arr,$order) { foreach($parents as $x) { $ret[] = $x; if(count($x['children'])) - foreach($x['children'] as $y) - $ret[] = $y; + add_children_to_list($x['children'], $ret); + /*foreach($x['children'] as $y) + $ret[] = $y;*/ } } diff --git a/mod/item.php b/mod/item.php index fddc3fd124..012f2989b0 100644 --- a/mod/item.php +++ b/mod/item.php @@ -79,6 +79,7 @@ function item_post(&$a) { // if this isn't the real parent of the conversation, find it if($r !== false && count($r)) { $parid = $r[0]['parent']; + $parent_uri = $r[0]['uri']; if($r[0]['id'] != $r[0]['parent']) { $r = q("SELECT * FROM `item` WHERE `id` = `parent` AND `parent` = %d LIMIT 1", intval($parid) @@ -96,7 +97,7 @@ function item_post(&$a) { $parent = $r[0]['id']; // multi-level threading - preserve the info but re-parent to our single level threading - if(($parid) && ($parid != $parent)) + //if(($parid) && ($parid != $parent)) $thr_parent = $parent_uri; if($parent_item['contact-id'] && $uid) { diff --git a/mod/network.php b/mod/network.php index 17368ab92d..2ca3c5b06f 100644 --- a/mod/network.php +++ b/mod/network.php @@ -687,7 +687,7 @@ function network_content(&$a, $update = 0) { $mode = (($nouveau) ? 'network-new' : 'network'); - $o .= conversation($a,$items,$mode,$update); + $o .= conversation($a,$items,$mode,$update, false, true); if(! $update) { if(! get_pconfig(local_user(),'system','alt_pager')) { diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css index 1be81d738e..e17f8319bc 100644 --- a/view/theme/duepuntozero/style.css +++ b/view/theme/duepuntozero/style.css @@ -935,8 +935,12 @@ input#dfrn-url { } -.wall-item-content-wrapper.comment { +.tread-wrapper .tread-wrapper { margin-left: 50px; +} + +.wall-item-content-wrapper.comment { +# margin-left: 50px; background: #EEEEEE; } diff --git a/view/threaded_conversation.tpl b/view/threaded_conversation.tpl new file mode 100644 index 0000000000..f60839e495 --- /dev/null +++ b/view/threaded_conversation.tpl @@ -0,0 +1,13 @@ +{{ for $threads as $item }} +{{ inc $item.template }}{{ endinc }} +{{ endfor }} + +
+ +{{ if $dropping }} + +
+{{ endif }} diff --git a/view/wall_thread.tpl b/view/wall_thread.tpl new file mode 100644 index 0000000000..56e21bb828 --- /dev/null +++ b/view/wall_thread.tpl @@ -0,0 +1,91 @@ +
+ {{if $item.comment_firstcollapsed}} +
+ $item.num_comments $item.hide_text +
+ {{endif}} + + +
+
+
+
+ + $item.name + + menu +
+
    + $item.item_photo_menu +
+
+
+
+
+ {{ if $item.lock }}
$item.lock
+ {{ else }}
{{ endif }} +
$item.location
+
+
+
+ $item.name +
$item.ago
+ +
+
+
$item.title
+
+
$item.body +
+ {{ for $item.tags as $tag }} + $tag + {{ endfor }} +
+
+
+
+ {{ if $item.vote }} + + {{ endif }} + {{ if $item.plink }} + + {{ endif }} + {{ if $item.edpost }} + + {{ endif }} + + {{ if $item.star }} + + + {{ endif }} + {{ if $item.filer }} + + {{ endif }} +
+ {{ if $item.drop.dropping }}{{ endif }} +
+ {{ if $item.drop.dropping }}{{ endif }} +
+
+
+
+ +
$item.dislike
+
+ $item.comment +
+
+
+{{ for $item.children as $item }} + {{ inc $item.template }}{{ endinc }} +{{ endfor }} +
From d558d255405f6a8d35ce7fb16c175cf28de430f3 Mon Sep 17 00:00:00 2001 From: Domovoy Date: Fri, 27 Jul 2012 22:47:18 +0200 Subject: [PATCH 007/139] CommentBox is now hidden by default, this can be toggled with a fake link --- include/conversation.php | 2 -- view/comment_item.tpl | 3 ++- view/head.tpl | 9 +++++++++ view/theme/duepuntozero/comment_item.tpl | 3 ++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/include/conversation.php b/include/conversation.php index 2794d8ab3b..2a085666d7 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -473,7 +473,6 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr } } - logger('item, page_writeable:'. ($page_writeable ? 'yes' : 'no') .', show comment box: '. ($show_comment_box ? 'yes' : 'no'), LOGGER_DEBUG); if($page_writeable) { $buttons = array( 'like' => array( t("I like this \x28toggle\x29"), t("like")), @@ -489,7 +488,6 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $qc = ((local_user()) ? get_pconfig(local_user(),'qcomment','words') : null); $qcomment = (($qc) ? explode("\n",$qc) : null); } - $comment = replace_macros($cmnt_tpl,array( '$return_path' => '', '$jsreload' => (($mode === 'display') ? $_SESSION['return_url'] : ''), diff --git a/view/comment_item.tpl b/view/comment_item.tpl index a1d4e1043a..b2be6f94e3 100644 --- a/view/comment_item.tpl +++ b/view/comment_item.tpl @@ -1,5 +1,6 @@
-
+ $comment + diff --git a/view/head.tpl b/view/head.tpl index 8a75a4b8e0..e5495b329f 100644 --- a/view/head.tpl +++ b/view/head.tpl @@ -96,6 +96,15 @@ } } + function showHideCommentBox(id) { + if( $('#comment-edit-form-' + id).is(':visible')) { + $('#comment-edit-form-' + id).hide(); + } + else { + $('#comment-edit-form-' + id).show(); + } + } + diff --git a/view/theme/duepuntozero/comment_item.tpl b/view/theme/duepuntozero/comment_item.tpl index ea24d95cc3..63c05f335c 100755 --- a/view/theme/duepuntozero/comment_item.tpl +++ b/view/theme/duepuntozero/comment_item.tpl @@ -1,5 +1,6 @@
- + $comment + From eaf0d04bfb4aaa37c12181ee0ca0f9661905d4b4 Mon Sep 17 00:00:00 2001 From: Domovoy Date: Fri, 27 Jul 2012 22:58:51 +0200 Subject: [PATCH 008/139] Comment box is now inside the item. Makes it easier to know what we are commenting on. --- view/theme/darkzero/style.css | 2 +- view/wall_thread.tpl | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/view/theme/darkzero/style.css b/view/theme/darkzero/style.css index 55644e462d..5cd7eed659 100644 --- a/view/theme/darkzero/style.css +++ b/view/theme/darkzero/style.css @@ -28,7 +28,7 @@ background: #444; } .wall-item-tools { background-color: #444444; background-image: none;} -.comment-wwedit-wrapper{ background-color: #333333; } +.comment-wwedit-wrapper{ background-color: #444444; } .comment-edit-preview{ color: #000000; } .wall-item-content-wrapper.comment { background-color: #444444; border: 0px;} .photo-top-album-name{ background-color: #333333; } diff --git a/view/wall_thread.tpl b/view/wall_thread.tpl index 56e21bb828..aac5dbe2b2 100644 --- a/view/wall_thread.tpl +++ b/view/wall_thread.tpl @@ -76,13 +76,13 @@ {{ if $item.drop.dropping }}{{ endif }}
+
+ $item.comment +
$item.dislike
-
- $item.comment -
{{ for $item.children as $item }} From 8ea30873421c6384b72648265290ff5576201d8c Mon Sep 17 00:00:00 2001 From: Domovoy Date: Sun, 29 Jul 2012 17:13:21 +0200 Subject: [PATCH 009/139] Collapsing is back for threaded comments. Comment box is displayed at the end of the thread. Comments on comments are all collapsed --- include/conversation.php | 31 +++++++++++++++++++++---------- view/theme/darkzero/style.css | 2 +- view/theme/duepuntozero/style.css | 1 - view/wall_thread.tpl | 22 +++++++++++----------- 4 files changed, 33 insertions(+), 23 deletions(-) diff --git a/include/conversation.php b/include/conversation.php index 020908b1e5..5743a2929e 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -303,15 +303,13 @@ function localize_item(&$item){ * Recursively prepare a thread for HTML */ -function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $profile_owner) { +function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $profile_owner, $collapse_all=false) { $result = array(); $wall_template = 'wall_thread.tpl'; $wallwall_template = 'wallwall_thread.tpl'; $items_seen = 0; $nb_items = count($items); - $lastcollapsed = false; - $firstcollapsed = false; foreach($items as $item) { // prevent private email reply to public conversation from leaking. @@ -338,6 +336,8 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $thumb = $item['thumb']; $indent = ''; $osparkle = ''; + $lastcollapsed = false; + $firstcollapsed = false; $toplevelpost = (($item['id'] == $item['parent']) ? true : false); $item_writeable = (($item['writable'] || $item['self']) ? true : false); @@ -463,11 +463,15 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr } else { $indent = 'comment'; // Collapse comments - if($nb_items > 2) { - if(!$firstcollapsed && ($items_seen <= ($nb_items - 2))) { + if(($nb_items > 2) || $collapse_all) { + if($items_seen == 1) { $firstcollapsed = true; } - else if($items_seen == ($nb_items - 1)) { + if($collapse_all) { + if($items_seen == $nb_items) + $lastcollapsed = true; + } + else if($items_seen == ($nb_items - 2)) { $lastcollapsed = true; } } @@ -524,8 +528,8 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $tmp_item = array( // collapse comments in template. I don't like this much... - 'comment_firstcollapsed' => $comment_firstcollapsed, - 'comment_lastcollapsed' => $comment_lastcollapsed, + 'comment_firstcollapsed' => $firstcollapsed, + 'comment_lastcollapsed' => $lastcollapsed, // template to use to render item (wall, walltowall, search) 'template' => $template, @@ -571,10 +575,16 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr call_hooks('display_item', $arr); $item_result = $arr['output']; + if($firstcollapsed) { + $item_result['num_comments'] = sprintf( tt('%d comment','%d comments',$nb_items),$nb_items ); + $item_result['hide_text'] = t('show more'); + } $item_result['children'] = array(); if(count($item['children'])) { - $item_result['children'] = prepare_threads_body($a, $item['children'], $cmnt_tpl, $page_writeable, $mode, $profile_owner); + if(!$toplevelpost && !$collapse_all) + $collapse_all = true; + $item_result['children'] = prepare_threads_body($a, $item['children'], $cmnt_tpl, $page_writeable, $mode, $profile_owner, $collapse_all); } $item_result['private'] = $item['private']; $result[] = $item_result; @@ -799,7 +809,8 @@ function conversation(&$a, $items, $mode, $update, $preview = false, $thr_c = fa } $threads = prepare_threads_body($a, $threads, $cmnt_tpl, $page_writeable, $mode, $profile_owner, $previewing); - } else { + } + else { // Figure out how many comments each parent has diff --git a/view/theme/darkzero/style.css b/view/theme/darkzero/style.css index 5cd7eed659..55644e462d 100644 --- a/view/theme/darkzero/style.css +++ b/view/theme/darkzero/style.css @@ -28,7 +28,7 @@ background: #444; } .wall-item-tools { background-color: #444444; background-image: none;} -.comment-wwedit-wrapper{ background-color: #444444; } +.comment-wwedit-wrapper{ background-color: #333333; } .comment-edit-preview{ color: #000000; } .wall-item-content-wrapper.comment { background-color: #444444; border: 0px;} .photo-top-album-name{ background-color: #333333; } diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css index e17f8319bc..9a8cffa2be 100644 --- a/view/theme/duepuntozero/style.css +++ b/view/theme/duepuntozero/style.css @@ -1181,7 +1181,6 @@ input#dfrn-url { .comment-wwedit-wrapper { margin-top: 15px; background: #f3f3f3; - margin-left: 50px; } .comment-edit-photo { diff --git a/view/wall_thread.tpl b/view/wall_thread.tpl index aac5dbe2b2..96a98ca82a 100644 --- a/view/wall_thread.tpl +++ b/view/wall_thread.tpl @@ -1,12 +1,10 @@ +{{if $item.comment_firstcollapsed}} +
+ $item.num_comments $item.hide_text +
+ {{endif}} From 25015d3ab941e3549681cd1f1482d43dff170669 Mon Sep 17 00:00:00 2001 From: Domovoy Date: Sun, 29 Jul 2012 18:39:38 +0200 Subject: [PATCH 010/139] Update now handles threaded items. --- include/conversation.php | 7 ++++--- js/main.js | 3 +-- view/wall_thread.tpl | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/conversation.php b/include/conversation.php index 5743a2929e..d32a9a6667 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -582,11 +582,13 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $item_result['children'] = array(); if(count($item['children'])) { + $collapse_all_children = $collapse_all; if(!$toplevelpost && !$collapse_all) - $collapse_all = true; - $item_result['children'] = prepare_threads_body($a, $item['children'], $cmnt_tpl, $page_writeable, $mode, $profile_owner, $collapse_all); + $collapse_all_children = true; + $item_result['children'] = prepare_threads_body($a, $item['children'], $cmnt_tpl, $page_writeable, $mode, $profile_owner, $collapse_all_children); } $item_result['private'] = $item['private']; + $item_result['toplevel'] = ($toplevelpost ? 'toplevel_item' : ''); $result[] = $item_result; } @@ -812,7 +814,6 @@ function conversation(&$a, $items, $mode, $update, $preview = false, $thr_c = fa } else { - // Figure out how many comments each parent has // (Comments all have gravity of 6) // Store the result in the $comments array diff --git a/js/main.js b/js/main.js index c7db9a0691..6ab574c4e8 100644 --- a/js/main.js +++ b/js/main.js @@ -280,8 +280,7 @@ //}); // add a new thread - - $('.tread-wrapper',data).each(function() { + $('.toplevel_item',data).each(function() { var ident = $(this).attr('id'); if($('#' + ident).length == 0 && profile_page == 1) { diff --git a/view/wall_thread.tpl b/view/wall_thread.tpl index 96a98ca82a..8142a7842a 100644 --- a/view/wall_thread.tpl +++ b/view/wall_thread.tpl @@ -4,7 +4,7 @@ {{ if $item.drop.dropping }}{{ endif }} -
-
- $item.comment -
+
+ {{ if $item.threaded }} + {{ if $item.comment }} +
+ $item.comment +
+ {{ endif }} + {{ endif }}
@@ -87,5 +91,10 @@ {{ inc $item.template }}{{ endinc }} {{ endfor }} +{{ if $item.flatten }} +
+ $item.comment +
+{{ endif }} {{if $item.comment_lastcollapsed}}{{endif}} From 621e737826262d0221d6fcac19713df0e3195045 Mon Sep 17 00:00:00 2001 From: friendica Date: Fri, 3 Aug 2012 18:33:11 -0700 Subject: [PATCH 024/139] fix angle char storage and transmission, rev update --- boot.php | 2 +- include/items.php | 4 ++-- include/network.php | 4 ++++ mod/item.php | 3 +++ util/messages.po | 4 ++-- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/boot.php b/boot.php index f7d38c2551..25f89abf49 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); require_once('library/Mobile_Detect/Mobile_Detect.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1423' ); +define ( 'FRIENDICA_VERSION', '3.0.1424' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1154 ); diff --git a/include/items.php b/include/items.php index 701a7ada7e..40b2c14b45 100755 --- a/include/items.php +++ b/include/items.php @@ -533,7 +533,7 @@ function get_atom_elements($feed,$item) { $res['body'] = $rawenv[0]['data']; $res['body'] = str_replace(array(' ',"\t","\r","\n"), array('','','',''),$res['body']); // make sure nobody is trying to sneak some html tags by us - $res['body'] = notags(base64url_decode($res['body'])); + $res['body'] = htmlspecialchars(base64url_decode($res['body']),ENT_QUOTES,'UTF-8'); } @@ -578,6 +578,7 @@ function get_atom_elements($feed,$item) { $res['body'] = escape_tags($res['body']); } + // this tag is obsolete but we keep it for really old sites $allow = $item->get_item_tags(NAMESPACE_DFRN,'comment-allow'); @@ -3328,7 +3329,6 @@ function atom_entry($item,$type,$author,$owner,$comment = false,$cid = 0) { else $body = $item['body']; - $o = "\r\n\r\n\r\n"; if(is_array($author)) diff --git a/include/network.php b/include/network.php index 0fff5c7cc9..0e1a63792f 100644 --- a/include/network.php +++ b/include/network.php @@ -854,6 +854,10 @@ function scale_external_images($s, $include_link = true, $scale_replace = false) } } } + + // replace the special char encoding + + $s = htmlspecialchars($s,ENT_QUOTES,'UTF-8'); return $s; } diff --git a/mod/item.php b/mod/item.php index fddc3fd124..436adec50a 100644 --- a/mod/item.php +++ b/mod/item.php @@ -438,6 +438,7 @@ function item_post(&$a) { $body = bb_translate_video($body); + /** * Fold multi-line [code] sequences */ @@ -446,6 +447,8 @@ function item_post(&$a) { $body = scale_external_images($body,false); + + /** * Look for any tags and linkify them */ diff --git a/util/messages.po b/util/messages.po index 86bf30b508..e9affd4dc9 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1423\n" +"Project-Id-Version: 3.0.1424\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-08-02 10:00-0700\n" +"POT-Creation-Date: 2012-08-03 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" From 0c67649c08d7396e3cfd137064de56305b361f8f Mon Sep 17 00:00:00 2001 From: friendica Date: Fri, 3 Aug 2012 18:36:45 -0700 Subject: [PATCH 025/139] put back notags --- include/items.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/items.php b/include/items.php index 40b2c14b45..3b09dfa688 100755 --- a/include/items.php +++ b/include/items.php @@ -533,7 +533,7 @@ function get_atom_elements($feed,$item) { $res['body'] = $rawenv[0]['data']; $res['body'] = str_replace(array(' ',"\t","\r","\n"), array('','','',''),$res['body']); // make sure nobody is trying to sneak some html tags by us - $res['body'] = htmlspecialchars(base64url_decode($res['body']),ENT_QUOTES,'UTF-8'); + $res['body'] = notags(base64url_decode($res['body'])); } From 63628910b2cda7e9b495b3d32abbd0430839c594 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sat, 4 Aug 2012 14:01:16 -0600 Subject: [PATCH 026/139] -- Allow themes to specify an "app" name for posted status updates and comments (via a generic and translateable $sourceapp parameter) -- More HTML cleanup in TPL files -- Various Frost bug fixes and tweaks --- boot.php | 1 + include/conversation.php | 3 +- mod/content.php | 1 + mod/editpost.php | 6 ++-- mod/photos.php | 3 ++ view/birthdays_reminder.tpl | 2 +- view/events_reminder.tpl | 2 +- view/theme/frost-mobile/TODO | 2 ++ view/theme/frost-mobile/comment_item.tpl | 1 + view/theme/frost-mobile/jot.tpl | 1 + view/theme/frost-mobile/nav.tpl | 8 +++--- view/theme/frost-mobile/style.css | 35 +++++++++++++++--------- view/theme/frost-mobile/theme.php | 3 ++ view/theme/frost/js/acl.js | 2 +- view/theme/frost/js/acl.min.js | 2 +- view/theme/frost/nav.tpl | 8 +++--- view/theme/frost/style.css | 10 +++---- 17 files changed, 56 insertions(+), 34 deletions(-) diff --git a/boot.php b/boot.php index 25f89abf49..d96ebcadec 100644 --- a/boot.php +++ b/boot.php @@ -349,6 +349,7 @@ if(! class_exists('App')) { public $plugins; public $apps = array(); public $identities; + public $sourcename = ''; public $nav_sel; diff --git a/include/conversation.php b/include/conversation.php index 9047a97796..3c3169ec5a 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -703,6 +703,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { '$edurl' => t('Link'), '$edvideo' => t('Video'), '$preview' => t('Preview'), + '$sourceapp' => t($a->sourcename), '$ww' => (($mode === 'network') ? $commentww : '') )); } @@ -1163,7 +1164,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) { '$bang' => $x['bang'], '$profile_uid' => $x['profile_uid'], '$preview' => t('Preview'), - '$mobileapp' => t('Friendica mobile web'), + '$sourceapp' => t($a->sourcename), )); diff --git a/mod/content.php b/mod/content.php index 5f3e954f60..e6789860db 100644 --- a/mod/content.php +++ b/mod/content.php @@ -698,6 +698,7 @@ function render_content(&$a, $items, $mode, $update, $preview = false) { '$edurl' => t('Link'), '$edvideo' => t('Video'), '$preview' => t('Preview'), + '$sourceapp' => t($a->sourcename), '$ww' => (($mode === 'network') ? $commentww : '') )); } diff --git a/mod/editpost.php b/mod/editpost.php index 4270ef1133..b44afe245f 100644 --- a/mod/editpost.php +++ b/mod/editpost.php @@ -123,8 +123,8 @@ function editpost_content(&$a) { '$jotnets' => $jotnets, '$title' => $itm[0]['title'], '$placeholdertitle' => t('Set title'), - '$category' => file_tag_file_to_list($itm[0]['file'], 'category'), - '$placeholdercategory' => t('Categories (comma-separated list)'), + '$category' => file_tag_file_to_list($itm[0]['file'], 'category'), + '$placeholdercategory' => t('Categories (comma-separated list)'), '$emtitle' => t('Example: bob@example.com, mary@example.com'), '$lockstate' => $lockstate, '$acl' => '', // populate_acl((($group) ? $group_acl : $a->user), $celeb), @@ -132,7 +132,7 @@ function editpost_content(&$a) { '$profile_uid' => $_SESSION['uid'], '$preview' => t('Preview'), '$jotplugins' => $jotplugins, - '$mobileapp' => t('Friendica mobile web'), + '$sourceapp' => t($a->sourcename), )); return $o; diff --git a/mod/photos.php b/mod/photos.php index af40ea3037..fa2ddb3477 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -1324,6 +1324,7 @@ function photos_content(&$a) { '$comment' => t('Comment'), '$submit' => t('Submit'), '$preview' => t('Preview'), + '$sourceapp' => t($a->sourcename), '$ww' => '' )); } @@ -1363,6 +1364,7 @@ function photos_content(&$a) { '$myphoto' => $contact['thumb'], '$comment' => t('Comment'), '$submit' => t('Submit'), + '$sourceapp' => t($a->sourcename), '$ww' => '' )); } @@ -1394,6 +1396,7 @@ function photos_content(&$a) { '$myphoto' => $contact['thumb'], '$comment' => t('Comment'), '$submit' => t('Submit'), + '$sourceapp' => t($a->sourcename), '$ww' => '' )); } diff --git a/view/birthdays_reminder.tpl b/view/birthdays_reminder.tpl index 8db7d22f4b..971680a8cc 100644 --- a/view/birthdays_reminder.tpl +++ b/view/birthdays_reminder.tpl @@ -3,7 +3,7 @@ {{ endif }} diff --git a/view/events_reminder.tpl b/view/events_reminder.tpl index f641a5faf4..9746898c77 100644 --- a/view/events_reminder.tpl +++ b/view/events_reminder.tpl @@ -3,7 +3,7 @@ {{ endif }} diff --git a/view/theme/frost-mobile/TODO b/view/theme/frost-mobile/TODO index cc35b63050..40f73ac3f5 100644 --- a/view/theme/frost-mobile/TODO +++ b/view/theme/frost-mobile/TODO @@ -16,6 +16,8 @@ Photo album display? - Embedded video playback is way too big +- It would be better to allow the "source" specification for posts and comments to be anything the theme author wants--but how to make translateable? + - Needs to be faster! - Reduce DOM elements (~2400 for 10 items, ~8400 for 40 items) - Automatically set limit of 10 items for Network and Profile? diff --git a/view/theme/frost-mobile/comment_item.tpl b/view/theme/frost-mobile/comment_item.tpl index b5b0e9d289..5aa84dc10e 100755 --- a/view/theme/frost-mobile/comment_item.tpl +++ b/view/theme/frost-mobile/comment_item.tpl @@ -13,6 +13,7 @@
+ diff --git a/view/theme/frost-mobile/jot.tpl b/view/theme/frost-mobile/jot.tpl index dcb542735f..f5c080a6c2 100644 --- a/view/theme/frost-mobile/jot.tpl +++ b/view/theme/frost-mobile/jot.tpl @@ -13,6 +13,7 @@ +
diff --git a/view/theme/frost-mobile/nav.tpl b/view/theme/frost-mobile/nav.tpl index 54f7b54ca5..232583fead 100644 --- a/view/theme/frost-mobile/nav.tpl +++ b/view/theme/frost-mobile/nav.tpl @@ -19,16 +19,16 @@ $nav.register.1 {{ endif }} + {{ if $nav.settings }} +
  • $nav.settings.1
  • + {{ endif }} + {{ if $nav.manage }}
  • $nav.manage.1
  • {{ endif }} - {{ if $nav.settings }} -
  • $nav.settings.1
  • - {{ endif }} - {{ if $nav.profiles }}
  • $nav.profiles.1
  • {{ endif }} diff --git a/view/theme/frost-mobile/style.css b/view/theme/frost-mobile/style.css index ea80faa476..8b1bbd8608 100644 --- a/view/theme/frost-mobile/style.css +++ b/view/theme/frost-mobile/style.css @@ -1357,7 +1357,7 @@ input#dfrn-url { } .wall-item-body code { - overflow: hidden; + overflow: auto; } .comment .wall-item-body { @@ -1435,7 +1435,7 @@ input#dfrn-url { height: 150px; /* width: 350px; overflow: auto;*/ - width: 190px; + width: 250px; margin-top: 15px; margin-left: 20px; } @@ -1688,8 +1688,8 @@ input#dfrn-url { margin-right: 5px; margin-bottom: 10px;*/ /* float: left;*/ - margin-right: 15px; - margin-left: 15px; +/* margin-right: 15px; + margin-left: 15px;*/ } .pager_first, @@ -1698,14 +1698,10 @@ input#dfrn-url { display: none; } -.pager_first a, +/*.pager_first a, .pager_last a, .pager_prev a, .pager_next a { -/* padding-top: 2px; - padding-bottom: 2px; - padding-left: 4px; - padding-right: 8px;*/ padding-top: 5px; padding-bottom: 5px; padding-left: 25px; @@ -1725,6 +1721,16 @@ input#dfrn-url { padding-left: 9px; padding-right: 18px; text-decoration: none; +}*/ + +.pager_prev a, +.pager_next a { + font-size: 1.5em; + padding: 0.2em 1em; + border: 1px solid #aaa; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; } .pager_current { @@ -2895,7 +2901,7 @@ aside input[type='text'] { } #event-summary { - width: 400px; + width: 280px; } .vevent { @@ -2934,13 +2940,16 @@ aside input[type='text'] { } .event-start, .event-end { + font-size: 14px; margin-left: 10px; - width: 330px; + width: 280px; clear: both; + padding-bottom: 1.5em; } .event-start .dtstart, .event-end .dtend { - float: right; + clear: both; + float: left; } .event-list-date { @@ -3505,7 +3514,7 @@ aside input[type='text'] { background-repeat: no-repeat; opacity: 0.5; } -.link { display: none; background-position: -144px 0px;} +.icon.link { display: none; background-position: -144px 0px;} /*.globe { background-position: 0px -16px;}*/ .icon.globe { diff --git a/view/theme/frost-mobile/theme.php b/view/theme/frost-mobile/theme.php index e2cbae29f8..df655c9fcf 100644 --- a/view/theme/frost-mobile/theme.php +++ b/view/theme/frost-mobile/theme.php @@ -22,4 +22,7 @@ function frost_mobile_init(&$a) { if( $a->module === 'login' ) $a->page['end'] .= ''; + + $a->sourcename = 'Friendica mobile web'; + } diff --git a/view/theme/frost/js/acl.js b/view/theme/frost/js/acl.js index 2ea559636b..9675588af2 100644 --- a/view/theme/frost/js/acl.js +++ b/view/theme/frost/js/acl.js @@ -11,7 +11,7 @@ function ACL(backend_url, preset){ that.deny_cid = (preset[2] || []); that.deny_gid = (preset[3] || []); that.group_uids = []; - that.nw = 4; //items per row. should be calulated from #acl-list.width + that.nw = 3; //items per row. should be calulated from #acl-list.width that.list_content = $j("#acl-list-content"); that.item_tpl = unescape($j(".acl-list-item[rel=acl-template]").html()); diff --git a/view/theme/frost/js/acl.min.js b/view/theme/frost/js/acl.min.js index 6a3518d9da..fe69e51899 100644 --- a/view/theme/frost/js/acl.min.js +++ b/view/theme/frost/js/acl.min.js @@ -1 +1 @@ -function ACL(e,t){that=this,that.url=e,that.kp_timer=null,t==undefined&&(t=[]),that.allow_cid=t[0]||[],that.allow_gid=t[1]||[],that.deny_cid=t[2]||[],that.deny_gid=t[3]||[],that.group_uids=[],that.nw=4,that.list_content=$j("#acl-list-content"),that.item_tpl=unescape($j(".acl-list-item[rel=acl-template]").html()),that.showall=$j("#acl-showall"),t.length==0&&that.showall.addClass("selected"),that.showall.click(that.on_showall),$j(".acl-button-show").live("click",that.on_button_show),$j(".acl-button-hide").live("click",that.on_button_hide),$j("#acl-search").keypress(that.on_search),$j("#acl-wrapper").parents("form").submit(that.on_submit),that.get(0,100)}ACL.prototype.on_submit=function(){aclfileds=$j("#acl-fields").html(""),$j(that.allow_gid).each(function(e,t){aclfileds.append("")}),$j(that.allow_cid).each(function(e,t){aclfileds.append("")}),$j(that.deny_gid).each(function(e,t){aclfileds.append("")}),$j(that.deny_cid).each(function(e,t){aclfileds.append("")})},ACL.prototype.search=function(){var e=$j("#acl-search").val();that.list_content.html(""),that.get(0,100,e)},ACL.prototype.on_search=function(e){that.kp_timer&&clearTimeout(that.kp_timer),that.kp_timer=setTimeout(that.search,1e3)},ACL.prototype.on_showall=function(e){return e.preventDefault(),e.stopPropagation(),that.showall.hasClass("selected")?!1:(that.showall.addClass("selected"),that.allow_cid=[],that.allow_gid=[],that.deny_cid=[],that.deny_gid=[],that.update_view(),!1)},ACL.prototype.on_button_show=function(e){return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),that.set_allow($j(this).parent().attr("id")),!1},ACL.prototype.on_button_hide=function(e){return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),that.set_deny($j(this).parent().attr("id")),!1},ACL.prototype.set_allow=function(e){type=e[0],id=parseInt(e.substr(1));switch(type){case"g":that.allow_gid.indexOf(id)<0?that.allow_gid.push(id):that.allow_gid.remove(id),that.deny_gid.indexOf(id)>=0&&that.deny_gid.remove(id);break;case"c":that.allow_cid.indexOf(id)<0?that.allow_cid.push(id):that.allow_cid.remove(id),that.deny_cid.indexOf(id)>=0&&that.deny_cid.remove(id)}that.update_view()},ACL.prototype.set_deny=function(e){type=e[0],id=parseInt(e.substr(1));switch(type){case"g":that.deny_gid.indexOf(id)<0?that.deny_gid.push(id):that.deny_gid.remove(id),that.allow_gid.indexOf(id)>=0&&that.allow_gid.remove(id);break;case"c":that.deny_cid.indexOf(id)<0?that.deny_cid.push(id):that.deny_cid.remove(id),that.allow_cid.indexOf(id)>=0&&that.allow_cid.remove(id)}that.update_view()},ACL.prototype.update_view=function(){that.allow_gid.length==0&&that.allow_cid.length==0&&that.deny_gid.length==0&&that.deny_cid.length==0?(that.showall.addClass("selected"),$j("#jot-perms-icon").removeClass("lock").addClass("unlock"),$j("#jot-public").show(),$j(".profile-jot-net input").attr("disabled",!1),typeof editor!="undefined"&&editor!=0&&$j("#profile-jot-desc").html(ispublic)):(that.showall.removeClass("selected"),$j("#jot-perms-icon").removeClass("unlock").addClass("lock"),$j("#jot-public").hide(),$j(".profile-jot-net input").attr("disabled","disabled"),$j("#profile-jot-desc").html(" ")),$j("#acl-list-content .acl-list-item").each(function(){$j(this).removeClass("groupshow grouphide")}),$j("#acl-list-content .acl-list-item").each(function(){itemid=$j(this).attr("id"),type=itemid[0],id=parseInt(itemid.substr(1)),btshow=$j(this).children(".acl-button-show").removeClass("selected"),bthide=$j(this).children(".acl-button-hide").removeClass("selected");switch(type){case"g":var e="";that.allow_gid.indexOf(id)>=0&&(btshow.addClass("selected"),bthide.removeClass("selected"),e="groupshow"),that.deny_gid.indexOf(id)>=0&&(btshow.removeClass("selected"),bthide.addClass("selected"),e="grouphide"),$j(that.group_uids[id]).each(function(t,n){e=="grouphide"&&$j("#c"+n).removeClass("groupshow");if(e!=""){var r=$j("#c"+n).attr("class");if(r==undefined)return!0;var i=r.indexOf("grouphide");i==-1&&$j("#c"+n).addClass(e)}});break;case"c":that.allow_cid.indexOf(id)>=0&&(btshow.addClass("selected"),bthide.removeClass("selected")),that.deny_cid.indexOf(id)>=0&&(btshow.removeClass("selected"),bthide.addClass("selected"))}})},ACL.prototype.get=function(e,t,n){var r={start:e,count:t,search:n};$j.ajax({type:"POST",url:that.url,data:r,dataType:"json",success:that.populate})},ACL.prototype.populate=function(e){var t=Math.ceil(e.tot/that.nw)*42;that.list_content.height(t),$j(e.items).each(function(){html="
    "+that.item_tpl+"
    ",html=html.format(this.photo,this.name,this.type,this.id,"",this.network,this.link),this.uids!=undefined&&(that.group_uids[this.id]=this.uids),that.list_content.append(html)}),that.update_view()}; \ No newline at end of file +function ACL(e,t){that=this,that.url=e,that.kp_timer=null,t==undefined&&(t=[]),that.allow_cid=t[0]||[],that.allow_gid=t[1]||[],that.deny_cid=t[2]||[],that.deny_gid=t[3]||[],that.group_uids=[],that.nw=3,that.list_content=$j("#acl-list-content"),that.item_tpl=unescape($j(".acl-list-item[rel=acl-template]").html()),that.showall=$j("#acl-showall"),t.length==0&&that.showall.addClass("selected"),that.showall.click(that.on_showall),$j(".acl-button-show").live("click",that.on_button_show),$j(".acl-button-hide").live("click",that.on_button_hide),$j("#acl-search").keypress(that.on_search),$j("#acl-wrapper").parents("form").submit(that.on_submit),that.get(0,100)}ACL.prototype.on_submit=function(){aclfileds=$j("#acl-fields").html(""),$j(that.allow_gid).each(function(e,t){aclfileds.append("")}),$j(that.allow_cid).each(function(e,t){aclfileds.append("")}),$j(that.deny_gid).each(function(e,t){aclfileds.append("")}),$j(that.deny_cid).each(function(e,t){aclfileds.append("")})},ACL.prototype.search=function(){var e=$j("#acl-search").val();that.list_content.html(""),that.get(0,100,e)},ACL.prototype.on_search=function(e){that.kp_timer&&clearTimeout(that.kp_timer),that.kp_timer=setTimeout(that.search,1e3)},ACL.prototype.on_showall=function(e){return e.preventDefault(),e.stopPropagation(),that.showall.hasClass("selected")?!1:(that.showall.addClass("selected"),that.allow_cid=[],that.allow_gid=[],that.deny_cid=[],that.deny_gid=[],that.update_view(),!1)},ACL.prototype.on_button_show=function(e){return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),that.set_allow($j(this).parent().attr("id")),!1},ACL.prototype.on_button_hide=function(e){return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),that.set_deny($j(this).parent().attr("id")),!1},ACL.prototype.set_allow=function(e){type=e[0],id=parseInt(e.substr(1));switch(type){case"g":that.allow_gid.indexOf(id)<0?that.allow_gid.push(id):that.allow_gid.remove(id),that.deny_gid.indexOf(id)>=0&&that.deny_gid.remove(id);break;case"c":that.allow_cid.indexOf(id)<0?that.allow_cid.push(id):that.allow_cid.remove(id),that.deny_cid.indexOf(id)>=0&&that.deny_cid.remove(id)}that.update_view()},ACL.prototype.set_deny=function(e){type=e[0],id=parseInt(e.substr(1));switch(type){case"g":that.deny_gid.indexOf(id)<0?that.deny_gid.push(id):that.deny_gid.remove(id),that.allow_gid.indexOf(id)>=0&&that.allow_gid.remove(id);break;case"c":that.deny_cid.indexOf(id)<0?that.deny_cid.push(id):that.deny_cid.remove(id),that.allow_cid.indexOf(id)>=0&&that.allow_cid.remove(id)}that.update_view()},ACL.prototype.update_view=function(){that.allow_gid.length==0&&that.allow_cid.length==0&&that.deny_gid.length==0&&that.deny_cid.length==0?(that.showall.addClass("selected"),$j("#jot-perms-icon").removeClass("lock").addClass("unlock"),$j("#jot-public").show(),$j(".profile-jot-net input").attr("disabled",!1),typeof editor!="undefined"&&editor!=0&&$j("#profile-jot-desc").html(ispublic)):(that.showall.removeClass("selected"),$j("#jot-perms-icon").removeClass("unlock").addClass("lock"),$j("#jot-public").hide(),$j(".profile-jot-net input").attr("disabled","disabled"),$j("#profile-jot-desc").html(" ")),$j("#acl-list-content .acl-list-item").each(function(){$j(this).removeClass("groupshow grouphide")}),$j("#acl-list-content .acl-list-item").each(function(){itemid=$j(this).attr("id"),type=itemid[0],id=parseInt(itemid.substr(1)),btshow=$j(this).children(".acl-button-show").removeClass("selected"),bthide=$j(this).children(".acl-button-hide").removeClass("selected");switch(type){case"g":var e="";that.allow_gid.indexOf(id)>=0&&(btshow.addClass("selected"),bthide.removeClass("selected"),e="groupshow"),that.deny_gid.indexOf(id)>=0&&(btshow.removeClass("selected"),bthide.addClass("selected"),e="grouphide"),$j(that.group_uids[id]).each(function(t,n){e=="grouphide"&&$j("#c"+n).removeClass("groupshow");if(e!=""){var r=$j("#c"+n).attr("class");if(r==undefined)return!0;var i=r.indexOf("grouphide");i==-1&&$j("#c"+n).addClass(e)}});break;case"c":that.allow_cid.indexOf(id)>=0&&(btshow.addClass("selected"),bthide.removeClass("selected")),that.deny_cid.indexOf(id)>=0&&(btshow.removeClass("selected"),bthide.addClass("selected"))}})},ACL.prototype.get=function(e,t,n){var r={start:e,count:t,search:n};$j.ajax({type:"POST",url:that.url,data:r,dataType:"json",success:that.populate})},ACL.prototype.populate=function(e){var t=Math.ceil(e.tot/that.nw)*42;that.list_content.height(t),$j(e.items).each(function(){html="
    "+that.item_tpl+"
    ",html=html.format(this.photo,this.name,this.type,this.id,"",this.network,this.link),this.uids!=undefined&&(that.group_uids[this.id]=this.uids),that.list_content.append(html)}),that.update_view()}; \ No newline at end of file diff --git a/view/theme/frost/nav.tpl b/view/theme/frost/nav.tpl index 6ae19650e0..89e1168ab7 100644 --- a/view/theme/frost/nav.tpl +++ b/view/theme/frost/nav.tpl @@ -19,16 +19,16 @@ $nav.register.1 {{ endif }} + {{ if $nav.settings }} +
  • $nav.settings.1
  • + {{ endif }} + {{ if $nav.manage }}
  • $nav.manage.1
  • {{ endif }} - {{ if $nav.settings }} -
  • $nav.settings.1
  • - {{ endif }} - {{ if $nav.profiles }}
  • $nav.profiles.1
  • {{ endif }} diff --git a/view/theme/frost/style.css b/view/theme/frost/style.css index 3bc9ad1cd0..c27c74e958 100644 --- a/view/theme/frost/style.css +++ b/view/theme/frost/style.css @@ -1894,7 +1894,7 @@ input#dfrn-url { #acl-wrapper { - width: 690px; + width: 580px; float:left; } #acl-search { @@ -1935,7 +1935,7 @@ input#dfrn-url { } .acl-list-item { display: block; - width: 150px; + width: 170px; height: 30px; border: 1px solid #cccccc; margin: 5px; @@ -1949,10 +1949,10 @@ input#dfrn-url { } .acl-list-item p { height: 12px; font-size: 10px; margin: 0px; padding: 2px 0px 1px; overflow: hidden;} .acl-list-item a { - font-size: 8px; + font-size: 10px; /* 8px; */ display: block; - width: 40px; - height: 10px; + width: 50px; + height: 12px; float: left; color: #999999; background-color: #cccccc; From 849720f1607a7bddb12774543367eada389d7821 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sat, 4 Aug 2012 14:04:18 -0600 Subject: [PATCH 027/139] update version and todo --- view/theme/frost-mobile/TODO | 4 ---- view/theme/frost-mobile/theme.php | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/view/theme/frost-mobile/TODO b/view/theme/frost-mobile/TODO index 40f73ac3f5..940d9e588b 100644 --- a/view/theme/frost-mobile/TODO +++ b/view/theme/frost-mobile/TODO @@ -6,8 +6,6 @@ Photo album display? - Edit photo page: bottom buttons are off-center in Dolphin Mini -- Pager: looks weird when only "prev" is there - - BB code buttons for status updates - Get "add contact" back on contacts page @@ -16,8 +14,6 @@ Photo album display? - Embedded video playback is way too big -- It would be better to allow the "source" specification for posts and comments to be anything the theme author wants--but how to make translateable? - - Needs to be faster! - Reduce DOM elements (~2400 for 10 items, ~8400 for 40 items) - Automatically set limit of 10 items for Network and Profile? diff --git a/view/theme/frost-mobile/theme.php b/view/theme/frost-mobile/theme.php index df655c9fcf..314361b9c9 100644 --- a/view/theme/frost-mobile/theme.php +++ b/view/theme/frost-mobile/theme.php @@ -4,7 +4,7 @@ * Name: Frost--mobile version * Description: Like frosted glass * Credits: Navigation icons taken from http://iconza.com. Other icons taken from http://thenounproject.com, including: Like, Dislike, Black Lock, Unlock, Pencil, Tag, Camera, Paperclip (Marie Coons), Folder (Sergio Calcara), Chain-link (Andrew Fortnum), Speaker (Harold Kim), Quotes (Henry Ryder), Video Camera (Anas Ramadan), and Left Arrow, Right Arrow, and Delete X (all three P.J. Onori). All under Attribution (CC BY 3.0). Others from The Noun Project are public domain or No Rights Reserved (CC0). - * Version: Version 0.2.2 + * Version: Version 0.2.3 * Author: Zach P * Maintainer: Zach P */ From 1f8182a4533c097cfc06f877f3392be2e41d82b4 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sat, 4 Aug 2012 14:05:56 -0600 Subject: [PATCH 028/139] update main frost version --- view/theme/frost/theme.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/view/theme/frost/theme.php b/view/theme/frost/theme.php index 24dee31d0d..39b185bf85 100644 --- a/view/theme/frost/theme.php +++ b/view/theme/frost/theme.php @@ -4,7 +4,7 @@ * Name: Frost * Description: Like frosted glass * Credits: Navigation icons taken from http://iconza.com. Other icons taken from http://thenounproject.com, including: Like, Dislike, Black Lock, Unlock, Pencil, Tag, Camera, Paperclip (Marie Coons), Folder (Sergio Calcara), Chain-link (Andrew Fortnum), Speaker (Harold Kim), Quotes (Henry Ryder), Video Camera (Anas Ramadan), and Left Arrow, Right Arrow, and Delete X (all three P.J. Onori). All under Attribution (CC BY 3.0). Others from The Noun Project are public domain or No Rights Reserved (CC0). - * Version: Version 0.2.2 + * Version: Version 0.2.3 * Author: Zach P * Maintainer: Zach P */ From ba66e17d1d8ce6400db7a63d16a004c1a5898820 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sat, 4 Aug 2012 17:30:25 -0600 Subject: [PATCH 029/139] ImageMagick rotates CW while imagerotate() rotates CCW --- include/Photo.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/Photo.php b/include/Photo.php index 1f751c77f3..74d4c746d6 100644 --- a/include/Photo.php +++ b/include/Photo.php @@ -247,7 +247,7 @@ class Photo { if($this->is_imagick()) { $this->image->setFirstIterator(); do { - $this->image->rotateImage(new ImagickPixel(), $degrees); + $this->image->rotateImage(new ImagickPixel(), -$degrees); // ImageMagick rotates in the opposite direction of imagerotate() } while ($this->image->nextImage()); return; } From bf19e62ecdd45c5c81e73bcb7beb80db20131086 Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 4 Aug 2012 17:02:05 -0700 Subject: [PATCH 030/139] rev update --- boot.php | 2 +- util/messages.po | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/boot.php b/boot.php index 25f89abf49..eb61caf4a8 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); require_once('library/Mobile_Detect/Mobile_Detect.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1424' ); +define ( 'FRIENDICA_VERSION', '3.0.1425' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1154 ); diff --git a/util/messages.po b/util/messages.po index e9affd4dc9..04c69c6c1b 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1424\n" +"Project-Id-Version: 3.0.1425\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-08-03 10:00-0700\n" +"POT-Creation-Date: 2012-08-04 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -863,7 +863,7 @@ msgstr "" msgid "Confirm" msgstr "" -#: ../../mod/dfrn_request.php:715 ../../include/items.php:3204 +#: ../../mod/dfrn_request.php:715 ../../include/items.php:3205 msgid "[Name Withheld]" msgstr "" @@ -1917,7 +1917,7 @@ msgstr "" #: ../../addon/facebook/facebook.php:702 #: ../../addon/facebook/facebook.php:1200 #: ../../addon/public_server/public_server.php:62 -#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:3213 +#: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:3214 #: ../../boot.php:779 msgid "Administrator" msgstr "" @@ -3031,28 +3031,28 @@ msgstr "" msgid "Wall Photos" msgstr "" -#: ../../mod/item.php:800 +#: ../../mod/item.php:803 msgid "System error. Post not saved." msgstr "" -#: ../../mod/item.php:825 +#: ../../mod/item.php:828 #, php-format msgid "" "This message was sent to you by %s, a member of the Friendica social network." msgstr "" -#: ../../mod/item.php:827 +#: ../../mod/item.php:830 #, php-format msgid "You may visit them online at %s" msgstr "" -#: ../../mod/item.php:828 +#: ../../mod/item.php:831 msgid "" "Please contact the sender by replying to this post if you do not wish to " "receive these messages." msgstr "" -#: ../../mod/item.php:830 +#: ../../mod/item.php:833 #, php-format msgid "%s posted an update." msgstr "" @@ -7789,12 +7789,12 @@ msgstr "" msgid "%1$d %2$s ago" msgstr "" -#: ../../include/datetime.php:472 ../../include/items.php:1620 +#: ../../include/datetime.php:472 ../../include/items.php:1621 #, php-format msgid "%s's birthday" msgstr "" -#: ../../include/datetime.php:473 ../../include/items.php:1621 +#: ../../include/datetime.php:473 ../../include/items.php:1622 #, php-format msgid "Happy Birthday %s" msgstr "" @@ -8064,11 +8064,11 @@ msgstr "" msgid "following" msgstr "" -#: ../../include/items.php:3211 +#: ../../include/items.php:3212 msgid "A new person is sharing with you at " msgstr "" -#: ../../include/items.php:3211 +#: ../../include/items.php:3212 msgid "You have a new follower at " msgstr "" From ed9811762d6964fb752153a6631a6b00fdba00e6 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Sat, 4 Aug 2012 21:05:25 -0600 Subject: [PATCH 031/139] missed an instance of $mobileapp in switch to generic app label --- view/theme/frost-mobile/jot.tpl | 1 - 1 file changed, 1 deletion(-) diff --git a/view/theme/frost-mobile/jot.tpl b/view/theme/frost-mobile/jot.tpl index f5c080a6c2..b491f448d7 100644 --- a/view/theme/frost-mobile/jot.tpl +++ b/view/theme/frost-mobile/jot.tpl @@ -14,7 +14,6 @@ -
    From 9732f1fccf1caef47bcfb4c5fa8b8f9940526357 Mon Sep 17 00:00:00 2001 From: friendica Date: Sat, 4 Aug 2012 23:29:52 -0700 Subject: [PATCH 032/139] expire issue --- include/items.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/items.php b/include/items.php index 3b09dfa688..e5b9dbffa6 100755 --- a/include/items.php +++ b/include/items.php @@ -3699,7 +3699,7 @@ function drop_item($id,$interactive = true) { // check if logged in user is either the author or owner of this item - if((local_user() == $item['uid']) || (remote_user() == $item['contact-id'])) { + if((local_user() == $item['uid']) || (remote_user() == $item['contact-id']) || (! $interactive)) { // delete the item From 5d1eb37b9b04c44ee4c627bdd7fd53e6b1a3dffd Mon Sep 17 00:00:00 2001 From: Domovoy Date: Sun, 5 Aug 2012 13:30:51 +0200 Subject: [PATCH 033/139] Remote items should be threaded now --- include/items.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/items.php b/include/items.php index 3b09dfa688..13e4897aac 100755 --- a/include/items.php +++ b/include/items.php @@ -925,6 +925,8 @@ function item_store($arr,$force_parent = false) { $arr['origin'] = ((x($arr,'origin')) ? intval($arr['origin']) : 0 ); $arr['guid'] = ((x($arr,'guid')) ? notags(trim($arr['guid'])) : get_guid()); + + $arr['thr-parent'] = $arr['parent-uri']; if($arr['parent-uri'] === $arr['uri']) { $parent_id = 0; $parent_deleted = 0; @@ -950,7 +952,6 @@ function item_store($arr,$force_parent = false) { // and re-attach to the conversation parent. if($r[0]['uri'] != $r[0]['parent-uri']) { - $arr['thr-parent'] = $arr['parent-uri']; $arr['parent-uri'] = $r[0]['parent-uri']; $z = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `parent-uri` = '%s' AND `uid` = %d ORDER BY `id` ASC LIMIT 1", @@ -992,7 +993,6 @@ function item_store($arr,$force_parent = false) { if($force_parent) { logger('item_store: $force_parent=true, reply converted to top-level post.'); $parent_id = 0; - $arr['thr-parent'] = $arr['parent-uri']; $arr['parent-uri'] = $arr['uri']; $arr['gravity'] = 0; } From dac88fce56776cdd2e6957e6c4e9fa0988537e94 Mon Sep 17 00:00:00 2001 From: Domovoy Date: Sun, 5 Aug 2012 15:08:31 +0200 Subject: [PATCH 034/139] Remove database update, use fallback solution instead. --- boot.php | 2 +- include/conversation.php | 7 ++++++- update.php | 9 +-------- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/boot.php b/boot.php index 014b840f27..7e3e9fee7b 100644 --- a/boot.php +++ b/boot.php @@ -13,7 +13,7 @@ require_once('library/Mobile_Detect/Mobile_Detect.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_VERSION', '3.0.1425' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); -define ( 'DB_UPDATE_VERSION', 1155 ); +define ( 'DB_UPDATE_VERSION', 1154 ); define ( 'EOL', "
    \r\n" ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); diff --git a/include/conversation.php b/include/conversation.php index 345bb34ad8..706bcdde67 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -1151,7 +1151,12 @@ function get_item_children($arr, $parent) { foreach($arr as $item) { if($item['id'] != $item['parent']) { if(get_config('system','thread_allow')) { - if($item['thr-parent'] == $parent['uri']) { + // Fallback to parent-uri if thr-parent is not set + $thr_parent = $item['thr-parent']; + if($thr_parent == '') + $thr_parent = $item['parent-uri']; + + if($thr_parent == $parent['uri']) { $item['children'] = get_item_children($arr, $item); $children[] = $item; } diff --git a/update.php b/update.php index c41acf6fbc..19e6cf3bdf 100644 --- a/update.php +++ b/update.php @@ -1,6 +1,6 @@ Date: Sun, 5 Aug 2012 15:35:12 +0200 Subject: [PATCH 035/139] Preview was not working --- mod/item.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/item.php b/mod/item.php index d82d54cfff..fe7513de00 100644 --- a/mod/item.php +++ b/mod/item.php @@ -604,7 +604,7 @@ function item_post(&$a) { if($preview) { require_once('include/conversation.php'); - $o = conversation($a,array(array_merge($contact_record,$datarray)),'search'); + $o = conversation($a,array(array_merge($contact_record,$datarray)),'search', false); logger('preview: ' . $o); echo json_encode(array('preview' => $o)); killme(); From e6067e6694450e03d75e5d6f1b2477b393bc5d2d Mon Sep 17 00:00:00 2001 From: Christian Vogeley Date: Sun, 5 Aug 2012 16:08:07 +0200 Subject: [PATCH 036/139] Frost-mobile: media query in css for tablets Use space more efficiently on tablets in frost-mobile theme. Tested with iPad 1. --- view/theme/frost-mobile/style.css | 7792 +++++++++++++++-------------- 1 file changed, 3905 insertions(+), 3887 deletions(-) diff --git a/view/theme/frost-mobile/style.css b/view/theme/frost-mobile/style.css index 8b1bbd8608..8095d7eff2 100644 --- a/view/theme/frost-mobile/style.css +++ b/view/theme/frost-mobile/style.css @@ -1,3887 +1,3905 @@ -/** - * duepuntozero Frindika style - * Fabio Comuni - * - * Heavily modified for Frost Mobile - * Zach P - */ - - -/* generals */ -html { - width: 320px; - margin-left: auto; - margin-right: auto; -} - -body { - font-family: helvetica,arial,freesans,clean,sans-serif; - font-size: 16px; -/* line-height: 24px;*/ - background-color: #ffffff; - background-image: url(head.jpg); - background-repeat: repeat-x; - color: #505050; - margin: 0px; -} - -div.container { - display: block; -/* width: 100%;*/ - margin-top: 0px; - margin-bottom: 0px; - margin-left: auto; - margin-right: auto; -} - -a, a:visited, a:link { color: #3465a4; text-decoration: none; } -a:hover {text-decoration: underline; } - -input { - border: 1px solid #666666; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - padding: 3px; -} - -img { border :0px; } - -#id_openid_url, .openid input { - background: url(login-bg.gif) no-repeat; - background-position: 0 50%; - padding-left: 18px; - width: 252px; - margin-left: 20px; -} -.openid:hover { - -} - -/*#id_openid_url { - width: 384px; -}*/ - -code { - font-family: Courier, monospace; - white-space: pre; - display: block; - overflow: auto; - border: 1px solid #444; - background: #EEE; - color: #444; - padding: 10px; - margin-top: 20px; -} - -blockquote { - background-color: #f4f8f9; - border-left: 4px solid #dae4ee; - padding: 0.4em; -} - -.icollapse-wrapper, .ccollapse-wrapper { - border: 1px solid #CCC; - padding: 5px; -} - -.hide-comments-outer { - margin-left: 0px; - font-weight: 700; - opacity: 0.6; -} -.hide-comments { - margin-left: 5px; -} - -#panel { - background-color: ivory; - position: absolute; - z-index: 2; - width: 30%; - padding: 25px; - border: 1px solid #444; -} - -.heart { - color: #FF0000; - font-size: 100%; - margin-right: 5px; -} - - - -/* nav */ -nav { - height: 94px; -/* width: 100%;*/ - width: 320px; - display: block; - margin-top: 0px; - margin-bottom: 0px; - margin-left: auto; - margin-right: auto; -} -nav #site-location { - color: #888a85; - font-size: 0.8em; - position: absolute; -} - -.error-message { - color: #FF0000; - font-size: 1.1em; - border: 1px solid #FF8888; - background-color: #FFEEEE; - padding: 10px; -} - -.info-message { - color: #204a87; - font-size: 1.1em; - border: 1px solid #3465a4; - background-color: #d7e3f1; - padding: 10px; -} - - -nav #banner { -/* display: block;*/ - display: none; - margin-top: 14px; - position: absolute; -} -nav #banner #logo-text a { - display: none; - font-size: 40px; - font-weight: bold; - margin-left: 3px; - color: #000000; - -} -nav #banner #logo-text a:hover { text-decoration: none; } - - -/* ZP REMOVE? nav-commlink */ -.nav-commlink, .nav-login-link { - display: block; - height: 15px; - margin-top: 67px; - margin-right: 2px; - /*padding: 6px 10px;*/ - padding: 6px 3px; - float: left; - bottom: 140px; - border: 1px solid #babdb6; - border-bottom: 0px; - background-color: #aec0d3; - color: #565854; - -moz-border-radius: 3px 3px 0px 0px; - -webkit-border-radius: 3px 3px 0px 0px; - border-radius: 3px 3px 0px 0px; -} - -.nav-commlink.selected { - background-color: #ffffff; - border-bottom: 1px solid #ffffff; - color: #000000 !important; - margin-top: 64px; - padding-top: 6px; - padding-bottom: 8px; -} - -.nav-ajax-left.show { - position: absolute; - font-size: 0.8em; - top: 22px; - right: 2px; - padding: 1px 2px; - border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - background-color: gold !important; -} - - - -nav #nav-link-wrapper .nav-link { - /*border-right: 1px solid #babdb6;*/ -} - -nav .nav-link { - margin-top: 24px; - margin-bottom: 0.2em; - margin-right: 1em; - margin-left: 1em; - background-color: transparent !important; -} - -.nav-button-container { - float: right; - position: relative; -} - -.nav-button-container .nav-ajax-left { -} - -.nav-menu-list { - text-align: center; - text-size: 18px; - line-height: 24px; - - border-left: 1px solid #aaa;/*#444444;*/ - border-right: 1px solid #aaa; - border-top: 1px solid #aaa; - border-bottom: 1px solid #aaa; - - background: #FFFFFF; - - display: none; - list-style: none; - - width: 8em; - position: absolute; - margin: 0px; -/* right: -33px;*/ - padding: 1em 0px; - - -moz-box-shadow: 3px 3px 5px #555; - -webkit-box-shadow: 3px 3px 5px #555; - box-shadow: 3px 3px 5px #555; - - z-index: 10000; -} - -#network-menu-list { - left: 3px; -} - -#contacts-menu-list { - right: -30px; -} - -#system-menu-list { - right: 3px; -} - - -div.main-container { -/* width: 100%;*/ - margin: 0px auto; - display: block; - position: relative; -} - -/*div.main-content-loading { - position: absolute; - top: 200px; - left: 50%; - display: none; -}*/ - - -/* aside */ -aside { -/* display: block;*/ - display: none; - min-height: 112px; - - width: 250px; - - padding: 1em; - margin: 1em 0px 0px 0px; - - position: absolute; - -/* float:left;*/ -} - -#dfrn-request-link { - display: block; - color: #FFFFFF; - -webkit-border-radius: 5px ; - -moz-border-radius: 5px; - border-radius: 5px; - padding: 5px; - font-weight: bold; - background: #3465a4 url('friendika-16.png') no-repeat 95% center; -} -#wallmessage-link { - display: block; - color: #FFFFFF; - -webkit-border-radius: 5px ; - -moz-border-radius: 5px; - border-radius: 5px; - padding: 5px; - font-weight: bold; - background-color: #3465a4; -} - -/* section */ -div.section-wrapper { -/* width: 100%;*/ - width: 320px; - - margin-left: auto; - margin-right: auto; - - /*padding-right:2em;*/ - - display: block; - - background-color: #ffffff; - background-image: url(border.jpg); - background-position: top right; - background-repeat: no-repeat; -} - -section { - margin: 0px 0px 0px 0px; - - padding-left: 5px; - padding-right: 5px; - padding-top: 1em; - padding-bottom: 3em; - - background-image: url(border.jpg); - background-position: top left; - background-repeat: no-repeat; - - min-height: 112px; - border-top: 1px solid #babdb6; -} - -.tabs { - /*background-image: url(head.jpg); - background-repeat: repeat-x; - background-position: 0px -20px;*/ - border-bottom: 1px solid #babdb6; - padding:0px; -} -.tabs li { margin: 0px 0px 20px 0px; padding-left: 1em; list-style: none; } -.tabs a { - padding: 0.4em 2em; - border: 1px solid #aaa; - border-radius: 8px; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; -} -.tab { - /*display:block;*/ - /*float:left;*/ - padding-left: 1em; - padding-right: 0.4em; - padding-top: 0.4em; - padding-bottom: 0.4em; - /*margin-right: 1em;*/ - margin-right: 3px ; -} -.tab.active { - font-weight: bold; - -} -#events-tab { - display: none; -} - - -/* footer */ -footer { - display: none; - -} - -.birthday-today, .event-today { - font-weight: bold; -} - -.preview { - background: #FFFFC8; -} - -#theme-preview { - margin: 15px 0 15px 150px; -} - -/* from default */ -#jot-perms-icon, -#profile-location, -#profile-nolocation, -#profile-youtube, -#profile-video, -#profile-audio, -#profile-link, -#profile-title, -#wall-image-upload, -#wall-file-upload, -#profile-upload-wrapper, -#wall-image-upload-div, -#wall-file-upload-div, -.hover, .focus { - cursor: pointer; -} - -#jot-perms-icon { - float: left; -} - -#jot-title, #jot-category { - border: 0px; - margin: 0px; - height: 20px; - width: 270px; - margin-bottom: 5px; - font-weight: bold; - border: 1px solid #ffffff; -} - -#jot-title::-webkit-input-placeholder{font-weight: normal;} -#jot-category::-webkit-input-placeholder{font-weight: normal;} -#jot-title:-moz-placeholder{font-weight: normal;} -#jot-category:-moz-placeholder{font-weight: normal;} - - -#jot-title:hover, -#jot-title:focus, -#jot-category:hover, -#jot-category:focus { - border: 1px solid #cccccc; -} - -.jothidden { display:none; } - - -.fakelink, .fakelink:visited, .fakelink:link { - color: #3465a4; - text-decoration: none; - cursor: pointer; - margin-top: 15px; - margin-bottom: 15px; -} -.lockview { - cursor: pointer; -} - -#group-sidebar { - margin-bottom: 10px; -} - -.group-selected, .nets-selected, .fileas-selected, .categories-selected { - padding: 3px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - border: 1px solid #CCCCCC; - background: #F8F8F8; - font-weight: bold; -} - -.settings-widget .selected { - padding: 3px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - border: 1px solid #CCCCCC; - background: #F8F8F8; - font-weight: bold; -} - -.fakelink:hover { - color: #3465a4; - text-decoration: underline; - cursor: pointer; -} -.smalltext { - font-size: 0.7em; -} -#sysmsg { - /*width: 600px;*/ - margin-bottom: 10px; -} - -#register-fill-ext { - margin-bottom: 25px; -} - -#label-register-name, #label-register-email, #label-register-nickname, #label-register-openid { - float: left; - width: 350px; - margin-top: 10px; -} - -#register-name, #register-email, #register-nickname { - float: left; - margin-top: 10px; - width: 150px; -} - -#register-openid { - float: left; - margin-top: 10px; - width: 130px; -} - -#register-name-end, #register-email-end, #register-nickname-end, #register-submit-end, #register-openid-end { - clear: both; -} - -#register-nickname-desc { - margin-top: 30px; - width: 650px; -} -#register-sitename { - float: left; - margin-top: 10px; -} - -#register-submit-button { - margin-top: 10px; -} - - -#login_standard { - width: 210px; - float: left; -} -#login_openid { - width: 210px; - margin-left: 250px; -} - -#login_standard input, -#login_openid input { - width: 180px; -} - -#login-extra-links { - clear: both; -} - -#register-link, #lost-password-link { - float: left; - font-size: 80%; - margin-right: 15px; -} - -#login-name-end, #login-password-end, #login-extra-end, #login-submit-end { - height: 50px; -} - -#login-submit-button { -/* margin-top: 10px; */ - margin-left: 200px; -} - - -input#dfrn-url { - float: left; - background: url(friendika-16.png) no-repeat; - background-position: 2px center; - font-size: 17px; - padding-left: 21px; - height: 21px; - background-color: #FFFFFF; - color: #000000; - margin-bottom: 20px; -} - -#dfrn-url-label { - float: left; - width: 250px; -} - -#dfrn-request-url-end { - clear: both; -} - -#knowyouyes, #knowyouno { - float: left; -} - -#dfrn-request-knowyou-yes-wrapper, #dfrn-request-knowyou-no-wrapper { - - float: none; -} -#dfrn-request-knowyou-yes-label, #dfrn-request-knowyou-no-label { - float: left; - width: 75px; - margin-left: 50px; - margin-bottom: 7px; -} -#dfrn-request-knowyou-break, #dfrn-request-knowyou-end { - clear: both; - -} - -#dfrn-request-message-wrapper { - margin-bottom: 50px; -} -#dfrn-request-submit-wrapper { - clear: both; - margin-left: 50px; -} - -#dfrn-request-info-wrapper { - margin-left: 50px; -} - - - -#cropimage-wrapper, #cropimage-preview-wrapper { - float: left; - padding: 10px; -} -.imgCrop { - max-width: 280px; -} -#crop-image-form { - margin-top: 30px; - clear: both; -} - -.intro-wrapper { - margin-top: 20px; -} - -.intro-fullname { - font-size: 1.1em; - font-weight: bold; - -} -.intro-desc { - margin-bottom: 20px; - font-weight: bold; -} - -.intro-note { - padding: 10px; -} - -.intro-end { - padding: 30px; -} - -.intro-form { - float: left; -} -.intro-approve-form { - clear: both; -} -.intro-approve-as-friend-end { - clear: both; -} -.intro-submit-approve, .intro-submit-ignore { - margin-right: 20px; -} -.intro-submit-approve { - margin-top: 15px; -} - -.intro-approve-as-friend-label, .intro-approve-as-fan-label { - float: left; - width: 100px; - margin-left: 20px; -} -.intro-approve-as-friend, .intro-approve-as-fan { - float: left; -} -.intro-form-end { - clear: both; -} -.intro-approve-as-friend-desc { - margin-top: 15px; -} -.intro-approve-as-end { - clear: both; - margin-bottom: 10px; -} - -.intro-end { - clear: both; - margin-bottom: 30px; -} -.aprofile dt { - font-weight: bold; -} -#page-profile .title { - font-weight: bold; -} -#profile-vcard-break { - clear: both; -} -#profile-extra-links { - clear: both; - margin-top: 10px; -} - -#profile-extra-links ul { - list-style-type: none; - padding: 0px; -} - - -#profile-extra-links li { - margin-top: 5px; -} - -#profile-edit-links ul { - list-style-type: none; -} - -#profile-edit-links li { - margin-top: 10px; -} -.profile-edit-side-div { - float: right; -} -.profile-edit-side-link { - opacity: 0.3; - filter:alpha(opacity=30); -} -.profile-edit-side-link:hover { - opacity: 1.0; - filter:alpha(opacity=100); -} - -.view-contact-wrapper { - margin-top: 20px; - float: left; - margin-left: 20px; - width: 180px; -} - -.contact-wrapper { - float: left; - width: 150px; - height: 150px; - overflow: auto; -} - -#view-contact-end { - clear: both; -} - - -#viewcontacts { - margin-top: 15px; -} -#profile-edit-default-desc { - color: #FF0000; - border: 1px solid #FF8888; - background-color: #FFEEEE; - padding: 7px; -} - -#profile-edit-clone-link-wrapper { - float: left; - margin-left: 50px; - margin-bottom: 20px; - width: 300px; -} - - -#profile-edit-links-end { - clear: both; - margin-bottom: 15px; -} - -.profile-listing-photo { - border: none; -} - -.profile-edit-submit-wrapper { - margin-top: 20px; - margin-bottom: 20px; -} - -#profile-photo-link-select-wrapper { - margin-top: 2em; -} - -#profile-photo-submit-wrapper { - margin-top: 10px; -} - -#profile-photo-wrapper img { - width:175px; - height:175px; - padding: 12px; -} - -#profile-edit-profile-name-label, -#profile-edit-name-label, -#profile-edit-pdesc-label, -#profile-edit-gender-label, -#profile-edit-dob-label, -#profile-edit-address-label, -#profile-edit-locality-label, -#profile-edit-region-label, -#profile-edit-postal-code-label, -#profile-edit-country-name-label, -#profile-edit-marital-label, -#profile-edit-sexual-label, -#profile-edit-politic-label, -#profile-edit-religion-label, -#profile-edit-pubkeywords-label, -#profile-edit-prvkeywords-label, -#profile-edit-homepage-label, -#profile-edit-hometown-label { - font-weight: 700; - float: left; - width: 175px; -} - -#profile-edit-profile-name, -#profile-edit-name, -#profile-edit-pdesc, -#gender-select, -#profile-edit-dob, -#profile-edit-address, -#profile-edit-locality, -#profile-edit-region, -#profile-edit-postal-code, -#profile-edit-country-name, -#marital-select, -#sexual-select, -#profile-edit-politic, -#profile-edit-religion, -#profile-edit-pubkeywords, -#profile-edit-prvkeywords, -#profile-in-dir-yes, -#profile-in-dir-no, -#profile-in-netdir-yes, -#profile-in-netdir-no, -#hide-wall-yes, -#hide-wall-no, -#hide-friends-yes, -#hide-friends-no { - float: left; - margin-bottom: 20px; - margin-left: 20px; -} -#profile-edit-country-name { - max-width: 260px; -} -#profile-edit-pubkeywords, -#profile-edit-prvkeywords { - margin-bottom: 5px; -} -#settings-normal, -#settings-soapbox, -#settings-freelove, -#settings-community { - float: left; -} -#settings-notifications label { - margin-left: 20px; -} -#settings-notify-desc, #settings-activity-desc { - font-weight: bold; - margin-bottom: 15px; -} -#settings-pagetype-desc { - color: #666666; - margin-bottom: 15px; -} - -#profile-in-dir-yes-label, -#profile-in-dir-no-label, -#profile-in-netdir-yes-label, -#profile-in-netdir-no-label, -#hide-wall-yes-label, -#hide-wall-no-label, -#hide-friends-yes-label, -#hide-friends-no-label { - margin-left: 125px; - float: left; - width: 50px; -} - - -#profile-edit-howlong-label, -#profile-edit-with-label { - display: block; - font-style: italic; - width: 175px; - margin-left: 0px; -} -#profile-edit-howlong, -#profile-edit-with { - margin-left: 20px; - margin-bottom: 20px; -} - -#profile-publish-yes-reg, -#profile-publish-no-reg { - float: left; - margin-bottom: 10px; -} - -#profile-publish-yes-label-reg, -#profile-publish-no-label-reg { - margin-left: 350px; - float: left; - width: 50px; -} - -#profile-publish-break-reg, -#profile-publish-end-reg { - clear: both; -} - - -#profile-edit-pdesc-desc, -#profile-edit-pubkeywords-desc, -#profile-edit-prvkeywords-desc { - float: left; - color: #777; - margin-left: 20px; - margin-bottom: 20px; -} -#profile-edit-prvkeywords-desc { - margin-bottom: 0px; -} - -#profile-edit-homepage, #profile-edit-hometown { - float: left; - margin-bottom: 25px; - margin-left: 20px; -} -#profile-edit-hometown { - margin-bottom: 5px; -} -#settings-normal-label, -#settings-soapbox-label, -#settings-community-label, -#settings-freelove-label { - float: left; - width: 200px; -} -#settings-normal-desc, -#settings-soapbox-desc, -#settings-community-desc, -#settings-freelove-desc { - /*float: left; - margin-left: 75px;*/ - clear: left; - color: #666666; - display: block; - margin-bottom: 20px -} - -#profile-edit-profile-name-end, -#profile-edit-name-end, -#profile-edit-pdesc-end, -#profile-edit-gender-end, -#profile-edit-dob-end, -#profile-edit-address-end, -#profile-edit-locality-end, -#profile-edit-region-end, -#profile-edit-postal-code-end, -#profile-edit-country-name-end, -#profile-edit-marital-end, -#profile-edit-sexual-end, -#profile-edit-politic-end, -#profile-edit-religion-end, -#profile-edit-pubkeywords-end, -#profile-edit-prvkeywords-end, -#profile-edit-homepage-end, -#profile-edit-hometown-end, -#profile-in-dir-break, -#profile-in-dir-end, -#profile-in-netdir-break, -#profile-in-netdir-end, -#hide-wall-break, -#hide-wall-end, -#hide-friends-break, -#hide-friends-end, -#settings-normal-break, -#settings-soapbox-break, -#settings-community-break, -#settings-freelove-break { - clear: both; -} -#profile-edit-marital-wrapper, #profile-edit-address-wrapper { - margin-top: 50px; -} -#profile-edit-marital-end { - margin-bottom: 20px; -} - -.settings-widget ul { - list-style-type: none; - padding: 0px; -} - -.settings-widget li { - margin-left: 24px; - margin-bottom: 8px; -} - - -#gender-select, #marital-select, #sexual-select { - width: 220px; -} - -#profile-edit-profile-name-wrapper .required { - color: #FF0000; - float: left; -} - -#contacts-display-wrapper { - padding-left: 35px; -} - -#contacts-main { - margin-top: 20px; - margin-bottom: 20px; -} - -.contact-entry-wrapper { - float: left; -/* width: 120px; - height: 120px;*/ - padding-left: 15px; - padding-right: 15px; - width: 95px; - height: 170px; -} -#contacts-search-end { - margin-bottom: 10px; -} - -.contact-entry-direction-icon { - margin-top: 24px; - margin-right: 2px; -} - -.contact-entry-photo img { - border: none; -} -.contact-entry-photo-end { - clear: both; -} -.contact-entry-name { - float: left; - margin-left: 0px; - margin-right: 10px; - padding-bottom: 5px; - width: 120px; - font-weight: 600; - overflow: hidden; -} -.contact-entry-details { - font-style: italic; - font-size: 10px; - font-weight: 500; -} -.contact-entry-network { - font-size: 10px; - font-weight: 500; -} -.contact-entry-edit-links { - margin-top: 6px; - margin-left: 10px; - width: 16px; -} -.contact-entry-nav-wrapper { - float: left; - margin-left: 10px; -} - -.contact-entry-edit-links img { - border: none; - margin-right: 15px; -} -.contact-entry-photo { - float: left; - position: relative; -} -.contact-entry-end { - clear: both; -} - -#fsuggest-desc, #fsuggest-submit-wrapper { - margin-top: 15px; - margin-bottom: 15px; -} - -#network-star-link{ - margin-top: 10px; -} -.network-star { - float: left; - margin-right: 5px; -} -#network-bmark-link { - margin-top: 10px; -} - -.wall-item-content-wrapper { - margin-top: 60px; - padding-top: 30px; - border-top: 2px solid #AAAAAA; - position: relative; - -} - -.wall-item-content-wrapper.comment { - margin-top: 30px; - padding-top: 0px; - margin-left: 5px; - margin-right: 5px; - border: 2px solid #AAAAAA; - border-radius: 10px; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; -/* background: #EEEEEE;*/ -} - -.wall-item-like, .wall-item-dislike { - font-style: italic; - margin-left: 0px; - opacity: 0.6; -} - -.wall-item-like.comment, .wall-item-dislike.comment { - margin-left: 5px; -} - -.wall-item-info { - display: block; - float: left; - width:110px; - margin-right:10px; -} -.comment .wall-item-info { - width: 70px; -} - -.wall-item-photo-wrapper { - margin-bottom: 10px; - width: 100px; -} -.wall-item-photo-menu-button { - display: block; - position: absolute; - background-image: url("photo-menu.jpg"); - background-position: top left; - background-repeat: no-repeat; - margin: 0px; padding: 0px; - width: 16px; - height: 16px; - top: 94px; left:0px; - overflow: hidden; - text-indent: 40px; - display: none; - -} -.wall-item-photo-menu { - width: auto; - border: 2px solid #444444; - background: #FFFFFF; - position: absolute; - left: 0px; top:110px; - display: none; - z-index: 10000; -} -.wall-item-photo-menu { margin:0px; padding: 0px; list-style: none } -.wall-item-photo-menu li a { display: block; padding: 2px; } -.wall-item-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; } - - -.comment .wall-item-photo-menu-button { top: 64px;} -.comment .wall-item-photo-menu { top: 80px; } - -.wallwall .wwto { - left: 50px; - margin: 0; - position: absolute; - top: 80px; - width: 30px -} -.wallwall .wwto img { - width: 30px !important; - height: 30px !important; -} - -.wallwall /*.wall-item-photo-end*/ { - clear: both; -} - -.wall-item-arrowphoto-wrapper { - position: absolute; - left: 75px; - top: 80px; - z-index: 100; -} -.wall-item-wrapper { - margin-left:10px; -} -.wall-item-lock { - margin-top: 30px; - left: 105px; - position: absolute; - top: 1px; -} -.comment .wall-item-lock { - margin-top: 0px; - left: 65px; -} - -.wall-item-ago { - color: #888888; - font-size: 0.8em; -} - -.wall-item-location { - overflow: hidden; - /* add ellipsis on text overflow */ - /* this work on safari, opera, ie, chrome. */ - /* firefox users have to wait support or we */ - /* can use a jquery plugin http://bit.ly/zJskg */ - text-overflow: ellipsis; - -o-text-overflow: ellipsis; - width: 100%; -} - -.wall-item-like-buttons { - float: left; - margin-right: 3px; -} - -.like-rotator { - margin-left: 5px; -} - -.wall-item-like-buttons > a, -.wall-item-like-buttons > img { - float: left; -} - -.wall-item-like-buttons img { - cursor: pointer; -} - -.wall-item-share-buttons { - margin-left: 10px; - margin-right: 10px; -} - -.editpost { - margin-left: 10px; - float: left; -} -.star-item { - margin-left: 10px; - float: left; -} -.tag-item { - margin-left: 10px; - float: left; -} - -.filer-item { - margin-left: 10px; - float: left; -} - -.wall-item-links-wrapper { - float: left; -} - -.wall-item-delete-wrapper { - float: right; -} - -/*.wall-item-delete-end { - clear: both; -}*/ - -.wall-item-delete-icon { - border: none; -} - - -/*.wall-item-wrapper-end { - clear: both; -}*/ -.wall-item-name-link { - font-weight: bold; - text-decoration: none; - color: #3172BD; -} -.wall-item-photo { - border: none; -} -.comment .wall-item-photo { - width: 50px !important; - height: 50px !important; - border-top-left-radius: 10px; -} -.wall-item-content { - float: left; - margin-left: 3px; -/* padding-right: 1em; - max-height: 500px; - overflow: auto;*/ -} - -.wall-item-content img { - max-width: 300px; - border-radius: 7px; - -moz-border-radius: 7px; - -webkit-border-radius: 7px; -} - - - -.wall-item-title { - float: left; - font-weight: bold; - font-size: 1.6em; - /*width: 450px;*/ -} - -/*.wall-item-title-end { - clear: both; -}*/ - -.wall-item-body { - text-align: justify; - float: left; - width: 300px; - overflow: hidden; - margin-top: 10px; - line-height: 23px; -} - -.wall-item-body code { - overflow: auto; -} - -.comment .wall-item-body { - margin-left: 5px; - width: 280px; -} - -.wall-item-tools { - clear: both; -/* background-image: url("head.jpg"); - background-position: 0 -20px; - background-repeat: repeat-x;*/ - padding: 5px 5px 0px; - height: 32px; -} -.wall-item-author { -/* margin-top: 10px;*/ - margin-top: 0px; -} - -.comment .wall-item-tools { -/* background:none;*/ -/* background-image: url("head.jpg"); - background-position: 0 -20px; - background-repeat: repeat-x;*/ - border-bottom-left-radius: 10px; - border-bottom-right-radius: 10px; -} - -.comment-edit-wrapper { - margin-top: 15px; - background: #f3f3f3; - margin-left: 50px; -} - -.comment-wwedit-wrapper { - display: block; - margin-top: 15px; - background: #f3f3f3; - margin-left: 10px; - margin-right: 10px; -} - -.comment-edit-photo { - margin-top: 15px; - margin-left: 10px; - margin-bottom: 10px; - width: 25px; - float: left; -} -.comment-edit-photo img { - width: 25px; -} -.comment-edit-text-empty, .comment-edit-text-full { -/* float: left;*/ - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - border: 1px solid #cccccc; - padding: 3px 1px 1px 3px; -} - -.comment-edit-text-empty { - color: gray; - height: 30px; - width: 175px; -/* overflow: auto;*/ - margin-top: 40px; - margin-bottom: 10px; - margin-left: 20px; -} - -.comment-edit-text-full { - color: black; - height: 150px; -/* width: 350px; - overflow: auto;*/ - width: 250px; - margin-top: 15px; - margin-left: 20px; -} - -.comment-edit-text-end { - clear: both; -} - -.comment-edit-submit { - font-size: 18px; - padding: 5px 10px; - margin: 10px 0px 10px 110px; -} - -#profile-jot-wrapper { - padding-left: 10px; -} - -#profile-jot-plugin-wrapper, -#profile-jot-submit-wrapper { - margin-top: 15px; -} - -#profile-jot-submit { - float: left; - font-size: 18px; - padding: 5px 8px; -} -#profile-upload-wrapper { - float: left; - margin-left: 30px; -} -#profile-attach-wrapper { - float: left; - margin-left: 15px; -} -#profile-rotator { - float: left; - margin-left: 30px; -} -#profile-link-wrapper { - float: left; - margin-left: 15px; -} -#profile-youtube-wrapper { - float: left; - margin-left: 15px; -} -#profile-video-wrapper { - float: left; - margin-left: 15px; -} -#profile-audio-wrapper { - float: left; - margin-left: 15px; -} -#profile-location-wrapper { - float: left; - margin-left: 15px; -} -#jot-preview-link { - display: none; - float: left; - margin-left: 45px; - margin-top: 0px !important; -} - - -#profile-nolocation-wrapper { - float: left; - margin-left: 15px; -} -#profile-title-wrapper { - float: left; - margin-left: 15px; -} - -#profile-jot-perms { - float: left; - margin-left: 40px; - font-weight: bold; - font-size: 1.2em; -} - - -#profile-jot-perms-end { - /*clear: left;*/ - height: 30px; -} - -#profile-jot-plugin-end{ - clear: both; -} -.profile-jot-net { - float: left; - margin-right: 10px; - margin-top: 5px; - margin-bottom: 5px; -} - -#profile-jot-networks-end { - clear: both; -} - -.profile-jot-box { - margin-top: 50px; -} -.profile-edit-textarea { - margin-left: 20px; -} - -#profile-jot-end { - /*clear: both;*/ - margin-bottom: 30px; -} -#about-jot-submit-wrapper { - margin-top: 15px; -} -#about-jot-end { - margin-bottom: 30px; -} -#contacts-main { - margin-bottom: 30px; -} - -#profile-listing-desc { - margin-left: 30px; -} - -#profile-listing-new-link-wrapper { - margin-left: 30px; - margin-bottom: 30px; -} -.profile-listing-photo-wrapper { - float: left; -} - -.profile-listing-edit-buttons-wrapper { - clear: both; -} -.profile-listing-photo-edit-link { - float: left; - width: 125px; -} -.profile-listing-end { - clear: both; -} -.profile-listing-edit-buttons-wrapper img{ - border: none; - margin-right: 20px; -} -.profile-listing { - float: left; - margin-left: 30px; - margin-top: 25px; -} -.profile-listing-visible { - margin-left: 100px; -} -.profile-listing-name { - float: left; - margin-left: 12px; - margin-top: 10px; - color: #3172BD; - font-weight: bold; - width: 200px; - -} -.fortune { - margin-top: 50px; - color: #4444FF; - font-weight: bold; - margin-bottom: 20px; -} - - -.directory-end { - clear: both; -} -.directory-name { - text-align: center; -} -.directory-photo { - margin-left: 15px; -} -.directory-details { - font-size: 0.7em; - text-align: center; - margin-left: 5px; - margin-right: 5px; -} -.directory-item { - float: left; -/* width: 225px; - height: 260px;*/ - padding-left: 15px; - width: 130px; - height: 235px; - overflow: auto; -} - -#directory-search-wrapper { - margin-top: 20px; - margin-right: 20px; - margin-bottom: 50px; -} - -#directory-search-end { -} - -.directory-photo-img { - width: 125px; - border: none; -} - - -.pager { - margin-top: 30px; - margin-right: auto; - margin-left: auto; - - padding-top: 10px; - padding-bottom: 10px; - padding-left: 10px; - text-align: center; -/* line-height: 2.75em;*/ -} - -.pager a { - font-size: 1.5em; - padding: 0.2em 1em; - border: 1px solid #aaa; - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} - - -.pager_first, -.pager_last, -.pager_prev, -.pager_next, -.pager_n { -/* float: left; - border: 1px solid black; - border-radius: 7px; - background: #EEE; - text-align: center; - width: 50px; - margin-right: 5px; - margin-bottom: 10px;*/ -/* float: left;*/ -/* margin-right: 15px; - margin-left: 15px;*/ -} - -.pager_first, -.pager_last, -.pager_n { - display: none; -} - -/*.pager_first a, -.pager_last a, -.pager_prev a, -.pager_next a { - padding-top: 5px; - padding-bottom: 5px; - padding-left: 25px; - padding-right: 30px; - - border: 2px solid #AAAAAA; - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; - font-size: 1.25em; - text-align: center; - text-decoration: none; -} -.pager_n a { - padding-top: 2px; - padding-bottom: 2px; - padding-left: 9px; - padding-right: 18px; - text-decoration: none; -}*/ - -.pager_prev a, -.pager_next a { - font-size: 1.5em; - padding: 0.2em 1em; - border: 1px solid #aaa; - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} - -.pager_current { - display: none; - float: left; - border: 1px solid black; - border-radius: 7px; - -moz-border-radius: 7px; - -webkit-border-radius: 7px; - background: #FFCCCC; - font-size: 1.25em; - text-align: center; - width: 50px; - margin-right: 5px; - margin-bottom: 10px; -} - - -#advanced-profile-name-wrapper, -#advanced-profile-gender-wrapper, -#advanced-profile-dob-wrapper, -#advanced-profile-age-wrapper, -#advanced-profile-marital-wrapper, -#advanced-profile-sexual-wrapper, -#advanced-profile-homepage-wrapper, -#advanced-profile-politic-wrapper, -#advanced-profile-religion-wrapper, -#advanced-profile-about-wrapper, -#advanced-profile-interest-wrapper, -#advanced-profile-contact-wrapper, -#advanced-profile-music-wrapper, -#advanced-profile-book-wrapper, -#advanced-profile-tv-wrapper, -#advanced-profile-film-wrapper, -#advanced-profile-romance-wrapper, -#advanced-profile-work-wrapper, -#advanced-profile-education-wrapper { - margin-top: 20px; -} - -#advanced-profile-name-text, -#advanced-profile-gender-text, -#advanced-profile-dob-text, -#advanced-profile-age-text, -#advanced-profile-marital-text, -#advanced-profile-sexual-text, -#advanced-profile-homepage-text, -#advanced-profile-politic-text, -#advanced-profile-religion-text, -#advanced-profile-about-text, -#advanced-profile-interest-text, -#advanced-profile-contact-text, -#advanced-profile-music-text, -#advanced-profile-book-text, -#advanced-profile-tv-text, -#advanced-profile-film-text, -#advanced-profile-romance-text, -#advanced-profile-work-text, -#advanced-profile-education-text { - width: 300px; - float: left; -} - -#advanced-profile-name-end, -#advanced-profile-gender-end, -#advanced-profile-dob-end, -#advanced-profile-age-end, -#advanced-profile-marital-end, -#advanced-profile-sexual-end, -#advanced-profile-homepage-end, -#advanced-profile-politic-end, -#advanced-profile-religion-end { - height: 10px; -} - -#advanced-profile-about-end, -#advanced-profile-interest-end, -#advanced-profile-contact-end, -#advanced-profile-music-end, -#advanced-profile-book-end, -#advanced-profile-tv-end, -#advanced-profile-film-end, -#advanced-profile-romance-end, -#advanced-profile-work-end, -#advanced-profile-education-end { - - -} - -#advanced-profile-name, -#advanced-profile-gender, -#advanced-profile-dob, -#advanced-profile-age, -#advanced-profile-marital, -#advanced-profile-sexual, -#advanced-profile-homepage, -#advanced-profile-politic, -#advanced-profile-religion { - float: left; - -} - - -#advanced-profile-about, -#advanced-profile-interest, -#advanced-profile-contact, -#advanced-profile-music, -#advanced-profile-book, -#advanced-profile-tv, -#advanced-profile-film, -#advanced-profile-romance, -#advanced-profile-work, -#advanced-profile-education { - margin-top: 10px; - margin-left: 50px; - margin-right: 20px; - padding: 10px; - border: 1px solid #CCCCCC; -} - -#advanced-profile-with { - float: left; - margin-left: 15px; -} - -#contact-edit-wrapper { - margin-top: 10px; -} - -#contact-edit-banner-name { - font-size: 1.4em; - font-weight: bold; -} - -#contact-edit-poll-wrapper { - margin-top: 15px; -} - -#contact-edit-last-update-text { - float: left; - clear: left; - margin-top: 30px; -} - -#contact-edit-poll-text { - float: left; - clear: left; - margin-top: 15px; - margin-bottom: 0px; -} - -#contact-edit-update-now { - margin-top: 15px; -} - -#contact-edit-links{ - clear: both; -} - -#contact-edit-links ul { - list-style: none; - list-style-type: none; - margin-left: 0px; - padding-left: 0px; -} - -#contact-edit-links li { - margin-top: 5px; -} - -#contact-edit-drop-link { - float: right; - margin-right: 10px; -} - -#contact-edit-nav-end { - clear: both; -} - -#contact-edit-wrapper { - width: 100%; -} - -#update_now_link { - float: left; - clear: left; - margin-bottom: 20px; -} - -#label_id_hidden, #id_hidden { - margin-top: 30px; -} -#help_id_hidden { - margin-top: 30px; -} - -#contact-edit-end { - clear: both; - margin-top: 15px; -} - -#contact-profile-selector { - width: 175px; - margin-left: 0px; -} - -.contact-edit-submit { - margin-top: 20px; - padding: 0.2em 0.5em; - font-size: 18px; -} - - -.contact-photo-menu-button { -/* position: absolute; - background-image: url("photo-menu.jpg"); - background-position: top left; - background-repeat: no-repeat; - margin: 0px; padding: 0px; - width: 16px; - height: 16px; - top: 64px; left:0px; - overflow: hidden; - text-indent: 40px; - display: none;*/ - -} -.contact-photo-menu { - width: 130px; - border: 1px solid #AAA; - background: #FFFFFF; - position: absolute; - left: -30px; top: 80px; - display: none; - z-index: 10000; - -moz-box-shadow: 3px 3px 5px #555; - -webkit-box-shadow: 3px 3px 5px #555; - box-shadow: 3px 3px 5px #555; -} -.contact-photo-menu ul { margin:0px; padding: 0px; list-style: none } -.contact-photo-menu li a { display: block; padding: 2px; } -.contact-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; } - - -#block-message, #ignore-message, #archive-message, #lost-contact-message { - color: #FF0000; -} - -#profile-edit-insecure { - margin-top: 20px; - color: #FF0000; - font-size: 1.1em; - border: 1px solid #FF8888; - background-color: #FFEEEE; - padding-left: 5px; - /*: 3px 3px 3px 5px; */ - width: 587px; -} - -#profile-jot-desc { - /*float: left;*/ - width: 100%; - color: #FF0000; - margin-top: 10px; - margin-bottom: 10px; -} - -#profile-jot-text { - width: 90%; - height: 20px; - color:#cccccc; - border: 1px solid #cccccc; - padding: 3px 0px 0px 5px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; -} - - -/** acl **/ -#photo-edit-perms-select, -#photos-upload-permissions-wrapper, -#profile-jot-acl-wrapper{ - display:block!important; -} - -#photos-usage-message { - margin-bottom: 15px; -} - -#profile-jot-acl-wrapper{ - width:270px; - padding-left:10px; - height:auto; - overflow:visible; -} - -#acl-wrapper { - width: 270px; - float:left; -} -#acl-search { - display: none; - float:right; - background: #ffffff url("../../../images/search_18.png") no-repeat right center; - padding-right:20px; -} -#acl-showall { - float: left; - display: block; - width: auto; - height: 18px; - background-color: #cccccc; - background-image: url("../../../images/show_all_off.png"); - background-position: 7px 7px; - background-repeat: no-repeat; - padding: 7px 5px 0px 30px; - -webkit-border-radius: 5px ; - -moz-border-radius: 5px; - border-radius: 5px; - color: #999999; -} -#acl-showall.selected { - color: #000000; - background-color: #ff9900; - background-image: url("../../../images/show_all_on.png"); -} - -#acl-list { -/* height: 210px;*/ - border: 1px solid #cccccc; - clear: both; - margin-top: 30px; - overflow: visible; -} -#acl-list-content { - -} -.acl-list-item { - display: block; - width: 120px; - height: 30px; - border: 1px solid #cccccc; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - margin-top: 5px; - margin-bottom: 5px; - margin-right: 2px; - margin-left: 2px; - padding-left: 5px; - float: left; -} -.acl-list-item img{ - display: none; - width:22px; - height: 22px; - float: left; - margin: 4px; -} -.acl-list-item p { height: 12px; font-size: 10px; margin: 0px; padding: 2px 0px 1px; overflow: hidden;} -.acl-list-item a { - font-size: 8px; - display: block; - width: 40px; - height: 10px; - float: left; - color: #999999; - background-color: #cccccc; - background-position: 3px 3px; - background-repeat: no-repeat; - margin-right: 5px; - -webkit-border-radius: 2px ; - -moz-border-radius: 2px; - border-radius: 2px; - padding-left: 15px; -} -#acl-wrapper a:hover { - text-decoration: none; - color:#000000; -} -.acl-button-show { background-image: url("../../../images/show_off.png"); } -.acl-button-hide { background-image: url("../../../images/hide_off.png"); } - -.acl-button-show.selected { - color: #000000; - background-color: #9ade00; - background-image: url("../../../images/show_on.png"); -} -.acl-button-hide.selected { - color: #000000; - background-color: #ff4141; - background-image: url("../../../images/hide_on.png"); -} -.acl-list-item.groupshow { border-color: #9ade00; } -.acl-list-item.grouphide { border-color: #ff4141; } -/** /acl **/ - - -#group-new-submit-wrapper { - margin-top: 30px; -} - -#group-edit-name-label { - float: left; - width: 175px; - margin-top: 20px; - margin-bottom: 20px; -} - -#group-edit-name { - float: left; - width: 225px; - margin-top: 20px; - margin-bottom: 20px; -} - -#group-edit-name-wrapper { - - -} - - -#group_members_select_label { - display: block; - float: left; - width: 175px; -} - -.group_members_select { - float: left; - width: 230px; - overflow: auto; -} - -#group_members_select_end { - clear: both; -} -#group-edit-name-end { - clear: both; -} - -#prvmail-to-label, #prvmail-subject-label, #prvmail-message-label { - margin-bottom: 10px; - margin-top: 20px; -} - -#prvmail-submit { - float: left; - font-size: 18px; - padding: 0.25em 0.5em; - margin-top: 10px; - margin-right: 30px; -} -#prvmail-upload-wrapper, -#prvmail-link-wrapper, -#prvmail-rotator-wrapper { - float: left; - margin-top: 10px; - margin-right: 10px; - width: 24px; -} - -#prvmail-end { - clear: both; -} - -.mail-list-sender, -.mail-list-detail { - float: left; -} -.mail-list-detail { - margin-left: 20px; -} - -.mail-list-subject { - font-size: 1.1em; - margin-top: 10px; -} -a.mail-list-link { - display: block; - font-size: 1.3em; - padding: 4px 0; -} - -/* -*a.mail-list-link:hover { -* background-color: #15607B; -* color: #F5F6FB; -*} -*/ - -.mail-list-outside-wrapper-end { - clear: both; -} - -.mail-list-outside-wrapper { - margin-top: 30px; -} - -.mail-list-delete-wrapper { - float: right; - margin-right: 30px; - margin-top: 15px; -} - -.mail-list-delete-icon { - border: none; -} - -.mail-conv-sender, -.mail-conv-detail { - float: left; -} -.mail-conv-detail { - margin-left: 20px; - margin-bottom: 10px; - width: 270px; -} - -.mail-conv-subject { - font-size: 1.4em; - margin: 10px 0; -} - -.mail-conv-outside-wrapper-end { - clear: both; -} - -.mail-conv-outside-wrapper { - margin-top: 30px; -} - -.mail-conv-delete-wrapper { - float: right; - margin-right: 5px; - margin-top: 15px; -} -.mail-conv-break { - clear: both; -} - -.mail-conv-delete-icon { - border: none; -} - -.message-links ul { - list-style-type: none; - padding: 0px; -} - -.message-links li { - margin-top: 10px; - float: left; -} -.message-links a { - padding: 3px 5px; -} - -.message-links-end { - clear: both; -} - -#sidebar-group-list ul { - list-style-type: none; -} - -#sidebar-group-list .icon, #sidebar-group-list .iconspacer { - display: inline-block; - height: 12px; - width: 12px; -} - -#sidebar-group-list li { - margin-top: 10px; -} - -.nets-ul, .fileas-ul, .categories-ul { - list-style-type: none; -} - -.nets-ul li, .fileas-ul li, .categories-ul li { - margin-top: 10px; -} - -.nets-link { - margin-left: 24px; -} -.nets-all { - margin-left: 42px; -} - -.fileas-link, .categories-link { - margin-left: 24px; -} - -.fileas-all, .categories-all { - margin-left: 0px; -} - -#search-save { - margin-left: 5px; -} -.groupsideedit { - margin-right: 10px; -} -#saved-search-ul { - list-style-type: none; -} -.savedsearchdrop, .savedsearchterm { - float: left; - margin-top: 10px; -} -.savedsearchterm { - margin-left: 10px; -} - - -#side-follow-wrapper { - margin-top: 20px; -} -#side-follow-url, #side-peoplefind-url { - margin-top: 5px; -} -#side-follow-submit, #side-peoplefind-submit { - margin-top: 15px; -} - -#side-match-link { - margin-top: 10px; -} - -aside input[type='text'] { - width: 174px; -} - -.widget { - border: 1px solid #DDDDDD; - padding: 8px; - margin-top: 5px; - -moz-border-radius:5px; - -webkit-border-radius:5px; - border-radius:5px; - -} - - -/*.photos { - height: auto; - overflow: auto; -}*/ - -.photos-end { - clear: both; - margin-bottom: 25px; -} - -.photo-album-image-wrapper { - float: left; - margin-top: 15px; - margin-right: 15px; - margin-left: 15px; -/* width: 200px; height: 200px; - overflow: hidden; - position: relative; */ -} -.photo-album-image-wrapper .caption { - display: none; - width: 100%; -/* position: absolute; */ - bottom: 0px; - padding: 0.5em 0.5em 0px 0.5em; - background-color: rgba(245, 245, 255, 0.8); - border-bottom: 2px solid #CCC; - margin: 0px; -} -.photo-album-image-wrapper a:hover .caption { - display:block; -} - -#photo-album-end { - clear: both; - margin-bottom: 25px; -} - -.photo-top-image-wrapper { -/* position: relative; */ - float: left; - margin-top: 15px; - margin-right: 15px; - margin-left: 15px; - margin-bottom: 15px; -/* width: 200px; height: 200px; - overflow: hidden; */ -} -.photo-top-image-wrapper img { - max-width: 290px; - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} -.photo-top-album-name { - width: 100%; - min-height: 2em; -/* position: absolute; */ - bottom: 0px; - padding: 0px 3px; - padding-top: 0.5em; - background-color: rgb(255, 255, 255); -} -#photo-top-end { - clear: both; -} - -#photo-top-links { - margin-bottom: 30px; - margin-left: 30px; -} - -#photos-upload-newalbum-div { - float: left; - width: 175px; -} - -#photos-upload-noshare { - margin-bottom: 10px; -} -#photos-upload-existing-album-text { - float: left; - width: 175px; -} -#photos-upload-newalbum { - float: left; -} -#photos-upload-album-select { - float: left; -} - -#photos-upload-spacer { - margin-top: 25px; -} -#photos-upload-new-end, #photos-upload-exist-end { - clear: both; -} -#photos-upload-exist-end { - margin-bottom: 15px; -} -#photos-upload-submit { - margin-top: 15px; -} - -#photos_upload_applet_wrapper { - margin-bottom: 15px; -} - -#photos-upload-no-java-message { - margin-bottom: 15px; -} - -#character-counter { - float: right; - font-size: 120%; -} - -#character-counter.grey { - color: #888888; -} - -#character-counter.orange { - color: orange; -} -#character-counter.red { - color: red; -} - -#profile-jot-banner-end { - /* clear: both; */ -} - -#photos-upload-select-files-text { - margin-top: 15px; - margin-bottom: 15px; -} - -#photos-upload-perms-menu, #photos-upload-perms-menu:visited, #photos-upload-perms-menu:link { - color: #8888FF; - text-decoration: none; - cursor: pointer; -} - -#photos-upload-perms-menu { - margin-left: 15px; -} - -#photos-upload-perms-menu:hover { - color: #0000FF; - text-decoration: underline; - cursor: pointer; -} -#settings-default-perms-menu { - margin-top: 15px; - margin-bottom: 15px; -} - -#photo-edit-caption-label, #photo-edit-tags-label, #photo-edit-albumname-label, .photo-edit-rotate-label { - float: left; - width: 150px; -} - -#photo-edit-caption-label, #photo-edit-tags-label, #photo-edit-albumname-label { - font-weight: 700; -} - -#photos-upload-noshare-div { - margin-top: 140px; - margin-bottom: 15px; -} - -#photos-upload-noshare-label { - margin-left: 25px; -} - -#photos-upload-noshare { - float: left; -} - -.photo-perms-icon { - float: left; -} - -#photo-edit-perms-menu, #photos-upload-perms-menu, #settings-default-perms-menu { - text-decoration: none; -} - -.photo-jot-perms-text { - padding-top: 5px; - padding-left: 40px; -} - -#photo-edit-perms, #photos-upload-perms, #settings-default-perms { - margin-top: 30px; -} -#photos-upload-perms { - margin-top: 15px; - margin-left: 5px; -} - -#photo-edit-perms-select, #photos-upload-permissions-wrapper, #settings-jot-acl-wrapper { - margin-top: 30px; - margin-left: 20px; -} - -#advanced-expire-popup { - padding-left: 1em; - margin-top: 15px; - border: 1px solid #aaa; - border-radius: 10px; - -moz-border-radius: 10px; - -webkit-border-radius: 10px; -} - -#photo-edit-perms-end { - margin-bottom: 15px; -} - -#photo-edit-caption, #photo-edit-newtag, #photo-edit-albumname { - float: left; - margin-bottom: 25px; -} - -.photo-edit-rotate { - float: left; - margin-left: 20px; -} -#photo-edit-link-wrap { - margin-bottom: 15px; -} -#photo-like-div { - margin-left: 15px; - margin-bottom: 65px; -} - -#photo-edit-caption-end, #photo-edit-tags-end, #photo-edit-albumname-end, #photo-edit-rotate-end { - clear: both; -} - -#photo-edit-rotate-end { - margin-bottom: 15px; -} - -#photo-edit-submit-button, #photo-edit-delete-button, #photos-upload-submit { - margin-top: 30px; - padding: 0.25em 0.5em; - font-size: 18px; -} -#photo-edit-submit-button { - margin-left: 10px; -} -#photo-edit-delete-button { - margin-left: 45px; -} -#photos-upload-choose { - position: absolute; - top: 460px; - left: 5px; -} -#photos-upload-submit { - margin-top: 30px; - margin-left: 100px; - margin-bottom: 20px; -} -.settings-submit, .profile-edit-submit-button { - padding: 0.25em 0.5em; - margin-bottom: 10px; - font-size: 18px; -} -#photo-edit-end { - margin-bottom: 35px; -} -#photo-caption { - font-size: 110%; - font-weight: bold; - margin-top: 15px; - margin-bottom: 15px; -} - -#in-this-photo-text { - color: #0000FF; - margin-left: 30px; -} - -#in-this-photo { - margin-left: 60px; - margin-top: 10px; - margin-bottom: 20px; -} - -#photo-album-edit-submit, #photo-album-edit-drop { - margin-top: 15px; - margin-bottom: 15px; -} - -#photo-album-edit-drop { - margin-left: 200px; -} - -.group-delete-wrapper { - float: right; - margin-right: 50px; -} - -#install-dbhost-label, -#install-dbuser-label, -#install-dbpass-label, -#install-dbdata-label, -#install-tz-desc { - float: left; - width: 250px; - margin-top: 10px; - margin-bottom: 10px; - -} - -#install-dbhost, -#install-dbuser, -#install-dbpass, -#install-dbdata { - float: left; - width: 200px; - margin-left: 20px; -} - -#install-dbhost-end, -#install-dbuser-end, -#install-dbpass-end, -#install-dbdata-end, -#install-tz-end { - clear: both; -} - -#install-form select#timezone_select { - float: left; - margin-top: 18px; - margin-left: 20px; -} - -#dfrn-request-networks { - margin-bottom: 30px; -} - -#pause { - position: fixed; - bottom: 5px; - right: 5px; -} - -.sparkle { - cursor: url('lock.cur'), pointer; -/* cursor: pointer !important; */ -} - -.contact-block-div { - float: left; - width: 52px; - height: 52px; -} -.contact-block-textdiv { - float: left; - width: 150px; - height: 34px; -} - -#contact-block-end { - clear: both; -} -.contact-block-link { - float: left; -} -.contact-block-img { - width:48px; - height:48px; -} - -#tag-remove { - margin-bottom: 15px; -} - -#tagrm li { - margin-bottom: 10px; -} - -#tagrm-submit, #tagrm-cancel { - margin-top: 25px; -} - -#tagrm-cancel { - margin-left: 15px; -} - -.wall-item-conv { - margin-top: 5px; - margin-bottom: 25px; -} - -#search-submit { - margin-left: 15px; -} - -#search-box { - margin-bottom: 25px; -} - -.location-label, .gender-label, .marital-label, .homepage-label { - float: left; - text-align: right; - display: block; - width: 65px; -} - -.adr, .x-gender, .marital-text, .homepage-url { - float: left; - display: block; - margin-left: 8px; -} - -.profile-clear { - clear: both; -} - - -.clear { - clear: both; -} - -.cc-license { - margin-top: 50px; - font-size: 70%; -} - - -#plugin-settings-link, #account-settings-link { - margin-bottom: 10px; -} - -#uexport-link { - margin-bottom: 20px; -} - -/* end from default */ - - -.fn { - padding: 0px 0px 5px 12px; - font-size: 120%; - font-weight: bold; -} - -.vcard .title { - margin-bottom: 5px; - margin-left: 12px; -} - -.vcard dl { - clear: both; -} - -#birthday-title { - float: left; - font-weight: bold; -} - -#birthday-adjust { - float: left; - font-size: 75%; - margin-left: 10px; -} - -#birthday-title-end { - clear: both; -} - -.birthday-list { - margin-left: 15px; -} - -#birthday-wrapper { - margin-bottom: 20px; -} - -#network-new-link { - margin-top: 15px; - margin-bottom: 15px; -} - - -.tool-wrapper { - float: left; - margin-left: 15px; -} - -.tool-link { - cursor: pointer; -} - -.eventcal { - float: left; - font-size: 20px; -} - -#event-summary-text { - margin-top: 15px; -} - -#event-share-checkbox { - float: left; - margin-top: 10px; -} - -#event-share-text { - float: left; - margin-top: 10px; - margin-left: 5px; -} - -#event-share-break { - clear: both; - margin-bottom: 10px; -} - -#event-summary { - width: 280px; -} - -.vevent { - border: 1px solid #CCCCCC; -} - -.vevent .event-summary { - margin-left: 10px; - margin-right: 10px; - font-weight: bold; -} - -.vevent .event-description, .vevent .event-location { - margin-left: 10px; - margin-right: 10px; -} -.vevent .event-start { - margin-left: 10px; - margin-right: 10px; -} - -#new-event-link { - margin-bottom: 10px; -} - -.edit-event-link, .plink-event-link { - float: left; - margin-top: 4px; - margin-right: 4px; - margin-bottom: 15px; -} - -.event-description:before { - content: url('../../../images/calendar.png'); - margin-right: 15px; -} - -.event-start, .event-end { - font-size: 14px; - margin-left: 10px; - width: 280px; - clear: both; - padding-bottom: 1.5em; -} - -.event-start .dtstart, .event-end .dtend { - clear: both; - float: left; -} - -.event-list-date { - margin-bottom: 10px; -} - -.prevcal, .nextcal { - float: left; - margin-left: 32px; - margin-right: 32px; - margin-top: 64px; -} -.event-calendar-end { - clear: both; -} - - -.calendar { - font-family: Courier, monospace; -} -.today { - font-weight: bold; - color: #FF0000; -} - -.settings-block { - border: 1px solid #AAA; - margin: 10px; - padding: 10px; -} - -.app-title { - margin: 10px; -} - -#identity-manage-desc { - margin-top:15px; - margin-bottom: 15px; -} - -#identity-manage-choose { - margin-bottom: 15px; -} - -#identity-submit { - margin-top: 20px; -} - -#photo-nav { - position: relative; - height: 55px; -} - -#photo-prev-link { - position: absolute; - left: 5px; -} -#photo-next-link { - position: absolute; - right: 5px; -} -#photo-prev-link, #photo-next-link { - padding: 10px; -/* float: left;*/ -} - -/*#photo-photo { - float: left; -}*/ - -#photo-photo img { - max-width: 310px; -} - -#photo-photo-end { - clear: both; -} - -.profile-match-photo { - float: left; - text-align: center; - width: 120px; -} - -.profile-match-name { - float: left; - text-align: center; - width: 120px; - overflow: hidden; -} - -.profile-match-break, -.profile-match-end { - clear: both; -} - -.profile-match-connect { - text-align: center; - font-weight: bold; -} - -.profile-match-wrapper { - float: left; - padding: 10px; - width: 120px; - height: 120px; - scroll: auto; -} -#profile-match-wrapper-end { - clear: both; -} -.side-link { - margin-bottom: 15px; -} - -#language-selector { - position: absolute; - top: 0px; - left: 16px; -} - -#group-members { - margin-top: 20px; - padding: 10px; - height: 250px; - overflow: auto; - border: 1px solid #ddd; -} - -#group-members-end { - clear: both; -} - -#group-separator { - margin-top: 10px; - margin-bottom: 10px; -} - -#group-all-contacts { - padding: 10px; - height: 450px; - overflow: auto; - border: 1px solid #ddd; -} - -#group-all-contacts-end { - clear: both; - margin-bottom: 10px; -} - -#group-edit-desc { - margin-top: 15px; -} - - -#prof-members { - margin-top: 20px; - padding: 10px; - height: 250px; - overflow: auto; - border: 1px solid #ddd; -} - -#prof-members-end { - clear: both; -} - -#prof-separator { - margin-top: 10px; - margin-bottom: 10px; -} - -#prof-all-contacts { - padding: 10px; - height: 450px; - overflow: auto; - border: 1px solid #ddd; -} - -#prof-all-contacts-end { - clear: both; - margin-bottom: 10px; -} - -#prof-edit-desc { - margin-top: 15px; -} - -#crepair-name-label, -#crepair-nick-label, -#crepair-attag-label, -#crepair-url-label, -#crepair-request-label, -#crepair-confirm-label, -#crepair-notify-label, -#crepair-photo-label, -#crepair-poll-label { - float: left; - width: 200px; - margin-bottom: 15px; -} - -#crepair-name, -#crepair-nick, -#crepair-attag, -#crepair-url, -#crepair-request, -#crepair-confirm, -#crepair-notify, -#crepair-photo, -#crepair-poll { - float: left; - width: 300px; -} - - -#netsearch-box { - margin-top: 20px; -} - -#netsearch-box #search-submit { - margin: 5px 0px 0px 0px; -} - -.required { - color: #FF0000; -} - -#event-start-text, #event-finish-text { - margin-top: 10px; - margin-bottom: 5px; -} - -#event-nofinish-checkbox, #event-nofinish-text, #event-adjust-checkbox, #event-adjust-text { - float: left; -} -#event-datetime-break { - margin-bottom: 10px; -} - -#event-nofinish-break, #event-adjust-break { - clear: both; -} - -#event-desc-text, #event-location-text { - margin-top: 10px; - margin-bottom: 5px; -} -#event-submit { - margin-top: 10px; -} - -.body-tag, .filesavetags, .categorytags { - opacity: 0.5; - filter:alpha(opacity=50); -} - -.body-tag:hover, .filesavetags:hover, .categorytags:hover { - opacity: 1.0 !important; - filter:alpha(opacity=100) !important; -} - -.item-select { - display: none; - opacity: 0.1; - filter:alpha(opacity=10); - float: right; - margin-right: 10px; - -} -.item-select:hover, .checkeditem { - opacity: 1; - filter:alpha(opacity=100); -} - - -#item-delete-selected { - margin-top: 30px; -} - -#item-delete-selected-end { - clear: both; -} -#item-delete-selected-icon, #item-delete-selected-desc { - float: left; - margin-right: 5px; -} -#item-delete-selected-desc:hover { - text-decoration: underline; -} - -#lang-select-icon { - cursor: pointer; - position: fixed; - left: 0px; - top: 0px; - opacity: 0.2; - filter:alpha(opacity=20); -} - -#lang-select-icon:hover { - opacity: 1; - filter:alpha(opacity=100); -} - -.notif-image { - height: 80px; - width: 80px; - margin-right: 15px; -} -.notification-listing-end { - clear: both; - margin-bottom: 15px; -} - - - -/** - * Plugins settings - */ - -.settings-block > h3, -.settings-heading { - border-bottom: 1px solid #babdb6; -} - - -/** - * Form fields - */ -.field { - margin-bottom: 10px; - padding-bottom: 10px; - overflow: auto; - width: 100% -} - -.field label { - font-weight: 700; - float: left; - width: 200px; -} - -.field input, -.field textarea { - width: 270px; - margin-left: 20px; -} -.field textarea { height: 100px; } -.field_help { - display: block; - margin-left: 20px; - color: #666666; - -} - - -.field .onoff { - float: left; - width: 80px; -} -.field .onoff a { - display: block; - border:1px solid #666666; - background-image:url("../../../images/onoff.jpg"); - background-repeat: no-repeat; - padding: 4px 2px 2px 2px; - height: 16px; - text-decoration: none; -} -.field .onoff .off { - border-color:#666666; - padding-left: 40px; - background-position: left center; - background-color: #cccccc; - color: #666666; - text-align: right; -} -.field .onoff .on { - border-color:#204A87; - padding-right: 40px; - background-position: right center; - background-color: #D7E3F1; - color: #204A87; - text-align: left; -} -.hidden { display: none!important; } - -.field.radio .field_help { clear: left; margin-left: 20px; } - -/** - * ADMIN - */ -#pending-update { - float:right; - color: #ffffff; - font-weight: bold; - background-color: #FF0000; - padding: 0em 0.3em; - -} -#adminpage dl { - clear: left; - min-height: 40px; - margin-bottom: 2px; - padding-bottom: 2px; - border-bottom: 1px solid black; -} -#adminpage dt { - width: 180px; - float: left; - font-weight: bold; -} -#adminpage dd { - margin-left: 180px; -} - -#adminpage h3 { - border-bottom: 1px solid #cccccc; -} -#adminpage .field label { - font-weight: bold; -} -#adminpage .submit { - clear:left; - text-align: right; -} - -#adminpage #pluginslist { - margin: 0px; padding: 0px; -} -#adminpage .plugin { - list-style: none; - display: block; - border: 1px solid #888888; - padding: 1em; - margin-bottom: 5px; - clear: left; -} -#adminpage .plugin .desc { margin-left: 2.5em;} -#adminpage .toggleplugin { - float:left; - margin-right: 1em; -} - -#adminpage table {width:100%; border-bottom: 1px solid #000000; margin: 5px 0px;} -#adminpage table th { text-align: left;} -#adminpage td .icon { float: left;} -#adminpage table#users img { width: 16px; height: 16px; } -#adminpage table tr:hover { background-color: #bbc7d7; } -#adminpage .selectall { text-align: right; } - -#cnftheme { - display: none; -} - -/* - * UPDATE - */ -.popup { - width: 100%; height: 100%; - top:0px; left:0px; - position: absolute; - display: none; -} - -.popup .background { - background-color: rgba(0,0,0,128); - 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: #FFFFFF; -} -.popup .panel .panel_text { display: block; overflow: auto; height: 80%; } -.popup .panel .panel_in { width: 100%; height: 100%; position: relative; } -.popup .panel .panel_actions { width: 100%; bottom: 4px; left: 0px; position: absolute; } -.panel_text .progress { width: 50%; overflow: hidden; height: auto; border: 1px solid #cccccc; margin-bottom: 5px} -.panel_text .progress span {float: right; display: block; width: 25%; background-color: #eeeeee; text-align: right;} - -/** - * OAuth - */ -.oauthapp { - height: auto; overflow: auto; - border-bottom: 2px solid #cccccc; - padding-bottom: 1em; - margin-bottom: 1em; -} -.oauthapp img { - float: left; - width: 48px; height: 48px; - margin: 10px; -} -.oauthapp img.noicon { - background-image: url("../../../images/icons/48/plugin.png"); - background-position: center center; - background-repeat: no-repeat; -} -.oauthapp a { - float: left; -} - -/** - * ICONS - */ -.iconspacer { - display: block; width: 16px; height: 16px; -} - -.icon { - display: block; width: 16px; height: 16px; - background-image: url('../../../images/icons.png'); -} -.article { background-position: 0px 0px;} -.icon.audio { display: none; background-position: -16px 0px;} -.block { background-position: -32px 0px;} -/*.drop { background-position: -48px 0px;} -.drophide { background-position: -64px 0px;}*/ -.icon.drop { - display: block; width: 28px; height: 28px; - background-size: 100% 100%; - background-image: url('images/drop-darkred.png'); - background-repeat: no-repeat; -} -.icon.drophide { - display: block; width: 28px; height: 28px; - background-size: 100% 100%; - background-image: url('images/drop-darkred.png'); - background-repeat: no-repeat; -} -.edit { background-position: -80px 0px;} -/*.camera { background-position: -96px 0px;}*/ -.icon.camera { - display: block; width: 28px; height: 21px; - margin-top: 4px; - background-size: 100% 100%; - background-image: url('images/camera.png'); - background-repeat: no-repeat; -} -/*.dislike { background-position: -112px 0px;}*/ -.icon.dislike { - display: block; - width: 26px; height: 28px;/*31 33*/ - background-size: 100% 100%; - background-image: url('images/disapprove.png'); - background-repeat: no-repeat; - opacity: 0.5; -} -/*.like { background-position: -128px 0px;}*/ -.icon.like { - display: block; width: 26px; height: 28px;/*31 33*/ - margin-right: 7px; - background-size: 100% 100%; - background-image: url('images/approve.png'); - background-repeat: no-repeat; - opacity: 0.5; -} -.icon.link { display: none; background-position: -144px 0px;} - -/*.globe { background-position: 0px -16px;}*/ -.icon.globe { - display: block; width: 28px; height: 28px; - background-size: 100% 100%; - background-image: url('images/globe.png'); - background-repeat: no-repeat; -} -.noglobe { background-position: -16px -16px;} -.no { background-position: -32px -16px;} -.pause { background-position: -48px -16px;} -.play { background-position: -64px -16px;} -/*.pencil { background-position: -80px -16px;} -.small-pencil { background-position: -96px -16px;}*/ -.icon.pencil { - display: block; width: 28px; height: 28px; - background-size: 100% 100%; - background-image: url('images/pencil.png'); - background-repeat: no-repeat; - opacity: 0.5; -} -.icon.small-pencil { - display: block; width: 28px; height: 28px; - background-size: 100% 100%; - background-image: url('images/pencil.png'); - background-repeat: no-repeat; - opacity: 0.5; -} -/*.recycle { background-position: -112px -16px;}*/ -.icon.recycle { - display: block; - width: 28px; height: 27px;/*33 32*/ - background-size: 100% 100%; - background-image: url('images/recycle.png'); - background-repeat: no-repeat; - opacity: 0.5; -} -/*.remote-link { background-position: -128px -16px;}*/ -.icon.remote-link { -/* display: block;*/ - display: none; - width: 28px; height: 28px; - background-size: 100% 100%; - background-image: url('images/remote-link.png'); - background-repeat: no-repeat; - opacity: 0.5; -} -.share { background-position: -144px -16px;} - -.tools { background-position: 0px -32px;} -/*.lock { background-position: -16px -32px;}*/ -.icon.lock { - display: block; width: 17px; height: 25px; - margin-top: 1px; - background-size: 100% 100%; - background-image: url('images/lock.png'); - background-repeat: no-repeat; -} -/*.unlock { background-position: -32px -32px;}*/ -.icon.unlock { - display: block; width: 17px; height: 28px; - margin-top: -2px; - background-size: 100% 100%; - background-image: url('images/unlock.png'); - background-repeat: no-repeat; -} -.icon.video { display: none; background-position: -48px -32px;} -.oembed.video a { display: block; } -.youtube { background-position: -64px -32px;} -/*.attach { background-position: -80px -32px; }*/ -.icon.attach { - display: block; width: 28px; height: 28px; - background-size: 100% 100%; - background-image: url('images/paperclip.png'); - background-repeat: no-repeat; -} -.language { background-position: -96px -32px; } -.prev { background-position: -112px -32px; } -.next { background-position: -128px -32px; } -.on { background-position: -144px -32px; } - -.off { background-position: 0px -48px; } -/*.starred { background-position: -16px -48px; }*/ -.icon.starred { - display: block; width: 28px; height: 28px; - background-size: 100% 100%; - background-image: url('images/star-yellow.png'); - background-repeat: no-repeat; -} -/*.unstarred { background-position: -32px -48px; }*/ -.icon.unstarred { - display: block; width: 28px; height: 28px; - background-size: 100% 100%; - background-image: url('images/star.png'); - background-repeat: no-repeat; - opacity: 0.5; -} -/*.tagged { background-position: -48px -48px; }*/ -.icon.tagged { - display: block; width: 28px; height: 28px; - background-size: 100% 100%; - background-image: url('images/tag.png'); - background-repeat: no-repeat; - opacity: 0.5; -} -.yellow { background-position: -64px -48px; } - - -.filer-icon { - display: block; width: 24px; height: 24px; - background-size: 100% 100%; - background-image: url('images/folder.png'); - background-repeat: no-repeat; - opacity: 0.5; -} - -.icon.dim { opacity: 0.3;filter:alpha(opacity=30); } - -[class^="comment-edit-bb"] { - list-style: none; - display: none; - margin: 0px 0 -5px 20px; - width: 75%; -} -[class^="comment-edit-bb"] > li { - display: inline-block; - margin: 20px 10px 0 0; - visibility: none; -} -/*[class^="comment-edit-bb-end"] { - clear: both; -}*/ -.editicon { - display: inline-block; - background-size: 100% 100%; - background-repeat: no-repeat; - background-color: #f3f3f3; - text-decoration: none; -} -/*.editicon:hover { - background-color: #ccc; -}*/ -.boldbb { -/* background-position: 0px 0px;*/ - width: 26px; height: 28px; - background-image: url('images/boldB-serif.png'); -} -/*.boldbb:hover { - background-position: 0px -16px; -}*/ -.italicbb { -/* background-position: -16px 0px;*/ - width: 16px; height: 28px; - background-image: url('images/italicI-serif.png'); -} -/*.italicbb:hover { - background-position: -16px -16px; -}*/ -.underlinebb { -/* background-position: -32px 0px;*/ - width: 25px; height: 28px; - background-image: url('images/underlineU-serif.png'); -} -/*.underlinebb:hover { - background-position: -32px -16px; -}*/ -.quotebb { -/* background-position: -48px 0px;*/ - width: 28px; height: 28px; - background-image: url('images/quote.png'); -} -/*.quotebb:hover { - background-position: -48px -16px; -}*/ -.codebb { -/* background-position: -64px 0px;*/ - width: 28px; height: 28px; - background-image: url('images/code.png'); -} -/*.codebb:hover { - background-position: -64px -16px; -}*/ -.imagebb { - background-position: -80px 0px; -} -.imagebb:hover { - background-position: -80px -16px; -} -.urlbb { - background-position: -96px 0px; -} -.urlbb:hover { - background-position: -96px -16px; -} -.videobb { - background-position: -112px 0px; -} -.videobb:hover { - background-position: -112px -16px; -} - -.attachtype { - display: block; width: 20px; height: 23px; - float: left; - background-image: url('../../../images/content-types.png'); -} - -.body-attach { - margin-top: 10px; -} - -.type-video { background-position: 0px 0px; } -.type-image { background-position: -20px 0px; } -.type-audio { background-position: -40px 0px; } -.type-text { background-position: -60px 0px; } -.type-unkn { background-position: -80px 0px; } - - -/* autocomplete popup */ -.acpopup { - max-height:150px; - background-color:#ffffff; - overflow:auto; - z-index:100000; - border:1px solid #cccccc; -} -.acpopupitem { - background-color:#ffffff; padding: 4px; - clear:left; -} -.acpopupitem img { - float: left; - margin-right: 4px; -} - -.acpopupitem.selected { - color: #FFFFFF; background: #3465A4; -} - -/* popup notifications */ -div.jGrowl div.notice { - background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center; - color: #ffffff; - padding-left: 58px; -} -div.jGrowl div.info { - background: #364e59 url("../../../images/icons/48/info.png") no-repeat 5px center; - color: #ffffff; - padding-left: 58px; -} -#jGrowl.top-right { - top: 15px; - right: 15px; -} -.qcomment { - border: 1px solid #EEE; - padding: 3px; - margin-top: 15px; - margin-left: 25px; - width: 125px; - overflow-y: auto; -} - - -.qcomment option { - width: 125px; - overflow-x: hidden; -} - -.qcomment { - opacity: 0.3; - filter:alpha(opacity=30); -} -.qcomment:hover { - opacity: 1.0; - filter:alpha(opacity=100); -} - -/* notifications popup menu */ -.nav-notify { - display: none; - position: absolute; - font-size: 10px; - padding: 1px 3px; - top: 0px; - right: -10px; - min-width: 15px; - text-align: right; -} -.nav-notify.show { - display: block; -} -ul.notifications-menu-popup { - position: absolute; - display: none; - width: 10em; - margin: 0px; - padding: 0px; - list-style: none; - z-index: 100000; - right: -55px; -} -#nav-notifications-menu { - width: 300px; -/* max-height: 400px;*/ - height: auto; - overflow-y: scroll;overflow-style:scrollbar; - background-color:#FFFFFF; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius:5px; - border: 1px solid #AAA; - -moz-box-shadow: 3px 3px 5px #555; - -webkit-box-shadow: 3px 3px 5px #555; - box-shadow: 3px 3px 5px #555; -} -#nav-notifications-menu .contactname { font-weight: bold; font-size: 0.9em; } -#nav-notifications-menu img { float: left; margin-right: 5px; } -#nav-notifications-menu .notif-when { font-size: 0.8em; display: block; } -#nav-notifications-menu li { - padding: 7px 0px 7px 10px; - word-wrap:normal; - border-bottom: 1px solid #000; -} - -#nav-notifications-menu li:hover { - -} - -#nav-notifications-menu a:hover { - text-decoration: underline; -} - -.notif-item a { - color: #000000; -} - -.notif-item a:hover { - text-decoration: underline; -} - -.notif-image { - width: 32px; - height: 32px; - padding: 7px 7px 0px 0px; -} - -.notify-seen { - background: #DDDDDD; -} - -#id_term_label { - width:75px; -} -#id_term { - width:100px; -} - -#recip { - -} -.autocomplete-w1 { background: #ffffff; no-repeat bottom right; position:absolute; top:0px; left:0px; margin:6px 0 0 6px; /* IE6 fix: */ _background:none; _margin:1px 0 0 0; } -.autocomplete { color:#000; 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; overflow:hidden; } - -#datebrowse-sidebar select { - margin-left: 40px; - width: 130px; -} +/** + * duepuntozero Frindika style + * Fabio Comuni + * + * Heavily modified for Frost Mobile + * Zach P + */ + + +/* generals */ +html { + width: 320px; + margin-left: auto; + margin-right: auto; +} + +body { + font-family: helvetica,arial,freesans,clean,sans-serif; + font-size: 16px; +/* line-height: 24px;*/ + background-color: #ffffff; + background-image: url(head.jpg); + background-repeat: repeat-x; + color: #505050; + margin: 0px; +} + +div.container { + display: block; +/* width: 100%;*/ + margin-top: 0px; + margin-bottom: 0px; + margin-left: auto; + margin-right: auto; +} + +a, a:visited, a:link { color: #3465a4; text-decoration: none; } +a:hover {text-decoration: underline; } + +input { + border: 1px solid #666666; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + padding: 3px; +} + +img { border :0px; } + +#id_openid_url, .openid input { + background: url(login-bg.gif) no-repeat; + background-position: 0 50%; + padding-left: 18px; + width: 252px; + margin-left: 20px; +} +.openid:hover { + +} + +/*#id_openid_url { + width: 384px; +}*/ + +code { + font-family: Courier, monospace; + white-space: pre; + display: block; + overflow: auto; + border: 1px solid #444; + background: #EEE; + color: #444; + padding: 10px; + margin-top: 20px; +} + +blockquote { + background-color: #f4f8f9; + border-left: 4px solid #dae4ee; + padding: 0.4em; +} + +.icollapse-wrapper, .ccollapse-wrapper { + border: 1px solid #CCC; + padding: 5px; +} + +.hide-comments-outer { + margin-left: 0px; + font-weight: 700; + opacity: 0.6; +} +.hide-comments { + margin-left: 5px; +} + +#panel { + background-color: ivory; + position: absolute; + z-index: 2; + width: 30%; + padding: 25px; + border: 1px solid #444; +} + +.heart { + color: #FF0000; + font-size: 100%; + margin-right: 5px; +} + + + +/* nav */ +nav { + height: 94px; +/* width: 100%;*/ + width: 320px; + display: block; + margin-top: 0px; + margin-bottom: 0px; + margin-left: auto; + margin-right: auto; +} +nav #site-location { + color: #888a85; + font-size: 0.8em; + position: absolute; +} + +.error-message { + color: #FF0000; + font-size: 1.1em; + border: 1px solid #FF8888; + background-color: #FFEEEE; + padding: 10px; +} + +.info-message { + color: #204a87; + font-size: 1.1em; + border: 1px solid #3465a4; + background-color: #d7e3f1; + padding: 10px; +} + + +nav #banner { +/* display: block;*/ + display: none; + margin-top: 14px; + position: absolute; +} +nav #banner #logo-text a { + display: none; + font-size: 40px; + font-weight: bold; + margin-left: 3px; + color: #000000; + +} +nav #banner #logo-text a:hover { text-decoration: none; } + + +/* ZP REMOVE? nav-commlink */ +.nav-commlink, .nav-login-link { + display: block; + height: 15px; + margin-top: 67px; + margin-right: 2px; + /*padding: 6px 10px;*/ + padding: 6px 3px; + float: left; + bottom: 140px; + border: 1px solid #babdb6; + border-bottom: 0px; + background-color: #aec0d3; + color: #565854; + -moz-border-radius: 3px 3px 0px 0px; + -webkit-border-radius: 3px 3px 0px 0px; + border-radius: 3px 3px 0px 0px; +} + +.nav-commlink.selected { + background-color: #ffffff; + border-bottom: 1px solid #ffffff; + color: #000000 !important; + margin-top: 64px; + padding-top: 6px; + padding-bottom: 8px; +} + +.nav-ajax-left.show { + position: absolute; + font-size: 0.8em; + top: 22px; + right: 2px; + padding: 1px 2px; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + background-color: gold !important; +} + + + +nav #nav-link-wrapper .nav-link { + /*border-right: 1px solid #babdb6;*/ +} + +nav .nav-link { + margin-top: 24px; + margin-bottom: 0.2em; + margin-right: 1em; + margin-left: 1em; + background-color: transparent !important; +} + +.nav-button-container { + float: right; + position: relative; +} + +.nav-button-container .nav-ajax-left { +} + +.nav-menu-list { + text-align: center; + text-size: 18px; + line-height: 24px; + + border-left: 1px solid #aaa;/*#444444;*/ + border-right: 1px solid #aaa; + border-top: 1px solid #aaa; + border-bottom: 1px solid #aaa; + + background: #FFFFFF; + + display: none; + list-style: none; + + width: 8em; + position: absolute; + margin: 0px; +/* right: -33px;*/ + padding: 1em 0px; + + -moz-box-shadow: 3px 3px 5px #555; + -webkit-box-shadow: 3px 3px 5px #555; + box-shadow: 3px 3px 5px #555; + + z-index: 10000; +} + +#network-menu-list { + left: 3px; +} + +#contacts-menu-list { + right: -30px; +} + +#system-menu-list { + right: 3px; +} + + +div.main-container { +/* width: 100%;*/ + margin: 0px auto; + display: block; + position: relative; +} + +/*div.main-content-loading { + position: absolute; + top: 200px; + left: 50%; + display: none; +}*/ + + +/* aside */ +aside { +/* display: block;*/ + display: none; + min-height: 112px; + + width: 250px; + + padding: 1em; + margin: 1em 0px 0px 0px; + + position: absolute; + +/* float:left;*/ +} + +#dfrn-request-link { + display: block; + color: #FFFFFF; + -webkit-border-radius: 5px ; + -moz-border-radius: 5px; + border-radius: 5px; + padding: 5px; + font-weight: bold; + background: #3465a4 url('friendika-16.png') no-repeat 95% center; +} +#wallmessage-link { + display: block; + color: #FFFFFF; + -webkit-border-radius: 5px ; + -moz-border-radius: 5px; + border-radius: 5px; + padding: 5px; + font-weight: bold; + background-color: #3465a4; +} + +/* section */ +div.section-wrapper { +/* width: 100%;*/ + width: 320px; + + margin-left: auto; + margin-right: auto; + + /*padding-right:2em;*/ + + display: block; + + background-color: #ffffff; + background-image: url(border.jpg); + background-position: top right; + background-repeat: no-repeat; +} + +section { + margin: 0px 0px 0px 0px; + + padding-left: 5px; + padding-right: 5px; + padding-top: 1em; + padding-bottom: 3em; + + background-image: url(border.jpg); + background-position: top left; + background-repeat: no-repeat; + + min-height: 112px; + border-top: 1px solid #babdb6; +} + +.tabs { + /*background-image: url(head.jpg); + background-repeat: repeat-x; + background-position: 0px -20px;*/ + border-bottom: 1px solid #babdb6; + padding:0px; +} +.tabs li { margin: 0px 0px 20px 0px; padding-left: 1em; list-style: none; } +.tabs a { + padding: 0.4em 2em; + border: 1px solid #aaa; + border-radius: 8px; + -moz-border-radius: 8px; + -webkit-border-radius: 8px; +} +.tab { + /*display:block;*/ + /*float:left;*/ + padding-left: 1em; + padding-right: 0.4em; + padding-top: 0.4em; + padding-bottom: 0.4em; + /*margin-right: 1em;*/ + margin-right: 3px ; +} +.tab.active { + font-weight: bold; + +} +#events-tab { + display: none; +} + + +/* footer */ +footer { + display: none; + +} + +.birthday-today, .event-today { + font-weight: bold; +} + +.preview { + background: #FFFFC8; +} + +#theme-preview { + margin: 15px 0 15px 150px; +} + +/* from default */ +#jot-perms-icon, +#profile-location, +#profile-nolocation, +#profile-youtube, +#profile-video, +#profile-audio, +#profile-link, +#profile-title, +#wall-image-upload, +#wall-file-upload, +#profile-upload-wrapper, +#wall-image-upload-div, +#wall-file-upload-div, +.hover, .focus { + cursor: pointer; +} + +#jot-perms-icon { + float: left; +} + +#jot-title, #jot-category { + border: 0px; + margin: 0px; + height: 20px; + width: 270px; + margin-bottom: 5px; + font-weight: bold; + border: 1px solid #ffffff; +} + +#jot-title::-webkit-input-placeholder{font-weight: normal;} +#jot-category::-webkit-input-placeholder{font-weight: normal;} +#jot-title:-moz-placeholder{font-weight: normal;} +#jot-category:-moz-placeholder{font-weight: normal;} + + +#jot-title:hover, +#jot-title:focus, +#jot-category:hover, +#jot-category:focus { + border: 1px solid #cccccc; +} + +.jothidden { display:none; } + + +.fakelink, .fakelink:visited, .fakelink:link { + color: #3465a4; + text-decoration: none; + cursor: pointer; + margin-top: 15px; + margin-bottom: 15px; +} +.lockview { + cursor: pointer; +} + +#group-sidebar { + margin-bottom: 10px; +} + +.group-selected, .nets-selected, .fileas-selected, .categories-selected { + padding: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + border: 1px solid #CCCCCC; + background: #F8F8F8; + font-weight: bold; +} + +.settings-widget .selected { + padding: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + border: 1px solid #CCCCCC; + background: #F8F8F8; + font-weight: bold; +} + +.fakelink:hover { + color: #3465a4; + text-decoration: underline; + cursor: pointer; +} +.smalltext { + font-size: 0.7em; +} +#sysmsg { + /*width: 600px;*/ + margin-bottom: 10px; +} + +#register-fill-ext { + margin-bottom: 25px; +} + +#label-register-name, #label-register-email, #label-register-nickname, #label-register-openid { + float: left; + width: 350px; + margin-top: 10px; +} + +#register-name, #register-email, #register-nickname { + float: left; + margin-top: 10px; + width: 150px; +} + +#register-openid { + float: left; + margin-top: 10px; + width: 130px; +} + +#register-name-end, #register-email-end, #register-nickname-end, #register-submit-end, #register-openid-end { + clear: both; +} + +#register-nickname-desc { + margin-top: 30px; + width: 650px; +} +#register-sitename { + float: left; + margin-top: 10px; +} + +#register-submit-button { + margin-top: 10px; +} + + +#login_standard { + width: 210px; + float: left; +} +#login_openid { + width: 210px; + margin-left: 250px; +} + +#login_standard input, +#login_openid input { + width: 180px; +} + +#login-extra-links { + clear: both; +} + +#register-link, #lost-password-link { + float: left; + font-size: 80%; + margin-right: 15px; +} + +#login-name-end, #login-password-end, #login-extra-end, #login-submit-end { + height: 50px; +} + +#login-submit-button { +/* margin-top: 10px; */ + margin-left: 200px; +} + + +input#dfrn-url { + float: left; + background: url(friendika-16.png) no-repeat; + background-position: 2px center; + font-size: 17px; + padding-left: 21px; + height: 21px; + background-color: #FFFFFF; + color: #000000; + margin-bottom: 20px; +} + +#dfrn-url-label { + float: left; + width: 250px; +} + +#dfrn-request-url-end { + clear: both; +} + +#knowyouyes, #knowyouno { + float: left; +} + +#dfrn-request-knowyou-yes-wrapper, #dfrn-request-knowyou-no-wrapper { + + float: none; +} +#dfrn-request-knowyou-yes-label, #dfrn-request-knowyou-no-label { + float: left; + width: 75px; + margin-left: 50px; + margin-bottom: 7px; +} +#dfrn-request-knowyou-break, #dfrn-request-knowyou-end { + clear: both; + +} + +#dfrn-request-message-wrapper { + margin-bottom: 50px; +} +#dfrn-request-submit-wrapper { + clear: both; + margin-left: 50px; +} + +#dfrn-request-info-wrapper { + margin-left: 50px; +} + + + +#cropimage-wrapper, #cropimage-preview-wrapper { + float: left; + padding: 10px; +} +.imgCrop { + max-width: 280px; +} +#crop-image-form { + margin-top: 30px; + clear: both; +} + +.intro-wrapper { + margin-top: 20px; +} + +.intro-fullname { + font-size: 1.1em; + font-weight: bold; + +} +.intro-desc { + margin-bottom: 20px; + font-weight: bold; +} + +.intro-note { + padding: 10px; +} + +.intro-end { + padding: 30px; +} + +.intro-form { + float: left; +} +.intro-approve-form { + clear: both; +} +.intro-approve-as-friend-end { + clear: both; +} +.intro-submit-approve, .intro-submit-ignore { + margin-right: 20px; +} +.intro-submit-approve { + margin-top: 15px; +} + +.intro-approve-as-friend-label, .intro-approve-as-fan-label { + float: left; + width: 100px; + margin-left: 20px; +} +.intro-approve-as-friend, .intro-approve-as-fan { + float: left; +} +.intro-form-end { + clear: both; +} +.intro-approve-as-friend-desc { + margin-top: 15px; +} +.intro-approve-as-end { + clear: both; + margin-bottom: 10px; +} + +.intro-end { + clear: both; + margin-bottom: 30px; +} +.aprofile dt { + font-weight: bold; +} +#page-profile .title { + font-weight: bold; +} +#profile-vcard-break { + clear: both; +} +#profile-extra-links { + clear: both; + margin-top: 10px; +} + +#profile-extra-links ul { + list-style-type: none; + padding: 0px; +} + + +#profile-extra-links li { + margin-top: 5px; +} + +#profile-edit-links ul { + list-style-type: none; +} + +#profile-edit-links li { + margin-top: 10px; +} +.profile-edit-side-div { + float: right; +} +.profile-edit-side-link { + opacity: 0.3; + filter:alpha(opacity=30); +} +.profile-edit-side-link:hover { + opacity: 1.0; + filter:alpha(opacity=100); +} + +.view-contact-wrapper { + margin-top: 20px; + float: left; + margin-left: 20px; + width: 180px; +} + +.contact-wrapper { + float: left; + width: 150px; + height: 150px; + overflow: auto; +} + +#view-contact-end { + clear: both; +} + + +#viewcontacts { + margin-top: 15px; +} +#profile-edit-default-desc { + color: #FF0000; + border: 1px solid #FF8888; + background-color: #FFEEEE; + padding: 7px; +} + +#profile-edit-clone-link-wrapper { + float: left; + margin-left: 50px; + margin-bottom: 20px; + width: 300px; +} + + +#profile-edit-links-end { + clear: both; + margin-bottom: 15px; +} + +.profile-listing-photo { + border: none; +} + +.profile-edit-submit-wrapper { + margin-top: 20px; + margin-bottom: 20px; +} + +#profile-photo-link-select-wrapper { + margin-top: 2em; +} + +#profile-photo-submit-wrapper { + margin-top: 10px; +} + +#profile-photo-wrapper img { + width:175px; + height:175px; + padding: 12px; +} + +#profile-edit-profile-name-label, +#profile-edit-name-label, +#profile-edit-pdesc-label, +#profile-edit-gender-label, +#profile-edit-dob-label, +#profile-edit-address-label, +#profile-edit-locality-label, +#profile-edit-region-label, +#profile-edit-postal-code-label, +#profile-edit-country-name-label, +#profile-edit-marital-label, +#profile-edit-sexual-label, +#profile-edit-politic-label, +#profile-edit-religion-label, +#profile-edit-pubkeywords-label, +#profile-edit-prvkeywords-label, +#profile-edit-homepage-label, +#profile-edit-hometown-label { + font-weight: 700; + float: left; + width: 175px; +} + +#profile-edit-profile-name, +#profile-edit-name, +#profile-edit-pdesc, +#gender-select, +#profile-edit-dob, +#profile-edit-address, +#profile-edit-locality, +#profile-edit-region, +#profile-edit-postal-code, +#profile-edit-country-name, +#marital-select, +#sexual-select, +#profile-edit-politic, +#profile-edit-religion, +#profile-edit-pubkeywords, +#profile-edit-prvkeywords, +#profile-in-dir-yes, +#profile-in-dir-no, +#profile-in-netdir-yes, +#profile-in-netdir-no, +#hide-wall-yes, +#hide-wall-no, +#hide-friends-yes, +#hide-friends-no { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} +#profile-edit-country-name { + max-width: 260px; +} +#profile-edit-pubkeywords, +#profile-edit-prvkeywords { + margin-bottom: 5px; +} +#settings-normal, +#settings-soapbox, +#settings-freelove, +#settings-community { + float: left; +} +#settings-notifications label { + margin-left: 20px; +} +#settings-notify-desc, #settings-activity-desc { + font-weight: bold; + margin-bottom: 15px; +} +#settings-pagetype-desc { + color: #666666; + margin-bottom: 15px; +} + +#profile-in-dir-yes-label, +#profile-in-dir-no-label, +#profile-in-netdir-yes-label, +#profile-in-netdir-no-label, +#hide-wall-yes-label, +#hide-wall-no-label, +#hide-friends-yes-label, +#hide-friends-no-label { + margin-left: 125px; + float: left; + width: 50px; +} + + +#profile-edit-howlong-label, +#profile-edit-with-label { + display: block; + font-style: italic; + width: 175px; + margin-left: 0px; +} +#profile-edit-howlong, +#profile-edit-with { + margin-left: 20px; + margin-bottom: 20px; +} + +#profile-publish-yes-reg, +#profile-publish-no-reg { + float: left; + margin-bottom: 10px; +} + +#profile-publish-yes-label-reg, +#profile-publish-no-label-reg { + margin-left: 350px; + float: left; + width: 50px; +} + +#profile-publish-break-reg, +#profile-publish-end-reg { + clear: both; +} + + +#profile-edit-pdesc-desc, +#profile-edit-pubkeywords-desc, +#profile-edit-prvkeywords-desc { + float: left; + color: #777; + margin-left: 20px; + margin-bottom: 20px; +} +#profile-edit-prvkeywords-desc { + margin-bottom: 0px; +} + +#profile-edit-homepage, #profile-edit-hometown { + float: left; + margin-bottom: 25px; + margin-left: 20px; +} +#profile-edit-hometown { + margin-bottom: 5px; +} +#settings-normal-label, +#settings-soapbox-label, +#settings-community-label, +#settings-freelove-label { + float: left; + width: 200px; +} +#settings-normal-desc, +#settings-soapbox-desc, +#settings-community-desc, +#settings-freelove-desc { + /*float: left; + margin-left: 75px;*/ + clear: left; + color: #666666; + display: block; + margin-bottom: 20px +} + +#profile-edit-profile-name-end, +#profile-edit-name-end, +#profile-edit-pdesc-end, +#profile-edit-gender-end, +#profile-edit-dob-end, +#profile-edit-address-end, +#profile-edit-locality-end, +#profile-edit-region-end, +#profile-edit-postal-code-end, +#profile-edit-country-name-end, +#profile-edit-marital-end, +#profile-edit-sexual-end, +#profile-edit-politic-end, +#profile-edit-religion-end, +#profile-edit-pubkeywords-end, +#profile-edit-prvkeywords-end, +#profile-edit-homepage-end, +#profile-edit-hometown-end, +#profile-in-dir-break, +#profile-in-dir-end, +#profile-in-netdir-break, +#profile-in-netdir-end, +#hide-wall-break, +#hide-wall-end, +#hide-friends-break, +#hide-friends-end, +#settings-normal-break, +#settings-soapbox-break, +#settings-community-break, +#settings-freelove-break { + clear: both; +} +#profile-edit-marital-wrapper, #profile-edit-address-wrapper { + margin-top: 50px; +} +#profile-edit-marital-end { + margin-bottom: 20px; +} + +.settings-widget ul { + list-style-type: none; + padding: 0px; +} + +.settings-widget li { + margin-left: 24px; + margin-bottom: 8px; +} + + +#gender-select, #marital-select, #sexual-select { + width: 220px; +} + +#profile-edit-profile-name-wrapper .required { + color: #FF0000; + float: left; +} + +#contacts-display-wrapper { + padding-left: 35px; +} + +#contacts-main { + margin-top: 20px; + margin-bottom: 20px; +} + +.contact-entry-wrapper { + float: left; +/* width: 120px; + height: 120px;*/ + padding-left: 15px; + padding-right: 15px; + width: 95px; + height: 170px; +} +#contacts-search-end { + margin-bottom: 10px; +} + +.contact-entry-direction-icon { + margin-top: 24px; + margin-right: 2px; +} + +.contact-entry-photo img { + border: none; +} +.contact-entry-photo-end { + clear: both; +} +.contact-entry-name { + float: left; + margin-left: 0px; + margin-right: 10px; + padding-bottom: 5px; + width: 120px; + font-weight: 600; + overflow: hidden; +} +.contact-entry-details { + font-style: italic; + font-size: 10px; + font-weight: 500; +} +.contact-entry-network { + font-size: 10px; + font-weight: 500; +} +.contact-entry-edit-links { + margin-top: 6px; + margin-left: 10px; + width: 16px; +} +.contact-entry-nav-wrapper { + float: left; + margin-left: 10px; +} + +.contact-entry-edit-links img { + border: none; + margin-right: 15px; +} +.contact-entry-photo { + float: left; + position: relative; +} +.contact-entry-end { + clear: both; +} + +#fsuggest-desc, #fsuggest-submit-wrapper { + margin-top: 15px; + margin-bottom: 15px; +} + +#network-star-link{ + margin-top: 10px; +} +.network-star { + float: left; + margin-right: 5px; +} +#network-bmark-link { + margin-top: 10px; +} + +.wall-item-content-wrapper { + margin-top: 60px; + padding-top: 30px; + border-top: 2px solid #AAAAAA; + position: relative; + +} + +.wall-item-content-wrapper.comment { + margin-top: 30px; + padding-top: 0px; + margin-left: 5px; + margin-right: 5px; + border: 2px solid #AAAAAA; + border-radius: 10px; + -webkit-border-radius: 10px; + -moz-border-radius: 10px; +/* background: #EEEEEE;*/ +} + +.wall-item-like, .wall-item-dislike { + font-style: italic; + margin-left: 0px; + opacity: 0.6; +} + +.wall-item-like.comment, .wall-item-dislike.comment { + margin-left: 5px; +} + +.wall-item-info { + display: block; + float: left; + width:110px; + margin-right:10px; +} +.comment .wall-item-info { + width: 70px; +} + +.wall-item-photo-wrapper { + margin-bottom: 10px; + width: 100px; +} +.wall-item-photo-menu-button { + display: block; + position: absolute; + background-image: url("photo-menu.jpg"); + background-position: top left; + background-repeat: no-repeat; + margin: 0px; padding: 0px; + width: 16px; + height: 16px; + top: 94px; left:0px; + overflow: hidden; + text-indent: 40px; + display: none; + +} +.wall-item-photo-menu { + width: auto; + border: 2px solid #444444; + background: #FFFFFF; + position: absolute; + left: 0px; top:110px; + display: none; + z-index: 10000; +} +.wall-item-photo-menu { margin:0px; padding: 0px; list-style: none } +.wall-item-photo-menu li a { display: block; padding: 2px; } +.wall-item-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; } + + +.comment .wall-item-photo-menu-button { top: 64px;} +.comment .wall-item-photo-menu { top: 80px; } + +.wallwall .wwto { + left: 50px; + margin: 0; + position: absolute; + top: 80px; + width: 30px +} +.wallwall .wwto img { + width: 30px !important; + height: 30px !important; +} + +.wallwall /*.wall-item-photo-end*/ { + clear: both; +} + +.wall-item-arrowphoto-wrapper { + position: absolute; + left: 75px; + top: 80px; + z-index: 100; +} +.wall-item-wrapper { + margin-left:10px; +} +.wall-item-lock { + margin-top: 30px; + left: 105px; + position: absolute; + top: 1px; +} +.comment .wall-item-lock { + margin-top: 0px; + left: 65px; +} + +.wall-item-ago { + color: #888888; + font-size: 0.8em; +} + +.wall-item-location { + overflow: hidden; + /* add ellipsis on text overflow */ + /* this work on safari, opera, ie, chrome. */ + /* firefox users have to wait support or we */ + /* can use a jquery plugin http://bit.ly/zJskg */ + text-overflow: ellipsis; + -o-text-overflow: ellipsis; + width: 100%; +} + +.wall-item-like-buttons { + float: left; + margin-right: 3px; +} + +.like-rotator { + margin-left: 5px; +} + +.wall-item-like-buttons > a, +.wall-item-like-buttons > img { + float: left; +} + +.wall-item-like-buttons img { + cursor: pointer; +} + +.wall-item-share-buttons { + margin-left: 10px; + margin-right: 10px; +} + +.editpost { + margin-left: 10px; + float: left; +} +.star-item { + margin-left: 10px; + float: left; +} +.tag-item { + margin-left: 10px; + float: left; +} + +.filer-item { + margin-left: 10px; + float: left; +} + +.wall-item-links-wrapper { + float: left; +} + +.wall-item-delete-wrapper { + float: right; +} + +/*.wall-item-delete-end { + clear: both; +}*/ + +.wall-item-delete-icon { + border: none; +} + + +/*.wall-item-wrapper-end { + clear: both; +}*/ +.wall-item-name-link { + font-weight: bold; + text-decoration: none; + color: #3172BD; +} +.wall-item-photo { + border: none; +} +.comment .wall-item-photo { + width: 50px !important; + height: 50px !important; + border-top-left-radius: 10px; +} +.wall-item-content { + float: left; + margin-left: 3px; +/* padding-right: 1em; + max-height: 500px; + overflow: auto;*/ +} + +.wall-item-content img { + max-width: 300px; + border-radius: 7px; + -moz-border-radius: 7px; + -webkit-border-radius: 7px; +} + + + +.wall-item-title { + float: left; + font-weight: bold; + font-size: 1.6em; + /*width: 450px;*/ +} + +/*.wall-item-title-end { + clear: both; +}*/ + +.wall-item-body { + text-align: justify; + float: left; + width: 300px; + overflow: hidden; + margin-top: 10px; + line-height: 23px; +} + +.wall-item-body code { + overflow: auto; +} + +.comment .wall-item-body { + margin-left: 5px; + width: 280px; +} + +.wall-item-tools { + clear: both; +/* background-image: url("head.jpg"); + background-position: 0 -20px; + background-repeat: repeat-x;*/ + padding: 5px 5px 0px; + height: 32px; +} +.wall-item-author { +/* margin-top: 10px;*/ + margin-top: 0px; +} + +.comment .wall-item-tools { +/* background:none;*/ +/* background-image: url("head.jpg"); + background-position: 0 -20px; + background-repeat: repeat-x;*/ + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; +} + +.comment-edit-wrapper { + margin-top: 15px; + background: #f3f3f3; + margin-left: 50px; +} + +.comment-wwedit-wrapper { + display: block; + margin-top: 15px; + background: #f3f3f3; + margin-left: 10px; + margin-right: 10px; +} + +.comment-edit-photo { + margin-top: 15px; + margin-left: 10px; + margin-bottom: 10px; + width: 25px; + float: left; +} +.comment-edit-photo img { + width: 25px; +} +.comment-edit-text-empty, .comment-edit-text-full { +/* float: left;*/ + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + border: 1px solid #cccccc; + padding: 3px 1px 1px 3px; +} + +.comment-edit-text-empty { + color: gray; + height: 30px; + width: 175px; +/* overflow: auto;*/ + margin-top: 40px; + margin-bottom: 10px; + margin-left: 20px; +} + +.comment-edit-text-full { + color: black; + height: 150px; +/* width: 350px; + overflow: auto;*/ + width: 250px; + margin-top: 15px; + margin-left: 20px; +} + +.comment-edit-text-end { + clear: both; +} + +.comment-edit-submit { + font-size: 18px; + padding: 5px 10px; + margin: 10px 0px 10px 110px; +} + +#profile-jot-wrapper { + padding-left: 10px; +} + +#profile-jot-plugin-wrapper, +#profile-jot-submit-wrapper { + margin-top: 15px; +} + +#profile-jot-submit { + float: left; + font-size: 18px; + padding: 5px 8px; +} +#profile-upload-wrapper { + float: left; + margin-left: 30px; +} +#profile-attach-wrapper { + float: left; + margin-left: 15px; +} +#profile-rotator { + float: left; + margin-left: 30px; +} +#profile-link-wrapper { + float: left; + margin-left: 15px; +} +#profile-youtube-wrapper { + float: left; + margin-left: 15px; +} +#profile-video-wrapper { + float: left; + margin-left: 15px; +} +#profile-audio-wrapper { + float: left; + margin-left: 15px; +} +#profile-location-wrapper { + float: left; + margin-left: 15px; +} +#jot-preview-link { + display: none; + float: left; + margin-left: 45px; + margin-top: 0px !important; +} + + +#profile-nolocation-wrapper { + float: left; + margin-left: 15px; +} +#profile-title-wrapper { + float: left; + margin-left: 15px; +} + +#profile-jot-perms { + float: left; + margin-left: 40px; + font-weight: bold; + font-size: 1.2em; +} + + +#profile-jot-perms-end { + /*clear: left;*/ + height: 30px; +} + +#profile-jot-plugin-end{ + clear: both; +} +.profile-jot-net { + float: left; + margin-right: 10px; + margin-top: 5px; + margin-bottom: 5px; +} + +#profile-jot-networks-end { + clear: both; +} + +.profile-jot-box { + margin-top: 50px; +} +.profile-edit-textarea { + margin-left: 20px; +} + +#profile-jot-end { + /*clear: both;*/ + margin-bottom: 30px; +} +#about-jot-submit-wrapper { + margin-top: 15px; +} +#about-jot-end { + margin-bottom: 30px; +} +#contacts-main { + margin-bottom: 30px; +} + +#profile-listing-desc { + margin-left: 30px; +} + +#profile-listing-new-link-wrapper { + margin-left: 30px; + margin-bottom: 30px; +} +.profile-listing-photo-wrapper { + float: left; +} + +.profile-listing-edit-buttons-wrapper { + clear: both; +} +.profile-listing-photo-edit-link { + float: left; + width: 125px; +} +.profile-listing-end { + clear: both; +} +.profile-listing-edit-buttons-wrapper img{ + border: none; + margin-right: 20px; +} +.profile-listing { + float: left; + margin-left: 30px; + margin-top: 25px; +} +.profile-listing-visible { + margin-left: 100px; +} +.profile-listing-name { + float: left; + margin-left: 12px; + margin-top: 10px; + color: #3172BD; + font-weight: bold; + width: 200px; + +} +.fortune { + margin-top: 50px; + color: #4444FF; + font-weight: bold; + margin-bottom: 20px; +} + + +.directory-end { + clear: both; +} +.directory-name { + text-align: center; +} +.directory-photo { + margin-left: 15px; +} +.directory-details { + font-size: 0.7em; + text-align: center; + margin-left: 5px; + margin-right: 5px; +} +.directory-item { + float: left; +/* width: 225px; + height: 260px;*/ + padding-left: 15px; + width: 130px; + height: 235px; + overflow: auto; +} + +#directory-search-wrapper { + margin-top: 20px; + margin-right: 20px; + margin-bottom: 50px; +} + +#directory-search-end { +} + +.directory-photo-img { + width: 125px; + border: none; +} + + +.pager { + margin-top: 30px; + margin-right: auto; + margin-left: auto; + + padding-top: 10px; + padding-bottom: 10px; + padding-left: 10px; + text-align: center; +/* line-height: 2.75em;*/ +} + +.pager a { + font-size: 1.5em; + padding: 0.2em 1em; + border: 1px solid #aaa; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} + + +.pager_first, +.pager_last, +.pager_prev, +.pager_next, +.pager_n { +/* float: left; + border: 1px solid black; + border-radius: 7px; + background: #EEE; + text-align: center; + width: 50px; + margin-right: 5px; + margin-bottom: 10px;*/ +/* float: left;*/ +/* margin-right: 15px; + margin-left: 15px;*/ +} + +.pager_first, +.pager_last, +.pager_n { + display: none; +} + +/*.pager_first a, +.pager_last a, +.pager_prev a, +.pager_next a { + padding-top: 5px; + padding-bottom: 5px; + padding-left: 25px; + padding-right: 30px; + + border: 2px solid #AAAAAA; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + font-size: 1.25em; + text-align: center; + text-decoration: none; +} +.pager_n a { + padding-top: 2px; + padding-bottom: 2px; + padding-left: 9px; + padding-right: 18px; + text-decoration: none; +}*/ + +.pager_prev a, +.pager_next a { + font-size: 1.5em; + padding: 0.2em 1em; + border: 1px solid #aaa; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} + +.pager_current { + display: none; + float: left; + border: 1px solid black; + border-radius: 7px; + -moz-border-radius: 7px; + -webkit-border-radius: 7px; + background: #FFCCCC; + font-size: 1.25em; + text-align: center; + width: 50px; + margin-right: 5px; + margin-bottom: 10px; +} + + +#advanced-profile-name-wrapper, +#advanced-profile-gender-wrapper, +#advanced-profile-dob-wrapper, +#advanced-profile-age-wrapper, +#advanced-profile-marital-wrapper, +#advanced-profile-sexual-wrapper, +#advanced-profile-homepage-wrapper, +#advanced-profile-politic-wrapper, +#advanced-profile-religion-wrapper, +#advanced-profile-about-wrapper, +#advanced-profile-interest-wrapper, +#advanced-profile-contact-wrapper, +#advanced-profile-music-wrapper, +#advanced-profile-book-wrapper, +#advanced-profile-tv-wrapper, +#advanced-profile-film-wrapper, +#advanced-profile-romance-wrapper, +#advanced-profile-work-wrapper, +#advanced-profile-education-wrapper { + margin-top: 20px; +} + +#advanced-profile-name-text, +#advanced-profile-gender-text, +#advanced-profile-dob-text, +#advanced-profile-age-text, +#advanced-profile-marital-text, +#advanced-profile-sexual-text, +#advanced-profile-homepage-text, +#advanced-profile-politic-text, +#advanced-profile-religion-text, +#advanced-profile-about-text, +#advanced-profile-interest-text, +#advanced-profile-contact-text, +#advanced-profile-music-text, +#advanced-profile-book-text, +#advanced-profile-tv-text, +#advanced-profile-film-text, +#advanced-profile-romance-text, +#advanced-profile-work-text, +#advanced-profile-education-text { + width: 300px; + float: left; +} + +#advanced-profile-name-end, +#advanced-profile-gender-end, +#advanced-profile-dob-end, +#advanced-profile-age-end, +#advanced-profile-marital-end, +#advanced-profile-sexual-end, +#advanced-profile-homepage-end, +#advanced-profile-politic-end, +#advanced-profile-religion-end { + height: 10px; +} + +#advanced-profile-about-end, +#advanced-profile-interest-end, +#advanced-profile-contact-end, +#advanced-profile-music-end, +#advanced-profile-book-end, +#advanced-profile-tv-end, +#advanced-profile-film-end, +#advanced-profile-romance-end, +#advanced-profile-work-end, +#advanced-profile-education-end { + + +} + +#advanced-profile-name, +#advanced-profile-gender, +#advanced-profile-dob, +#advanced-profile-age, +#advanced-profile-marital, +#advanced-profile-sexual, +#advanced-profile-homepage, +#advanced-profile-politic, +#advanced-profile-religion { + float: left; + +} + + +#advanced-profile-about, +#advanced-profile-interest, +#advanced-profile-contact, +#advanced-profile-music, +#advanced-profile-book, +#advanced-profile-tv, +#advanced-profile-film, +#advanced-profile-romance, +#advanced-profile-work, +#advanced-profile-education { + margin-top: 10px; + margin-left: 50px; + margin-right: 20px; + padding: 10px; + border: 1px solid #CCCCCC; +} + +#advanced-profile-with { + float: left; + margin-left: 15px; +} + +#contact-edit-wrapper { + margin-top: 10px; +} + +#contact-edit-banner-name { + font-size: 1.4em; + font-weight: bold; +} + +#contact-edit-poll-wrapper { + margin-top: 15px; +} + +#contact-edit-last-update-text { + float: left; + clear: left; + margin-top: 30px; +} + +#contact-edit-poll-text { + float: left; + clear: left; + margin-top: 15px; + margin-bottom: 0px; +} + +#contact-edit-update-now { + margin-top: 15px; +} + +#contact-edit-links{ + clear: both; +} + +#contact-edit-links ul { + list-style: none; + list-style-type: none; + margin-left: 0px; + padding-left: 0px; +} + +#contact-edit-links li { + margin-top: 5px; +} + +#contact-edit-drop-link { + float: right; + margin-right: 10px; +} + +#contact-edit-nav-end { + clear: both; +} + +#contact-edit-wrapper { + width: 100%; +} + +#update_now_link { + float: left; + clear: left; + margin-bottom: 20px; +} + +#label_id_hidden, #id_hidden { + margin-top: 30px; +} +#help_id_hidden { + margin-top: 30px; +} + +#contact-edit-end { + clear: both; + margin-top: 15px; +} + +#contact-profile-selector { + width: 175px; + margin-left: 0px; +} + +.contact-edit-submit { + margin-top: 20px; + padding: 0.2em 0.5em; + font-size: 18px; +} + + +.contact-photo-menu-button { +/* position: absolute; + background-image: url("photo-menu.jpg"); + background-position: top left; + background-repeat: no-repeat; + margin: 0px; padding: 0px; + width: 16px; + height: 16px; + top: 64px; left:0px; + overflow: hidden; + text-indent: 40px; + display: none;*/ + +} +.contact-photo-menu { + width: 130px; + border: 1px solid #AAA; + background: #FFFFFF; + position: absolute; + left: -30px; top: 80px; + display: none; + z-index: 10000; + -moz-box-shadow: 3px 3px 5px #555; + -webkit-box-shadow: 3px 3px 5px #555; + box-shadow: 3px 3px 5px #555; +} +.contact-photo-menu ul { margin:0px; padding: 0px; list-style: none } +.contact-photo-menu li a { display: block; padding: 2px; } +.contact-photo-menu li a:hover { color: #FFFFFF; background: #3465A4; text-decoration: none; } + + +#block-message, #ignore-message, #archive-message, #lost-contact-message { + color: #FF0000; +} + +#profile-edit-insecure { + margin-top: 20px; + color: #FF0000; + font-size: 1.1em; + border: 1px solid #FF8888; + background-color: #FFEEEE; + padding-left: 5px; + /*: 3px 3px 3px 5px; */ + width: 587px; +} + +#profile-jot-desc { + /*float: left;*/ + width: 100%; + color: #FF0000; + margin-top: 10px; + margin-bottom: 10px; +} + +#profile-jot-text { + width: 90%; + height: 20px; + color:#cccccc; + border: 1px solid #cccccc; + padding: 3px 0px 0px 5px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; +} + + +/** acl **/ +#photo-edit-perms-select, +#photos-upload-permissions-wrapper, +#profile-jot-acl-wrapper{ + display:block!important; +} + +#photos-usage-message { + margin-bottom: 15px; +} + +#profile-jot-acl-wrapper{ + width:270px; + padding-left:10px; + height:auto; + overflow:visible; +} + +#acl-wrapper { + width: 270px; + float:left; +} +#acl-search { + display: none; + float:right; + background: #ffffff url("../../../images/search_18.png") no-repeat right center; + padding-right:20px; +} +#acl-showall { + float: left; + display: block; + width: auto; + height: 18px; + background-color: #cccccc; + background-image: url("../../../images/show_all_off.png"); + background-position: 7px 7px; + background-repeat: no-repeat; + padding: 7px 5px 0px 30px; + -webkit-border-radius: 5px ; + -moz-border-radius: 5px; + border-radius: 5px; + color: #999999; +} +#acl-showall.selected { + color: #000000; + background-color: #ff9900; + background-image: url("../../../images/show_all_on.png"); +} + +#acl-list { +/* height: 210px;*/ + border: 1px solid #cccccc; + clear: both; + margin-top: 30px; + overflow: visible; +} +#acl-list-content { + +} +.acl-list-item { + display: block; + width: 120px; + height: 30px; + border: 1px solid #cccccc; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + margin-top: 5px; + margin-bottom: 5px; + margin-right: 2px; + margin-left: 2px; + padding-left: 5px; + float: left; +} +.acl-list-item img{ + display: none; + width:22px; + height: 22px; + float: left; + margin: 4px; +} +.acl-list-item p { height: 12px; font-size: 10px; margin: 0px; padding: 2px 0px 1px; overflow: hidden;} +.acl-list-item a { + font-size: 8px; + display: block; + width: 40px; + height: 10px; + float: left; + color: #999999; + background-color: #cccccc; + background-position: 3px 3px; + background-repeat: no-repeat; + margin-right: 5px; + -webkit-border-radius: 2px ; + -moz-border-radius: 2px; + border-radius: 2px; + padding-left: 15px; +} +#acl-wrapper a:hover { + text-decoration: none; + color:#000000; +} +.acl-button-show { background-image: url("../../../images/show_off.png"); } +.acl-button-hide { background-image: url("../../../images/hide_off.png"); } + +.acl-button-show.selected { + color: #000000; + background-color: #9ade00; + background-image: url("../../../images/show_on.png"); +} +.acl-button-hide.selected { + color: #000000; + background-color: #ff4141; + background-image: url("../../../images/hide_on.png"); +} +.acl-list-item.groupshow { border-color: #9ade00; } +.acl-list-item.grouphide { border-color: #ff4141; } +/** /acl **/ + + +#group-new-submit-wrapper { + margin-top: 30px; +} + +#group-edit-name-label { + float: left; + width: 175px; + margin-top: 20px; + margin-bottom: 20px; +} + +#group-edit-name { + float: left; + width: 225px; + margin-top: 20px; + margin-bottom: 20px; +} + +#group-edit-name-wrapper { + + +} + + +#group_members_select_label { + display: block; + float: left; + width: 175px; +} + +.group_members_select { + float: left; + width: 230px; + overflow: auto; +} + +#group_members_select_end { + clear: both; +} +#group-edit-name-end { + clear: both; +} + +#prvmail-to-label, #prvmail-subject-label, #prvmail-message-label { + margin-bottom: 10px; + margin-top: 20px; +} + +#prvmail-submit { + float: left; + font-size: 18px; + padding: 0.25em 0.5em; + margin-top: 10px; + margin-right: 30px; +} +#prvmail-upload-wrapper, +#prvmail-link-wrapper, +#prvmail-rotator-wrapper { + float: left; + margin-top: 10px; + margin-right: 10px; + width: 24px; +} + +#prvmail-end { + clear: both; +} + +.mail-list-sender, +.mail-list-detail { + float: left; +} +.mail-list-detail { + margin-left: 20px; +} + +.mail-list-subject { + font-size: 1.1em; + margin-top: 10px; +} +a.mail-list-link { + display: block; + font-size: 1.3em; + padding: 4px 0; +} + +/* +*a.mail-list-link:hover { +* background-color: #15607B; +* color: #F5F6FB; +*} +*/ + +.mail-list-outside-wrapper-end { + clear: both; +} + +.mail-list-outside-wrapper { + margin-top: 30px; +} + +.mail-list-delete-wrapper { + float: right; + margin-right: 30px; + margin-top: 15px; +} + +.mail-list-delete-icon { + border: none; +} + +.mail-conv-sender, +.mail-conv-detail { + float: left; +} +.mail-conv-detail { + margin-left: 20px; + margin-bottom: 10px; + width: 270px; +} + +.mail-conv-subject { + font-size: 1.4em; + margin: 10px 0; +} + +.mail-conv-outside-wrapper-end { + clear: both; +} + +.mail-conv-outside-wrapper { + margin-top: 30px; +} + +.mail-conv-delete-wrapper { + float: right; + margin-right: 5px; + margin-top: 15px; +} +.mail-conv-break { + clear: both; +} + +.mail-conv-delete-icon { + border: none; +} + +.message-links ul { + list-style-type: none; + padding: 0px; +} + +.message-links li { + margin-top: 10px; + float: left; +} +.message-links a { + padding: 3px 5px; +} + +.message-links-end { + clear: both; +} + +#sidebar-group-list ul { + list-style-type: none; +} + +#sidebar-group-list .icon, #sidebar-group-list .iconspacer { + display: inline-block; + height: 12px; + width: 12px; +} + +#sidebar-group-list li { + margin-top: 10px; +} + +.nets-ul, .fileas-ul, .categories-ul { + list-style-type: none; +} + +.nets-ul li, .fileas-ul li, .categories-ul li { + margin-top: 10px; +} + +.nets-link { + margin-left: 24px; +} +.nets-all { + margin-left: 42px; +} + +.fileas-link, .categories-link { + margin-left: 24px; +} + +.fileas-all, .categories-all { + margin-left: 0px; +} + +#search-save { + margin-left: 5px; +} +.groupsideedit { + margin-right: 10px; +} +#saved-search-ul { + list-style-type: none; +} +.savedsearchdrop, .savedsearchterm { + float: left; + margin-top: 10px; +} +.savedsearchterm { + margin-left: 10px; +} + + +#side-follow-wrapper { + margin-top: 20px; +} +#side-follow-url, #side-peoplefind-url { + margin-top: 5px; +} +#side-follow-submit, #side-peoplefind-submit { + margin-top: 15px; +} + +#side-match-link { + margin-top: 10px; +} + +aside input[type='text'] { + width: 174px; +} + +.widget { + border: 1px solid #DDDDDD; + padding: 8px; + margin-top: 5px; + -moz-border-radius:5px; + -webkit-border-radius:5px; + border-radius:5px; + +} + + +/*.photos { + height: auto; + overflow: auto; +}*/ + +.photos-end { + clear: both; + margin-bottom: 25px; +} + +.photo-album-image-wrapper { + float: left; + margin-top: 15px; + margin-right: 15px; + margin-left: 15px; +/* width: 200px; height: 200px; + overflow: hidden; + position: relative; */ +} +.photo-album-image-wrapper .caption { + display: none; + width: 100%; +/* position: absolute; */ + bottom: 0px; + padding: 0.5em 0.5em 0px 0.5em; + background-color: rgba(245, 245, 255, 0.8); + border-bottom: 2px solid #CCC; + margin: 0px; +} +.photo-album-image-wrapper a:hover .caption { + display:block; +} + +#photo-album-end { + clear: both; + margin-bottom: 25px; +} + +.photo-top-image-wrapper { +/* position: relative; */ + float: left; + margin-top: 15px; + margin-right: 15px; + margin-left: 15px; + margin-bottom: 15px; +/* width: 200px; height: 200px; + overflow: hidden; */ +} +.photo-top-image-wrapper img { + max-width: 290px; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} +.photo-top-album-name { + width: 100%; + min-height: 2em; +/* position: absolute; */ + bottom: 0px; + padding: 0px 3px; + padding-top: 0.5em; + background-color: rgb(255, 255, 255); +} +#photo-top-end { + clear: both; +} + +#photo-top-links { + margin-bottom: 30px; + margin-left: 30px; +} + +#photos-upload-newalbum-div { + float: left; + width: 175px; +} + +#photos-upload-noshare { + margin-bottom: 10px; +} +#photos-upload-existing-album-text { + float: left; + width: 175px; +} +#photos-upload-newalbum { + float: left; +} +#photos-upload-album-select { + float: left; +} + +#photos-upload-spacer { + margin-top: 25px; +} +#photos-upload-new-end, #photos-upload-exist-end { + clear: both; +} +#photos-upload-exist-end { + margin-bottom: 15px; +} +#photos-upload-submit { + margin-top: 15px; +} + +#photos_upload_applet_wrapper { + margin-bottom: 15px; +} + +#photos-upload-no-java-message { + margin-bottom: 15px; +} + +#character-counter { + float: right; + font-size: 120%; +} + +#character-counter.grey { + color: #888888; +} + +#character-counter.orange { + color: orange; +} +#character-counter.red { + color: red; +} + +#profile-jot-banner-end { + /* clear: both; */ +} + +#photos-upload-select-files-text { + margin-top: 15px; + margin-bottom: 15px; +} + +#photos-upload-perms-menu, #photos-upload-perms-menu:visited, #photos-upload-perms-menu:link { + color: #8888FF; + text-decoration: none; + cursor: pointer; +} + +#photos-upload-perms-menu { + margin-left: 15px; +} + +#photos-upload-perms-menu:hover { + color: #0000FF; + text-decoration: underline; + cursor: pointer; +} +#settings-default-perms-menu { + margin-top: 15px; + margin-bottom: 15px; +} + +#photo-edit-caption-label, #photo-edit-tags-label, #photo-edit-albumname-label, .photo-edit-rotate-label { + float: left; + width: 150px; +} + +#photo-edit-caption-label, #photo-edit-tags-label, #photo-edit-albumname-label { + font-weight: 700; +} + +#photos-upload-noshare-div { + margin-top: 140px; + margin-bottom: 15px; +} + +#photos-upload-noshare-label { + margin-left: 25px; +} + +#photos-upload-noshare { + float: left; +} + +.photo-perms-icon { + float: left; +} + +#photo-edit-perms-menu, #photos-upload-perms-menu, #settings-default-perms-menu { + text-decoration: none; +} + +.photo-jot-perms-text { + padding-top: 5px; + padding-left: 40px; +} + +#photo-edit-perms, #photos-upload-perms, #settings-default-perms { + margin-top: 30px; +} +#photos-upload-perms { + margin-top: 15px; + margin-left: 5px; +} + +#photo-edit-perms-select, #photos-upload-permissions-wrapper, #settings-jot-acl-wrapper { + margin-top: 30px; + margin-left: 20px; +} + +#advanced-expire-popup { + padding-left: 1em; + margin-top: 15px; + border: 1px solid #aaa; + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} + +#photo-edit-perms-end { + margin-bottom: 15px; +} + +#photo-edit-caption, #photo-edit-newtag, #photo-edit-albumname { + float: left; + margin-bottom: 25px; +} + +.photo-edit-rotate { + float: left; + margin-left: 20px; +} +#photo-edit-link-wrap { + margin-bottom: 15px; +} +#photo-like-div { + margin-left: 15px; + margin-bottom: 65px; +} + +#photo-edit-caption-end, #photo-edit-tags-end, #photo-edit-albumname-end, #photo-edit-rotate-end { + clear: both; +} + +#photo-edit-rotate-end { + margin-bottom: 15px; +} + +#photo-edit-submit-button, #photo-edit-delete-button, #photos-upload-submit { + margin-top: 30px; + padding: 0.25em 0.5em; + font-size: 18px; +} +#photo-edit-submit-button { + margin-left: 10px; +} +#photo-edit-delete-button { + margin-left: 45px; +} +#photos-upload-choose { + position: absolute; + top: 460px; + left: 5px; +} +#photos-upload-submit { + margin-top: 30px; + margin-left: 100px; + margin-bottom: 20px; +} +.settings-submit, .profile-edit-submit-button { + padding: 0.25em 0.5em; + margin-bottom: 10px; + font-size: 18px; +} +#photo-edit-end { + margin-bottom: 35px; +} +#photo-caption { + font-size: 110%; + font-weight: bold; + margin-top: 15px; + margin-bottom: 15px; +} + +#in-this-photo-text { + color: #0000FF; + margin-left: 30px; +} + +#in-this-photo { + margin-left: 60px; + margin-top: 10px; + margin-bottom: 20px; +} + +#photo-album-edit-submit, #photo-album-edit-drop { + margin-top: 15px; + margin-bottom: 15px; +} + +#photo-album-edit-drop { + margin-left: 200px; +} + +.group-delete-wrapper { + float: right; + margin-right: 50px; +} + +#install-dbhost-label, +#install-dbuser-label, +#install-dbpass-label, +#install-dbdata-label, +#install-tz-desc { + float: left; + width: 250px; + margin-top: 10px; + margin-bottom: 10px; + +} + +#install-dbhost, +#install-dbuser, +#install-dbpass, +#install-dbdata { + float: left; + width: 200px; + margin-left: 20px; +} + +#install-dbhost-end, +#install-dbuser-end, +#install-dbpass-end, +#install-dbdata-end, +#install-tz-end { + clear: both; +} + +#install-form select#timezone_select { + float: left; + margin-top: 18px; + margin-left: 20px; +} + +#dfrn-request-networks { + margin-bottom: 30px; +} + +#pause { + position: fixed; + bottom: 5px; + right: 5px; +} + +.sparkle { + cursor: url('lock.cur'), pointer; +/* cursor: pointer !important; */ +} + +.contact-block-div { + float: left; + width: 52px; + height: 52px; +} +.contact-block-textdiv { + float: left; + width: 150px; + height: 34px; +} + +#contact-block-end { + clear: both; +} +.contact-block-link { + float: left; +} +.contact-block-img { + width:48px; + height:48px; +} + +#tag-remove { + margin-bottom: 15px; +} + +#tagrm li { + margin-bottom: 10px; +} + +#tagrm-submit, #tagrm-cancel { + margin-top: 25px; +} + +#tagrm-cancel { + margin-left: 15px; +} + +.wall-item-conv { + margin-top: 5px; + margin-bottom: 25px; +} + +#search-submit { + margin-left: 15px; +} + +#search-box { + margin-bottom: 25px; +} + +.location-label, .gender-label, .marital-label, .homepage-label { + float: left; + text-align: right; + display: block; + width: 65px; +} + +.adr, .x-gender, .marital-text, .homepage-url { + float: left; + display: block; + margin-left: 8px; +} + +.profile-clear { + clear: both; +} + + +.clear { + clear: both; +} + +.cc-license { + margin-top: 50px; + font-size: 70%; +} + + +#plugin-settings-link, #account-settings-link { + margin-bottom: 10px; +} + +#uexport-link { + margin-bottom: 20px; +} + +/* end from default */ + + +.fn { + padding: 0px 0px 5px 12px; + font-size: 120%; + font-weight: bold; +} + +.vcard .title { + margin-bottom: 5px; + margin-left: 12px; +} + +.vcard dl { + clear: both; +} + +#birthday-title { + float: left; + font-weight: bold; +} + +#birthday-adjust { + float: left; + font-size: 75%; + margin-left: 10px; +} + +#birthday-title-end { + clear: both; +} + +.birthday-list { + margin-left: 15px; +} + +#birthday-wrapper { + margin-bottom: 20px; +} + +#network-new-link { + margin-top: 15px; + margin-bottom: 15px; +} + + +.tool-wrapper { + float: left; + margin-left: 15px; +} + +.tool-link { + cursor: pointer; +} + +.eventcal { + float: left; + font-size: 20px; +} + +#event-summary-text { + margin-top: 15px; +} + +#event-share-checkbox { + float: left; + margin-top: 10px; +} + +#event-share-text { + float: left; + margin-top: 10px; + margin-left: 5px; +} + +#event-share-break { + clear: both; + margin-bottom: 10px; +} + +#event-summary { + width: 280px; +} + +.vevent { + border: 1px solid #CCCCCC; +} + +.vevent .event-summary { + margin-left: 10px; + margin-right: 10px; + font-weight: bold; +} + +.vevent .event-description, .vevent .event-location { + margin-left: 10px; + margin-right: 10px; +} +.vevent .event-start { + margin-left: 10px; + margin-right: 10px; +} + +#new-event-link { + margin-bottom: 10px; +} + +.edit-event-link, .plink-event-link { + float: left; + margin-top: 4px; + margin-right: 4px; + margin-bottom: 15px; +} + +.event-description:before { + content: url('../../../images/calendar.png'); + margin-right: 15px; +} + +.event-start, .event-end { + font-size: 14px; + margin-left: 10px; + width: 280px; + clear: both; + padding-bottom: 1.5em; +} + +.event-start .dtstart, .event-end .dtend { + clear: both; + float: left; +} + +.event-list-date { + margin-bottom: 10px; +} + +.prevcal, .nextcal { + float: left; + margin-left: 32px; + margin-right: 32px; + margin-top: 64px; +} +.event-calendar-end { + clear: both; +} + + +.calendar { + font-family: Courier, monospace; +} +.today { + font-weight: bold; + color: #FF0000; +} + +.settings-block { + border: 1px solid #AAA; + margin: 10px; + padding: 10px; +} + +.app-title { + margin: 10px; +} + +#identity-manage-desc { + margin-top:15px; + margin-bottom: 15px; +} + +#identity-manage-choose { + margin-bottom: 15px; +} + +#identity-submit { + margin-top: 20px; +} + +#photo-nav { + position: relative; + height: 55px; +} + +#photo-prev-link { + position: absolute; + left: 5px; +} +#photo-next-link { + position: absolute; + right: 5px; +} +#photo-prev-link, #photo-next-link { + padding: 10px; +/* float: left;*/ +} + +/*#photo-photo { + float: left; +}*/ + +#photo-photo img { + max-width: 310px; +} + +#photo-photo-end { + clear: both; +} + +.profile-match-photo { + float: left; + text-align: center; + width: 120px; +} + +.profile-match-name { + float: left; + text-align: center; + width: 120px; + overflow: hidden; +} + +.profile-match-break, +.profile-match-end { + clear: both; +} + +.profile-match-connect { + text-align: center; + font-weight: bold; +} + +.profile-match-wrapper { + float: left; + padding: 10px; + width: 120px; + height: 120px; + scroll: auto; +} +#profile-match-wrapper-end { + clear: both; +} +.side-link { + margin-bottom: 15px; +} + +#language-selector { + position: absolute; + top: 0px; + left: 16px; +} + +#group-members { + margin-top: 20px; + padding: 10px; + height: 250px; + overflow: auto; + border: 1px solid #ddd; +} + +#group-members-end { + clear: both; +} + +#group-separator { + margin-top: 10px; + margin-bottom: 10px; +} + +#group-all-contacts { + padding: 10px; + height: 450px; + overflow: auto; + border: 1px solid #ddd; +} + +#group-all-contacts-end { + clear: both; + margin-bottom: 10px; +} + +#group-edit-desc { + margin-top: 15px; +} + + +#prof-members { + margin-top: 20px; + padding: 10px; + height: 250px; + overflow: auto; + border: 1px solid #ddd; +} + +#prof-members-end { + clear: both; +} + +#prof-separator { + margin-top: 10px; + margin-bottom: 10px; +} + +#prof-all-contacts { + padding: 10px; + height: 450px; + overflow: auto; + border: 1px solid #ddd; +} + +#prof-all-contacts-end { + clear: both; + margin-bottom: 10px; +} + +#prof-edit-desc { + margin-top: 15px; +} + +#crepair-name-label, +#crepair-nick-label, +#crepair-attag-label, +#crepair-url-label, +#crepair-request-label, +#crepair-confirm-label, +#crepair-notify-label, +#crepair-photo-label, +#crepair-poll-label { + float: left; + width: 200px; + margin-bottom: 15px; +} + +#crepair-name, +#crepair-nick, +#crepair-attag, +#crepair-url, +#crepair-request, +#crepair-confirm, +#crepair-notify, +#crepair-photo, +#crepair-poll { + float: left; + width: 300px; +} + + +#netsearch-box { + margin-top: 20px; +} + +#netsearch-box #search-submit { + margin: 5px 0px 0px 0px; +} + +.required { + color: #FF0000; +} + +#event-start-text, #event-finish-text { + margin-top: 10px; + margin-bottom: 5px; +} + +#event-nofinish-checkbox, #event-nofinish-text, #event-adjust-checkbox, #event-adjust-text { + float: left; +} +#event-datetime-break { + margin-bottom: 10px; +} + +#event-nofinish-break, #event-adjust-break { + clear: both; +} + +#event-desc-text, #event-location-text { + margin-top: 10px; + margin-bottom: 5px; +} +#event-submit { + margin-top: 10px; +} + +.body-tag, .filesavetags, .categorytags { + opacity: 0.5; + filter:alpha(opacity=50); +} + +.body-tag:hover, .filesavetags:hover, .categorytags:hover { + opacity: 1.0 !important; + filter:alpha(opacity=100) !important; +} + +.item-select { + display: none; + opacity: 0.1; + filter:alpha(opacity=10); + float: right; + margin-right: 10px; + +} +.item-select:hover, .checkeditem { + opacity: 1; + filter:alpha(opacity=100); +} + + +#item-delete-selected { + margin-top: 30px; +} + +#item-delete-selected-end { + clear: both; +} +#item-delete-selected-icon, #item-delete-selected-desc { + float: left; + margin-right: 5px; +} +#item-delete-selected-desc:hover { + text-decoration: underline; +} + +#lang-select-icon { + cursor: pointer; + position: fixed; + left: 0px; + top: 0px; + opacity: 0.2; + filter:alpha(opacity=20); +} + +#lang-select-icon:hover { + opacity: 1; + filter:alpha(opacity=100); +} + +.notif-image { + height: 80px; + width: 80px; + margin-right: 15px; +} +.notification-listing-end { + clear: both; + margin-bottom: 15px; +} + + + +/** + * Plugins settings + */ + +.settings-block > h3, +.settings-heading { + border-bottom: 1px solid #babdb6; +} + + +/** + * Form fields + */ +.field { + margin-bottom: 10px; + padding-bottom: 10px; + overflow: auto; + width: 100% +} + +.field label { + font-weight: 700; + float: left; + width: 200px; +} + +.field input, +.field textarea { + width: 270px; + margin-left: 20px; +} +.field textarea { height: 100px; } +.field_help { + display: block; + margin-left: 20px; + color: #666666; + +} + + +.field .onoff { + float: left; + width: 80px; +} +.field .onoff a { + display: block; + border:1px solid #666666; + background-image:url("../../../images/onoff.jpg"); + background-repeat: no-repeat; + padding: 4px 2px 2px 2px; + height: 16px; + text-decoration: none; +} +.field .onoff .off { + border-color:#666666; + padding-left: 40px; + background-position: left center; + background-color: #cccccc; + color: #666666; + text-align: right; +} +.field .onoff .on { + border-color:#204A87; + padding-right: 40px; + background-position: right center; + background-color: #D7E3F1; + color: #204A87; + text-align: left; +} +.hidden { display: none!important; } + +.field.radio .field_help { clear: left; margin-left: 20px; } + +/** + * ADMIN + */ +#pending-update { + float:right; + color: #ffffff; + font-weight: bold; + background-color: #FF0000; + padding: 0em 0.3em; + +} +#adminpage dl { + clear: left; + min-height: 40px; + margin-bottom: 2px; + padding-bottom: 2px; + border-bottom: 1px solid black; +} +#adminpage dt { + width: 180px; + float: left; + font-weight: bold; +} +#adminpage dd { + margin-left: 180px; +} + +#adminpage h3 { + border-bottom: 1px solid #cccccc; +} +#adminpage .field label { + font-weight: bold; +} +#adminpage .submit { + clear:left; + text-align: right; +} + +#adminpage #pluginslist { + margin: 0px; padding: 0px; +} +#adminpage .plugin { + list-style: none; + display: block; + border: 1px solid #888888; + padding: 1em; + margin-bottom: 5px; + clear: left; +} +#adminpage .plugin .desc { margin-left: 2.5em;} +#adminpage .toggleplugin { + float:left; + margin-right: 1em; +} + +#adminpage table {width:100%; border-bottom: 1px solid #000000; margin: 5px 0px;} +#adminpage table th { text-align: left;} +#adminpage td .icon { float: left;} +#adminpage table#users img { width: 16px; height: 16px; } +#adminpage table tr:hover { background-color: #bbc7d7; } +#adminpage .selectall { text-align: right; } + +#cnftheme { + display: none; +} + +/* + * UPDATE + */ +.popup { + width: 100%; height: 100%; + top:0px; left:0px; + position: absolute; + display: none; +} + +.popup .background { + background-color: rgba(0,0,0,128); + 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: #FFFFFF; +} +.popup .panel .panel_text { display: block; overflow: auto; height: 80%; } +.popup .panel .panel_in { width: 100%; height: 100%; position: relative; } +.popup .panel .panel_actions { width: 100%; bottom: 4px; left: 0px; position: absolute; } +.panel_text .progress { width: 50%; overflow: hidden; height: auto; border: 1px solid #cccccc; margin-bottom: 5px} +.panel_text .progress span {float: right; display: block; width: 25%; background-color: #eeeeee; text-align: right;} + +/** + * OAuth + */ +.oauthapp { + height: auto; overflow: auto; + border-bottom: 2px solid #cccccc; + padding-bottom: 1em; + margin-bottom: 1em; +} +.oauthapp img { + float: left; + width: 48px; height: 48px; + margin: 10px; +} +.oauthapp img.noicon { + background-image: url("../../../images/icons/48/plugin.png"); + background-position: center center; + background-repeat: no-repeat; +} +.oauthapp a { + float: left; +} + +/** + * ICONS + */ +.iconspacer { + display: block; width: 16px; height: 16px; +} + +.icon { + display: block; width: 16px; height: 16px; + background-image: url('../../../images/icons.png'); +} +.article { background-position: 0px 0px;} +.icon.audio { display: none; background-position: -16px 0px;} +.block { background-position: -32px 0px;} +/*.drop { background-position: -48px 0px;} +.drophide { background-position: -64px 0px;}*/ +.icon.drop { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/drop-darkred.png'); + background-repeat: no-repeat; +} +.icon.drophide { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/drop-darkred.png'); + background-repeat: no-repeat; +} +.edit { background-position: -80px 0px;} +/*.camera { background-position: -96px 0px;}*/ +.icon.camera { + display: block; width: 28px; height: 21px; + margin-top: 4px; + background-size: 100% 100%; + background-image: url('images/camera.png'); + background-repeat: no-repeat; +} +/*.dislike { background-position: -112px 0px;}*/ +.icon.dislike { + display: block; + width: 26px; height: 28px;/*31 33*/ + background-size: 100% 100%; + background-image: url('images/disapprove.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +/*.like { background-position: -128px 0px;}*/ +.icon.like { + display: block; width: 26px; height: 28px;/*31 33*/ + margin-right: 7px; + background-size: 100% 100%; + background-image: url('images/approve.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +.icon.link { display: none; background-position: -144px 0px;} + +/*.globe { background-position: 0px -16px;}*/ +.icon.globe { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/globe.png'); + background-repeat: no-repeat; +} +.noglobe { background-position: -16px -16px;} +.no { background-position: -32px -16px;} +.pause { background-position: -48px -16px;} +.play { background-position: -64px -16px;} +/*.pencil { background-position: -80px -16px;} +.small-pencil { background-position: -96px -16px;}*/ +.icon.pencil { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/pencil.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +.icon.small-pencil { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/pencil.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +/*.recycle { background-position: -112px -16px;}*/ +.icon.recycle { + display: block; + width: 28px; height: 27px;/*33 32*/ + background-size: 100% 100%; + background-image: url('images/recycle.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +/*.remote-link { background-position: -128px -16px;}*/ +.icon.remote-link { +/* display: block;*/ + display: none; + width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/remote-link.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +.share { background-position: -144px -16px;} + +.tools { background-position: 0px -32px;} +/*.lock { background-position: -16px -32px;}*/ +.icon.lock { + display: block; width: 17px; height: 25px; + margin-top: 1px; + background-size: 100% 100%; + background-image: url('images/lock.png'); + background-repeat: no-repeat; +} +/*.unlock { background-position: -32px -32px;}*/ +.icon.unlock { + display: block; width: 17px; height: 28px; + margin-top: -2px; + background-size: 100% 100%; + background-image: url('images/unlock.png'); + background-repeat: no-repeat; +} +.icon.video { display: none; background-position: -48px -32px;} +.oembed.video a { display: block; } +.youtube { background-position: -64px -32px;} +/*.attach { background-position: -80px -32px; }*/ +.icon.attach { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/paperclip.png'); + background-repeat: no-repeat; +} +.language { background-position: -96px -32px; } +.prev { background-position: -112px -32px; } +.next { background-position: -128px -32px; } +.on { background-position: -144px -32px; } + +.off { background-position: 0px -48px; } +/*.starred { background-position: -16px -48px; }*/ +.icon.starred { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/star-yellow.png'); + background-repeat: no-repeat; +} +/*.unstarred { background-position: -32px -48px; }*/ +.icon.unstarred { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/star.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +/*.tagged { background-position: -48px -48px; }*/ +.icon.tagged { + display: block; width: 28px; height: 28px; + background-size: 100% 100%; + background-image: url('images/tag.png'); + background-repeat: no-repeat; + opacity: 0.5; +} +.yellow { background-position: -64px -48px; } + + +.filer-icon { + display: block; width: 24px; height: 24px; + background-size: 100% 100%; + background-image: url('images/folder.png'); + background-repeat: no-repeat; + opacity: 0.5; +} + +.icon.dim { opacity: 0.3;filter:alpha(opacity=30); } + +[class^="comment-edit-bb"] { + list-style: none; + display: none; + margin: 0px 0 -5px 20px; + width: 75%; +} +[class^="comment-edit-bb"] > li { + display: inline-block; + margin: 20px 10px 0 0; + visibility: none; +} +/*[class^="comment-edit-bb-end"] { + clear: both; +}*/ +.editicon { + display: inline-block; + background-size: 100% 100%; + background-repeat: no-repeat; + background-color: #f3f3f3; + text-decoration: none; +} +/*.editicon:hover { + background-color: #ccc; +}*/ +.boldbb { +/* background-position: 0px 0px;*/ + width: 26px; height: 28px; + background-image: url('images/boldB-serif.png'); +} +/*.boldbb:hover { + background-position: 0px -16px; +}*/ +.italicbb { +/* background-position: -16px 0px;*/ + width: 16px; height: 28px; + background-image: url('images/italicI-serif.png'); +} +/*.italicbb:hover { + background-position: -16px -16px; +}*/ +.underlinebb { +/* background-position: -32px 0px;*/ + width: 25px; height: 28px; + background-image: url('images/underlineU-serif.png'); +} +/*.underlinebb:hover { + background-position: -32px -16px; +}*/ +.quotebb { +/* background-position: -48px 0px;*/ + width: 28px; height: 28px; + background-image: url('images/quote.png'); +} +/*.quotebb:hover { + background-position: -48px -16px; +}*/ +.codebb { +/* background-position: -64px 0px;*/ + width: 28px; height: 28px; + background-image: url('images/code.png'); +} +/*.codebb:hover { + background-position: -64px -16px; +}*/ +.imagebb { + background-position: -80px 0px; +} +.imagebb:hover { + background-position: -80px -16px; +} +.urlbb { + background-position: -96px 0px; +} +.urlbb:hover { + background-position: -96px -16px; +} +.videobb { + background-position: -112px 0px; +} +.videobb:hover { + background-position: -112px -16px; +} + +.attachtype { + display: block; width: 20px; height: 23px; + float: left; + background-image: url('../../../images/content-types.png'); +} + +.body-attach { + margin-top: 10px; +} + +.type-video { background-position: 0px 0px; } +.type-image { background-position: -20px 0px; } +.type-audio { background-position: -40px 0px; } +.type-text { background-position: -60px 0px; } +.type-unkn { background-position: -80px 0px; } + + +/* autocomplete popup */ +.acpopup { + max-height:150px; + background-color:#ffffff; + overflow:auto; + z-index:100000; + border:1px solid #cccccc; +} +.acpopupitem { + background-color:#ffffff; padding: 4px; + clear:left; +} +.acpopupitem img { + float: left; + margin-right: 4px; +} + +.acpopupitem.selected { + color: #FFFFFF; background: #3465A4; +} + +/* popup notifications */ +div.jGrowl div.notice { + background: #511919 url("../../../images/icons/48/notice.png") no-repeat 5px center; + color: #ffffff; + padding-left: 58px; +} +div.jGrowl div.info { + background: #364e59 url("../../../images/icons/48/info.png") no-repeat 5px center; + color: #ffffff; + padding-left: 58px; +} +#jGrowl.top-right { + top: 15px; + right: 15px; +} +.qcomment { + border: 1px solid #EEE; + padding: 3px; + margin-top: 15px; + margin-left: 25px; + width: 125px; + overflow-y: auto; +} + + +.qcomment option { + width: 125px; + overflow-x: hidden; +} + +.qcomment { + opacity: 0.3; + filter:alpha(opacity=30); +} +.qcomment:hover { + opacity: 1.0; + filter:alpha(opacity=100); +} + +/* notifications popup menu */ +.nav-notify { + display: none; + position: absolute; + font-size: 10px; + padding: 1px 3px; + top: 0px; + right: -10px; + min-width: 15px; + text-align: right; +} +.nav-notify.show { + display: block; +} +ul.notifications-menu-popup { + position: absolute; + display: none; + width: 10em; + margin: 0px; + padding: 0px; + list-style: none; + z-index: 100000; + right: -55px; +} +#nav-notifications-menu { + width: 300px; +/* max-height: 400px;*/ + height: auto; + overflow-y: scroll;overflow-style:scrollbar; + background-color:#FFFFFF; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius:5px; + border: 1px solid #AAA; + -moz-box-shadow: 3px 3px 5px #555; + -webkit-box-shadow: 3px 3px 5px #555; + box-shadow: 3px 3px 5px #555; +} +#nav-notifications-menu .contactname { font-weight: bold; font-size: 0.9em; } +#nav-notifications-menu img { float: left; margin-right: 5px; } +#nav-notifications-menu .notif-when { font-size: 0.8em; display: block; } +#nav-notifications-menu li { + padding: 7px 0px 7px 10px; + word-wrap:normal; + border-bottom: 1px solid #000; +} + +#nav-notifications-menu li:hover { + +} + +#nav-notifications-menu a:hover { + text-decoration: underline; +} + +.notif-item a { + color: #000000; +} + +.notif-item a:hover { + text-decoration: underline; +} + +.notif-image { + width: 32px; + height: 32px; + padding: 7px 7px 0px 0px; +} + +.notify-seen { + background: #DDDDDD; +} + +#id_term_label { + width:75px; +} +#id_term { + width:100px; +} + +#recip { + +} +.autocomplete-w1 { background: #ffffff; no-repeat bottom right; position:absolute; top:0px; left:0px; margin:6px 0 0 6px; /* IE6 fix: */ _background:none; _margin:1px 0 0 0; } +.autocomplete { color:#000; 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; overflow:hidden; } + +#datebrowse-sidebar select { + margin-left: 40px; + width: 130px; +} + +@media only screen and (min-device-width: 768px) +and (max-device-width: 1024px) +{ +html { +width:700px +} +div.section-wrapper { +width:700px; +margin-left:0px; +} +.wall-item-body { +width:700px; +} +.comment .wall-item-body { +width:650px; +} +} \ No newline at end of file From 707dd216ce092dfdf592a042269a3a8504f60359 Mon Sep 17 00:00:00 2001 From: Domovoy Date: Sun, 5 Aug 2012 19:27:54 +0200 Subject: [PATCH 037/139] Diaspora doesn't support threaded comments --- include/diaspora.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/diaspora.php b/include/diaspora.php index a23c11bd21..0b2add337f 100755 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -2257,12 +2257,13 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) { $myaddr = $owner['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); // $theiraddr = $contact['addr']; - if($item['thr-parent']) { + // Diaspora doesn't support threaded comments + /*if($item['thr-parent']) { $p = q("select guid, type, uri, `parent-uri` from item where uri = '%s' limit 1", dbesc($item['thr-parent']) ); } - else { + else {*/ // The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always // return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent. // The only item with `parent` and `id` as the parent id is the parent item. @@ -2270,7 +2271,7 @@ function diaspora_send_followup($item,$owner,$contact,$public_batch = false) { intval($item['parent']), intval($item['parent']) ); - } + //} if(count($p)) $parent = $p[0]; else From 5b374c4050c85151e18a0089fd990052f1185436 Mon Sep 17 00:00:00 2001 From: Domovoy Date: Sun, 5 Aug 2012 19:30:21 +0200 Subject: [PATCH 038/139] Diaspora doesn't support threaded comments (forgot some) --- include/diaspora.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/diaspora.php b/include/diaspora.php index 0b2add337f..96b0b184e0 100755 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -2333,13 +2333,13 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { $body = $item['body']; $text = html_entity_decode(bb2diaspora($body)); - - if($item['thr-parent']) { + // Diaspora doesn't support threaded comments + /*if($item['thr-parent']) { $p = q("select guid, type, uri, `parent-uri` from item where uri = '%s' limit 1", dbesc($item['thr-parent']) ); } - else { + else {*/ // The first item in the `item` table with the parent id is the parent. However, MySQL doesn't always // return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent. // The only item with `parent` and `id` as the parent id is the parent item. @@ -2347,7 +2347,7 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) { intval($item['parent']), intval($item['parent']) ); - } + //} if(count($p)) $parent = $p[0]; else From fd7ea5cc915daa7416d1abc9935d0fbe0b83a182 Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Sun, 5 Aug 2012 16:55:20 -0400 Subject: [PATCH 039/139] quattro: support threaded comments --- view/theme/quattro/dark/style.css | 31 +++++ view/theme/quattro/green/style.css | 31 +++++ view/theme/quattro/quattro.less | 30 +++++ view/theme/quattro/threaded_conversation.tpl | 45 +++++++ view/theme/quattro/wall_item_tag.tpl | 4 +- view/theme/quattro/wall_thread.tpl | 112 +++++++++++++++++ view/theme/quattro/wallwall_thread.tpl | 119 +++++++++++++++++++ 7 files changed, 371 insertions(+), 1 deletion(-) create mode 100644 view/theme/quattro/threaded_conversation.tpl create mode 100644 view/theme/quattro/wall_thread.tpl create mode 100644 view/theme/quattro/wallwall_thread.tpl diff --git a/view/theme/quattro/dark/style.css b/view/theme/quattro/dark/style.css index 087d9c746f..6bd9ab06fb 100644 --- a/view/theme/quattro/dark/style.css +++ b/view/theme/quattro/dark/style.css @@ -1068,6 +1068,9 @@ section { color: #2d2d2d; border: 1px solid #2d2d2d; } +.threaded .wall-item-comment-wrapper { + margin-left: 0px; +} .comment-edit-preview { width: 710px; border: 1px solid #2d2d2d; @@ -1139,6 +1142,34 @@ section { width: 25px; height: 25px; } +/* threaded comments */ +.children > .children { + margin-left: 40px; +} +.children > .children .wall-item-container { + width: 710px; +} +.children > .children > .children { + margin-left: 40px; +} +.children > .children > .children .wall-item-container { + width: 670px; +} +.children > .children > .children > .children { + margin-left: 40px; +} +.children > .children > .children > .children .wall-item-container { + width: 630px; +} +.children > .children > .children > .children > .children { + margin-left: 40px; +} +.children > .children > .children > .children > .children .wall-item-container { + width: 590px; +} +.children > .children > .children > .children > .children .children { + margin-left: 0px; +} span[id^="showmore-teaser"] { background: url("showmore-bg.jpg") no-repeat center bottom; } diff --git a/view/theme/quattro/green/style.css b/view/theme/quattro/green/style.css index 9c28473c61..2e97027b4b 100644 --- a/view/theme/quattro/green/style.css +++ b/view/theme/quattro/green/style.css @@ -1068,6 +1068,9 @@ section { color: #2d2d2d; border: 1px solid #2d2d2d; } +.threaded .wall-item-comment-wrapper { + margin-left: 0px; +} .comment-edit-preview { width: 710px; border: 1px solid #2d2d2d; @@ -1139,6 +1142,34 @@ section { width: 25px; height: 25px; } +/* threaded comments */ +.children > .children { + margin-left: 40px; +} +.children > .children .wall-item-container { + width: 710px; +} +.children > .children > .children { + margin-left: 40px; +} +.children > .children > .children .wall-item-container { + width: 670px; +} +.children > .children > .children > .children { + margin-left: 40px; +} +.children > .children > .children > .children .wall-item-container { + width: 630px; +} +.children > .children > .children > .children > .children { + margin-left: 40px; +} +.children > .children > .children > .children > .children .wall-item-container { + width: 590px; +} +.children > .children > .children > .children > .children .children { + margin-left: 0px; +} span[id^="showmore-teaser"] { background: url("showmore-bg.jpg") no-repeat center bottom; } diff --git a/view/theme/quattro/quattro.less b/view/theme/quattro/quattro.less index b5f0af6696..55b2d73ac5 100644 --- a/view/theme/quattro/quattro.less +++ b/view/theme/quattro/quattro.less @@ -538,6 +538,8 @@ section { } } +.threaded .wall-item-comment-wrapper { margin-left: 0px; } + .comment-edit-preview { width: 710px; border: 1px solid @Grey5; @@ -594,6 +596,34 @@ section { } .wwto .contact-photo { width: 25px; height: 25px; } +/* threaded comments */ +.children { + + &> .children { + margin-left: 40px; + .wall-item-container { width: 710px; } + + &> .children { + margin-left: 40px; + .wall-item-container { width: 670px; } + + &> .children { + margin-left: 40px; + .wall-item-container { width: 630px; } + + &> .children { + margin-left: 40px; + .wall-item-container { width: 590px; } + + .children { + margin-left: 0px; + } + } + } + } + } +} + span[id^="showmore-teaser"]{ background: url("showmore-bg.jpg") no-repeat center bottom; } diff --git a/view/theme/quattro/threaded_conversation.tpl b/view/theme/quattro/threaded_conversation.tpl new file mode 100644 index 0000000000..305ace92ef --- /dev/null +++ b/view/theme/quattro/threaded_conversation.tpl @@ -0,0 +1,45 @@ +{{ for $threads as $item }} +
    + {{if $mode == display}} + {{ else }} + {{if $item.comment_firstcollapsed}} +
    + $item.num_comments $item.hide_text +
    + {{endif}} + {{ endif }} + + {{ if $item.type == tag }} + {{ inc wall_item_tag.tpl }}{{ endinc }} + {{ else }} + {{ inc $item.template }}{{ endinc }} + {{ endif }} + +
    +{{ endfor }} + +
    + +{{ if $dropping }} + + $dropping + +{{ endif }} + + + +{{ if $mode == display }} + +{{ endif }} + diff --git a/view/theme/quattro/wall_item_tag.tpl b/view/theme/quattro/wall_item_tag.tpl index 926fc929d2..205fcfebc0 100644 --- a/view/theme/quattro/wall_item_tag.tpl +++ b/view/theme/quattro/wall_item_tag.tpl @@ -13,11 +13,13 @@
    $item.location
    - $item.body + $item.ago $item.body
    +{{ if $item.flatten }}
    $item.comment
    +{{ endif }} diff --git a/view/theme/quattro/wall_thread.tpl b/view/theme/quattro/wall_thread.tpl new file mode 100644 index 0000000000..b51dc3d7df --- /dev/null +++ b/view/theme/quattro/wall_thread.tpl @@ -0,0 +1,112 @@ + +
    + $item.star.starred + {{ if $item.lock }}$item.lock{{ endif }} + +
    + +
    +
    +
    +
    + + $item.name + + menu + + +
    +
    $item.location
    +
    +
    + {{ if $item.title }}

    $item.title

    {{ endif }} + $item.body +
    +
    +
    + +
    + {{ for $item.tags as $tag }} + $tag + {{ endfor }} +
    +
    +
    +
    + {{ if $item.plink }}$item.plink.title{{ endif }} +
    +
    +
    + $item.name $item.ago +
    + +
    + {{ if $item.star }} + $item.star.do + $item.star.undo + $item.star.tagger + {{ endif }} + {{ if $item.filer }} + $item.filer + {{ endif }} + + {{ if $item.vote }} + $item.vote.like.1 + $item.vote.dislike.1 + {{ endif }} + + {{ if $item.vote.share }} + $item.vote.share.1 + {{ endif }} +
    + +
    + + {{ if $item.drop.dropping }} + + $item.drop.delete + {{ endif }} + {{ if $item.edpost }} + + {{ endif }} +
    + +
    +
    +
    + + +
    $item.dislike
    +
    + {{ if $item.threaded }}{{ if $item.comment }} +
    + +
    + $item.comment +
    +
    + {{ endif }}{{ endif }} + +
    + + +{{ for $item.children as $item }} +
    + {{ if $item.type == tag }} + {{ inc wall_item_tag.tpl }}{{ endinc }} + {{ else }} + {{ inc $item.template }}{{ endinc }} + {{ endif }} +
    +{{ endfor }} + +{{ if $item.flatten }} +
    + $item.comment +
    +{{ endif }} diff --git a/view/theme/quattro/wallwall_thread.tpl b/view/theme/quattro/wallwall_thread.tpl new file mode 100644 index 0000000000..038b156d12 --- /dev/null +++ b/view/theme/quattro/wallwall_thread.tpl @@ -0,0 +1,119 @@ +
    + $item.star.starred + {{ if $item.lock }}$item.lock{{ endif }} + +
    + +
    +
    +
    +
    + + $item.name + + menu + + +
    +
    + + $item.owner_name + +
    +
    $item.location
    +
    +
    + {{ if $item.title }}

    $item.title

    {{ endif }} + $item.body +
    +
    +
    + +
    + {{ for $item.tags as $tag }} + $tag + {{ endfor }} +
    +
    +
    + +
    +
    + $item.name $item.ago +
    $item.to $item.owner_name $item.vwall + +
    + +
    + {{ if $item.star }} + $item.star.do + $item.star.undo + $item.star.tagger + + {{ endif }} + {{ if $item.filer }} + $item.filer + {{ endif }} + + {{ if $item.vote }} + $item.vote.like.1 + $item.vote.dislike.1 + {{ endif }} + + {{ if $item.vote.share }} + $item.vote.share.1 + {{ endif }} +
    + +
    + + {{ if $item.drop.dropping }} + + $item.drop.delete + {{ endif }} + {{ if $item.edpost }} + + {{ endif }} +
    + +
    +
    +
    + + +
    $item.dislike
    +
    + + {{ if $item.threaded }}{{ if $item.comment }} +
    + +
    + $item.comment +
    +
    + {{ endif }}{{ endif }} +
    + + +{{ for $item.children as $item }} +
    + {{ if $item.type == tag }} + {{ inc wall_item_tag.tpl }}{{ endinc }} + {{ else }} + {{ inc $item.template }}{{ endinc }} + {{ endif }} +
    +{{ endfor }} + +{{ if $item.flatten }} +
    + $item.comment +
    +{{ endif }} From 5d7f9d3b4b80881e7c7cfa5c0890ec80234aed4f Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 5 Aug 2012 21:43:20 -0700 Subject: [PATCH 040/139] rev update --- boot.php | 2 +- include/items.php | 1 + util/messages.po | 272 +++++++++++++++++++++++----------------------- 3 files changed, 136 insertions(+), 139 deletions(-) diff --git a/boot.php b/boot.php index 7e3e9fee7b..6a350c5f4d 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); require_once('library/Mobile_Detect/Mobile_Detect.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1425' ); +define ( 'FRIENDICA_VERSION', '3.0.1426' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1154 ); diff --git a/include/items.php b/include/items.php index e5b9dbffa6..c3dc7d06cb 100755 --- a/include/items.php +++ b/include/items.php @@ -3701,6 +3701,7 @@ function drop_item($id,$interactive = true) { if((local_user() == $item['uid']) || (remote_user() == $item['contact-id']) || (! $interactive)) { + logger('delete item: ' . $item['id'], LOGGER_DEBUG); // delete the item $r = q("UPDATE `item` SET `deleted` = 1, `title` = '', `body` = '', `edited` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1", diff --git a/util/messages.po b/util/messages.po index 04c69c6c1b..5f6dfcbd9e 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1425\n" +"Project-Id-Version: 3.0.1426\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-08-04 10:00-0700\n" +"POT-Creation-Date: 2012-08-05 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -56,7 +56,7 @@ msgstr "" #: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81 #: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:510 #: ../../addon/facebook/facebook.php:516 ../../addon/dav/layout.fnk.php:354 -#: ../../include/items.php:3813 ../../index.php:315 +#: ../../include/items.php:3814 ../../index.php:315 msgid "Permission denied." msgstr "" @@ -125,7 +125,7 @@ msgstr "" #: ../../mod/crepair.php:166 ../../mod/fsuggest.php:107 #: ../../mod/events.php:439 ../../mod/photos.php:971 ../../mod/photos.php:1042 #: ../../mod/photos.php:1285 ../../mod/photos.php:1325 -#: ../../mod/photos.php:1365 ../../mod/photos.php:1396 +#: ../../mod/photos.php:1366 ../../mod/photos.php:1398 #: ../../mod/install.php:246 ../../mod/install.php:284 #: ../../mod/localtime.php:45 ../../mod/poke.php:199 ../../mod/content.php:691 #: ../../mod/contacts.php:341 ../../mod/settings.php:537 @@ -232,7 +232,7 @@ msgid "link to source" msgstr "" #: ../../mod/events.php:331 ../../view/theme/diabook/theme.php:131 -#: ../../include/nav.php:52 ../../boot.php:1634 +#: ../../include/nav.php:52 ../../boot.php:1635 msgid "Events" msgstr "" @@ -288,7 +288,7 @@ msgstr "" #: ../../mod/events.php:432 ../../mod/directory.php:132 #: ../../include/event.php:40 ../../include/bb2diaspora.php:447 -#: ../../boot.php:1186 +#: ../../boot.php:1187 msgid "Location:" msgstr "" @@ -370,19 +370,19 @@ msgstr "" msgid "No" msgstr "" -#: ../../mod/photos.php:46 ../../boot.php:1627 +#: ../../mod/photos.php:46 ../../boot.php:1628 msgid "Photo Albums" msgstr "" #: ../../mod/photos.php:54 ../../mod/photos.php:137 ../../mod/photos.php:952 #: ../../mod/photos.php:1034 ../../mod/photos.php:1049 -#: ../../mod/photos.php:1474 ../../mod/photos.php:1486 +#: ../../mod/photos.php:1477 ../../mod/photos.php:1489 #: ../../addon/communityhome/communityhome.php:110 #: ../../view/theme/diabook/theme.php:598 msgid "Contact Photos" msgstr "" -#: ../../mod/photos.php:61 ../../mod/photos.php:1059 ../../mod/photos.php:1524 +#: ../../mod/photos.php:61 ../../mod/photos.php:1059 ../../mod/photos.php:1527 msgid "Upload New Photos" msgstr "" @@ -499,7 +499,7 @@ msgstr "" msgid "Edit Album" msgstr "" -#: ../../mod/photos.php:1077 ../../mod/photos.php:1507 +#: ../../mod/photos.php:1077 ../../mod/photos.php:1510 msgid "View Photo" msgstr "" @@ -574,48 +574,48 @@ msgstr "" msgid "I don't like this (toggle)" msgstr "" -#: ../../mod/photos.php:1305 ../../include/conversation.php:1128 +#: ../../mod/photos.php:1305 ../../include/conversation.php:1129 msgid "Share" msgstr "" #: ../../mod/photos.php:1306 ../../mod/editpost.php:112 -#: ../../mod/content.php:482 ../../mod/content.php:842 +#: ../../mod/content.php:482 ../../mod/content.php:843 #: ../../mod/wallmessage.php:152 ../../mod/message.php:293 #: ../../mod/message.php:479 ../../include/conversation.php:487 -#: ../../include/conversation.php:847 ../../include/conversation.php:1147 +#: ../../include/conversation.php:848 ../../include/conversation.php:1148 msgid "Please wait" msgstr "" -#: ../../mod/photos.php:1322 ../../mod/photos.php:1362 -#: ../../mod/photos.php:1393 ../../mod/content.php:688 +#: ../../mod/photos.php:1322 ../../mod/photos.php:1363 +#: ../../mod/photos.php:1395 ../../mod/content.php:688 #: ../../include/conversation.php:693 msgid "This is you" msgstr "" -#: ../../mod/photos.php:1324 ../../mod/photos.php:1364 -#: ../../mod/photos.php:1395 ../../mod/content.php:690 -#: ../../include/conversation.php:695 ../../boot.php:569 +#: ../../mod/photos.php:1324 ../../mod/photos.php:1365 +#: ../../mod/photos.php:1397 ../../mod/content.php:690 +#: ../../include/conversation.php:695 ../../boot.php:570 msgid "Comment" msgstr "" #: ../../mod/photos.php:1326 ../../mod/editpost.php:133 #: ../../mod/content.php:700 ../../include/conversation.php:705 -#: ../../include/conversation.php:1165 +#: ../../include/conversation.php:1166 msgid "Preview" msgstr "" -#: ../../mod/photos.php:1423 ../../mod/content.php:439 -#: ../../mod/content.php:720 ../../mod/settings.php:600 +#: ../../mod/photos.php:1426 ../../mod/content.php:439 +#: ../../mod/content.php:721 ../../mod/settings.php:600 #: ../../mod/settings.php:689 ../../mod/group.php:168 ../../mod/admin.php:668 -#: ../../include/conversation.php:444 ../../include/conversation.php:725 +#: ../../include/conversation.php:444 ../../include/conversation.php:726 msgid "Delete" msgstr "" -#: ../../mod/photos.php:1513 +#: ../../mod/photos.php:1516 msgid "View Album" msgstr "" -#: ../../mod/photos.php:1522 +#: ../../mod/photos.php:1525 msgid "Recent Photos" msgstr "" @@ -673,28 +673,28 @@ msgstr "" msgid "Edit post" msgstr "" -#: ../../mod/editpost.php:88 ../../include/conversation.php:1114 +#: ../../mod/editpost.php:88 ../../include/conversation.php:1115 msgid "Post to Email" msgstr "" -#: ../../mod/editpost.php:103 ../../mod/content.php:707 -#: ../../mod/settings.php:599 ../../include/conversation.php:712 +#: ../../mod/editpost.php:103 ../../mod/content.php:708 +#: ../../mod/settings.php:599 ../../include/conversation.php:713 msgid "Edit" msgstr "" #: ../../mod/editpost.php:104 ../../mod/wallmessage.php:150 #: ../../mod/message.php:291 ../../mod/message.php:476 -#: ../../include/conversation.php:1129 +#: ../../include/conversation.php:1130 msgid "Upload photo" msgstr "" -#: ../../mod/editpost.php:105 ../../include/conversation.php:1131 +#: ../../mod/editpost.php:105 ../../include/conversation.php:1132 msgid "Attach file" msgstr "" #: ../../mod/editpost.php:106 ../../mod/wallmessage.php:151 #: ../../mod/message.php:292 ../../mod/message.php:477 -#: ../../include/conversation.php:1133 +#: ../../include/conversation.php:1134 msgid "Insert web link" msgstr "" @@ -710,42 +710,38 @@ msgstr "" msgid "Insert Vorbis [.ogg] audio" msgstr "" -#: ../../mod/editpost.php:110 ../../include/conversation.php:1139 +#: ../../mod/editpost.php:110 ../../include/conversation.php:1140 msgid "Set your location" msgstr "" -#: ../../mod/editpost.php:111 ../../include/conversation.php:1141 +#: ../../mod/editpost.php:111 ../../include/conversation.php:1142 msgid "Clear browser location" msgstr "" -#: ../../mod/editpost.php:113 ../../include/conversation.php:1148 +#: ../../mod/editpost.php:113 ../../include/conversation.php:1149 msgid "Permission settings" msgstr "" -#: ../../mod/editpost.php:121 ../../include/conversation.php:1157 +#: ../../mod/editpost.php:121 ../../include/conversation.php:1158 msgid "CC: email addresses" msgstr "" -#: ../../mod/editpost.php:122 ../../include/conversation.php:1158 +#: ../../mod/editpost.php:122 ../../include/conversation.php:1159 msgid "Public post" msgstr "" -#: ../../mod/editpost.php:125 ../../include/conversation.php:1144 +#: ../../mod/editpost.php:125 ../../include/conversation.php:1145 msgid "Set title" msgstr "" -#: ../../mod/editpost.php:127 ../../include/conversation.php:1146 +#: ../../mod/editpost.php:127 ../../include/conversation.php:1147 msgid "Categories (comma-separated list)" msgstr "" -#: ../../mod/editpost.php:128 ../../include/conversation.php:1160 +#: ../../mod/editpost.php:128 ../../include/conversation.php:1161 msgid "Example: bob@example.com, mary@example.com" msgstr "" -#: ../../mod/editpost.php:135 ../../include/conversation.php:1166 -msgid "Friendica mobile web" -msgstr "" - #: ../../mod/dfrn_request.php:93 msgid "This introduction has already been accepted." msgstr "" @@ -1255,7 +1251,7 @@ msgid "is interested in:" msgstr "" #: ../../mod/match.php:58 ../../mod/suggest.php:59 -#: ../../include/contact_widgets.php:9 ../../boot.php:1130 +#: ../../include/contact_widgets.php:9 ../../boot.php:1131 msgid "Connect" msgstr "" @@ -1283,20 +1279,20 @@ msgstr "" msgid "Group: " msgstr "" -#: ../../mod/content.php:438 ../../mod/content.php:719 -#: ../../include/conversation.php:443 ../../include/conversation.php:724 +#: ../../mod/content.php:438 ../../mod/content.php:720 +#: ../../include/conversation.php:443 ../../include/conversation.php:725 msgid "Select" msgstr "" -#: ../../mod/content.php:455 ../../mod/content.php:812 -#: ../../mod/content.php:813 ../../include/conversation.php:460 -#: ../../include/conversation.php:817 ../../include/conversation.php:818 +#: ../../mod/content.php:455 ../../mod/content.php:813 +#: ../../mod/content.php:814 ../../include/conversation.php:460 +#: ../../include/conversation.php:818 ../../include/conversation.php:819 #, php-format msgid "View %s's profile @ %s" msgstr "" -#: ../../mod/content.php:465 ../../mod/content.php:824 -#: ../../include/conversation.php:470 ../../include/conversation.php:829 +#: ../../mod/content.php:465 ../../mod/content.php:825 +#: ../../include/conversation.php:470 ../../include/conversation.php:830 #, php-format msgid "%s from %s" msgstr "" @@ -1315,7 +1311,7 @@ msgstr[1] "" #: ../../mod/content.php:587 ../../addon/page/page.php:76 #: ../../addon/page/page.php:110 ../../addon/showmore/showmore.php:119 #: ../../include/contact_widgets.php:188 ../../include/conversation.php:592 -#: ../../boot.php:570 +#: ../../boot.php:571 msgid "show more" msgstr "" @@ -1367,39 +1363,39 @@ msgstr "" msgid "Video" msgstr "" -#: ../../mod/content.php:732 ../../include/conversation.php:737 +#: ../../mod/content.php:733 ../../include/conversation.php:738 msgid "add star" msgstr "" -#: ../../mod/content.php:733 ../../include/conversation.php:738 +#: ../../mod/content.php:734 ../../include/conversation.php:739 msgid "remove star" msgstr "" -#: ../../mod/content.php:734 ../../include/conversation.php:739 +#: ../../mod/content.php:735 ../../include/conversation.php:740 msgid "toggle star status" msgstr "" -#: ../../mod/content.php:737 ../../include/conversation.php:742 +#: ../../mod/content.php:738 ../../include/conversation.php:743 msgid "starred" msgstr "" -#: ../../mod/content.php:738 ../../include/conversation.php:743 +#: ../../mod/content.php:739 ../../include/conversation.php:744 msgid "add tag" msgstr "" -#: ../../mod/content.php:742 ../../include/conversation.php:747 +#: ../../mod/content.php:743 ../../include/conversation.php:748 msgid "save to folder" msgstr "" -#: ../../mod/content.php:814 ../../include/conversation.php:819 +#: ../../mod/content.php:815 ../../include/conversation.php:820 msgid "to" msgstr "" -#: ../../mod/content.php:815 ../../include/conversation.php:820 +#: ../../mod/content.php:816 ../../include/conversation.php:821 msgid "Wall-to-Wall" msgstr "" -#: ../../mod/content.php:816 ../../include/conversation.php:821 +#: ../../mod/content.php:817 ../../include/conversation.php:822 msgid "via Wall-To-Wall:" msgstr "" @@ -1918,7 +1914,7 @@ msgstr "" #: ../../addon/facebook/facebook.php:1200 #: ../../addon/public_server/public_server.php:62 #: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:3214 -#: ../../boot.php:779 +#: ../../boot.php:780 msgid "Administrator" msgstr "" @@ -1928,7 +1924,7 @@ msgid "" "Password reset failed." msgstr "" -#: ../../mod/lostpass.php:83 ../../boot.php:912 +#: ../../mod/lostpass.php:83 ../../boot.php:913 msgid "Password Reset" msgstr "" @@ -2596,7 +2592,7 @@ msgstr "" msgid "Invalid contact." msgstr "" -#: ../../mod/notes.php:44 ../../boot.php:1641 +#: ../../mod/notes.php:44 ../../boot.php:1642 msgid "Personal Notes" msgstr "" @@ -2639,7 +2635,7 @@ msgstr "" #: ../../mod/wallmessage.php:123 ../../mod/wallmessage.php:131 #: ../../mod/message.php:242 ../../mod/message.php:250 -#: ../../include/conversation.php:1065 ../../include/conversation.php:1082 +#: ../../include/conversation.php:1066 ../../include/conversation.php:1083 msgid "Please enter a link URL:" msgstr "" @@ -2849,7 +2845,7 @@ msgstr "" #: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:128 #: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:84 -#: ../../include/nav.php:50 ../../boot.php:1617 +#: ../../include/nav.php:50 ../../boot.php:1618 msgid "Profile" msgstr "" @@ -2953,7 +2949,7 @@ msgstr "" msgid "Choose a nickname: " msgstr "" -#: ../../mod/register.php:269 ../../include/nav.php:81 ../../boot.php:878 +#: ../../mod/register.php:269 ../../include/nav.php:81 ../../boot.php:879 msgid "Register" msgstr "" @@ -2996,7 +2992,7 @@ msgid "Access denied." msgstr "" #: ../../mod/fbrowser.php:25 ../../view/theme/diabook/theme.php:130 -#: ../../include/nav.php:51 ../../boot.php:1624 +#: ../../include/nav.php:51 ../../boot.php:1625 msgid "Photos" msgstr "" @@ -3807,7 +3803,7 @@ msgstr "" msgid "FTP Password" msgstr "" -#: ../../mod/profile.php:21 ../../boot.php:1043 +#: ../../mod/profile.php:21 ../../boot.php:1044 msgid "Requested profile is not available." msgstr "" @@ -4202,28 +4198,28 @@ msgstr "" msgid "Edit/Manage Profiles" msgstr "" -#: ../../mod/profiles.php:673 ../../boot.php:1152 +#: ../../mod/profiles.php:673 ../../boot.php:1153 msgid "Change profile photo" msgstr "" -#: ../../mod/profiles.php:674 ../../boot.php:1153 +#: ../../mod/profiles.php:674 ../../boot.php:1154 msgid "Create New Profile" msgstr "" -#: ../../mod/profiles.php:685 ../../boot.php:1163 +#: ../../mod/profiles.php:685 ../../boot.php:1164 msgid "Profile Image" msgstr "" -#: ../../mod/profiles.php:687 ../../boot.php:1166 +#: ../../mod/profiles.php:687 ../../boot.php:1167 msgid "visible to everybody" msgstr "" -#: ../../mod/profiles.php:688 ../../boot.php:1167 +#: ../../mod/profiles.php:688 ../../boot.php:1168 msgid "Edit visibility" msgstr "" -#: ../../mod/filer.php:29 ../../include/conversation.php:1069 -#: ../../include/conversation.php:1086 +#: ../../mod/filer.php:29 ../../include/conversation.php:1070 +#: ../../include/conversation.php:1087 msgid "Save to Folder:" msgstr "" @@ -4347,17 +4343,17 @@ msgid "Gender: " msgstr "" #: ../../mod/directory.php:134 ../../include/profile_advanced.php:17 -#: ../../boot.php:1188 +#: ../../boot.php:1189 msgid "Gender:" msgstr "" #: ../../mod/directory.php:136 ../../include/profile_advanced.php:37 -#: ../../boot.php:1191 +#: ../../boot.php:1192 msgid "Status:" msgstr "" #: ../../mod/directory.php:138 ../../include/profile_advanced.php:48 -#: ../../boot.php:1193 +#: ../../boot.php:1194 msgid "Homepage:" msgstr "" @@ -5115,7 +5111,7 @@ msgstr "" #: ../../addon/communityhome/communityhome.php:34 #: ../../addon/communityhome/twillingham/communityhome.php:28 #: ../../addon/communityhome/twillingham/communityhome.php:34 -#: ../../include/nav.php:64 ../../boot.php:899 +#: ../../include/nav.php:64 ../../boot.php:900 msgid "Login" msgstr "" @@ -7551,7 +7547,7 @@ msgstr "" msgid "Contacts not in any group" msgstr "" -#: ../../include/nav.php:46 ../../boot.php:898 +#: ../../include/nav.php:46 ../../boot.php:899 msgid "Logout" msgstr "" @@ -7559,7 +7555,7 @@ msgstr "" msgid "End this session" msgstr "" -#: ../../include/nav.php:49 ../../boot.php:1610 +#: ../../include/nav.php:49 ../../boot.php:1611 msgid "Status" msgstr "" @@ -7639,11 +7635,11 @@ msgstr "" msgid "Manage other pages" msgstr "" -#: ../../include/nav.php:138 ../../boot.php:1146 +#: ../../include/nav.php:138 ../../boot.php:1147 msgid "Profiles" msgstr "" -#: ../../include/nav.php:138 ../../boot.php:1146 +#: ../../include/nav.php:138 ../../boot.php:1147 msgid "Manage/edit profiles" msgstr "" @@ -8072,7 +8068,7 @@ msgstr "" msgid "You have a new follower at " msgstr "" -#: ../../include/items.php:3880 +#: ../../include/items.php:3881 msgid "Archives" msgstr "" @@ -8166,34 +8162,34 @@ msgstr "" msgid "stopped following" msgstr "" -#: ../../include/Contact.php:220 ../../include/conversation.php:966 +#: ../../include/Contact.php:220 ../../include/conversation.php:967 msgid "Poke" msgstr "" -#: ../../include/Contact.php:221 ../../include/conversation.php:960 +#: ../../include/Contact.php:221 ../../include/conversation.php:961 msgid "View Status" msgstr "" -#: ../../include/Contact.php:222 ../../include/conversation.php:961 +#: ../../include/Contact.php:222 ../../include/conversation.php:962 msgid "View Profile" msgstr "" -#: ../../include/Contact.php:223 ../../include/conversation.php:962 +#: ../../include/Contact.php:223 ../../include/conversation.php:963 msgid "View Photos" msgstr "" #: ../../include/Contact.php:224 ../../include/Contact.php:237 -#: ../../include/conversation.php:963 +#: ../../include/conversation.php:964 msgid "Network Posts" msgstr "" #: ../../include/Contact.php:225 ../../include/Contact.php:237 -#: ../../include/conversation.php:964 +#: ../../include/conversation.php:965 msgid "Edit Contact" msgstr "" #: ../../include/Contact.php:226 ../../include/Contact.php:237 -#: ../../include/conversation.php:965 +#: ../../include/conversation.php:966 msgid "Send PM" msgstr "" @@ -8211,106 +8207,106 @@ msgstr "" msgid "%1$s marked %2$s's %3$s as favorite" msgstr "" -#: ../../include/conversation.php:866 +#: ../../include/conversation.php:867 msgid "Delete Selected Items" msgstr "" -#: ../../include/conversation.php:1024 +#: ../../include/conversation.php:1025 #, php-format msgid "%s likes this." msgstr "" -#: ../../include/conversation.php:1024 +#: ../../include/conversation.php:1025 #, php-format msgid "%s doesn't like this." msgstr "" -#: ../../include/conversation.php:1028 +#: ../../include/conversation.php:1029 #, php-format msgid "%2$d people like this." msgstr "" -#: ../../include/conversation.php:1030 +#: ../../include/conversation.php:1031 #, php-format msgid "%2$d people don't like this." msgstr "" -#: ../../include/conversation.php:1036 +#: ../../include/conversation.php:1037 msgid "and" msgstr "" -#: ../../include/conversation.php:1039 +#: ../../include/conversation.php:1040 #, php-format msgid ", and %d other people" msgstr "" -#: ../../include/conversation.php:1040 +#: ../../include/conversation.php:1041 #, php-format msgid "%s like this." msgstr "" -#: ../../include/conversation.php:1040 +#: ../../include/conversation.php:1041 #, php-format msgid "%s don't like this." msgstr "" -#: ../../include/conversation.php:1064 ../../include/conversation.php:1081 +#: ../../include/conversation.php:1065 ../../include/conversation.php:1082 msgid "Visible to everybody" msgstr "" -#: ../../include/conversation.php:1066 ../../include/conversation.php:1083 +#: ../../include/conversation.php:1067 ../../include/conversation.php:1084 msgid "Please enter a video link/URL:" msgstr "" -#: ../../include/conversation.php:1067 ../../include/conversation.php:1084 +#: ../../include/conversation.php:1068 ../../include/conversation.php:1085 msgid "Please enter an audio link/URL:" msgstr "" -#: ../../include/conversation.php:1068 ../../include/conversation.php:1085 +#: ../../include/conversation.php:1069 ../../include/conversation.php:1086 msgid "Tag term:" msgstr "" -#: ../../include/conversation.php:1070 ../../include/conversation.php:1087 +#: ../../include/conversation.php:1071 ../../include/conversation.php:1088 msgid "Where are you right now?" msgstr "" -#: ../../include/conversation.php:1130 +#: ../../include/conversation.php:1131 msgid "upload photo" msgstr "" -#: ../../include/conversation.php:1132 +#: ../../include/conversation.php:1133 msgid "attach file" msgstr "" -#: ../../include/conversation.php:1134 +#: ../../include/conversation.php:1135 msgid "web link" msgstr "" -#: ../../include/conversation.php:1135 +#: ../../include/conversation.php:1136 msgid "Insert video link" msgstr "" -#: ../../include/conversation.php:1136 +#: ../../include/conversation.php:1137 msgid "video link" msgstr "" -#: ../../include/conversation.php:1137 +#: ../../include/conversation.php:1138 msgid "Insert audio link" msgstr "" -#: ../../include/conversation.php:1138 +#: ../../include/conversation.php:1139 msgid "audio link" msgstr "" -#: ../../include/conversation.php:1140 +#: ../../include/conversation.php:1141 msgid "set location" msgstr "" -#: ../../include/conversation.php:1142 +#: ../../include/conversation.php:1143 msgid "clear location" msgstr "" -#: ../../include/conversation.php:1149 +#: ../../include/conversation.php:1150 msgid "permissions" msgstr "" @@ -8326,96 +8322,96 @@ msgstr "" msgid "This action is not available under your subscription plan." msgstr "" -#: ../../boot.php:568 +#: ../../boot.php:569 msgid "Delete this item?" msgstr "" -#: ../../boot.php:571 +#: ../../boot.php:572 msgid "show fewer" msgstr "" -#: ../../boot.php:774 +#: ../../boot.php:775 #, php-format msgid "Update %s failed. See error logs." msgstr "" -#: ../../boot.php:776 +#: ../../boot.php:777 #, php-format msgid "Update Error at %s" msgstr "" -#: ../../boot.php:877 +#: ../../boot.php:878 msgid "Create a New Account" msgstr "" -#: ../../boot.php:901 +#: ../../boot.php:902 msgid "Nickname or Email address: " msgstr "" -#: ../../boot.php:902 +#: ../../boot.php:903 msgid "Password: " msgstr "" -#: ../../boot.php:905 +#: ../../boot.php:906 msgid "Or login using OpenID: " msgstr "" -#: ../../boot.php:911 +#: ../../boot.php:912 msgid "Forgot your password?" msgstr "" -#: ../../boot.php:1078 +#: ../../boot.php:1079 msgid "Edit profile" msgstr "" -#: ../../boot.php:1138 +#: ../../boot.php:1139 msgid "Message" msgstr "" -#: ../../boot.php:1260 ../../boot.php:1346 +#: ../../boot.php:1261 ../../boot.php:1347 msgid "g A l F d" msgstr "" -#: ../../boot.php:1261 ../../boot.php:1347 +#: ../../boot.php:1262 ../../boot.php:1348 msgid "F d" msgstr "" -#: ../../boot.php:1306 ../../boot.php:1387 +#: ../../boot.php:1307 ../../boot.php:1388 msgid "[today]" msgstr "" -#: ../../boot.php:1318 +#: ../../boot.php:1319 msgid "Birthday Reminders" msgstr "" -#: ../../boot.php:1319 +#: ../../boot.php:1320 msgid "Birthdays this week:" msgstr "" -#: ../../boot.php:1380 +#: ../../boot.php:1381 msgid "[No description]" msgstr "" -#: ../../boot.php:1398 +#: ../../boot.php:1399 msgid "Event Reminders" msgstr "" -#: ../../boot.php:1399 +#: ../../boot.php:1400 msgid "Events this week:" msgstr "" -#: ../../boot.php:1613 +#: ../../boot.php:1614 msgid "Status Messages and Posts" msgstr "" -#: ../../boot.php:1620 +#: ../../boot.php:1621 msgid "Profile Details" msgstr "" -#: ../../boot.php:1637 +#: ../../boot.php:1638 msgid "Events and Calendar" msgstr "" -#: ../../boot.php:1644 +#: ../../boot.php:1645 msgid "Only You Can See This" msgstr "" From 4062312e9c41a337d54beaccd57f8637eb8decad Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Mon, 6 Aug 2012 04:47:35 -0400 Subject: [PATCH 041/139] quattro: collaps threaded items --- view/theme/quattro/dark/style.css | 21 +++++++++++--------- view/theme/quattro/green/style.css | 21 +++++++++++--------- view/theme/quattro/quattro.less | 9 +++++---- view/theme/quattro/threaded_conversation.tpl | 12 +---------- view/theme/quattro/wall_thread.tpl | 15 ++++++++++++++ view/theme/quattro/wallwall_thread.tpl | 15 ++++++++++++++ 6 files changed, 60 insertions(+), 33 deletions(-) diff --git a/view/theme/quattro/dark/style.css b/view/theme/quattro/dark/style.css index 6bd9ab06fb..5ff0591602 100644 --- a/view/theme/quattro/dark/style.css +++ b/view/theme/quattro/dark/style.css @@ -1143,33 +1143,36 @@ section { height: 25px; } /* threaded comments */ -.children > .children { +.children .children { margin-left: 40px; } -.children > .children .wall-item-container { +.children .children .wall-item-container { width: 710px; } -.children > .children > .children { +.children .children .children { margin-left: 40px; } -.children > .children > .children .wall-item-container { +.children .children .children .wall-item-container { width: 670px; } -.children > .children > .children > .children { +.children .children .children .children { margin-left: 40px; } -.children > .children > .children > .children .wall-item-container { +.children .children .children .children .wall-item-container { width: 630px; } -.children > .children > .children > .children > .children { +.children .children .children .children .children { margin-left: 40px; } -.children > .children > .children > .children > .children .wall-item-container { +.children .children .children .children .children .wall-item-container { width: 590px; } -.children > .children > .children > .children > .children .children { +.children .children .children .children .children .children { margin-left: 0px; } +.threaded .hide-comments-outer { + margin-left: 20px; +} span[id^="showmore-teaser"] { background: url("showmore-bg.jpg") no-repeat center bottom; } diff --git a/view/theme/quattro/green/style.css b/view/theme/quattro/green/style.css index 2e97027b4b..3cc4e8cf61 100644 --- a/view/theme/quattro/green/style.css +++ b/view/theme/quattro/green/style.css @@ -1143,33 +1143,36 @@ section { height: 25px; } /* threaded comments */ -.children > .children { +.children .children { margin-left: 40px; } -.children > .children .wall-item-container { +.children .children .wall-item-container { width: 710px; } -.children > .children > .children { +.children .children .children { margin-left: 40px; } -.children > .children > .children .wall-item-container { +.children .children .children .wall-item-container { width: 670px; } -.children > .children > .children > .children { +.children .children .children .children { margin-left: 40px; } -.children > .children > .children > .children .wall-item-container { +.children .children .children .children .wall-item-container { width: 630px; } -.children > .children > .children > .children > .children { +.children .children .children .children .children { margin-left: 40px; } -.children > .children > .children > .children > .children .wall-item-container { +.children .children .children .children .children .wall-item-container { width: 590px; } -.children > .children > .children > .children > .children .children { +.children .children .children .children .children .children { margin-left: 0px; } +.threaded .hide-comments-outer { + margin-left: 20px; +} span[id^="showmore-teaser"] { background: url("showmore-bg.jpg") no-repeat center bottom; } diff --git a/view/theme/quattro/quattro.less b/view/theme/quattro/quattro.less index 55b2d73ac5..a424ee0207 100644 --- a/view/theme/quattro/quattro.less +++ b/view/theme/quattro/quattro.less @@ -599,19 +599,19 @@ section { /* threaded comments */ .children { - &> .children { + & .children { margin-left: 40px; .wall-item-container { width: 710px; } - &> .children { + & .children { margin-left: 40px; .wall-item-container { width: 670px; } - &> .children { + & .children { margin-left: 40px; .wall-item-container { width: 630px; } - &> .children { + & .children { margin-left: 40px; .wall-item-container { width: 590px; } @@ -623,6 +623,7 @@ section { } } } +.threaded .hide-comments-outer { margin-left: 20px; } span[id^="showmore-teaser"]{ background: url("showmore-bg.jpg") no-repeat center bottom; diff --git a/view/theme/quattro/threaded_conversation.tpl b/view/theme/quattro/threaded_conversation.tpl index 305ace92ef..491c47302f 100644 --- a/view/theme/quattro/threaded_conversation.tpl +++ b/view/theme/quattro/threaded_conversation.tpl @@ -1,16 +1,6 @@ {{ for $threads as $item }}
    - {{if $mode == display}} - {{ else }} - {{if $item.comment_firstcollapsed}} -
    - $item.num_comments $item.hide_text -
    - {{endif}} - {{ endif }} - + {{ if $item.type == tag }} {{ inc wall_item_tag.tpl }}{{ endinc }} {{ else }} diff --git a/view/theme/quattro/wall_thread.tpl b/view/theme/quattro/wall_thread.tpl index b51dc3d7df..4d454f00db 100644 --- a/view/theme/quattro/wall_thread.tpl +++ b/view/theme/quattro/wall_thread.tpl @@ -1,3 +1,13 @@ +{{if $mode == display}} +{{ else }} +{{if $item.comment_firstcollapsed}} +
    + $item.num_comments $item.hide_text +
    + {{endif}} +{{ endif }} + {{ if $item.flatten }}
    $item.comment diff --git a/view/theme/quattro/wallwall_thread.tpl b/view/theme/quattro/wallwall_thread.tpl index 038b156d12..cc2f8e3627 100644 --- a/view/theme/quattro/wallwall_thread.tpl +++ b/view/theme/quattro/wallwall_thread.tpl @@ -1,3 +1,13 @@ +{{if $mode == display}} +{{ else }} +{{if $item.comment_firstcollapsed}} +
    + $item.num_comments $item.hide_text +
    + {{endif}} +{{ endif }} + {{ if $item.flatten }}
    $item.comment From d8a13d6e8d00347650244ab86958b4b2a4cdb944 Mon Sep 17 00:00:00 2001 From: Zach Prezkuta Date: Mon, 6 Aug 2012 09:59:57 -0600 Subject: [PATCH 042/139] allow themes to change the size of embedded videos --- boot.php | 12 +++++++++++- include/bbcode.php | 8 ++++---- include/oembed.php | 10 ++++++---- view/theme/frost-mobile/profile_photo.tpl | 19 +++++++++++++++++++ view/theme/frost-mobile/theme.php | 4 +++- view/theme/frost-mobile/wallwall_item.tpl | 4 ++-- 6 files changed, 45 insertions(+), 12 deletions(-) create mode 100644 view/theme/frost-mobile/profile_photo.tpl diff --git a/boot.php b/boot.php index 6a350c5f4d..9702b71a83 100644 --- a/boot.php +++ b/boot.php @@ -349,12 +349,22 @@ if(! class_exists('App')) { public $plugins; public $apps = array(); public $identities; - public $sourcename = ''; public $nav_sel; public $category; + // Allow themes to control internal parameters + // by changing App values in theme.php + // + // Possibly should make these part of the plugin + // system, but it seems like overkill to invoke + // all the plugin machinery just to change a couple + // of values + public $sourcename = ''; + public $videowidth = 425; + public $videoheight = 350; + private $scheme; private $hostname; private $baseurl; diff --git a/include/bbcode.php b/include/bbcode.php index d83cd35814..85c0059ccd 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -325,7 +325,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) { // Try to Oembed if ($tryoembed) { - $Text = preg_replace("/\[video\](.*?\.(ogg|ogv|oga|ogm|webm|mp4))\[\/video\]/ism", '', $Text); + $Text = preg_replace("/\[video\](.*?\.(ogg|ogv|oga|ogm|webm|mp4))\[\/video\]/ism", '', $Text); $Text = preg_replace("/\[audio\](.*?\.(ogg|ogv|oga|ogm|webm|mp4|mp3))\[\/audio\]/ism", '', $Text); $Text = preg_replace_callback("/\[video\](.*?)\[\/video\]/ism", 'tryoembed', $Text); @@ -339,7 +339,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) { if ($tryoembed) - $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '', $Text); + $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '', $Text); else $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '$1', $Text); @@ -355,7 +355,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) { $Text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism",'[youtube]$1[/youtube]',$Text); if ($tryoembed) - $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '', $Text); + $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '', $Text); else $Text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", "http://www.youtube.com/watch?v=$1", $Text); @@ -369,7 +369,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true) { $Text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism",'[vimeo]$1[/vimeo]',$Text); if ($tryoembed) - $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '', $Text); + $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '', $Text); else $Text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", "http://vimeo.com/$1", $Text); diff --git a/include/oembed.php b/include/oembed.php index a4452586ee..6fc4c53717 100755 --- a/include/oembed.php +++ b/include/oembed.php @@ -12,7 +12,9 @@ function oembed_replacecb($matches){ function oembed_fetch_url($embedurl){ - $txt = Cache::get($embedurl); + $a = get_app(); + + $txt = Cache::get($a->videowidth . $embedurl); // These media files should now be caught in bbcode.php // left here as a fallback in case this is called from another source @@ -38,7 +40,7 @@ function oembed_fetch_url($embedurl){ $entries = $xpath->query("//link[@type='application/json+oembed']"); foreach($entries as $e){ $href = $e->getAttributeNode("href")->nodeValue; - $txt = fetch_url($href . '&maxwidth=425'); + $txt = fetch_url($href . '&maxwidth=' . $a->videowidth); break; } } @@ -47,7 +49,7 @@ function oembed_fetch_url($embedurl){ if ($txt==false || $txt==""){ // try oohembed service - $ourl = "http://oohembed.com/oohembed/?url=".urlencode($embedurl).'&maxwidth=425'; + $ourl = "http://oohembed.com/oohembed/?url=".urlencode($embedurl).'&maxwidth=' . $a->videowidth; $txt = fetch_url($ourl); } @@ -55,7 +57,7 @@ function oembed_fetch_url($embedurl){ if ($txt[0]!="{") $txt='{"type":"error"}'; //save in cache - Cache::set($embedurl,$txt); + Cache::set($a->videowidth . $embedurl,$txt); } diff --git a/view/theme/frost-mobile/profile_photo.tpl b/view/theme/frost-mobile/profile_photo.tpl new file mode 100644 index 0000000000..42fc139f8f --- /dev/null +++ b/view/theme/frost-mobile/profile_photo.tpl @@ -0,0 +1,19 @@ +

    $title

    + + + + +
    + + +
    + +
    + +
    + + + + diff --git a/view/theme/frost-mobile/theme.php b/view/theme/frost-mobile/theme.php index 314361b9c9..96d40958ef 100644 --- a/view/theme/frost-mobile/theme.php +++ b/view/theme/frost-mobile/theme.php @@ -4,7 +4,7 @@ * Name: Frost--mobile version * Description: Like frosted glass * Credits: Navigation icons taken from http://iconza.com. Other icons taken from http://thenounproject.com, including: Like, Dislike, Black Lock, Unlock, Pencil, Tag, Camera, Paperclip (Marie Coons), Folder (Sergio Calcara), Chain-link (Andrew Fortnum), Speaker (Harold Kim), Quotes (Henry Ryder), Video Camera (Anas Ramadan), and Left Arrow, Right Arrow, and Delete X (all three P.J. Onori). All under Attribution (CC BY 3.0). Others from The Noun Project are public domain or No Rights Reserved (CC0). - * Version: Version 0.2.3 + * Version: Version 0.2.4 * Author: Zach P * Maintainer: Zach P */ @@ -24,5 +24,7 @@ function frost_mobile_init(&$a) { $a->sourcename = 'Friendica mobile web'; + $a->videowidth = 250; + $a->videoheight = 200; } diff --git a/view/theme/frost-mobile/wallwall_item.tpl b/view/theme/frost-mobile/wallwall_item.tpl index 113987246c..e4d6b60bb4 100644 --- a/view/theme/frost-mobile/wallwall_item.tpl +++ b/view/theme/frost-mobile/wallwall_item.tpl @@ -18,12 +18,12 @@
      $item.item_photo_menu
    - +
    -->
    - {{ if $item.lock }}
    $item.lock
    + {{ if $item.lock }}$item.lock {{ else }}
    {{ endif }}
    $item.location
    From 7ceb21385935b777f2aa74e0aab42f0eb981736d Mon Sep 17 00:00:00 2001 From: Simon L'nu Date: Mon, 6 Aug 2012 17:05:25 -0400 Subject: [PATCH 043/139] add a 'manage' icon to clarify things Signed-off-by: Simon L'nu --- view/theme/dispy/dark/icons.png | Bin 28696 -> 20161 bytes view/theme/dispy/dark/icons.svg | 130 +++++++++++++++++++++++++++--- view/theme/dispy/dark/style.css | 2 +- view/theme/dispy/dark/style.less | 4 +- view/theme/dispy/light/icons.png | Bin 19715 -> 19765 bytes view/theme/dispy/light/icons.svg | 126 ++++++++++++++++++++++++++--- view/theme/dispy/light/style.css | 2 +- view/theme/dispy/light/style.less | 4 +- 8 files changed, 242 insertions(+), 26 deletions(-) diff --git a/view/theme/dispy/dark/icons.png b/view/theme/dispy/dark/icons.png index 67c8f3f0b4fb8bb919b0aef064f3d1b9102ad6f5..aaf97473b41b8c6f8a0a02d620bc42cb509dbd42 100644 GIT binary patch literal 20161 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%0ATv!>ZmV)9=3!Re(45~`pvhsE) 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 YG*>JiJBk$p?dC)rY@H9+TKlK|8(2`jZ2$lO literal 28696 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

    a?KPRT)M0( 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�P-4z^)L#>=KVe!I;>y{LV- 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 F{{sj%0Hgo_ diff --git a/view/theme/dispy/dark/icons.svg b/view/theme/dispy/dark/icons.svg index 7cbbd3574e..90b83bf811 100644 --- a/view/theme/dispy/dark/icons.svg +++ b/view/theme/dispy/dark/icons.svg @@ -43,6 +43,58 @@ is_visible="true" teeth="10" phi="10" /> + + + + + + + + + + + + + + + fit-margin-bottom="0" + inkscape:showpageshadow="false" + showborder="true"> image/svg+xml - + @@ -117,7 +171,7 @@ id="layer1" transform="translate(0,-852.36218)"> + + + + + + + + + + diff --git a/view/theme/dispy/dark/style.css b/view/theme/dispy/dark/style.css index 95e2bb9983..ff30337a35 100644 --- a/view/theme/dispy/dark/style.css +++ b/view/theme/dispy/dark/style.css @@ -90,7 +90,7 @@ nav .nav-link{display:inline-block;width:22px;height:22px;overflow:hidden;margin #nav-home-link{background-position:-44px -132px;}#nav-home-link:hover{background-position:-66px -132px;} #nav-intro-link{background-position:0px -88px;}#nav-intro-link:hover{background-position:-22px -88px;} #nav-login-link,#nav-logout-link{background-position:0 -88px;}#nav-login-link:hover,#nav-logout-link:hover{background-position:-22px -88px;} -#nav-manage-link{background-position:0px -22px;}#nav-manage-link:hover{background-position:-22px -22px;} +#nav-manage-link{background-position:-88px -88px;}#nav-manage-link:hover{background-position:-110px -88px;} #nav-messages-link{background-position:-44px -88px;}#nav-messages-link:hover{background-position:-66px -88px;} #nav-notify-link,#nav-notifications-linkmenu{background-position:-44px -110px;} #nav-notify-link:hover{background-position:-66px -110px;} diff --git a/view/theme/dispy/dark/style.less b/view/theme/dispy/dark/style.less index f701c12253..d7becbedb8 100644 --- a/view/theme/dispy/dark/style.less +++ b/view/theme/dispy/dark/style.less @@ -542,9 +542,9 @@ nav .nav-link { } } #nav-manage-link { - background-position: 0px -22px; + background-position: -88px -88px; &:hover { - background-position: -22px -22px; + background-position: -110px -88px; } } #nav-messages-link { diff --git a/view/theme/dispy/light/icons.png b/view/theme/dispy/light/icons.png index 5c2eab36e4aa18d896cdd2cc7d8b4d5268f55806..1494c1b8b496400f3a7b766b2b88c9e6c8060c1a 100644 GIT binary patch literal 19765 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 literal 19715 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 + + + + + + + + + + + + + + image/svg+xml - + @@ -1482,7 +1534,7 @@ id="path4166" /> + + + + + + + + diff --git a/view/theme/dispy/light/style.css b/view/theme/dispy/light/style.css index 9a991b796e..03942c6cde 100644 --- a/view/theme/dispy/light/style.css +++ b/view/theme/dispy/light/style.css @@ -90,7 +90,7 @@ nav .nav-link{display:inline-block;width:22px;height:22px;overflow:hidden;margin #nav-home-link{background-position:-44px -132px;}#nav-home-link:hover{background-position:-66px -132px;} #nav-intro-link{background-position:0px -88px;}#nav-intro-link:hover{background-position:-22px -88px;} #nav-login-link,#nav-logout-link{background-position:0 -88px;}#nav-login-link:hover,#nav-logout-link:hover{background-position:-22px -88px;} -#nav-manage-link{background-position:0px -22px;}#nav-manage-link:hover{background-position:-22px -22px;} +#nav-manage-link{background-position:-88px -88px;}#nav-manage-link:hover{background-position:-110px -88px;} #nav-messages-link{background-position:-44px -88px;}#nav-messages-link:hover{background-position:-66px -88px;} #nav-notify-link,#nav-notifications-linkmenu{background-position:-44px -110px;} #nav-notify-link:hover{background-position:-66px -110px;} diff --git a/view/theme/dispy/light/style.less b/view/theme/dispy/light/style.less index 87b405470c..3db91a8507 100644 --- a/view/theme/dispy/light/style.less +++ b/view/theme/dispy/light/style.less @@ -543,9 +543,9 @@ nav .nav-link { } } #nav-manage-link { - background-position: 0px -22px; + background-position: -88px -88px; &:hover { - background-position: -22px -22px; + background-position: -110px -88px; } } #nav-messages-link { From 558fbcc69e65eeda548e5f6379a15ea0121c911f Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 6 Aug 2012 19:50:57 -0700 Subject: [PATCH 044/139] rev update + don't tag anything in [] brackets --- boot.php | 2 +- include/text.php | 4 ++ util/messages.po | 108 +++++++++++++++++++++++------------------------ 3 files changed, 59 insertions(+), 55 deletions(-) diff --git a/boot.php b/boot.php index 6a350c5f4d..ea9ef91443 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); require_once('library/Mobile_Detect/Mobile_Detect.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1426' ); +define ( 'FRIENDICA_VERSION', '3.0.1427' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1154 ); diff --git a/include/text.php b/include/text.php index 1c50086aac..356c2fab4c 100644 --- a/include/text.php +++ b/include/text.php @@ -504,6 +504,10 @@ function get_tags($s) { $s = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$s); + // ignore anything in a bbtag + + $s = preg_replace('/\[(.*?)\]/sm','',$s); + // Match full names against @tags including the space between first and last // We will look these up afterward to see if they are full names or not recognisable. diff --git a/util/messages.po b/util/messages.po index 5f6dfcbd9e..ec0b11cf50 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1426\n" +"Project-Id-Version: 3.0.1427\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-08-05 10:00-0700\n" +"POT-Creation-Date: 2012-08-06 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -227,7 +227,7 @@ msgstr "" msgid "Edit event" msgstr "" -#: ../../mod/events.php:307 ../../include/text.php:1110 +#: ../../mod/events.php:307 ../../include/text.php:1114 msgid "link to source" msgstr "" @@ -423,7 +423,7 @@ msgstr "" #: ../../mod/photos.php:572 ../../mod/like.php:145 ../../mod/tagger.php:70 #: ../../addon/communityhome/communityhome.php:163 -#: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1362 +#: ../../view/theme/diabook/theme.php:570 ../../include/text.php:1366 #: ../../include/diaspora.php:1793 ../../include/conversation.php:114 #: ../../include/conversation.php:230 msgid "photo" @@ -2600,7 +2600,7 @@ msgstr "" #: ../../addon/facebook/facebook.php:770 #: ../../addon/privacy_image_cache/privacy_image_cache.php:263 #: ../../addon/dav/layout.fnk.php:441 ../../addon/dav/layout.fnk.php:488 -#: ../../include/text.php:677 +#: ../../include/text.php:681 msgid "Save" msgstr "" @@ -2861,7 +2861,7 @@ msgstr "" msgid "No contacts." msgstr "" -#: ../../mod/viewcontacts.php:76 ../../include/text.php:614 +#: ../../mod/viewcontacts.php:76 ../../include/text.php:618 msgid "View Contacts" msgstr "" @@ -3906,8 +3906,8 @@ msgstr "" msgid "No installed applications." msgstr "" -#: ../../mod/search.php:83 ../../include/text.php:674 -#: ../../include/text.php:675 ../../include/nav.php:91 +#: ../../mod/search.php:83 ../../include/text.php:678 +#: ../../include/text.php:679 ../../include/nav.php:91 msgid "Search" msgstr "" @@ -5139,7 +5139,7 @@ msgid "Latest likes" msgstr "" #: ../../addon/communityhome/communityhome.php:155 -#: ../../view/theme/diabook/theme.php:562 ../../include/text.php:1360 +#: ../../view/theme/diabook/theme.php:562 ../../include/text.php:1364 #: ../../include/conversation.php:106 ../../include/conversation.php:222 msgid "event" msgstr "" @@ -5260,38 +5260,38 @@ msgstr "" #: ../../addon/dav/common/wdcal_edit.inc.php:254 #: ../../addon/dav/common/wdcal_edit.inc.php:270 #: ../../addon/dav/common/wdcal_edit.inc.php:293 -#: ../../addon/dav/common/wdcal_edit.inc.php:305 ../../include/text.php:880 +#: ../../addon/dav/common/wdcal_edit.inc.php:305 ../../include/text.php:884 msgid "Sunday" msgstr "" #: ../../addon/dav/common/wdcal_edit.inc.php:235 #: ../../addon/dav/common/wdcal_edit.inc.php:274 -#: ../../addon/dav/common/wdcal_edit.inc.php:308 ../../include/text.php:880 +#: ../../addon/dav/common/wdcal_edit.inc.php:308 ../../include/text.php:884 msgid "Monday" msgstr "" #: ../../addon/dav/common/wdcal_edit.inc.php:238 -#: ../../addon/dav/common/wdcal_edit.inc.php:277 ../../include/text.php:880 +#: ../../addon/dav/common/wdcal_edit.inc.php:277 ../../include/text.php:884 msgid "Tuesday" msgstr "" #: ../../addon/dav/common/wdcal_edit.inc.php:241 -#: ../../addon/dav/common/wdcal_edit.inc.php:280 ../../include/text.php:880 +#: ../../addon/dav/common/wdcal_edit.inc.php:280 ../../include/text.php:884 msgid "Wednesday" msgstr "" #: ../../addon/dav/common/wdcal_edit.inc.php:244 -#: ../../addon/dav/common/wdcal_edit.inc.php:283 ../../include/text.php:880 +#: ../../addon/dav/common/wdcal_edit.inc.php:283 ../../include/text.php:884 msgid "Thursday" msgstr "" #: ../../addon/dav/common/wdcal_edit.inc.php:247 -#: ../../addon/dav/common/wdcal_edit.inc.php:286 ../../include/text.php:880 +#: ../../addon/dav/common/wdcal_edit.inc.php:286 ../../include/text.php:884 msgid "Friday" msgstr "" #: ../../addon/dav/common/wdcal_edit.inc.php:250 -#: ../../addon/dav/common/wdcal_edit.inc.php:289 ../../include/text.php:880 +#: ../../addon/dav/common/wdcal_edit.inc.php:289 ../../include/text.php:884 msgid "Saturday" msgstr "" @@ -7337,158 +7337,158 @@ msgstr "" msgid "older" msgstr "" -#: ../../include/text.php:593 +#: ../../include/text.php:597 msgid "No contacts" msgstr "" -#: ../../include/text.php:602 +#: ../../include/text.php:606 #, php-format msgid "%d Contact" msgid_plural "%d Contacts" msgstr[0] "" msgstr[1] "" -#: ../../include/text.php:715 +#: ../../include/text.php:719 msgid "poke" msgstr "" -#: ../../include/text.php:715 ../../include/conversation.php:201 +#: ../../include/text.php:719 ../../include/conversation.php:201 msgid "poked" msgstr "" -#: ../../include/text.php:716 +#: ../../include/text.php:720 msgid "ping" msgstr "" -#: ../../include/text.php:716 +#: ../../include/text.php:720 msgid "pinged" msgstr "" -#: ../../include/text.php:717 +#: ../../include/text.php:721 msgid "prod" msgstr "" -#: ../../include/text.php:717 +#: ../../include/text.php:721 msgid "prodded" msgstr "" -#: ../../include/text.php:718 +#: ../../include/text.php:722 msgid "slap" msgstr "" -#: ../../include/text.php:718 +#: ../../include/text.php:722 msgid "slapped" msgstr "" -#: ../../include/text.php:719 +#: ../../include/text.php:723 msgid "finger" msgstr "" -#: ../../include/text.php:719 +#: ../../include/text.php:723 msgid "fingered" msgstr "" -#: ../../include/text.php:720 +#: ../../include/text.php:724 msgid "rebuff" msgstr "" -#: ../../include/text.php:720 +#: ../../include/text.php:724 msgid "rebuffed" msgstr "" -#: ../../include/text.php:884 +#: ../../include/text.php:888 msgid "January" msgstr "" -#: ../../include/text.php:884 +#: ../../include/text.php:888 msgid "February" msgstr "" -#: ../../include/text.php:884 +#: ../../include/text.php:888 msgid "March" msgstr "" -#: ../../include/text.php:884 +#: ../../include/text.php:888 msgid "April" msgstr "" -#: ../../include/text.php:884 +#: ../../include/text.php:888 msgid "May" msgstr "" -#: ../../include/text.php:884 +#: ../../include/text.php:888 msgid "June" msgstr "" -#: ../../include/text.php:884 +#: ../../include/text.php:888 msgid "July" msgstr "" -#: ../../include/text.php:884 +#: ../../include/text.php:888 msgid "August" msgstr "" -#: ../../include/text.php:884 +#: ../../include/text.php:888 msgid "September" msgstr "" -#: ../../include/text.php:884 +#: ../../include/text.php:888 msgid "October" msgstr "" -#: ../../include/text.php:884 +#: ../../include/text.php:888 msgid "November" msgstr "" -#: ../../include/text.php:884 +#: ../../include/text.php:888 msgid "December" msgstr "" -#: ../../include/text.php:970 +#: ../../include/text.php:974 msgid "bytes" msgstr "" -#: ../../include/text.php:990 ../../include/text.php:1005 +#: ../../include/text.php:994 ../../include/text.php:1009 msgid "remove" msgstr "" -#: ../../include/text.php:990 ../../include/text.php:1005 +#: ../../include/text.php:994 ../../include/text.php:1009 msgid "[remove]" msgstr "" -#: ../../include/text.php:993 +#: ../../include/text.php:997 msgid "Categories:" msgstr "" -#: ../../include/text.php:1008 +#: ../../include/text.php:1012 msgid "Filed under:" msgstr "" -#: ../../include/text.php:1024 ../../include/text.php:1036 +#: ../../include/text.php:1028 ../../include/text.php:1040 msgid "Click to open/close" msgstr "" -#: ../../include/text.php:1142 ../../include/user.php:236 +#: ../../include/text.php:1146 ../../include/user.php:236 msgid "default" msgstr "" -#: ../../include/text.php:1154 +#: ../../include/text.php:1158 msgid "Select an alternate language" msgstr "" -#: ../../include/text.php:1364 +#: ../../include/text.php:1368 msgid "activity" msgstr "" -#: ../../include/text.php:1366 +#: ../../include/text.php:1370 msgid "comment" msgstr "" -#: ../../include/text.php:1367 +#: ../../include/text.php:1371 msgid "post" msgstr "" -#: ../../include/text.php:1522 +#: ../../include/text.php:1526 msgid "Item filed" msgstr "" From 4cc6bf660c04c4b361eee8db59e5beb83e6b1081 Mon Sep 17 00:00:00 2001 From: Domovoy Date: Tue, 7 Aug 2012 09:53:53 +0200 Subject: [PATCH 045/139] The number of comments shown when collapsed is the total of all the descendant items. --- include/conversation.php | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/include/conversation.php b/include/conversation.php index 706bcdde67..73c3337d52 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -299,6 +299,21 @@ function localize_item(&$item){ } +/** + * Count the total of comments on this item and its desendants + */ +function count_descendants($item) { + $total = count($item['children']); + + if($total > 0) { + foreach($item['children'] as $child) { + $total += count_descendants($child); + } + } + + return $total; +} + /** * Recursively prepare a thread for HTML */ @@ -311,6 +326,8 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $items_seen = 0; $nb_items = count($items); + $total_children = $nb_items; + foreach($items as $item) { // prevent private email reply to public conversation from leaking. if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) { @@ -338,6 +355,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $osparkle = ''; $lastcollapsed = false; $firstcollapsed = false; + $total_children += count_descendants($item); $toplevelpost = (($item['id'] == $item['parent']) ? true : false); $item_writeable = (($item['writable'] || $item['self']) ? true : false); @@ -577,7 +595,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr $item_result = $arr['output']; if($firstcollapsed) { - $item_result['num_comments'] = sprintf( tt('%d comment','%d comments',$nb_items),$nb_items ); + $item_result['num_comments'] = sprintf( tt('%d comment','%d comments',$total_children),$total_children ); $item_result['hide_text'] = t('show more'); } From 4b514ea9893d9814cf8a000ef165d24a96fdaf7d Mon Sep 17 00:00:00 2001 From: Domovoy Date: Tue, 7 Aug 2012 10:04:47 +0200 Subject: [PATCH 046/139] Fallback so that we alway have a thr-parent --- mod/item.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mod/item.php b/mod/item.php index fe7513de00..c7b755eaed 100644 --- a/mod/item.php +++ b/mod/item.php @@ -545,6 +545,10 @@ function item_post(&$a) { $uri = item_new_uri($a->get_hostname(),$profile_uid); + // Fallback so that we alway have a thr-parent + if(!$thr_parent) + $thr_parent = $uri; + $datarray = array(); $datarray['uid'] = $profile_uid; $datarray['type'] = $post_type; From c0024daff7675361fa6d5afa34a78bee1373254a Mon Sep 17 00:00:00 2001 From: Domovoy Date: Tue, 7 Aug 2012 12:02:06 +0200 Subject: [PATCH 047/139] Added view/wallwall_thread.tpl --- view/wallwall_thread.tpl | 86 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 view/wallwall_thread.tpl diff --git a/view/wallwall_thread.tpl b/view/wallwall_thread.tpl new file mode 100644 index 0000000000..b7cca3fab9 --- /dev/null +++ b/view/wallwall_thread.tpl @@ -0,0 +1,86 @@ + +

    +
    +
    +
    + + $item.owner_name +
    +
    $item.wall
    +
    + + $item.name + menu +
    +
      + $item.item_photo_menu +
    +
    + +
    +
    +
    + {{ if $item.lock }}
    $item.lock
    + {{ else }}
    {{ endif }} +
    $item.location
    +
    +
    +
    + $item.name $item.to $item.owner_name $item.vwall
    +
    $item.ago
    +
    +
    +
    $item.title
    +
    +
    $item.body +
    + {{ for $item.tags as $tag }} + $tag + {{ endfor }} +
    +
    +
    +
    + {{ if $item.vote }} + + {{ endif }} + {{ if $item.plink }} + + {{ endif }} + {{ if $item.edpost }} + + {{ endif }} + + {{ if $item.star }} + + + {{ endif }} + {{ if $item.filer }} + + {{ endif }} + +
    + {{ if $item.drop.dropping }}{{ endif }} +
    + {{ if $item.drop.dropping }}{{ endif }} +
    +
    +
    +
    + +
    $item.dislike
    +
    +
    + $item.comment +
    + +
    +
    + From 5ca71d04b2de63b969c6c367f2f05067b2c9dd46 Mon Sep 17 00:00:00 2001 From: Domovoy Date: Tue, 7 Aug 2012 12:08:36 +0200 Subject: [PATCH 048/139] Wall to wall items should now be threaded too. --- view/wallwall_thread.tpl | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/view/wallwall_thread.tpl b/view/wallwall_thread.tpl index b7cca3fab9..3986b065c1 100644 --- a/view/wallwall_thread.tpl +++ b/view/wallwall_thread.tpl @@ -1,3 +1,10 @@ +{{if $item.comment_firstcollapsed}} +
    + $item.num_comments $item.hide_text +
    + +{{ for $item.children as $item }} + {{ inc $item.template }}{{ endinc }} +{{ endfor }} +{{ if $item.flatten }} +
    + $item.comment +
    +{{ endif }} +

    +{{if $item.comment_lastcollapsed}}{{endif}} From afaa5f20384cce82f58de47ae73245d36a87dd97 Mon Sep 17 00:00:00 2001 From: Domovoy Date: Tue, 7 Aug 2012 12:13:42 +0200 Subject: [PATCH 049/139] Removed useless comment box (from old non-threaded template, to comment box where displayed) --- view/wallwall_thread.tpl | 5 ----- 1 file changed, 5 deletions(-) diff --git a/view/wallwall_thread.tpl b/view/wallwall_thread.tpl index 3986b065c1..89f121f210 100644 --- a/view/wallwall_thread.tpl +++ b/view/wallwall_thread.tpl @@ -90,11 +90,6 @@
    $item.dislike
    -
    -
    - $item.comment -
    -
    {{ for $item.children as $item }} From 101df5145e4d95751e317e4d613d7108721ec687 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 8 Aug 2012 17:06:54 -0700 Subject: [PATCH 050/139] rev update --- boot.php | 2 +- util/messages.po | 106 +++++++++++++++++++++++------------------------ 2 files changed, 54 insertions(+), 54 deletions(-) diff --git a/boot.php b/boot.php index 1f4a2a06b5..3df59f4c01 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); require_once('library/Mobile_Detect/Mobile_Detect.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1427' ); +define ( 'FRIENDICA_VERSION', '3.0.1429' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1154 ); diff --git a/util/messages.po b/util/messages.po index ec0b11cf50..bfbe2ec39a 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1427\n" +"Project-Id-Version: 3.0.1429\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-08-06 10:00-0700\n" +"POT-Creation-Date: 2012-08-08 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -232,7 +232,7 @@ msgid "link to source" msgstr "" #: ../../mod/events.php:331 ../../view/theme/diabook/theme.php:131 -#: ../../include/nav.php:52 ../../boot.php:1635 +#: ../../include/nav.php:52 ../../boot.php:1645 msgid "Events" msgstr "" @@ -288,7 +288,7 @@ msgstr "" #: ../../mod/events.php:432 ../../mod/directory.php:132 #: ../../include/event.php:40 ../../include/bb2diaspora.php:447 -#: ../../boot.php:1187 +#: ../../boot.php:1197 msgid "Location:" msgstr "" @@ -370,7 +370,7 @@ msgstr "" msgid "No" msgstr "" -#: ../../mod/photos.php:46 ../../boot.php:1628 +#: ../../mod/photos.php:46 ../../boot.php:1638 msgid "Photo Albums" msgstr "" @@ -594,7 +594,7 @@ msgstr "" #: ../../mod/photos.php:1324 ../../mod/photos.php:1365 #: ../../mod/photos.php:1397 ../../mod/content.php:690 -#: ../../include/conversation.php:695 ../../boot.php:570 +#: ../../include/conversation.php:695 ../../boot.php:580 msgid "Comment" msgstr "" @@ -1251,7 +1251,7 @@ msgid "is interested in:" msgstr "" #: ../../mod/match.php:58 ../../mod/suggest.php:59 -#: ../../include/contact_widgets.php:9 ../../boot.php:1131 +#: ../../include/contact_widgets.php:9 ../../boot.php:1141 msgid "Connect" msgstr "" @@ -1311,7 +1311,7 @@ msgstr[1] "" #: ../../mod/content.php:587 ../../addon/page/page.php:76 #: ../../addon/page/page.php:110 ../../addon/showmore/showmore.php:119 #: ../../include/contact_widgets.php:188 ../../include/conversation.php:592 -#: ../../boot.php:571 +#: ../../boot.php:581 msgid "show more" msgstr "" @@ -1914,7 +1914,7 @@ msgstr "" #: ../../addon/facebook/facebook.php:1200 #: ../../addon/public_server/public_server.php:62 #: ../../addon/testdrive/testdrive.php:67 ../../include/items.php:3214 -#: ../../boot.php:780 +#: ../../boot.php:790 msgid "Administrator" msgstr "" @@ -1924,7 +1924,7 @@ msgid "" "Password reset failed." msgstr "" -#: ../../mod/lostpass.php:83 ../../boot.php:913 +#: ../../mod/lostpass.php:83 ../../boot.php:923 msgid "Password Reset" msgstr "" @@ -2592,7 +2592,7 @@ msgstr "" msgid "Invalid contact." msgstr "" -#: ../../mod/notes.php:44 ../../boot.php:1642 +#: ../../mod/notes.php:44 ../../boot.php:1652 msgid "Personal Notes" msgstr "" @@ -2845,7 +2845,7 @@ msgstr "" #: ../../mod/profperm.php:103 ../../view/theme/diabook/theme.php:128 #: ../../include/profile_advanced.php:7 ../../include/profile_advanced.php:84 -#: ../../include/nav.php:50 ../../boot.php:1618 +#: ../../include/nav.php:50 ../../boot.php:1628 msgid "Profile" msgstr "" @@ -2949,7 +2949,7 @@ msgstr "" msgid "Choose a nickname: " msgstr "" -#: ../../mod/register.php:269 ../../include/nav.php:81 ../../boot.php:879 +#: ../../mod/register.php:269 ../../include/nav.php:81 ../../boot.php:889 msgid "Register" msgstr "" @@ -2992,7 +2992,7 @@ msgid "Access denied." msgstr "" #: ../../mod/fbrowser.php:25 ../../view/theme/diabook/theme.php:130 -#: ../../include/nav.php:51 ../../boot.php:1625 +#: ../../include/nav.php:51 ../../boot.php:1635 msgid "Photos" msgstr "" @@ -3803,7 +3803,7 @@ msgstr "" msgid "FTP Password" msgstr "" -#: ../../mod/profile.php:21 ../../boot.php:1044 +#: ../../mod/profile.php:21 ../../boot.php:1054 msgid "Requested profile is not available." msgstr "" @@ -4198,23 +4198,23 @@ msgstr "" msgid "Edit/Manage Profiles" msgstr "" -#: ../../mod/profiles.php:673 ../../boot.php:1153 +#: ../../mod/profiles.php:673 ../../boot.php:1163 msgid "Change profile photo" msgstr "" -#: ../../mod/profiles.php:674 ../../boot.php:1154 +#: ../../mod/profiles.php:674 ../../boot.php:1164 msgid "Create New Profile" msgstr "" -#: ../../mod/profiles.php:685 ../../boot.php:1164 +#: ../../mod/profiles.php:685 ../../boot.php:1174 msgid "Profile Image" msgstr "" -#: ../../mod/profiles.php:687 ../../boot.php:1167 +#: ../../mod/profiles.php:687 ../../boot.php:1177 msgid "visible to everybody" msgstr "" -#: ../../mod/profiles.php:688 ../../boot.php:1168 +#: ../../mod/profiles.php:688 ../../boot.php:1178 msgid "Edit visibility" msgstr "" @@ -4343,17 +4343,17 @@ msgid "Gender: " msgstr "" #: ../../mod/directory.php:134 ../../include/profile_advanced.php:17 -#: ../../boot.php:1189 +#: ../../boot.php:1199 msgid "Gender:" msgstr "" #: ../../mod/directory.php:136 ../../include/profile_advanced.php:37 -#: ../../boot.php:1192 +#: ../../boot.php:1202 msgid "Status:" msgstr "" #: ../../mod/directory.php:138 ../../include/profile_advanced.php:48 -#: ../../boot.php:1194 +#: ../../boot.php:1204 msgid "Homepage:" msgstr "" @@ -5111,7 +5111,7 @@ msgstr "" #: ../../addon/communityhome/communityhome.php:34 #: ../../addon/communityhome/twillingham/communityhome.php:28 #: ../../addon/communityhome/twillingham/communityhome.php:34 -#: ../../include/nav.php:64 ../../boot.php:900 +#: ../../include/nav.php:64 ../../boot.php:910 msgid "Login" msgstr "" @@ -7504,11 +7504,11 @@ msgstr "" msgid "view full size" msgstr "" -#: ../../include/oembed.php:135 +#: ../../include/oembed.php:137 msgid "Embedded content" msgstr "" -#: ../../include/oembed.php:144 +#: ../../include/oembed.php:146 msgid "Embedding disabled" msgstr "" @@ -7547,7 +7547,7 @@ msgstr "" msgid "Contacts not in any group" msgstr "" -#: ../../include/nav.php:46 ../../boot.php:899 +#: ../../include/nav.php:46 ../../boot.php:909 msgid "Logout" msgstr "" @@ -7555,7 +7555,7 @@ msgstr "" msgid "End this session" msgstr "" -#: ../../include/nav.php:49 ../../boot.php:1611 +#: ../../include/nav.php:49 ../../boot.php:1621 msgid "Status" msgstr "" @@ -7635,11 +7635,11 @@ msgstr "" msgid "Manage other pages" msgstr "" -#: ../../include/nav.php:138 ../../boot.php:1147 +#: ../../include/nav.php:138 ../../boot.php:1157 msgid "Profiles" msgstr "" -#: ../../include/nav.php:138 ../../boot.php:1147 +#: ../../include/nav.php:138 ../../boot.php:1157 msgid "Manage/edit profiles" msgstr "" @@ -8322,96 +8322,96 @@ msgstr "" msgid "This action is not available under your subscription plan." msgstr "" -#: ../../boot.php:569 +#: ../../boot.php:579 msgid "Delete this item?" msgstr "" -#: ../../boot.php:572 +#: ../../boot.php:582 msgid "show fewer" msgstr "" -#: ../../boot.php:775 +#: ../../boot.php:785 #, php-format msgid "Update %s failed. See error logs." msgstr "" -#: ../../boot.php:777 +#: ../../boot.php:787 #, php-format msgid "Update Error at %s" msgstr "" -#: ../../boot.php:878 +#: ../../boot.php:888 msgid "Create a New Account" msgstr "" -#: ../../boot.php:902 +#: ../../boot.php:912 msgid "Nickname or Email address: " msgstr "" -#: ../../boot.php:903 +#: ../../boot.php:913 msgid "Password: " msgstr "" -#: ../../boot.php:906 +#: ../../boot.php:916 msgid "Or login using OpenID: " msgstr "" -#: ../../boot.php:912 +#: ../../boot.php:922 msgid "Forgot your password?" msgstr "" -#: ../../boot.php:1079 +#: ../../boot.php:1089 msgid "Edit profile" msgstr "" -#: ../../boot.php:1139 +#: ../../boot.php:1149 msgid "Message" msgstr "" -#: ../../boot.php:1261 ../../boot.php:1347 +#: ../../boot.php:1271 ../../boot.php:1357 msgid "g A l F d" msgstr "" -#: ../../boot.php:1262 ../../boot.php:1348 +#: ../../boot.php:1272 ../../boot.php:1358 msgid "F d" msgstr "" -#: ../../boot.php:1307 ../../boot.php:1388 +#: ../../boot.php:1317 ../../boot.php:1398 msgid "[today]" msgstr "" -#: ../../boot.php:1319 +#: ../../boot.php:1329 msgid "Birthday Reminders" msgstr "" -#: ../../boot.php:1320 +#: ../../boot.php:1330 msgid "Birthdays this week:" msgstr "" -#: ../../boot.php:1381 +#: ../../boot.php:1391 msgid "[No description]" msgstr "" -#: ../../boot.php:1399 +#: ../../boot.php:1409 msgid "Event Reminders" msgstr "" -#: ../../boot.php:1400 +#: ../../boot.php:1410 msgid "Events this week:" msgstr "" -#: ../../boot.php:1614 +#: ../../boot.php:1624 msgid "Status Messages and Posts" msgstr "" -#: ../../boot.php:1621 +#: ../../boot.php:1631 msgid "Profile Details" msgstr "" -#: ../../boot.php:1638 +#: ../../boot.php:1648 msgid "Events and Calendar" msgstr "" -#: ../../boot.php:1645 +#: ../../boot.php:1655 msgid "Only You Can See This" msgstr "" From ba9c50c0dd458e748c22e541c270c28905295616 Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 9 Aug 2012 15:32:07 -0700 Subject: [PATCH 051/139] rev update --- boot.php | 2 +- util/messages.po | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/boot.php b/boot.php index 3df59f4c01..c50dbb582f 100644 --- a/boot.php +++ b/boot.php @@ -11,7 +11,7 @@ require_once('include/cache.php'); require_once('library/Mobile_Detect/Mobile_Detect.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '3.0.1429' ); +define ( 'FRIENDICA_VERSION', '3.0.1430' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DB_UPDATE_VERSION', 1154 ); diff --git a/util/messages.po b/util/messages.po index bfbe2ec39a..c245fa152b 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 3.0.1429\n" +"Project-Id-Version: 3.0.1430\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-08-08 10:00-0700\n" +"POT-Creation-Date: 2012-08-09 10:00-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" From 4894619d7b18a5c92649c74a2eae3dbd93eb40c0 Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 9 Aug 2012 23:01:37 -0700 Subject: [PATCH 052/139] bring back "delete selected items" - but need to pass pagedropping to each item --- include/conversation.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/conversation.php b/include/conversation.php index 73c3337d52..3c4ff29082 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -676,6 +676,9 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { $page_writeable = false; } + $page_dropping = ((local_user() && local_user() == $profile_owner) ? true : false); + + if($update) $return_url = $_SESSION['return_url']; else @@ -851,7 +854,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { '$mode' => $mode, '$user' => $a->user, '$threads' => $threads, - '$dropping' => ($dropping?t('Delete Selected Items'):False), + '$dropping' => ($page_dropping?t('Delete Selected Items'):False), )); return $o; From 2b7d08508d63ad5fd7fa7d4f70e3ce67ba932404 Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Fri, 10 Aug 2012 04:25:08 -0400 Subject: [PATCH 053/139] head.tpl: commentOpen() and commentClose() return true/false usefull to concatenate other actions: "commentClose(this, $id) && cmtBbClose($id)" --- view/head.tpl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/view/head.tpl b/view/head.tpl index e5495b329f..42bd92f4ce 100644 --- a/view/head.tpl +++ b/view/head.tpl @@ -39,7 +39,9 @@ $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty"); $("#mod-cmnt-wrap-" + id).show(); openMenu("comment-edit-submit-wrapper-" + id); + return true; } + return false; } function commentClose(obj,id) { if(obj.value == '') { @@ -48,7 +50,9 @@ $("#comment-edit-text-" + id).addClass("comment-edit-text-empty"); $("#mod-cmnt-wrap-" + id).hide(); closeMenu("comment-edit-submit-wrapper-" + id); + return true; } + return false; } From 64a6e8693c5158c37994d8c1c211265fc158b27d Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Fri, 10 Aug 2012 04:27:50 -0400 Subject: [PATCH 054/139] quattro: remove unused parameter 'comment' from function cmtBbClose --- view/theme/quattro/theme.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/view/theme/quattro/theme.php b/view/theme/quattro/theme.php index 5cb373eefe..51d9d05d5e 100644 --- a/view/theme/quattro/theme.php +++ b/view/theme/quattro/theme.php @@ -43,10 +43,10 @@ function insertFormatting(comment,BBcode,id) { } function cmtBbOpen(id) { - $(".comment-edit-bb-" + id).show(); + $("#comment-edit-bb-" + id).show(); } -function cmtBbClose(comment, id) { - $(".comment-edit-bb-" + id).hide(); +function cmtBbClose(id) { + $("#comment-edit-bb-" + id).hide(); } $(document).ready(function() { From c4bff3d3934f93b059da64b02886e3ffa8a5a0d7 Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Fri, 10 Aug 2012 04:29:22 -0400 Subject: [PATCH 055/139] quattro: add comment tools icons, fix hide/show comment tools --- view/theme/quattro/comment_item.tpl | 13 +++++++------ view/theme/quattro/dark/style.css | 12 +++++------- view/theme/quattro/green/style.css | 12 +++++------- view/theme/quattro/icons/bbedit.png | Bin 0 -> 2145 bytes view/theme/quattro/quattro.less | 14 +++++++------- view/theme/quattro/wall_thread.tpl | 6 +++++- 6 files changed, 29 insertions(+), 28 deletions(-) create mode 100644 view/theme/quattro/icons/bbedit.png diff --git a/view/theme/quattro/comment_item.tpl b/view/theme/quattro/comment_item.tpl index ea24d95cc3..7d1d7550b2 100644 --- a/view/theme/quattro/comment_item.tpl +++ b/view/theme/quattro/comment_item.tpl @@ -10,8 +10,8 @@
    $mytitle
    -
    -
      +
      • @@ -37,8 +37,11 @@ style="cursor: pointer;" title="$edvideo" onclick="insertFormatting('$comment','video', $id);">
      -
      - + {{ if $qcomment }} {{ endif }} -
      -
      diff --git a/view/theme/quattro/dark/style.css b/view/theme/quattro/dark/style.css index 5ff0591602..17e51cf170 100644 --- a/view/theme/quattro/dark/style.css +++ b/view/theme/quattro/dark/style.css @@ -2009,25 +2009,23 @@ footer { opacity: 0.3; filter: alpha(opacity=30); } -[class^="comment-edit-bb"] { +.comment-edit-bb { list-style: none; display: none; - margin: 0px 0 0px 60px; + margin: 0px; + padding: 0px; width: 75%; } -[class^="comment-edit-bb"] > li { +.comment-edit-bb > li { display: inline-block; margin: 10px 10px 0 0; visibility: none; } -[class^="comment-edit-bb-end"] { - clear: both; -} .editicon { display: inline-block; width: 16px; height: 16px; - background-image: url(bbedit.png); + background-image: url(icons/bbedit.png); text-decoration: none; } .editicon :hover { diff --git a/view/theme/quattro/green/style.css b/view/theme/quattro/green/style.css index 3cc4e8cf61..da9cdd7942 100644 --- a/view/theme/quattro/green/style.css +++ b/view/theme/quattro/green/style.css @@ -2009,25 +2009,23 @@ footer { opacity: 0.3; filter: alpha(opacity=30); } -[class^="comment-edit-bb"] { +.comment-edit-bb { list-style: none; display: none; - margin: 0px 0 0px 60px; + margin: 0px; + padding: 0px; width: 75%; } -[class^="comment-edit-bb"] > li { +.comment-edit-bb > li { display: inline-block; margin: 10px 10px 0 0; visibility: none; } -[class^="comment-edit-bb-end"] { - clear: both; -} .editicon { display: inline-block; width: 16px; height: 16px; - background-image: url(bbedit.png); + background-image: url(icons/bbedit.png); text-decoration: none; } .editicon :hover { diff --git a/view/theme/quattro/icons/bbedit.png b/view/theme/quattro/icons/bbedit.png new file mode 100644 index 0000000000000000000000000000000000000000..b89f2f7a830b573d37ea591e715d5e9507574642 GIT binary patch literal 2145 zcmV-n2%h(eP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyc3 z0t*R39JQ+e00-eoL_t(|+U=TqP*m3)$3HjhF6#pBf;@t(B1tOXiyC!?WLkAPW8!O~ zX{V!Rn09TZm_7&tlP2wCrrO%aXd)JvNx-q=^ksZ>s!p0ntVw)}MywDV6f6t4LfBPy zSpgSz_4bdwyIIHryOB7!Ip2TIIrpCPyZ4^^J-_oi=X@mu#vI2^oRDL6IH68}*UdTf!OpD&;J^fIw=dH`bd1`GxR)=n#$Xbk`ko0ZP?HkL15 z%#Iy9#-#5hNs?t*7XL8_q2&?k*@2IMSAdolK`v7pe2XNS|^f>MG_T0uWDTxBp57@9_ z!+jHR`LoOA!$%HdGMTt|;UZ7Ye{$Hmxw(s2xO5fS>G9InfzSZ)KvzKC2_yn0U<*(W z%ntJzzXbjWlmjn^P(KFfQSw@#U&((PI057W=SG`}m9{QmLXdJe*a@5j{xVXi(eUs0 zY0*RxrBabP*~p~SG{1Lt*sOGS*>HP2s8uS`GiL(u^Sm`YziQQekxP;!dD%0|c(3X` zYHJ(F$;lqJZf$J?rKNB1)7Q4JAS+plMDMN&;)#85D5(`FQwTlf%Qz7wJrrX7-hh06 zK>n1Ho)5u>9Y_V*hbad`Jg^&B1RMv}DSfaQ*sRn^16~Jy66g$KlO9E$JqN9&mD}A8 ztTro2aWO>Qb93!-19v@cwAu-1wOXR0q8R8Oz;5ec_ny4~?A^OJ=2Z*6%ENs{D9^w6phJa~#SP4@%EVcJgso>n~l ziTiw4IfT&2hcm$UfYZa2gW>nUQeZ8x2ly@U2Ji^bs?@QJ^iWrC4>55Q$(}P8dK|b0 z+{DC9WZ+I8n&@aAQK@-)_Dt$pEVz1m_}}&Gl$Djqot>Q&6ch}yRbF0BSy`D3Fw*_P z!a^!4b}?gG0w$A*AHDcP09LHayl|1a`nszXq@;x6Vy~~r$jBfiC54of zl);OUef#L_?8Iy~1NhstS#EN*;VKmsyQr={?yrBv5k+%z^B@}*cLx9`PyIJy7lo=( zytAZ)87079m1%ox81`2x>AMg3yN)X9@nOor;A7D3fbwGC z_NFViUEal@R-TFOO=c|vhVqG3-lhY#7LrWug=D>SNN-S*+ z`0=3(78@`TNCs|&@m?+<8ZZFe%C%JBnzCpN1t)-oBb0}tU3rFHdFBmZK#8fZ57$4H zm6h`5ZQF>6jq@_z<3XR0gj%EVlN!L%)`HvPA=Q|UTC1a@rHRBx)3{}BqOq}&>C>lw z?ny1dBO9a9=+FDwG&ME(|I_;Q>*bP?QhNHllc8~P0+#kJjFS_*1FyH91#xo*|Lh1~ z6b^?0-})yE+uu?Mc{)ro`#kA0N?iLZKnJ`D90PSTJ9YxFr|K+gmpU}>v{VrCl%kwV`^=cO@f3ajx9kn5eDd`y;IeVEUxicb`&_j0*oId9O zG%B95Bm|opW$Vpndn53j5IkfcZUHYn;J)Zqb~(Zd(Nc}+0Q>`(k~EK+#els7XLG&( z5XE=YU0GQvce`BZS1cKNs3L{?++fJfUBpyl;)r!jCX;u;YDi>3R&vB0u#DFak{_0L zuB@z-x9mPh{0o~|y>uSeZE*5;CO$j!K99}Fq2}1p2ll=Vt#?78jIw>B# z@d-g_f#BF$S}N~7@Gka@1;o0X+-tc+_Ox{Nzq9*+_isb1UGBLv`VMI%l35UX3~}Jl zA^D?|-gBE--*|jXbQ%JJ(BlF^4=o5C5fFN4LFkBq&_j li { +.comment-edit-bb > li { display: inline-block; margin: 10px 10px 0 0; visibility: none; } -[class^="comment-edit-bb-end"] { - clear: both; -} + .editicon { display: inline-block; width: 16px; height: 16px; - background-image: url(bbedit.png); + background-image: url(icons/bbedit.png); text-decoration: none; :hover {background-color: #ccc;} } diff --git a/view/theme/quattro/wall_thread.tpl b/view/theme/quattro/wall_thread.tpl index 4d454f00db..fe136b2b2f 100644 --- a/view/theme/quattro/wall_thread.tpl +++ b/view/theme/quattro/wall_thread.tpl @@ -2,7 +2,11 @@ {{ else }} {{if $item.comment_firstcollapsed}}
      - $item.num_comments $item.hide_text + $item.num_comments + $item.hide_text
      - {{ if $item.threaded }}{{ if $item.comment }} + {{ if $item.threaded }}{{ if $item.comment }}{{ if $item.indent==comment }}
      - $item.comment + $item.comment
      - {{ endif }}{{ endif }} + {{ endif }}{{ endif }}{{ endif }} @@ -124,8 +124,10 @@ {{if $item.comment_lastcollapsed}}{{endif}} {{ endif }} -{{ if $item.flatten }} -
      - $item.comment -
      +{{ if $item.indent!=comment}} +
      $item.comment
      +{{ endif }} + +{{ if $item.flatten }} +
      $item.comment
      {{ endif }} diff --git a/view/theme/quattro/wallwall_thread.tpl b/view/theme/quattro/wallwall_thread.tpl index cc2f8e3627..ceb74517e3 100644 --- a/view/theme/quattro/wallwall_thread.tpl +++ b/view/theme/quattro/wallwall_thread.tpl @@ -101,14 +101,14 @@
      $item.dislike
      - {{ if $item.threaded }}{{ if $item.comment }} + {{ if $item.threaded }}{{ if $item.comment }}{{ if $item.indent==comment }}
      $item.comment
      - {{ endif }}{{ endif }} + {{ endif }}{{ endif }}{{ endif }} @@ -127,8 +127,10 @@ {{if $item.comment_lastcollapsed}}{{endif}} {{ endif }} -{{ if $item.flatten }} -
      - $item.comment -
      +{{ if $item.indent!=comment}} +
      $item.comment
      +{{ endif }} + +{{ if $item.flatten }} +
      $item.comment
      {{ endif }} From dbbf5b86a2ebfe862d4d833be41997d8b596f260 Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Fri, 10 Aug 2012 04:55:51 -0400 Subject: [PATCH 057/139] template processor: trim strings in {{ if str!=str }}, add 'debug' tag: {{ debug $var [$var1 [$var2 [...]]] }}{{ enddebug }} is replaced by
      var_export($var1)\nvar_export($var2)\n....
      --- include/template_processor.php | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/include/template_processor.php b/include/template_processor.php index 46252c355f..4088ddab60 100644 --- a/include/template_processor.php +++ b/include/template_processor.php @@ -63,7 +63,7 @@ if ($b[0]=="$") $b = $this->_get_var($b); $val = ($a == $b); } else if (strpos($args[2],"!=")>0){ - list($a,$b) = explode("!=",$args[2]); + list($a,$b) = array_map("trim", explode("!=",$args[2])); $a = $this->_get_var($a); if ($b[0]=="$") $b = $this->_get_var($b); $val = ($a != $b); @@ -133,6 +133,26 @@ return $ret; } + + /** + * DEBUG node + * + * {{ debug $var [$var [$var [...]]] }}{{ enddebug }} + * + * replace node with
      var_dump($var, $var, ...);
      + */ + private function _replcb_debug($args){ + $vars = array_map('trim', explode(" ",$args[2])); + $vars[] = $args[1]; + + $ret = "
      ";
      +			foreach ($vars as $var){
      +				$ret .= htmlspecialchars(var_export( $this->_get_var($var), true ));
      +				$ret .= "\n";
      +			}
      +			$ret .= "
      "; + return $ret; + } private function _replcb_node($m) { $node = $this->nodes[$m[1]]; From fc07f50fd8d2972009bebb3c974cbcbee321c642 Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Fri, 10 Aug 2012 05:42:36 -0400 Subject: [PATCH 058/139] conversation: add 'thread_level' to $item array --- include/conversation.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/conversation.php b/include/conversation.php index 3c4ff29082..68aa1fa33c 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -588,6 +588,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr 'comment' => $comment, 'previewing' => $previewing, 'wait' => t('Please wait'), + 'thread_level' => $thread_level, ); $arr = array('item' => $item, 'output' => $tmp_item); @@ -818,6 +819,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) { 'conv' => (($preview) ? '' : array('href'=> $a->get_baseurl($ssl_state) . '/display/' . $nickname . '/' . $item['id'], 'title'=> t('View in context'))), 'previewing' => $previewing, 'wait' => t('Please wait'), + 'thread_level' => 1, ); $arr = array('item' => $item, 'output' => $tmp_item); From ec3d8a80cda6124bd8c68e6721f3fb5d280d4e0c Mon Sep 17 00:00:00 2001 From: Fabrixxm Date: Fri, 10 Aug 2012 06:27:01 -0400 Subject: [PATCH 059/139] quattro: fix collapsed thread, fix comment box, style previev comment, add 'expand / collapse" thread --- view/theme/quattro/dark/style.css | 54 +++++++++++++++++++++----- view/theme/quattro/green/style.css | 54 +++++++++++++++++++++----- view/theme/quattro/quattro.less | 39 +++++++++++++++---- view/theme/quattro/theme.php | 10 +++++ view/theme/quattro/wall_item_tag.tpl | 4 ++ view/theme/quattro/wall_thread.tpl | 33 ++++++++++------ view/theme/quattro/wallwall_thread.tpl | 37 ++++++++++++------ 7 files changed, 181 insertions(+), 50 deletions(-) diff --git a/view/theme/quattro/dark/style.css b/view/theme/quattro/dark/style.css index 17e51cf170..9561fe728a 100644 --- a/view/theme/quattro/dark/style.css +++ b/view/theme/quattro/dark/style.css @@ -1075,6 +1075,7 @@ section { width: 710px; border: 1px solid #2d2d2d; margin-top: 10px; + background-color: #fce94f; } .comment-edit-preview .contact-photo { width: 32px; @@ -1091,12 +1092,17 @@ section { padding-left: 12px; } .comment-edit-preview .wall-item-container { - width: 700px; + width: 90%; } .comment-edit-preview .tread-wrapper { - width: 700px; + width: 90%; padding: 0; margin: 10px 0; + background-color: #fce94f; + border-bottom: 0px; +} +.comment-edit-preview .wall-item-conv { + display: none; } .shiny { border-right: 10px solid #fce94f; @@ -1143,36 +1149,64 @@ section { height: 25px; } /* threaded comments */ +.children { + margin-top: 1em; +} +.children .hide-comments-outer { + margin-left: 60px; +} +.children .comment-edit-preview { + width: 660px; +} +.children .comment-edit-preview .wall-item-container { + width: 610px; +} .children .children { margin-left: 40px; } .children .children .wall-item-container { width: 710px; } -.children .children .children { - margin-left: 40px; +.children .children .comment-edit-preview { + width: 620px; +} +.children .children .comment-edit-preview .wall-item-container { + width: 620px; } .children .children .children .wall-item-container { width: 670px; } -.children .children .children .children { - margin-left: 40px; +.children .children .children .comment-edit-preview { + width: 580px; +} +.children .children .children .comment-edit-preview .wall-item-container { + width: 580px; } .children .children .children .children .wall-item-container { width: 630px; } -.children .children .children .children .children { - margin-left: 40px; +.children .children .children .children .comment-edit-preview { + width: 540px; +} +.children .children .children .children .comment-edit-preview .wall-item-container { + width: 540px; } .children .children .children .children .children .wall-item-container { width: 590px; } +.children .children .children .children .children .comment-edit-preview { + width: 500px; +} +.children .children .children .children .children .comment-edit-preview .wall-item-container { + width: 500px; +} .children .children .children .children .children .children { margin-left: 0px; } -.threaded .hide-comments-outer { - margin-left: 20px; +.children .children .children .children .children .children .hide-comments-outer { + margin-left: 0px; } +/*.threaded .hide-comments-outer { margin-left: 20px; }*/ span[id^="showmore-teaser"] { background: url("showmore-bg.jpg") no-repeat center bottom; } diff --git a/view/theme/quattro/green/style.css b/view/theme/quattro/green/style.css index da9cdd7942..29d5512712 100644 --- a/view/theme/quattro/green/style.css +++ b/view/theme/quattro/green/style.css @@ -1075,6 +1075,7 @@ section { width: 710px; border: 1px solid #2d2d2d; margin-top: 10px; + background-color: #ddffdd; } .comment-edit-preview .contact-photo { width: 32px; @@ -1091,12 +1092,17 @@ section { padding-left: 12px; } .comment-edit-preview .wall-item-container { - width: 700px; + width: 90%; } .comment-edit-preview .tread-wrapper { - width: 700px; + width: 90%; padding: 0; margin: 10px 0; + background-color: #ddffdd; + border-bottom: 0px; +} +.comment-edit-preview .wall-item-conv { + display: none; } .shiny { border-right: 10px solid #ddffdd; @@ -1143,36 +1149,64 @@ section { height: 25px; } /* threaded comments */ +.children { + margin-top: 1em; +} +.children .hide-comments-outer { + margin-left: 60px; +} +.children .comment-edit-preview { + width: 660px; +} +.children .comment-edit-preview .wall-item-container { + width: 610px; +} .children .children { margin-left: 40px; } .children .children .wall-item-container { width: 710px; } -.children .children .children { - margin-left: 40px; +.children .children .comment-edit-preview { + width: 620px; +} +.children .children .comment-edit-preview .wall-item-container { + width: 620px; } .children .children .children .wall-item-container { width: 670px; } -.children .children .children .children { - margin-left: 40px; +.children .children .children .comment-edit-preview { + width: 580px; +} +.children .children .children .comment-edit-preview .wall-item-container { + width: 580px; } .children .children .children .children .wall-item-container { width: 630px; } -.children .children .children .children .children { - margin-left: 40px; +.children .children .children .children .comment-edit-preview { + width: 540px; +} +.children .children .children .children .comment-edit-preview .wall-item-container { + width: 540px; } .children .children .children .children .children .wall-item-container { width: 590px; } +.children .children .children .children .children .comment-edit-preview { + width: 500px; +} +.children .children .children .children .children .comment-edit-preview .wall-item-container { + width: 500px; +} .children .children .children .children .children .children { margin-left: 0px; } -.threaded .hide-comments-outer { - margin-left: 20px; +.children .children .children .children .children .children .hide-comments-outer { + margin-left: 0px; } +/*.threaded .hide-comments-outer { margin-left: 20px; }*/ span[id^="showmore-teaser"] { background: url("showmore-bg.jpg") no-repeat center bottom; } diff --git a/view/theme/quattro/quattro.less b/view/theme/quattro/quattro.less index 2a4b1b0d06..d7b82c8bc1 100644 --- a/view/theme/quattro/quattro.less +++ b/view/theme/quattro/quattro.less @@ -545,6 +545,7 @@ section { width: 710px; border: 1px solid @Grey5; margin-top: 10px; + background-color: @JotPreviewBackgroundColor; .contact-photo { width: 32px; height: 32px; margin-left: 16px; /*background: url(../../../images/icons/22/user.png) no-repeat center center;*/ @@ -555,8 +556,13 @@ section { } .wall-item-links { padding-left: 12px; } - .wall-item-container { width: 700px; } - .tread-wrapper { width: 700px; padding: 0; margin: 10px 0;} + .wall-item-container { width: 90%; } + .tread-wrapper { + width: 90%; padding: 0; margin: 10px 0; + background-color: @JotPreviewBackgroundColor; + border-bottom: 0px; + } + .wall-item-conv { display: none; } } .shiny { border-right:10px solid @ShinyBorderColor; } @@ -599,32 +605,49 @@ section { /* threaded comments */ .children { - + margin-top: 1em; + .hide-comments-outer { margin-left:60px; } + + .comment-edit-preview { width: 660px; + .wall-item-container { width: 610px; } + } + & .children { + margin-left: 40px; .wall-item-container { width: 710px; } + .comment-edit-preview { width: 620px; + .wall-item-container { width: 620px; } + } & .children { - margin-left: 40px; .wall-item-container { width: 670px; } + .comment-edit-preview { width: 580px; + .wall-item-container { width: 580px; } + } & .children { - margin-left: 40px; .wall-item-container { width: 630px; } + .comment-edit-preview { width: 540px; + .wall-item-container { width: 540px; } + } & .children { - margin-left: 40px; .wall-item-container { width: 590px; } + .comment-edit-preview { width: 500px; + .wall-item-container { width: 500px; } + } .children { margin-left: 0px; - } + .hide-comments-outer { margin-left: 0px; } + } } } } } } -.threaded .hide-comments-outer { margin-left: 20px; } +/*.threaded .hide-comments-outer { margin-left: 20px; }*/ span[id^="showmore-teaser"]{ background: url("showmore-bg.jpg") no-repeat center bottom; diff --git a/view/theme/quattro/theme.php b/view/theme/quattro/theme.php index 51d9d05d5e..1c986e4c8f 100644 --- a/view/theme/quattro/theme.php +++ b/view/theme/quattro/theme.php @@ -42,6 +42,16 @@ function insertFormatting(comment,BBcode,id) { return true; } +function showThread(id) { + $("#collapsed-comments-" + id).show() + $("#collapsed-comments-" + id + " .collapsed-comments").show() +} +function hideThread(id) { + $("#collapsed-comments-" + id).hide() + $("#collapsed-comments-" + id + " .collapsed-comments").hide() +} + + function cmtBbOpen(id) { $("#comment-edit-bb-" + id).show(); } diff --git a/view/theme/quattro/wall_item_tag.tpl b/view/theme/quattro/wall_item_tag.tpl index d655306e59..e1ef932135 100644 --- a/view/theme/quattro/wall_item_tag.tpl +++ b/view/theme/quattro/wall_item_tag.tpl @@ -1,3 +1,5 @@ +{{ if $item.thread_level!=1 }}
      {{ endif }} +
      @@ -18,6 +20,8 @@
      +{{ if $item.thread_level!=1 }}
      {{ endif }} + {{ if $item.flatten }}
      $item.comment
      {{ endif }} diff --git a/view/theme/quattro/wall_thread.tpl b/view/theme/quattro/wall_thread.tpl index bd165eed78..01738b666b 100644 --- a/view/theme/quattro/wall_thread.tpl +++ b/view/theme/quattro/wall_thread.tpl @@ -7,11 +7,19 @@ $item.hide_text + {{ if $item.thread_level==3 }} - + expand / + collapse thread{{ endif }}