turn multiple profiles into a feature, implement connection flags (block,hide,archive,etc.)

This commit is contained in:
friendica 2012-11-07 18:48:31 -08:00
parent cc8a11eee2
commit 3d56ab227d
9 changed files with 77 additions and 21 deletions

View File

@ -189,6 +189,7 @@ define ( 'PERMS_SPECIFIC' , 0x0080 );
define ( 'ABOOK_FLAG_BLOCKED' , 0x0001); define ( 'ABOOK_FLAG_BLOCKED' , 0x0001);
define ( 'ABOOK_FLAG_IGNORED' , 0x0002); define ( 'ABOOK_FLAG_IGNORED' , 0x0002);
define ( 'ABOOK_FLAG_HIDDEN' , 0x0004); define ( 'ABOOK_FLAG_HIDDEN' , 0x0004);
define ( 'ABOOK_FLAG_ARCHIVED' , 0x0008);
define ( 'ABOOK_FLAG_SELF' , 0x0080); define ( 'ABOOK_FLAG_SELF' , 0x0080);

View File

@ -16,17 +16,18 @@ function get_features() {
$arr = array( $arr = array(
array('multi_delete', t('Multiple Deletion'), t('Select and delete multiple posts/comments at once')), array('multi_delete', t('Multiple Deletion'), t('Select and delete multiple posts/comments at once')),
array('expire', t('Content Expiration'), t('Remove old posts/comments after a period of time')), array('expire', t('Content Expiration'), t('Remove old posts/comments after a period of time')),
array('commtag', t('Community Tagging'), t('Tag existing posts and share the links')), array('commtag', t('Community Tagging'), t('Tag existing posts and share the links')),
array('categories', t('Post Categories'), t('Add categories to your channel postings')), array('categories', t('Post Categories'), t('Add categories to your channel postings')),
array('filing', t('Saved Folders'), t('Ability to file posts under easily remembered names')), array('filing', t('Saved Folders'), t('Ability to file posts under easily remembered names')),
array('archives', t('Search by Date'), t('Select posts by date ranges')), array('archives', t('Search by Date'), t('Select posts by date ranges')),
array('dislike', t('Dislike Posts'), t('Ability to dislike posts/comments')), array('dislike', t('Dislike Posts'), t('Ability to dislike posts/comments')),
array('savedsearch', t('Saved Searches'), t('Save search terms for re-use')), array('savedsearch', t('Saved Searches'), t('Save search terms for re-use')),
array('preview', t('Post Preview'), t('Preview posts and comments before publishing them')), array('preview', t('Post Preview'), t('Preview posts and comments before publishing them')),
array('edit_posts', t('Edit Sent Posts'), t('Edit and correct posts and comments after sending')), array('edit_posts', t('Edit Sent Posts'), t('Edit and correct posts and comments after sending')),
array('richtext', t('Richtext Editor'), t('Use richtext/visual editor where applicable')), array('richtext', t('Richtext Editor'), t('Use richtext/visual editor where applicable')),
array('multi_profiles', t('Multiple Profiles'), t('Show different profiles to different connections/collections')),
); );
call_hooks('get_features',$arr); call_hooks('get_features',$arr);

View File

@ -152,7 +152,9 @@ EOT;
$nav['manage'] = array('manage', t('Channel Select'), "", t('Manage Your Channels')); $nav['manage'] = array('manage', t('Channel Select'), "", t('Manage Your Channels'));
$nav['settings'] = array('settings', t('Settings'),"", t('Account/Channel Settings')); $nav['settings'] = array('settings', t('Settings'),"", t('Account/Channel Settings'));
$nav['profiles'] = array('profiles', t('Profiles'),"", t('Manage/Edit Profiles')); if(feature_enabled(local_user(),'multi_profiles'))
$nav['profiles'] = array('profiles', t('Profiles'),"", t('Manage/Edit Profiles'));
$nav['contacts'] = array('connections', t('Connections'),"", t('Manage/Edit Friends and Connections')); $nav['contacts'] = array('connections', t('Connections'),"", t('Manage/Edit Friends and Connections'));
} }

View File

