From c3ada095f4156bba01e77d2d250d5821ba5e859e Mon Sep 17 00:00:00 2001
From: friendica <info@friendica.com>
Date: Thu, 5 Jan 2012 20:40:48 -0800
Subject: [PATCH] network select widget

---
 include/contact_widgets.php       | 33 +++++++++++++++++++++++++++++++
 mod/network.php                   |  3 +++
 view/nets.tpl                     | 10 ++++++++++
 view/theme/duepuntozero/style.css | 17 +++++++++++++++-
 view/theme/loozah/style.css       | 17 +++++++++++++++-
 view/theme/testbubble/style.css   | 19 +++++++++++++++++-
 6 files changed, 96 insertions(+), 3 deletions(-)
 create mode 100644 view/nets.tpl

diff --git a/include/contact_widgets.php b/include/contact_widgets.php
index 3a21ff2c6f..424f2997ef 100644
--- a/include/contact_widgets.php
+++ b/include/contact_widgets.php
@@ -40,3 +40,36 @@ function findpeople_widget() {
 }
 
 
+function networks_widget($baseurl,$selected = '') {
+
+	$a = get_app();
+
+	if(! local_user())
+		return '';
+
+	
+	$r = q("select distinct(network) from contact where uid = %d",
+		intval(local_user())
+	);
+
+	$nets = array();
+	if(count($r)) {
+		require_once('include/contact_selectors.php');
+		foreach($r as $rr) {
+				if($rr['network'])
+					$nets[] = array('ref' => $rr['network'], 'name' => network_to_name($rr['network']), 'selected' => (($selected == $rr['network']) ? 'selected' : '' ));
+		}
+	}
+
+	return replace_macros(get_markup_template('nets.tpl'),array(
+		'$title' => t('Networks'),
+		'$desc' => '',
+		'$sel_all' => (($selected == '') ? 'selected' : ''),
+		'$all' => t('All Networks'),
+		'$nets' => $nets,
+		'$base' => $baseurl,
+
+	));
+}
+
+
diff --git a/mod/network.php b/mod/network.php
index 76c7bb5e69..9318d20ca0 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -10,6 +10,8 @@ function network_init(&$a) {
 	$group_id = (($a->argc > 1 && intval($a->argv[1])) ? intval($a->argv[1]) : 0);
 		  
 	require_once('include/group.php');
+	require_once('include/contact_widgets.php');
+
 	if(! x($a->page,'aside'))
 		$a->page['aside'] = '';
 
@@ -42,6 +44,7 @@ function network_init(&$a) {
 	}
 	
 	$a->page['aside'] .= group_side('network','network',true,$group_id);
+	$a->page['aside'] .= networks_widget($a->get_baseurl() . '/network',(($_GET['nets']) ? $_GET['nets'] : ''));
 	$a->page['aside'] .= saved_searches($search);
 
 }
diff --git a/view/nets.tpl b/view/nets.tpl
new file mode 100644
index 0000000000..b0cb8890c5
--- /dev/null
+++ b/view/nets.tpl
@@ -0,0 +1,10 @@
+<div id="nets-sidebar" class="widget">
+	<h3>$title</h3>
+	<div id="nets-desc">$desc</div>
+	<a href="$base" class="nets-link{{ if $sel_all }} nets-selected{{ endif }} nets-all">$all</a>
+	<ul class="nets-ul">
+	{{ for $nets as $net }}
+	<li><a href="$base?nets=$net.ref" class="nets-link{{ if $net.selected }} nets-selected{{ endif }}">$net.name</a></li>
+	{{ endfor }}
+	</ul>
+</div>
diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css
index 6ce4c52c05..6fa968da36 100644
--- a/view/theme/duepuntozero/style.css
+++ b/view/theme/duepuntozero/style.css
@@ -300,7 +300,7 @@ div.wall-item-content-wrapper.shiny {
 	margin-bottom: 10px;
 }
 
-.group-selected {
+.group-selected, .nets-selected {
 	padding: 3px;
 	-moz-border-radius: 3px;
 	border-radius: 3px;	
@@ -1836,6 +1836,21 @@ a.mail-list-link {
 	margin-top: 10px;
 }
 
+.nets-ul {
+	list-style-type: none;
+}
+
+.nets-ul li {
+	margin-top: 10px;
+}
+
+.nets-link {
+	margin-left: 24px;
+}
+.nets-all {
+	margin-left: 42px;
+}
+
 #search-save {
 	margin-left: 5px;
 }
diff --git a/view/theme/loozah/style.css b/view/theme/loozah/style.css
index 6b8aef500b..ff31a78074 100644
--- a/view/theme/loozah/style.css
+++ b/view/theme/loozah/style.css
@@ -164,7 +164,7 @@ blockquote:before {
     margin-bottom: 10px;
 }
 
-.group-selected {
+.group-selected, .nets-selected {
     padding: 3px;
     border: 1px solid #CCCCCC;
     background: #F8F8F8;
@@ -1901,6 +1901,21 @@ a.mail-list-link {
 	width: 12px;
 }
 
+.nets-ul {
+	list-style-type: none;
+}
+
+.nets-ul li {
+	margin-top: 10px;
+}
+
+.nets-link {
+	margin-left: 24px;
+}
+.nets-all {
+	margin-left: 42px;
+}
+
 #search-save {
     margin-left: 5px;
 }
diff --git a/view/theme/testbubble/style.css b/view/theme/testbubble/style.css
index 3a5d9f1788..54bbdeb980 100644
--- a/view/theme/testbubble/style.css
+++ b/view/theme/testbubble/style.css
@@ -630,7 +630,7 @@ h3#search:before {
 	top:1px;
 }
 
-.group-selected {
+.group-selected, .nets-selected {
 	padding-bottom: 0px;
 	padding-left: 2px;
 	padding-right: 2px;
@@ -668,6 +668,23 @@ ul .sidebar-group-li .icon{
 	width: 12px;
 }
 
+
+.nets-ul {
+	list-style-type: none;
+}
+
+.nets-ul li {
+	margin-top: 10px;
+}
+
+.nets-link {
+	margin-left: 24px;
+}
+.nets-all {
+	margin-left: 42px;
+}
+
+
 .widget h3{
 	background:-webkit-gradient( linear, left top, left bottom, color-stop(0.05, #f0edf0), color-stop(1, #e2e2e2) );
 	background:-moz-linear-gradient( center top, #f0edf0 5%, #e2e2e2 100% );