Browse Source

Merge pull request #2328 from rabuzarus/0602_contact_profile

polishing of the contact-edit page
pull/2405/head
fabrixxm 6 years ago
parent
commit
d30d13959b
  1. 5
      doc/Accesskeys.md
  2. 119
      mod/contacts.php
  3. 91
      view/global.css
  4. 166
      view/templates/contact_edit.tpl
  5. 43
      view/theme/duepuntozero/style.css
  6. 1
      view/theme/frost-mobile/js/main.js
  7. 58
      view/theme/frost-mobile/style.css
  8. 90
      view/theme/frost-mobile/templates/contact_edit.tpl
  9. 64
      view/theme/frost/style.css
  10. 91
      view/theme/frost/templates/contact_edit.tpl
  11. 5
      view/theme/quattro/dark/style.css
  12. 5
      view/theme/quattro/green/style.css
  13. 11
      view/theme/quattro/lilac/style.css
  14. 29
      view/theme/quattro/quattro.less
  15. 48
      view/theme/smoothly/style.css
  16. 8
      view/theme/vier/dark.css
  17. 132
      view/theme/vier/style.css
  18. 98
      view/theme/vier/templates/contact_edit.tpl

5
doc/Accesskeys.md

@ -37,10 +37,7 @@ General
* o: Profile
* t: Contacts
* d: Common friends
* b: Toggle Blocked status
* i: Toggle Ignored status
* v: Toggle Archive status
* r: Repair
* r: Advanced
/message
--------

119
mod/contacts.php

@ -565,6 +565,9 @@ function contacts_content(&$a) {
($contact['rel'] == CONTACT_IS_FOLLOWER))
$follow = $a->get_baseurl(true)."/follow?url=".urlencode($contact["url"]);
// Load contactact related actions like hide, suggest, delete and others
$contact_actions = contact_actions($contact);
$o .= replace_macros($tpl, array(
//'$header' => t('Contact Editor'),
@ -584,7 +587,7 @@ function contacts_content(&$a) {
'$lblcrepair' => t("Repair URL settings"),
'$lblrecent' => t('View conversations'),
'$lblsuggest' => $lblsuggest,
'$delete' => t('Delete contact'),
//'$delete' => t('Delete contact'),
'$nettype' => $nettype,
'$poll_interval' => $poll_interval,
'$poll_enabled' => $poll_enabled,
@ -622,7 +625,11 @@ function contacts_content(&$a) {
'$about' => bbcode($contact["about"], false, false),
'$about_label' => t("About:"),
'$keywords' => $contact["keywords"],
'$keywords_label' => t("Tags:")
'$keywords_label' => t("Tags:"),
'$contact_action_button' => t("Actions"),
'$contact_actions' => $contact_actions,
'$contact_status' => t("Status"),
'$contact_settings_label' => t('Contact Settings'),
));
@ -800,6 +807,17 @@ function contacts_content(&$a) {
return $o;
}
/**
* @brief List of pages for the Contact TabBar
*
* Available Pages are 'Status', 'Profile', 'Contacts' and 'Common Friends'
*
* @param app $a
* @param int $contact_id The ID of the contact
* @param int $active_tab 1 if tab should be marked as active
*
* @return array with with contact TabBar data
*/
function contacts_tab($a, $contact_id, $active_tab) {
// tabs
$tabs = array(
@ -821,6 +839,7 @@ function contacts_tab($a, $contact_id, $active_tab) {
)
);
// Show this tab only if there is visible friend list
$x = count_all_friends(local_user(), $contact_id);
if ($x)
$tabs[] = array('label'=>t('Contacts'),
@ -830,6 +849,7 @@ function contacts_tab($a, $contact_id, $active_tab) {
'id' => 'allfriends-tab',
'accesskey' => 't');
// Show this tab only if there is visible common friend list
$common = count_common_friends(local_user(),$contact_id);
if ($common)
$tabs[] = array('label'=>t('Common Friends'),
@ -839,35 +859,13 @@ function contacts_tab($a, $contact_id, $active_tab) {
'id' => 'common-loc-tab',
'accesskey' => 'd');
$tabs[] = array('label' => t('Repair'),
$tabs[] = array('label' => t('Advanced'),
'url' => 'crepair/' . $contact_id,
'sel' => (($active_tab == 5)?'active':''),
'title' => t('Advanced Contact Settings'),
'id' => 'repair-tab',
'id' => 'advanced-tab',
'accesskey' => 'r');
$tabs[] = array('label' => (($contact['blocked']) ? t('Unblock') : t('Block') ),
'url' => 'contacts/' . $contact_id . '/block',
'sel' => '',
'title' => t('Toggle Blocked status'),
'id' => 'toggle-block-tab',
'accesskey' => 'b');
$tabs[] = array('label' => (($contact['readonly']) ? t('Unignore') : t('Ignore') ),
'url' => 'contacts/' . $contact_id . '/ignore',
'sel' => '',
'title' => t('Toggle Ignored status'),
'id' => 'toggle-ignore-tab',
'accesskey' => 'i');
$tabs[] = array('label' => (($contact['archive']) ? t('Unarchive') : t('Archive') ),
'url' => 'contacts/' . $contact_id . '/archive',
'sel' => '',
'title' => t('Toggle Archive status'),
'id' => 'toggle-archive-tab',
'accesskey' => 'v');
$tab_tpl = get_markup_template('common_tabs.tpl');
$tab_str = replace_macros($tab_tpl, array('$tabs' => $tabs));
@ -954,3 +952,72 @@ function _contact_detail_for_template($rr){
);
}
/**
* @brief Gives a array with actions which can performed to a given contact
*
* This includes actions like e.g. 'block', 'hide', 'archive', 'delete' and others
*
* @param array $contact Data about the Contact
* @return array with contact related actions
*/
function contact_actions($contact) {
$poll_enabled = in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_FEED, NETWORK_MAIL, NETWORK_MAIL2));
$contact_action = array();
// Provide friend suggestion only for Friendica contacts
if($contact['network'] === NETWORK_DFRN) {
$contact_actions['suggest'] = array(
'label' => t('Suggest friends'),
'url' => 'fsuggest/' . $contact['id'],
'title' => '',
'sel' => '',
'id' => 'suggest',
);
}
if($poll_enabled) {
$contact_actions['update'] = array(
'label' => t('Update now'),
'url' => 'contacts/' . $contact['id'] . '/update',
'title' => '',
'sel' => '',
'id' => 'update',
);
}
$contact_actions['block'] = array(
'label' => (intval($contact['blocked']) ? t('Unblock') : t('Block') ),
'url' => 'contacts/' . $contact['id'] . '/block',
'title' => t('Toggle Blocked status'),
'sel' => (intval($contact['blocked']) ? 'active' : ''),
'id' => 'toggle-block',
);
$contact_actions['ignore'] = array(
'label' => (intval($contact['readonly']) ? t('Unignore') : t('Ignore') ),
'url' => 'contacts/' . $contact['id'] . '/ignore',
'title' => t('Toggle Ignored status'),
'sel' => (intval($contact['readonly']) ? 'active' : ''),
'id' => 'toggle-ignore',
);
$contact_actions['archive'] = array(
'label' => (intval($contact['archive']) ? t('Unarchive') : t('Archive') ),
'url' => 'contacts/' . $contact['id'] . '/archive',
'title' => t('Toggle Archive status'),
'sel' => (intval($contact['archive']) ? 'active' : ''),
'id' => 'toggle-archive',
);
$contact_actions['delete'] = array(
'label' => t('Delete'),
'url' => 'contacts/' . $contact['id'] . '/drop',
'title' => t('Delete contact'),
'sel' => '',
'id' => 'delete',
);
return $contact_actions;
}

91
view/global.css

@ -1,6 +1,32 @@
/* General style rules .*/
.pull-right { float: right }
/* General designing elements */
.btn {
outline: none;
-moz-box-shadow: inset 0px 1px 0px 0px #ffffff;
-webkit-box-shadow: inset 0px 1px 0px 0px #ffffff;
box-shadow: inset 0px 1px 0px 0px #ffffff;
background-color: #ededed;
text-indent: 0;
border: 1px solid #dcdcdc;
display: inline-block;
color: #777777;
padding: 5px 10px;
text-align: center;
}
a.btn, a.btn:hover {
text-decoration: none;
color: inherit;
}
.menu-popup .divider {
height: 1px;
margin: 3px 0;
overflow: hidden;
background-color: #2d2d2d;
}
/* List of social Networks */
img.connector, img.connector-disabled {
height: 40px;
@ -277,20 +303,20 @@ a {
margin: 10px 0 10px;
}
.version-match {
font-weight: bold;
color: #00a700;
font-weight: bold;
color: #00a700;
}
.federation-graph {
width: 400px;
height: 400px;
float: right;
margin: 20px;
width: 400px;
height: 400px;
float: right;
margin: 20px;
}
.federation-network-graph {
width: 240px;
height: 240px;
float: left;
margin: 20px;
width: 240px;
height: 240px;
float: left;
margin: 20px;
}
ul.federation-stats,
ul.credits {
@ -302,10 +328,10 @@ ul.credits li {
width: 240px;
}
table#federation-stats {
width: 100%;
width: 100%;
}
td.federation-data {
border-bottom: 1px solid #000;
border-bottom: 1px solid #000;
}
.contact-entry-photo img {
@ -329,25 +355,48 @@ td.federation-data {
}
.crepair-label {
margin-top: 10px;
float: left;
width: 250px;
margin-top: 10px;
float: left;
width: 250px;
}
.crepair-input {
margin-top: 10px;
float: left;
width: 200px;
margin-top: 10px;
float: left;
width: 200px;
}
.renderinfo {
clear: both;
clear: both;
}
.p-addr {
clear: both;
clear: both;
}
#live-community {
clear: both;
clear: both;
}
/* contact-edit */
#contact-edit-status-wrapper {
border: 1px solid;
padding: 10px;
}
#contact-edit-actions {
float: right;
display: inline-block;
position: relative;
}
#contact-edit-actions > .menu-popup {
right: 0;
left: auto;
}
#contact-edit-settings-label:after {
content: ' »';
}
#contact-edit-settings {
display: none;
}

