diff options
-rw-r--r-- | Zotlabs/Module/Connections.php | 8 | ||||
-rw-r--r-- | Zotlabs/Module/Profile_photo.php | 30 | ||||
-rw-r--r-- | Zotlabs/Module/Profiles.php | 38 | ||||
-rw-r--r-- | Zotlabs/Module/Settings/Profiles.php | 8 | ||||
-rw-r--r-- | include/selectors.php | 8 | ||||
-rw-r--r-- | view/tpl/connection_template.tpl | 9 | ||||
-rw-r--r-- | view/tpl/profile_edit.tpl | 2 |
7 files changed, 43 insertions, 60 deletions
diff --git a/Zotlabs/Module/Connections.php b/Zotlabs/Module/Connections.php index b77e5d06d..0f674965d 100644 --- a/Zotlabs/Module/Connections.php +++ b/Zotlabs/Module/Connections.php @@ -332,9 +332,6 @@ class Connections extends \Zotlabs\Web\Controller { 'thumb' => $rr['xchan_photo_m'], 'name' => $rr['xchan_name'], 'classes' => ((intval($rr['abook_archived']) || intval($rr['abook_not_here'])) ? 'archived' : ''), - 'link' => z_root() . '/connedit/' . $rr['abook_id'], - 'deletelink' => z_root() . '/connedit/' . intval($rr['abook_id']) . '/drop', - 'delete' => t('Delete'), 'url' => chanlink_hash($rr['xchan_hash']), 'webbie_label' => t('Channel address'), 'webbie' => $rr['xchan_addr'], @@ -345,6 +342,7 @@ class Connections extends \Zotlabs\Web\Controller { 'phone' => $phone, 'status_label' => t('Status'), 'status' => $status_str, + 'states' => $status, 'connected_label' => t('Connected'), 'connected' => datetime_convert('UTC',date_default_timezone_get(),$rr['abook_created'], 'c'), 'approve_hover' => t('Approve connection'), @@ -358,7 +356,8 @@ class Connections extends \Zotlabs\Web\Controller { 'connect' => (intval($rr['abook_not_here']) ? t('Connect') : ''), 'follow' => z_root() . '/follow/?f=&url=' . urlencode($rr['xchan_hash']) . '&interactive=0', 'connect_hover' => t('Connect at this location'), - 'role' => $roles_dict[$rr['abook_role']] + 'role' => $roles_dict[$rr['abook_role']], + 'pending' => intval($rr['abook_pending']) ); } } @@ -398,6 +397,7 @@ class Connections extends \Zotlabs\Web\Controller { '$finding' => (($searching) ? t('Contact search') . ": '" . $search . "'" : ""), '$submit' => t('Find'), '$edit' => t('Edit'), + '$approve' => t('Approve'), '$cmd' => App::$cmd, '$contacts' => $contacts, '$paginate' => paginate($a), diff --git a/Zotlabs/Module/Profile_photo.php b/Zotlabs/Module/Profile_photo.php index 57b491801..661694d18 100644 --- a/Zotlabs/Module/Profile_photo.php +++ b/Zotlabs/Module/Profile_photo.php @@ -56,7 +56,6 @@ class Profile_photo extends Controller { check_form_security_token_redirectOnErr('/profile_photo', 'profile_photo'); - $r = q("select id, profile_guid, is_default, gender from profile where uid = %d", intval(local_channel()) ); @@ -99,7 +98,6 @@ class Profile_photo extends Controller { dbesc(z_root() . '/photo/profile/m/' . local_channel()), intval(local_channel()) ); - } } else { @@ -211,14 +209,12 @@ class Profile_photo extends Controller { // If setting for the default profile, unset the profile photo flag from any other photos I own if ($is_default_profile) { - q("update profile set photo = '%s', thumb = '%s' where is_default = 1 and uid = %d", dbesc(z_root() . '/photo/profile/l/' . local_channel()), dbesc(z_root() . '/photo/profile/m/' . local_channel()), intval(local_channel()) ); - q("UPDATE photo SET photo_usage = %d WHERE photo_usage = %d AND resource_id != '%s' AND uid = %d", intval(PHOTO_NORMAL), @@ -227,9 +223,7 @@ class Profile_photo extends Controller { intval(local_channel()) ); - send_profile_photo_activity($channel, $base_image, $profile); - } else { q("update profile set photo = '%s', thumb = '%s' where id = %d and uid = %d", @@ -288,12 +282,10 @@ class Profile_photo extends Controller { // A new photo was uploaded. Store it and save some important details // in App::$data for use in the cropping function - $hash = photo_new_resource(); $importing = false; $smallest = 0; - if ($_REQUEST['importfile']) { $hash = $_REQUEST['importfile']; $importing = true; @@ -358,6 +350,7 @@ class Profile_photo extends Controller { notice(t('Image upload failed.') . EOL); return; } + $os_storage = false; foreach ($i as $ii) { @@ -501,14 +494,16 @@ class Profile_photo extends Controller { return; } - if (intval($r[0]['os_storage'])) + if (intval($r[0]['os_storage'])) { $data = @file_get_contents($r[0]['content']); - else + } + else { $data = dbunescbin($r[0]['content']); - + } $ph = photo_factory($data, $r[0]['mimetype']); $smallest = 0; + if ($ph->is_valid()) { // go ahead as if we have just uploaded a new photo to crop @@ -573,7 +568,8 @@ class Profile_photo extends Controller { $filename = App::$data['imagecrop'] . '-' . App::$data['imagecrop_resolution']; $tpl = get_markup_template("cropbody.tpl"); - $o = replace_macros($tpl, [ + + $o = replace_macros($tpl, [ '$filename' => $filename, '$profile' => $profile_id, '$resource' => App::$data['imagecrop'] . '-' . App::$data['imagecrop_resolution'], @@ -583,6 +579,7 @@ class Profile_photo extends Controller { '$form_security_token' => get_form_security_token("profile_photo"), '$done' => t('Done editing') ]); + return $o; } @@ -601,10 +598,13 @@ class Profile_photo extends Controller { function profile_photo_crop_ui_head($ph, $hash, $smallest) { $max_length = get_config('system', 'max_image_length'); - if (!$max_length) + + if (!$max_length) { $max_length = MAX_IMAGE_LENGTH; - if ($max_length > 0) + } + if ($max_length > 0) { $ph->scaleImage($max_length); + } App::$data['width'] = $ph->getWidth(); App::$data['height'] = $ph->getHeight(); @@ -615,10 +615,10 @@ class Profile_photo extends Controller { App::$data['height'] = $ph->getHeight(); } - App::$data['imagecrop'] = $hash; App::$data['imagecrop_resolution'] = $smallest; App::$page['htmlhead'] .= replace_macros(get_markup_template("crophead.tpl"), []); + return; } diff --git a/Zotlabs/Module/Profiles.php b/Zotlabs/Module/Profiles.php index ca0ca4f1a..70f6b1125 100644 --- a/Zotlabs/Module/Profiles.php +++ b/Zotlabs/Module/Profiles.php @@ -163,34 +163,6 @@ class Profiles extends \Zotlabs\Web\Controller { killme(); } - - - - // Run profile_load() here to make sure the theme is set before - // we start loading content - if(((argc() > 1) && (intval(argv(1)))) || !feature_enabled(local_channel(),'multi_profiles')) { - if(feature_enabled(local_channel(),'multi_profiles')) - $id = \App::$argv[1]; - else { - $x = q("select id from profile where uid = %d and is_default = 1", - intval(local_channel()) - ); - if($x) - $id = $x[0]['id']; - } - $r = q("SELECT * FROM profile WHERE id = %d AND uid = %d LIMIT 1", - intval($id), - intval(local_channel()) - ); - if(! count($r)) { - notice( t('Profile not found.') . EOL); - \App::$error = 404; - return; - } - - $chan = \App::get_channel(); - profile_load($chan['channel_address'],$r[0]['id']); - } } function post() { @@ -628,8 +600,6 @@ class Profiles extends \Zotlabs\Web\Controller { } if($is_default) { - // reload the info for the sidebar widget - profile_load($channel['channel_address']); \Zotlabs\Daemon\Master::Summon(array('Directory',local_channel())); } } @@ -640,13 +610,13 @@ class Profiles extends \Zotlabs\Web\Controller { $o = ''; - $channel = \App::get_channel(); - if(! local_channel()) { notice( t('Permission denied.') . EOL); return; } + $channel = \App::get_channel(); + require_once('include/channel.php'); $profile_fields_basic = get_profile_fields_basic(); @@ -662,6 +632,7 @@ class Profiles extends \Zotlabs\Web\Controller { if($x) $id = $x[0]['id']; } + $r = q("SELECT * FROM profile WHERE id = %d AND uid = %d LIMIT 1", intval($id), intval(local_channel()) @@ -672,6 +643,9 @@ class Profiles extends \Zotlabs\Web\Controller { return; } + // make sure we got uptodate data + profile_load($channel['channel_address'], $id); + $editselect = 'none'; \App::$page['htmlhead'] .= replace_macros(get_markup_template('profed_head.tpl'), array( diff --git a/Zotlabs/Module/Settings/Profiles.php b/Zotlabs/Module/Settings/Profiles.php index 67b03e04f..a1a1b8d96 100644 --- a/Zotlabs/Module/Settings/Profiles.php +++ b/Zotlabs/Module/Settings/Profiles.php @@ -13,14 +13,14 @@ class Profiles { $module = substr(strrchr(strtolower(static::class), '\\'), 1); check_form_security_token_redirectOnErr('/settings/' . $module, 'settings_' . $module); - + $features = get_module_features($module); process_module_features_post(local_channel(), $features, $_POST); $profile_assign = ((x($_POST,'profile_assign')) ? notags(trim($_POST['profile_assign'])) : ''); set_pconfig(local_channel(),'system','profile_assign',$profile_assign); - + Libsync::build_sync_packet(); if($_POST['rpath']) @@ -38,7 +38,7 @@ class Profiles { $extra_settings_html = ''; if(feature_enabled(local_channel(),'multi_profiles')) - $extra_settings_html = contact_profile_assign(get_pconfig(local_channel(),'system','profile_assign','')); + $extra_settings_html = contact_profile_assign(get_pconfig(local_channel(),'system','profile_assign',''), t('Default profile for new contacts')); $tpl = get_markup_template("settings_module.tpl"); @@ -51,7 +51,7 @@ class Profiles { '$extra_settings_html' => $extra_settings_html, '$submit' => t('Submit') )); - + return $o; } diff --git a/include/selectors.php b/include/selectors.php index d58ef1085..57a9db480 100644 --- a/include/selectors.php +++ b/include/selectors.php @@ -1,7 +1,7 @@ <?php /** @file */ -function contact_profile_assign($current) { +function contact_profile_assign($current, $label = '') { $r = q("SELECT profile_guid, profile_name FROM profile WHERE uid = %d", intval($_SESSION['uid']) @@ -13,9 +13,13 @@ function contact_profile_assign($current) { } } + if (!$label) { + $label = t('Select a profile to assign to this contact'); + } + $select = [ 'profile_assign', - t('Select a profile to assign to this contact'), + $label, $current, '', $options diff --git a/view/tpl/connection_template.tpl b/view/tpl/connection_template.tpl index 5c1542111..090899cd6 100644 --- a/view/tpl/connection_template.tpl +++ b/view/tpl/connection_template.tpl @@ -1,6 +1,11 @@ <div id="contact-entry-wrapper-{{$contact.id}}"> <div class="section-subtitle-wrapper clearfix"> <div class="float-end"> + {{if $contact.status}} + {{foreach $contact.states as $state}} + <span class="badge rounded-pill bg-danger text-white me-1" title="">{{$state}}</span> + {{/foreach}} + {{/if}} <span id="contact-role-{{$contact.id}}" class="badge rounded-pill bg-warning text-dark me-1" title="{{$role_label}}">{{$contact.role}}</span> <button type="button" class="btn btn-outline-secondary btn-sm contact-edit" title="{{$contact.edit_hover}}" data-id="{{$contact.id}}"> <i class="fa fa-pencil"></i> {{$contact.edit}} @@ -16,11 +21,11 @@ {{include "connstatus.tpl" perminfo=$contact.perminfo}} </div> <div class="contact-info"> - {{if $contact.status}} + {{** if $contact.status}} <div class="contact-info-element"> <span class="contact-info-label">{{$contact.status_label}}:</span> {{$contact.status}} </div> - {{/if}} + {{/if **}} {{if $contact.connected}} <div class="contact-info-element"> <span class="contact-info-label">{{$contact.connected_label}}:</span> <span class="autotime" title="{{$contact.connected}}"></span> diff --git a/view/tpl/profile_edit.tpl b/view/tpl/profile_edit.tpl index 7361411b9..c55ce0183 100644 --- a/view/tpl/profile_edit.tpl +++ b/view/tpl/profile_edit.tpl @@ -30,7 +30,7 @@ {{/if}} </div> </div> - <h2>{{$banner}}</h2> + <h2>{{$banner}}{{if $multi_profiles}}: {{$profile_name.2}}{{/if}}</h2> <div class="clear"></div> </div> <div class="section-content-tools-wrapper" id="profile-upload-form"> |