@ -307,9 +307,56 @@ EOT;
$contact_id = $a->data['abook']['abook_id']; $contact_id = $a->data['abook']['abook_id'];
$contact = $a->data['abook']; $contact = $a->data['abook'];
$editselect = 'none';
if(feature_enabled(local_user(),'richtext')) $tabs = array(
$editselect = 'exact';
array(
'label' => t('View Profile'),
'url' => $a->get_baseurl(true) . '/connections/' . $contact['abook_id'] . '/profile',
'sel' => '',
'title' => sprintf( t('View %s\'s profile'), $contact['xchan_name']),
),
array(
'label' => (($contact['abook_flags'] & ABOOK_FLAG_BLOCKED) ? t('Unblock') : t('Block')),
'url' => $a->get_baseurl(true) . '/connections/' . $contact['abook_id'] . '/block',
'sel' => (($contact['abook_flags'] & ABOOK_FLAG_BLOCKED) ? 'active' : ''),
'title' => t('Block or Unblock this connection'),
),
array(
'label' => (($contact['abook_flags'] & ABOOK_FLAG_IGNORED) ? t('Unignore') : t('Ignore')),
'url' => $a->get_baseurl(true) . '/connections/' . $contact['abook_id'] . '/ignore',
'sel' => (($contact['abook_flags'] & ABOOK_FLAG_IGNORED) ? 'active' : ''),
'title' => t('Ignore or Unignore this connection'),
),
array(
'label' => (($contact['abook_flags'] & ABOOK_FLAG_ARCHIVED) ? t('Unarchive') : t('Archive')),
'url' => $a->get_baseurl(true) . '/connections/' . $contact['abook_id'] . '/archive',
'sel' => (($contact['abook_flags'] & ABOOK_FLAG_ARCHIVED) ? 'active' : ''),
'title' => t('Archive or Unarchive this connection'),
),
array(
'label' => (($contact['abook_flags'] & ABOOK_FLAG_HIDDEN) ? t('Unhide') : t('Hide')),
'url' => $a->get_baseurl(true) . '/connections/' . $contact['abook_id'] . '/hide',
'sel' => (($contact['abook_flags'] & ABOOK_FLAG_HIDDEN) ? 'active' : ''),
'title' => t('Hide or Unhide this connection'),
),
array(
'label' => t('Delete'),
'url' => $a->get_baseurl(true) . '/connections/' . $contact['abook_id'] . '/drop',
'sel' => '',
'title' => t('Delete this connection'),
),
);
$tab_tpl = get_markup_template('common_tabs.tpl');
$t = replace_macros($tab_tpl, array('$tabs'=>$tabs));
$a->page['htmlhead'] .= replace_macros(get_markup_template('contact_head.tpl'), array( $a->page['htmlhead'] .= replace_macros(get_markup_template('contact_head.tpl'), array(
'$baseurl' => $a->get_baseurl(true), '$baseurl' => $a->get_baseurl(true),
@ -326,7 +373,6 @@ EOT;
'$val' => $contact['abook_closeness'], '$val' => $contact['abook_closeness'],
'$intimate' => t('Best Friends'), '$intimate' => t('Best Friends'),
'$friends' => t('Friends'), '$friends' => t('Friends'),
'$coworkers' => t('Co-workers'),
'$oldfriends' => t('Former Friends'), '$oldfriends' => t('Former Friends'),
'$acquaintances' => t('Acquaintances'), '$acquaintances' => t('Acquaintances'),
'$world' => t('Unknown') '$world' => t('Unknown')
@ -337,6 +383,7 @@ EOT;
'$header' => t('Contact Settings') . ' for ' . $contact['xchan_name'], '$header' => t('Contact Settings') . ' for ' . $contact['xchan_name'],
'$viewprof' => t('View Profile'), '$viewprof' => t('View Profile'),
'$slide' => $slide, '$slide' => $slide,
'$tabs' => $t,
'$tab_str' => $tab_str, '$tab_str' => $tab_str,
'$submit' => t('Submit'), '$submit' => t('Submit'),
'$lbl_vis1' => t('Profile Visibility'), '$lbl_vis1' => t('Profile Visibility'),

View File

@ -1 +1 @@
2012-11-06.130 2012-11-07.131

View File

@ -3709,3 +3709,4 @@ ul.menu-popup {
.notify-seen { .notify-seen {
background: #DDDDDD; background: #DDDDDD;
} }

View File

@ -1,8 +1,10 @@
<h2>$header</h2> <h2>$header</h2>
<br />
<a href="connections/$contact_id/profile">$viewprof</a> <div id="connection-flag-tabs">
$tabs
</div>
<div id="contact-edit-wrapper"> <div id="contact-edit-wrapper">
<br /> <br />
@ -10,6 +12,8 @@
$slide $slide
<h3>Permissions</h3> <h3>Permissions</h3>
<form action="abook/$contact_id" method="post" > <form action="abook/$contact_id" method="post" >

View File

@ -1,4 +1,4 @@
<div id="contact-slider" class="slider" style="height: 32px; position: relative; left: 5%; width: 90%;"><input id="contact-range" type="text" name="fake-closeness" value="$val" /></div> <div id="contact-slider" class="slider" style="height: 32px; position: relative; left: 5%; width: 90%;"><input id="contact-range" type="text" name="fake-closeness" value="$val" /></div>
<script> <script>
$("#contact-range").slider({ from: 0, to: 99, step: 1, scale: ['$me', '$intimate', '|', '$friends', '|', '$coworkers', '|', '$oldfriends', '|', '$acquaintances', '|', '$world' ], onstatechange: function(v) { $("#contact-closeness-mirror").val(v); } }); $("#contact-range").slider({ from: 0, to: 99, step: 1, scale: ['$me', '|', '$intimate', '|', '$friends', '|', '$oldfriends', '|', '$acquaintances', '|', '$world' ], onstatechange: function(v) { $("#contact-closeness-mirror").val(v); } });
</script> </script>

View File

@ -1,6 +1,6 @@
<div id="main-slider" class="slider" ><input id="main-range" type="text" name="cminmax" value="$val" /></div> <div id="main-slider" class="slider" ><input id="main-range" type="text" name="cminmax" value="$val" /></div>
<script> <script>
$("#main-range").slider({ from: 0, to: 99, step: 1, scale: ['$me', '$intimate', '|', '$friends', '|', '$coworkers', '|', '$oldfriends', '|', '$acquaintances', '|', '$world' ], onstatechange: function(v) { $("#main-range").slider({ from: 0, to: 99, step: 1, scale: ['$me', '|', '$intimate', '|', '$friends', '|', '$oldfriends', '|', '$acquaintances', '|', '$world' ], onstatechange: function(v) {
var carr = v.split(";"); var carr = v.split(";");
network_cmin = carr[0]; network_cmin = carr[0];
network_cmax = carr[1]; network_cmax = carr[1];