166
view/templates/contact_edit.tpl

@ -1,104 +1,98 @@
{{if $header}}<h2>{{$header}}</h2>{{/if}}
<div id="contact-edit-wrapper" >
{{* Insert Tab-Nav *}}
{{$tab_str}}
<div id="contact-edit-drop-link" >
<a href="contacts/{{$contact_id}}/drop" class="icon drophide" id="contact-edit-drop-link" onclick="return confirmDelete();" title="{{$delete}}" onmouseover="imgbright(this);" onmouseout="imgdull(this);"></a>
</div>
<div id="contact-edit-drop-link-end"></div>
<div id="contact-edit-nav-wrapper" >
<div id="contact-edit-links">
<ul>
{{if $relation_text}}
<li><div id="contact-edit-rel">{{$relation_text}}</div></li>
{{/if}}
{{if $lost_contact}}
<li><div id="lost-contact-message">{{$lost_contact}}</div></li>
{{/if}}
{{if $insecure}}
<li><div id="insecure-message">{{$insecure}}</div></li>
{{/if}}
{{if $blocked}}
<li><div id="block-message">{{$blocked}}</div></li>
{{/if}}
{{if $ignored}}
<li><div id="ignore-message">{{$ignored}}</div></li>
{{/if}}
{{if $archived}}
<li><div id="archive-message">{{$archived}}</div></li>
{{/if}}
</ul>
<ul>
{{if $common_text}}
<li><div id="contact-edit-common"><a href="{{$common_link}}">{{$common_text}}</a></div></li>
{{/if}}
{{if $all_friends}}
<li><div id="contact-edit-allfriends"><a href="allfriends/{{$contact_id}}">{{$all_friends}}</a></div></li>
{{/if}}
<!-- <li><a href="network/0?nets=all&cid={{$contact_id}}" id="contact-edit-view-recent">{{$lblrecent}}</a></li> -->
{{if $lblsuggest}}
<li><a href="fsuggest/{{$contact_id}}" id="contact-edit-suggest">{{$lblsuggest}}</a></li>
{{/if}}
{{if $follow}}
<li><div id="contact-edit-follow"><a href="{{$follow}}">{{$follow_text}}</a></div></li>
{{/if}}
</ul>
<div id="contact-edit-status-wrapper">
<span id="contact-edit-contact-status">{{$contact_status}}</span>
{{* This is the Action menu where contact related actions like 'ignore', 'hide' can be performed *}}
<div id="contact-edit-actions">
<a class="btn" rel="#contact-actions-menu" href="#" id="contact-edit-actions-button">{{$contact_action_button}}</a>
<ul role="menu" aria-haspopup="true" id="contact-actions-menu" class="menu-popup" >
{{if $lblsuggest}}<li role="menuitem"><a href="#" title="{{$contact_actions.suggest.title}}" onclick="window.location.href='{{$contact_actions.suggest.url}}'; return false;">{{$contact_actions.suggest.label}}</a></li>{{/if}}
{{if $poll_enabled}}<li role="menuitem"><a href="#" title="{{$contact_actions.update.title}}" onclick="window.location.href='{{$contact_actions.update.url}}'; return false;">{{$contact_actions.update.label}}</a></li>{{/if}}
<li class="divider"></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.block.title}}" onclick="window.location.href='{{$contact_actions.block.url}}'; return false;">{{$contact_actions.block.label}}</a></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.ignore.title}}" onclick="window.location.href='{{$contact_actions.ignore.url}}'; return false;">{{$contact_actions.ignore.label}}</a></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.archive.title}}" onclick="window.location.href='{{$contact_actions.archive.url}}'; return false;">{{$contact_actions.archive.label}}</a></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.delete.title}}" onclick="return confirmDelete();">{{$contact_actions.delete.label}}</a></li>
</ul>
</div>
{{* Block with status information about the contact *}}
<ul>
{{if $relation_text}}<li><div id="contact-edit-rel">{{$relation_text}}</div></li>{{/if}}
{{if $poll_enabled}}
<li><div id="contact-edit-last-update-text">{{$lastupdtext}} <span id="contact-edit-last-updated">{{$last_update}}</span></div>
{{if $poll_interval}}
<span id="contact-edit-poll-text">{{$updpub}}</span> {{$poll_interval}}
{{/if}}
</li>
{{/if}}
{{if $lost_contact}}<li><div id="lost-contact-message">{{$lost_contact}}</div></li>{{/if}}
{{if $insecure}}<li><div id="insecure-message">{{$insecure}}</div></li> {{/if}}
{{if $blocked}}<li><div id="block-message">{{$blocked}}</div></li>{{/if}}
{{if $ignored}}<li><div id="ignore-message">{{$ignored}}</div></li>{{/if}}
{{if $archived}}<li><div id="archive-message">{{$archived}}</div></li>{{/if}}
</ul>
<ul>
<!-- <li><a href="network/0?nets=all&cid={{$contact_id}}" id="contact-edit-view-recent">{{$lblrecent}}</a></li> -->
{{if $follow}}<li><div id="contact-edit-follow"><a href="{{$follow}}">{{$follow_text}}</a></div></li>{{/if}}
</ul>
</div> {{* End of contact-edit-status-wrapper *}}
{{* Some information about the contact from the profile *}}
<dl><dt>{{$profileurllabel}}</dt><dd><a target="blank" href="{{$url}}">{{$profileurl}}</a></dd></dl>
{{if $location}}<dl><dt>{{$location_label}}</dt><dd>{{$location}}</dd></dl>{{/if}}
{{if $keywords}}<dl><dt>{{$keywords_label}}</dt><dd>{{$keywords}}</dd></dl>{{/if}}
{{if $about}}<dl><dt>{{$about_label}}</dt><dd>{{$about}}</dd></dl>{{/if}}
</div>
</div>
<div id="contact-edit-nav-end"></div>
</div>{{* End of contact-edit-links *}}
<div id="contact-edit-links-end"></div>
<hr />
<hr />
<form action="contacts/{{$contact_id}}" method="post" >
<input type="hidden" name="contact_id" value="{{$contact_id}}">
<h4 id="contact-edit-settings-label" class="fakelink" onclick="openClose('contact-edit-settings')">{{$contact_settings_label}}</h4>
<div id="contact-edit-settings">
<form action="contacts/{{$contact_id}}" method="post" >
<input type="hidden" name="contact_id" value="{{$contact_id}}">
<div id="contact-edit-poll-wrapper">
{{if $poll_enabled}}
<div id="contact-edit-last-update-text">{{$lastupdtext}} <span id="contact-edit-last-updated">{{$last_update}}</span></div>
{{if $poll_interval}}
<span id="contact-edit-poll-text">{{$updpub}}</span> {{$poll_interval}}
<div id="contact-edit-end" ></div>
{{include file="field_checkbox.tpl" field=$notify}}
{{if $fetch_further_information}}
{{include file="field_select.tpl" field=$fetch_further_information}}
{{if $fetch_further_information.2 == 2 }} {{include file="field_textarea.tpl" field=$ffi_keyword_blacklist}} {{/if}}
{{/if}}
{{include file="field_checkbox.tpl" field=$hidden}}
<div id="contact-edit-info-wrapper">
<h4>{{$lbl_info1}}</h4>
<textarea id="contact-edit-info" rows="8" cols="60" name="info">{{$info}}</textarea>
<input class="contact-edit-submit" type="submit" name="submit" value="{{$submit|escape:'html'}}" />
</div>
<div id="contact-edit-info-end"></div>
{{if $profile_select}}
<div id="contact-edit-profile-select-text">
<h4>{{$lbl_vis1}}</h4>
<p>{{$lbl_vis2}}</p>
</div>
{{$profile_select}}
<div id="contact-edit-profile-select-end"></div>
<input class="contact-edit-submit" type="submit" name="submit" value="{{$submit|escape:'html'}}" />
{{/if}}
<span id="contact-edit-update-now" class="button"><a href="contacts/{{$contact_id}}/update" >{{$udnow}}</a></span>
{{/if}}
</div>
<div id="contact-edit-end" ></div>
{{include file="field_checkbox.tpl" field=$notify}}
{{if $fetch_further_information}}
{{include file="field_select.tpl" field=$fetch_further_information}}
{{if $fetch_further_information.2 == 2 }} {{include file="field_textarea.tpl" field=$ffi_keyword_blacklist}} {{/if}}
{{/if}}
{{include file="field_checkbox.tpl" field=$hidden}}
<div id="contact-edit-info-wrapper">
<h4>{{$lbl_info1}}</h4>
<textarea id="contact-edit-info" rows="8" cols="60" name="info">{{$info}}</textarea>
<input class="contact-edit-submit" type="submit" name="submit" value="{{$submit|escape:'html'}}" />
</div>
<div id="contact-edit-info-end"></div>
{{if $profile_select}}
<div id="contact-edit-profile-select-text">
<h4>{{$lbl_vis1}}</h4>
<p>{{$lbl_vis2}}</p>
</div>
{{$profile_select}}
<div id="contact-edit-profile-select-end"></div>
<input class="contact-edit-submit" type="submit" name="submit" value="{{$submit|escape:'html'}}" />
{{/if}}
</form>
</form>
</div>
</div>{{* End of contact-edit-nav-wrapper *}}
</div>

