aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-11-05 18:39:10 -0800
committerfriendica <info@friendica.com>2014-11-05 18:39:10 -0800
commit038e7c892376f51f81a2b9769a5a0b69cc17571a (patch)
treefca5261bf1a93b0086e27056c63c7c296dad5b0c
parent70b964d1c4f13937dc564e820c2802ec180444fb (diff)
downloadvolse-hubzilla-038e7c892376f51f81a2b9769a5a0b69cc17571a.tar.gz
volse-hubzilla-038e7c892376f51f81a2b9769a5a0b69cc17571a.tar.bz2
volse-hubzilla-038e7c892376f51f81a2b9769a5a0b69cc17571a.zip
crude skeleton for location manager and the UI sucks but at least it's on a webpage and you don't have to do it by hand.
-rw-r--r--mod/locs.php70
-rw-r--r--view/css/mod_locs.css3
-rw-r--r--view/tpl/locmanage.tpl26
3 files changed, 71 insertions, 28 deletions
diff --git a/mod/locs.php b/mod/locs.php
index 95aa7a579..b707f6bd9 100644
--- a/mod/locs.php
+++ b/mod/locs.php
@@ -1,34 +1,6 @@
<?php /** @file */
-/**
- Placeholder file at present. This is going to involve a bit of work.
-
- This file will deal with the deletion of channels and management of hublocs.
-
- We need to provide the following functionality:
-
- - Delete my account and all channels from the entire network
-
- - Delete my account and all channels from this server
-
- - Delete a channel from the entire network
-
- - Delete a channel from this server
-
- - List all hub locations for this channel
-
- - Remove this/some hub location from this channel
-
- - promote this/some hub location to primary
-
- - Remove hub location 'xyz' from this channel, (this should possibly only be allowed if that hub has been down for a period of time)
-
- - Some of these actions should probably require email verification
-
-*/
-
-
function locs_post(&$a) {
if(! local_user())
@@ -87,4 +59,46 @@ function locs_post(&$a) {
return;
}
}
+}
+
+
+
+function locs_content(&$a) {
+
+
+
+ if(! local_user()) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+
+ $channel = $a->get_channel();
+
+ $r = q("select * from hubloc where hubloc_hash = '%s'",
+ dbesc($channel['channel_hash'])
+ );
+
+ if(! $r) {
+ notice( t('No locations found.') . EOL);
+ return;
+ }
+
+
+ for($x = 0; $x < count($r); $x ++) {
+ $r[$x]['primary'] = (($r[$x]['hubloc_flags'] & HUBLOC_FLAGS_PRIMARY) ? true : false);
+ $r[$x]['deleted'] = (($r[$x]['hubloc_flags'] & HUBLOC_FLAGS_DELETED) ? true : false);
+ }
+
+
+
+ $o = replace_macros(get_markup_template('locmanage.tpl'), array(
+ '$header' => t('Manage Channel Locations'),
+ '$loc' => t('Location (address)'),
+ '$mkprm' => t('Primary Location'),
+ '$drop' => t('Drop location'),
+ '$submit' => t('Submit'),
+ '$hubs' => $r
+ ));
+
+ return $o;
} \ No newline at end of file
diff --git a/view/css/mod_locs.css b/view/css/mod_locs.css
new file mode 100644
index 000000000..95aee6aef
--- /dev/null
+++ b/view/css/mod_locs.css
@@ -0,0 +1,3 @@
+td {
+padding: 10px;
+}
diff --git a/view/tpl/locmanage.tpl b/view/tpl/locmanage.tpl
new file mode 100644
index 000000000..5a25850a1
--- /dev/null
+++ b/view/tpl/locmanage.tpl
@@ -0,0 +1,26 @@
+<h2>{{$header}}</h2>
+
+<script>
+function primehub(id) {
+ $.post('locs','primary='+id,function(data) { window.location.href=window.location.href; });
+}
+function drophub(id) {
+ $.post('locs','drop='+id,function(data) { window.location.href=window.location.href; });
+}
+</script>
+
+<table>
+<tr><td>{{$loc}}</td><td>{{$mkprm}}</td><td>{{$drop}}</td></tr>
+{{foreach $hubs as $hub}}
+<tr><td>
+{{if $hub.deleted}}<strike>{{/if}}
+{{$hub.hubloc_url}} ({{$hub.hubloc_addr}}){{if $hub.deleted}}</strike>{{/if}}</td>
+<td>
+
+{{if $hub.primary}}<i class="icon-check"></i>{{else}}<button class="btn btn-std"><i class="icon-check-empty" onclick="primehub({{$hub.hubloc_id}}); return false;" ></i></button>{{/if}}
+</td>
+<td>{{if $hub.primary}}{{else}}{{if ! $hub.deleted}}<button class="btn btn-std" onclick="drophub({{$hub.hubloc_id}}); return false;"><i class="icon-remove"></i></button>{{/if}}{{/if}}</td>
+</tr>
+{{/foreach}}
+</table>
+