43
view/theme/duepuntozero/style.css

@ -83,6 +83,26 @@ blockquote {
margin-right: 5px;
}
ul.menu-popup {
position: absolute;
display: none;
width: auto;
margin: 2px 0 0;
padding: 0px;
list-style: none;
z-index: 100000;
border: 2px solid #444444;
background: #FFFFFF;
}
.menu-popup li a {
padding: 2px;
white-space: nowrap;
}
a.btn, a.btn:hover {
text-decoration: none;
color: inherit;
}
/* nav */
@ -140,12 +160,12 @@ nav #banner #logo-text a:hover { text-decoration: none; }
.nav-commlink, .nav-login-link {
display: block;
height: 15px;
display: block;
height: 15px;
margin-top: 67px;
margin-right: 2px;
//padding: 6px 10px;
padding: 6px 3px;
/*padding: 6px 10px;*/
padding: 6px 3px;
float: left;
bottom: 140px;
border: 1px solid #babdb6;
@ -244,7 +264,7 @@ section {
display:block;
float:left;
padding: 0.4em;
//margin-right: 1em;
/*margin-right: 1em;*/
margin-right: 3px ;
}
.tab.active {
@ -3371,17 +3391,6 @@ div.jGrowl div.info {
.nav-notify.show {
display: block;
}
ul.menu-popup {
position: absolute;
display: none;
width: 10em;
margin: 0px;
padding: 0px;
list-style: none;
z-index: 100000;
top: 90px;
left: 200px;
}
#nav-notifications-menu {
width: 320px;
max-height: 400px;
@ -3391,6 +3400,8 @@ ul.menu-popup {
-webkit-border-radius: 5px;
border-radius:5px;
border: 1px solid #888;
top: 90px;
left: 200px;
}
#nav-notifications-menu .contactname { font-weight: bold; font-size: 0.9em; }
#nav-notifications-menu img { float: left; margin-right: 5px; }

1
view/theme/frost-mobile/js/main.js

@ -13,7 +13,6 @@
if($(listID).is(":visible")) {
$(listID).hide();
$(listID+"-wrapper").show();
alert($(listID+"-wrapper").attr("id"));
}
else {
$(listID).show();

58
view/theme/frost-mobile/style.css

@ -139,6 +139,47 @@ blockquote {
margin-right: 5px;
}
.btn {
outline: none;
-moz-box-shadow: inset 0px 1px 0px 0px #ffffff;
-webkit-box-shadow: inset 0px 1px 0px 0px #ffffff;
box-shadow: inset 0px 1px 0px 0px #ffffff;
background-color: #ededed;
text-indent: 0;
border: 1px solid #dcdcdc;
display: inline-block;
color: #777777;
padding: 5px 10px;
text-align: center;
border-radius: 8px;
}
.menu-popup {
width: auto;
border: 2px solid #444444;
background: #FFFFFF;
position: absolute;
margin: 2px 0 0;
display: none;
z-index: 10000;
}
.menu-popup li a {
display: block;
padding: 2px;
}
.menu-popup li a:hover {
color: #FFFFFF;
background: #3465A4;
text-decoration: none;
}
ul.menu-popup li.divider {
height: 1px;
margin: 3px 0;
overflow: hidden;
background-color: #2d2d2d;
}
/* nav */
@ -2045,6 +2086,19 @@ input#profile-jot-email {
margin-left: 15px;
}
#contact-edit-status-wrapper {
padding: 10px;
border: 1px solid #aaa;
border-radius: 8px;
}
#contact-edit-contact-status {
font-weight: bold;
}
#contact-edit-actions {
float: right;
display: inline-block;
}
#contact-edit-wrapper {
margin-top: 10px;
}
@ -2059,14 +2113,10 @@ input#profile-jot-email {
}
#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;
}

90
view/theme/frost-mobile/templates/contact_edit.tpl

@ -6,12 +6,6 @@
{{$tab_str}}
<div id="contact-edit-drop-link" >
<a href="contacts/{{$contact_id}}/drop" class="icon drophide" id="contact-edit-drop-link" onclick="return confirmDelete();" title="{{$delete}}" {{*onmouseover="imgbright(this);" onmouseout="imgdull(this);"*}}></a>
</div>
<div id="contact-edit-drop-link-end"></div>
<div class="vcard">
<div class="fn">{{$name}}</div>
<div id="profile-photo-wrapper"><img class="photo" style="width: 175px; height: 175px;" src="{{$photo}}" alt="{{$name}}" /></div>
@ -20,41 +14,49 @@
<div id="contact-edit-nav-wrapper" >
<div id="contact-edit-links">
<ul>
<li><div id="contact-edit-rel">{{$relation_text}}</div></li>
<li><div id="contact-edit-nettype">{{$nettype}}</div></li>
{{if $lost_contact}}
<li><div id="lost-contact-message">{{$lost_contact}}</div></li>
{{/if}}
{{if $insecure}}
<li><div id="insecure-message">{{$insecure}}</div></li>
{{/if}}
{{if $blocked}}
<li><div id="block-message">{{$blocked}}</div></li>
{{/if}}
{{if $ignored}}
<li><div id="ignore-message">{{$ignored}}</div></li>
{{/if}}
{{if $archived}}
<li><div id="archive-message">{{$archived}}</div></li>
{{/if}}
<li>&nbsp;</li>
{{if $common_text}}
<li><div id="contact-edit-common"><a href="{{$common_link}}">{{$common_text}}</a></div></li>
{{/if}}
{{if $all_friends}}
<li><div id="contact-edit-allfriends"><a href="allfriends/{{$contact_id}}">{{$all_friends}}</a></div></li>
{{/if}}
<li><a href="network/0?nets=all&cid={{$contact_id}}" id="contact-edit-view-recent">{{$lblrecent}}</a></li>
{{if $lblsuggest}}
<li><a href="fsuggest/{{$contact_id}}" id="contact-edit-suggest">{{$lblsuggest}}</a></li>
{{/if}}
</ul>
<div id="contact-edit-status-wrapper">
<span id="contact-edit-contact-status">{{$contact_status}}</span>
<div id="contact-edit-actions">
<div class="btn" id="contact-edit-actions-button" onclick="openClose('contact-actions-menu')">{{$contact_action_button}}</div>
<ul role="menu" aria-haspopup="true" id="contact-actions-menu" class="menu-popup" >
{{if $lblsuggest}}<li role="menuitem"><a href="#" title="{{$contact_actions.suggest.title}}" onclick="window.location.href='{{$contact_actions.suggest.url}}'; return false;">{{$contact_actions.suggest.label}}</a></li>{{/if}}
{{if $poll_enabled}}<li role="menuitem"><a href="#" title="{{$contact_actions.update.title}}" onclick="window.location.href='{{$contact_actions.update.url}}'; return false;">{{$contact_actions.update.label}}</a></li>{{/if}}
<li class="divider"></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.block.title}}" onclick="window.location.href='{{$contact_actions.block.url}}'; return false;">{{$contact_actions.block.label}}</a></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.ignore.title}}" onclick="window.location.href='{{$contact_actions.ignore.url}}'; return false;">{{$contact_actions.ignore.label}}</a></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.archive.title}}" onclick="window.location.href='{{$contact_actions.archive.url}}'; return false;">{{$contact_actions.archive.label}}</a></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.delete.title}}" onclick="return confirmDelete();">{{$contact_actions.delete.label}}</a></li>
</ul>
</div>
<ul>
<li><div id="contact-edit-rel">{{$relation_text}}</div></li>
<li><div id="contact-edit-nettype">{{$nettype}}</div></li>
{{if $poll_enabled}}
<div id="contact-edit-poll-wrapper">
<div id="contact-edit-last-update-text">{{$lastupdtext}} <span id="contact-edit-last-updated">{{$last_update}}</span></div>
</div>
{{/if}}
{{if $lost_contact}}
<li><div id="lost-contact-message">{{$lost_contact}}</div></li>
{{/if}}
{{if $insecure}}
<li><div id="insecure-message">{{$insecure}}</div></li>
{{/if}}
{{if $blocked}}
<li><div id="block-message">{{$blocked}}</div></li>
{{/if}}
{{if $ignored}}
<li><div id="ignore-message">{{$ignored}}</div></li>
{{/if}}
{{if $archived}}
<li><div id="archive-message">{{$archived}}</div></li>
{{/if}}
</ul>
</div>
</div>
</div>
<div id="contact-edit-nav-end"></div>
@ -63,12 +65,6 @@
<form action="contacts/{{$contact_id}}" method="post" >
<input type="hidden" name="contact_id" value="{{$contact_id}}">
{{if $poll_enabled}}
<div id="contact-edit-poll-wrapper">
<div id="contact-edit-last-update-text">{{$lastupdtext}} <span id="contact-edit-last-updated">{{$last_update}}</span></div>
<span id="contact-edit-poll-text">{{$updpub}} {{$poll_interval}}</span> <span id="contact-edit-update-now" class="button"><a id="update_now_link" href="contacts/{{$contact_id}}/update" >{{$udnow}}</a></span>
</div>
{{/if}}
<div id="contact-edit-end" ></div>
{{include file="field_checkbox.tpl" field=$hidden}}

64
view/theme/frost/style.css

@ -113,6 +113,51 @@ blockquote {
.pull-right { float: right }
.btn {
outline: none;
-moz-box-shadow: inset 0px 1px 0px 0px #ffffff;
-webkit-box-shadow: inset 0px 1px 0px 0px #ffffff;
box-shadow: inset 0px 1px 0px 0px #ffffff;
background-color: #ededed;
text-indent: 0;
border: 1px solid #dcdcdc;
display: inline-block;
color: #777777;
padding: 5px 10px;
text-align: center;
border-radius: 8px;
}
a.btn {
text-decoration: none;
color: inherit;
}
.menu-popup {
width: auto;
border: 2px solid #444444;
background: #FFFFFF;
position: absolute;
margin: 2px 0 0;
display: none;
z-index: 10000;
}
.menu-popup li a {
display: block;
padding: 2px;
}
.menu-popup li a:hover {
color: #FFFFFF;
background: #3465A4;
text-decoration: none;
}
ul.menu-popup li.divider {
height: 1px;
margin: 3px 0;
overflow: hidden;
background-color: #2d2d2d;
}
/* nav */
@ -1952,6 +1997,20 @@ input#dfrn-url {
margin-left: 15px;
}
#contact-edit-status-wrapper {
padding: 10px;
border: 1px solid #aaa;
border-radius: 8px;
}
#contact-edit-contact-status {
font-weight: bold;
}
#contact-edit-actions {
float: right;
display: inline-block;
}
#contact-edit-wrapper {
margin-top: 10px;
}
@ -1989,11 +2048,6 @@ input#dfrn-url {
margin-top: 5px;
}
#contact-edit-drop-link {
float: right;
margin-right: 20px;
}
#contact-edit-nav-end {
clear: both;
}

91
view/theme/frost/templates/contact_edit.tpl

@ -6,50 +6,51 @@
{{$tab_str}}
<div id="contact-edit-drop-link" >
<a href="contacts/{{$contact_id}}/drop" class="icon drophide" id="contact-edit-drop-link" onclick="return confirmDelete();" title="{{$delete}}" {{*onmouseover="imgbright(this);" onmouseout="imgdull(this);"*}}></a>
</div>
<div id="contact-edit-drop-link-end"></div>
<div id="contact-edit-nav-wrapper" >
<div id="contact-edit-links">
<ul>
<li><div id="contact-edit-rel">{{$relation_text}}</div></li>
<li><div id="contact-edit-nettype">{{$nettype}}</div></li>
{{if $lost_contact}}
<li><div id="lost-contact-message">{{$lost_contact}}</div></li>
{{/if}}
{{if $insecure}}
<li><div id="insecure-message">{{$insecure}}</div></li>
{{/if}}
{{if $blocked}}
<li><div id="block-message">{{$blocked}}</div></li>
{{/if}}
{{if $ignored}}
<li><div id="ignore-message">{{$ignored}}</div></li>
{{/if}}
{{if $archived}}
<li><div id="archive-message">{{$archived}}</div></li>
{{/if}}
<li>&nbsp;</li>
{{if $common_text}}
<li><div id="contact-edit-common"><a href="{{$common_link}}">{{$common_text}}</a></div></li>
{{/if}}
{{if $all_friends}}
<li><div id="contact-edit-allfriends"><a href="allfriends/{{$contact_id}}">{{$all_friends}}</a></div></li>
{{/if}}
<li><a href="network/?cid={{$contact_id}}" id="contact-edit-view-recent">{{$lblrecent}}</a></li>
{{if $lblsuggest}}
<li><a href="fsuggest/{{$contact_id}}" id="contact-edit-suggest">{{$lblsuggest}}</a></li>
{{/if}}
</ul>
<div id="contact-edit-status-wrapper">
<span id="contact-edit-contact-status">{{$contact_status}}</span>
<div id="contact-edit-actions">
<a class="btn" rel="#contact-actions-menu" href="#" id="contact-edit-actions-button">{{$contact_action_button}}</a>
<ul role="menu" aria-haspopup="true" id="contact-actions-menu" class="menu-popup" >
{{if $lblsuggest}}<li role="menuitem"><a href="#" title="{{$contact_actions.suggest.title}}" onclick="window.location.href='{{$contact_actions.suggest.url}}'; return false;">{{$contact_actions.suggest.label}}</a></li>{{/if}}
{{if $poll_enabled}}<li role="menuitem"><a href="#" title="{{$contact_actions.update.title}}" onclick="window.location.href='{{$contact_actions.update.url}}'; return false;">{{$contact_actions.update.label}}</a></li>{{/if}}
<li class="divider"></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.block.title}}" onclick="window.location.href='{{$contact_actions.block.url}}'; return false;">{{$contact_actions.block.label}}</a></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.ignore.title}}" onclick="window.location.href='{{$contact_actions.ignore.url}}'; return false;">{{$contact_actions.ignore.label}}</a></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.archive.title}}" onclick="window.location.href='{{$contact_actions.archive.url}}'; return false;">{{$contact_actions.archive.label}}</a></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.delete.title}}" onclick="return confirmDelete();">{{$contact_actions.delete.label}}</a></li>
</ul>
</div>
<ul>
<li><div id="contact-edit-rel">{{$relation_text}}</div></li>
<li><div id="contact-edit-nettype">{{$nettype}}</div></li>
{{if $poll_enabled}}
<div id="contact-edit-poll-wrapper">
<div id="contact-edit-last-update-text">{{$lastupdtext}} <span id="contact-edit-last-updated">{{$last_update}}</span></div>
</div>
{{/if}}
{{if $lost_contact}}
<li><div id="lost-contact-message">{{$lost_contact}}</div></li>
{{/if}}
{{if $insecure}}
<li><div id="insecure-message">{{$insecure}}</div></li>
{{/if}}
{{if $blocked}}
<li><div id="block-message">{{$blocked}}</div></li>
{{/if}}
{{if $ignored}}
<li><div id="ignore-message">{{$ignored}}</div></li>
{{/if}}
{{if $archived}}
<li><div id="archive-message">{{$archived}}</div></li>
{{/if}}
</ul>
</div>
</div>
</div>
<div id="contact-edit-nav-end"></div>
@ -58,12 +59,6 @@
<form action="contacts/{{$contact_id}}" method="post" >
<input type="hidden" name="contact_id" value="{{$contact_id}}">
{{if $poll_enabled}}
<div id="contact-edit-poll-wrapper">
<div id="contact-edit-last-update-text">{{$lastupdtext}} <span id="contact-edit-last-updated">{{$last_update}}</span></div>
<span id="contact-edit-poll-text">{{$updpub}}</span> {{$poll_interval}} <span id="contact-edit-update-now" class="button"><a href="contacts/{{$contact_id}}/update" >{{$udnow}}</a></span>
</div>
{{/if}}
<div id="contact-edit-end" ></div>
{{include file="field_checkbox.tpl" field=$hidden}}

5
view/theme/quattro/dark/style.css

@ -463,7 +463,7 @@ a:hover {
text-decoration: underline;
}
blockquote {
background: #FFFFFF;
background: #ffffff;
padding: 1em;
margin-left: 1em;
border-left: 1em solid #e6e6e6;
@ -1655,6 +1655,9 @@ span[id^="showmore-wrap"] {
overflow: hidden;
text-overflow: ellipsis;
}
#contact-edit-status-wrapper {
border-color: #364e59;
}
/* editor */
.jothidden {
display: none;

5
view/theme/quattro/green/style.css

@ -463,7 +463,7 @@ a:hover {
text-decoration: underline;
}
blockquote {
background: #FFFFFF;
background: #ffffff;
padding: 1em;
margin-left: 1em;
border-left: 1em solid #e6e6e6;
@ -1655,6 +1655,9 @@ span[id^="showmore-wrap"] {
overflow: hidden;
text-overflow: ellipsis;
}
#contact-edit-status-wrapper {
border-color: #9ade00;
}
/* editor */
.jothidden {
display: none;

11
view/theme/quattro/lilac/style.css

@ -420,7 +420,7 @@
body {
font-family: Liberation Sans, helvetica, arial, clean, sans-serif;
font-size: 11px;
background-color: #F6ECF9;
background-color: #f6ecf9;
color: #2d2d2d;
margin: 50px 0 0 0;
display: table;
@ -463,7 +463,7 @@ a:hover {
text-decoration: underline;
}
blockquote {
background: #FFFFFF;
background: #ffffff;
padding: 1em;
margin-left: 1em;
border-left: 1em solid #e6e6e6;
@ -1655,6 +1655,9 @@ span[id^="showmore-wrap"] {
overflow: hidden;
text-overflow: ellipsis;
}
#contact-edit-status-wrapper {
border-color: #86608e;
}
/* editor */
.jothidden {
display: none;
@ -1753,7 +1756,7 @@ span[id^="showmore-wrap"] {
height: 20px;
width: 500px;
font-weight: bold;
border: 1px solid #F6ECF9;
border: 1px solid #f6ecf9;
}
#jot #jot-title:-webkit-input-placeholder {
font-weight: normal;
@ -1780,7 +1783,7 @@ span[id^="showmore-wrap"] {
margin: 0;
height: 20px;
width: 200px;
border: 1px solid #F6ECF9;
border: 1px solid #f6ecf9;
}
#jot #jot-category:hover {
border: 1px solid #999999;

29
view/theme/quattro/quattro.less

@ -408,19 +408,19 @@ aside {
.group-delete-wrapper {
float: right;
margin-right: 50px;
.drophide {
background-image: url('../../../images/icons/22/delete.png');
display: block; width: 22px; height: 22px;
opacity: 0.3;
position: relative;
top: -50px;
}
.drop {
background-image: url('../../../images/icons/22/delete.png');
display: block; width: 22px; height: 22px;
position: relative;
top: -50px;
}
.drophide {
background-image: url('../../../images/icons/22/delete.png');
display: block; width: 22px; height: 22px;
opacity: 0.3;
position: relative;
top: -50px;
}
.drop {
background-image: url('../../../images/icons/22/delete.png');
display: block; width: 22px; height: 22px;
position: relative;
top: -50px;
}
}
/*
#group-members {
@ -502,7 +502,7 @@ section {
}
.sparkle {
cursor: url('icons/lock.cur'), pointer;
cursor: url('icons/lock.cur'), pointer;
}
/* wall item */
@ -959,6 +959,7 @@ span[id^="showmore-wrap"] {
text-overflow: ellipsis;
}
#contact-edit-status-wrapper { border-color: @JotToolsOverBackgroundColor;}
/* editor */
.jothidden { display: none; }
#jot {

48
view/theme/smoothly/style.css

@ -236,6 +236,39 @@ section {
color: #efefef;
}
ul.menu-popup {
position: absolute;
display: none;
width: auto;
margin: 2px 0 0;
padding: 0px;
list-style: none;
z-index: 100000;
color: #2e3436;
border-top: 1px;
background: #eeeeee;
border: 1px solid #7C7D7B;
border-radius: 0px 0px 5px 5px;
-webkit-border-radius: 0px 0px 5px 5px;
-moz-border-radius: 0px 0px 5px 5px;
box-shadow: 5px 5px 10px #242424;
-moz-box-shadow: 5px 5px 10px #242424;
-webkit-box-shadow: 5px 5px 10px #242424;
}
ul.menu-popup li a {
white-space: nowrap;
display: block;
padding: 5px 2px;
color: #2e3436;
}
ul.menu-popup li a:hover {
color: #efefef;
background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #1873a2), color-stop(1, #6da6c4) );
background: -moz-linear-gradient( center top, #1873a2 5%, #6da6c4 100% );
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#1873a2', endColorstr='#6da6c4');
background-color: #1873a2;
}
/* ========= */
/* = Login = */
/* ========= */
@ -4271,16 +4304,6 @@ a.active {
.nav-notify.show {
display: block;
}
ul.menu-popup {
position: absolute;
display: none;
width: 10em;
margin: 0px;
padding: 0px;
list-style: none;
z-index: 100000;
top: 40px;
}
#nav-notifications-menu {
width: 320px;
max-height: 400px;
@ -4298,6 +4321,7 @@ ul.menu-popup {
box-shadow: 5px 5px 10px #242424;
-moz-box-shadow: 5px 5px 10px #242424;
-webkit-box-shadow: 5px 5px 10px #242424;
top: 40px;
}
#nav-notifications-menu .contactname {
@ -4406,6 +4430,10 @@ ul.menu-popup {
background: #000000;
}
.notify-seen a {
color: #efefef !important;
}
/* Pages profile widget ----------------------------------------------------------- */
#page-profile,

8
view/theme/vier/dark.css

@ -8,6 +8,12 @@ hr { background-color: #343434 !important; }
a, .wall-item-name, .fakelink {
color: #989898 !important;
}
.btn, .btn:hover{
color: #989898;
border: 2px solid #0C1116;
background-color: #0C1116;
text-shadow: none;
}
nav {
color: #989898 !important;
@ -36,7 +42,7 @@ body, section, blockquote, blockquote.shared_content, #profile-jot-form,
}
#profile-jot-acl-wrapper, #event-notice, #event-wrapper,
#cboxLoadedContent, .contact-photo-menu {
#cboxLoadedContent, .contact-photo-menu, #contact-edit-status-wrapper {
background-color: #252C33 !important;
}

132
view/theme/vier/style.css

@ -24,72 +24,72 @@ img {
}
#pending-update {
float:right;
color: #ffffff;
font-weight: bold;
background-color: #FF0000;
padding: 0em 0.3em;
float:right;
color: #ffffff;
font-weight: bold;
background-color: #FF0000;
padding: 0em 0.3em;
}
.admin.linklist {
border: 0px;
padding: 0px;
list-style: none;
margin-top: 0px;
border: 0px;
padding: 0px;
list-style: none;
margin-top: 0px;
}
.admin.link {
list-style-position: inside;
font-size: 1em;
/* padding-left: 5px;
margin: 5px; */
list-style-position: inside;
font-size: 1em;
/* padding-left: 5px;
margin: 5px; */
}
#adminpage dl {
clear: left;
margin-bottom: 2px;
padding-bottom: 2px;
border-bottom: 1px solid black;
clear: left;
margin-bottom: 2px;
padding-bottom: 2px;
border-bottom: 1px solid black;
}
#adminpage dt {
width: 200px;
float: left;
font-weight: bold;
width: 200px;
float: left;
font-weight: bold;
}
#adminpage dd {
margin-left: 200px;
margin-left: 200px;
}
#adminpage h3 {
border-bottom: 1px solid #898989;
margin-bottom: 5px;
margin-top: 10px;
border-bottom: 1px solid #898989;
margin-bottom: 5px;
margin-top: 10px;
}
#adminpage .submit {
clear:left;
clear:left;
}
#adminpage #pluginslist {
margin: 0px; padding: 0px;
margin: 0px; padding: 0px;
}
#adminpage .plugin {
list-style: none;
display: block;
/* border: 1px solid #888888; */
padding: 1em;
margin-bottom: 5px;
clear: left;
list-style: none;
display: block;
/* border: 1px solid #888888; */
padding: 1em;
margin-bottom: 5px;
clear: left;
}
#adminpage .toggleplugin {
float:left;
margin-right: 1em;
float:left;
margin-right: 1em;
}
#adminpage table {width:100%; border-bottom: 1p solid #000000; margin: 5px 0px;}
#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; }
@ -247,15 +247,6 @@ div.pager {
float: left;
}
#contact-edit-drop-link-end {
/* clear: both; */
}
#contact-edit-links ul {
list-style: none;
list-style-type: none;
}
.hide-comments-outer {
margin-left: 80px;
margin-bottom: 5px;
@ -385,6 +376,14 @@ code {
overflow: auto;
padding: 0px;
}
.menu-popup .divider {
width: 90%;
height: 1px;
margin: 3px auto;
overflow: hidden;
background-color: #737373;
opacity: 0.4;
}
#saved-search-ul .tool:hover,
#nets-sidebar .tool:hover,
#sidebar-group-list .tool:hover {
@ -793,7 +792,8 @@ nav #nav-user-linklabel:hover #nav-user-menu,
nav #nav-user-linkmenu:hover #nav-user-menu,
nav #nav-apps-link:hover #nav-apps-menu,
nav #nav-site-linkmenu:hover #nav-site-menu,
nav #nav-notifications-linkmenu:hover #nav-notifications-menu {
nav #nav-notifications-linkmenu:hover #nav-notifications-menu,
#contact-edit-actions:hover #contact-actions-menu {
display:block;
visibility:visible;
opacity:1;
@ -2935,6 +2935,48 @@ a.mail-list-link {
color: #999999;
}
/* contact edit page */
#contact-edit-nav-wrapper {
margin-top: 24px;
}
#contact-edit-status-wrapper {
border-color: #c9d8f6;
background-color: #e0e8fa;
border-radius: 3px;
}
#contact-edit-contact-status {
font-weight: bold;
}
#contact-edit-drop-link-end {
/* clear: both; */
}
#contact-edit-links ul {
list-style: none;
list-style-type: none;
}
#contact-edit-settings {
margin-top: 10px;
}
a.btn#contact-edit-actions-button {
cursor: pointer;
border-radius: 3px;
font-size: inherit;
font-weight: normal;
height: auto;
line-height: inherit;
padding: 5px 10px;
}
#lost-contact-message, #insecure-message,
#block-message, #ignore-message, #archive-message {
color: #CB4437;
}
/* photo album page */
.photo-top-image-wrapper {
position: relative;

98
view/theme/vier/templates/contact_edit.tpl

@ -0,0 +1,98 @@
{{if $header}}<h2>{{$header}}</h2>{{/if}}
<div id="contact-edit-wrapper" >
{{* Insert Tab-Nav *}}
{{$tab_str}}
<div id="contact-edit-nav-wrapper" >
<div id="contact-edit-links">
<div id="contact-edit-status-wrapper">
<span id="contact-edit-contact-status">{{$contact_status}}</span>
{{* This is the Action menu where contact related actions like 'ignore', 'hide' can be performed *}}
<div id="contact-edit-actions">
<a class="btn" id="contact-edit-actions-button">{{$contact_action_button}}</a>
<ul role="menu" aria-haspopup="true" id="contact-actions-menu" class="menu-popup" >
{{if $lblsuggest}}<li role="menuitem"><a href="#" title="{{$contact_actions.suggest.title}}" onclick="window.location.href='{{$contact_actions.suggest.url}}'; return false;">{{$contact_actions.suggest.label}}</a></li>{{/if}}
{{if $poll_enabled}}<li role="menuitem"><a href="#" title="{{$contact_actions.update.title}}" onclick="window.location.href='{{$contact_actions.update.url}}'; return false;">{{$contact_actions.update.label}}</a></li>{{/if}}
<li class="divider"></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.block.title}}" onclick="window.location.href='{{$contact_actions.block.url}}'; return false;">{{$contact_actions.block.label}}</a></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.ignore.title}}" onclick="window.location.href='{{$contact_actions.ignore.url}}'; return false;">{{$contact_actions.ignore.label}}</a></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.archive.title}}" onclick="window.location.href='{{$contact_actions.archive.url}}'; return false;">{{$contact_actions.archive.label}}</a></li>
<li role="menuitem"><a href="#" title="{{$contact_actions.delete.title}}" onclick="return confirmDelete();">{{$contact_actions.delete.label}}</a></li>
</ul>
</div>
{{* Block with status information about the contact