This commit is contained in:
jeroenpraat 2016-03-01 22:09:06 +01:00
commit 8b61e546fe
21 changed files with 244 additions and 62 deletions

View File

@ -47,10 +47,10 @@ require_once('include/account.php');
define ( 'PLATFORM_NAME', 'hubzilla' ); define ( 'PLATFORM_NAME', 'hubzilla' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc'))); define ( 'RED_VERSION', trim(file_get_contents('version.inc')));
define ( 'STD_VERSION', '1.2.4' ); define ( 'STD_VERSION', '1.2.5' );
define ( 'ZOT_REVISION', 1 ); define ( 'ZOT_REVISION', 1 );
define ( 'DB_UPDATE_VERSION', 1164 ); define ( 'DB_UPDATE_VERSION', 1165 );
/** /**

View File

@ -550,3 +550,67 @@ function set_aconfig($account_id, $family, $key, $value) {
function del_aconfig($account_id, $family, $key) { function del_aconfig($account_id, $family, $key) {
return del_xconfig('a_' . $account_id, $family, $key); return del_xconfig('a_' . $account_id, $family, $key);
} }
function load_abconfig($chash,$xhash) {
$r = q("select * from abconfig where chan = '%s' and xchan = '%s'",
dbesc($chash),
dbesc($xhash)
);
return $r;
}
function get_abconfig($chash,$xhash,$family,$key) {
$r = q("select * from abconfig where chan = '%s' and xchan = '%s' and cat = '%s' and k = '%s' limit 1",
dbesc($chash),
dbesc($xhash),
dbesc($family),
dbesc($key)
);
if($r) {
return ((preg_match('|^a:[0-9]+:{.*}$|s', $r[0]['v'])) ? unserialize($r[0]['v']) : $r[0]['v']);
}
return false;
}
function set_abconfig($chash,$xhash,$family,$key,$value) {
$dbvalue = ((is_array($value)) ? serialize($value) : $value);
$dbvalue = ((is_bool($dbvalue)) ? intval($dbvalue) : $dbvalue);
if(get_abconfig($chash,$xhash,$family,$key) === false) {
$r = q("insert into abconfig ( chan, xchan, cat, k, v ) values ( '%s', '%s', '%s', '%s', '%s' ) ",
dbesc($chash),
dbesc($xhash),
dbesc($family),
dbesc($key),
dbesc($dbvalue)
);
}
else {
$r = q("update abconfig set v = '%s' where chan = '%s' and xchan = '%s' and cat = '%s' and k = '%s' ",
dbesc($dbvalue),
dbesc($chash),
dbesc($xhash),
dbesc($family),
dbesc($key)
);
}
if($r)
return $value;
return false;
}
function del_abconfig($chash,$xhash,$family,$key) {
$r = q("delete from abconfig where chan = '%s' and xchan = '%s' and cat = '%s' and k = '%s' ",
dbesc($chash),
dbesc($xhash),
dbesc($family),
dbesc($key)
);
return $r;
}

View File

@ -505,8 +505,12 @@ function identity_basic_export($channel_id, $items = false) {
if($r) { if($r) {
$ret['abook'] = $r; $ret['abook'] = $r;
foreach($r as $rr) for($x = 0; $x < count($ret['abook']); $x ++) {
$xchans[] = $rr['abook_xchan']; $xchans[] = $ret['abook'][$x]['abook_chan'];
$abconfig = load_abconfig($ret['channel']['channel_hash'],$ret['abook'][$x]['abook_xchan']);
if($abconfig)
$ret['abook'][$x]['abconfig'] = $abconfig;
}
stringify_array_elms($xchans); stringify_array_elms($xchans);
} }

View File

@ -522,6 +522,11 @@ function zot_refresh($them, $channel = null, $force = false) {
unset($new_connection[0]['abook_id']); unset($new_connection[0]['abook_id']);
unset($new_connection[0]['abook_account']); unset($new_connection[0]['abook_account']);
unset($new_connection[0]['abook_channel']); unset($new_connection[0]['abook_channel']);
$abconfig = load_abconfig($channel['channel_hash'],$new_connection['abook_xchan']);
if($abconfig)
$new_connection['abconfig'] = $abconfig;
build_sync_packet($channel['channel_id'], array('abook' => $new_connection)); build_sync_packet($channel['channel_id'], array('abook' => $new_connection));
} }
} }
@ -3124,6 +3129,11 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) {
foreach($arr['abook'] as $abook) { foreach($arr['abook'] as $abook) {
$abconfig = null;
if(array_key_exists('abconfig',$abook) && is_array($abook['abconfig']) && count($abook['abconfig']))
$abconfig = $abook['abconfig'];
if(! array_key_exists('abook_blocked',$abook)) { if(! array_key_exists('abook_blocked',$abook)) {
// convert from redmatrix // convert from redmatrix
$abook['abook_blocked'] = (($abook['abook_flags'] & 0x0001) ? 1 : 0); $abook['abook_blocked'] = (($abook['abook_flags'] & 0x0001) ? 1 : 0);
@ -3214,8 +3224,13 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) {
} }
} }
if($abconfig) {
// @fixme does not handle sync of del_abconfig
foreach($abconfig as $abc) {
if($abc['chan'] === $channel['channel_hash'])
set_abconfig($abc['chan'],$abc['xchan'],$abc['cat'],$abc['k'],$abc['v']);
}
}
} }
} }

View File

@ -1,4 +1,18 @@
CREATE TABLE IF NOT EXISTS `abconfig` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`chan` char(255) NOT NULL DEFAULT '',
`xchan` char(255) NOT NULL DEFAULT '',
`cat` char(255) NOT NULL DEFAULT '',
`k` char(255) NOT NULL DEFAULT '',
`v` mediumtext NOT NULL,
PRIMARY KEY (`id`),
KEY `chan` (`chan`),
KEY `xchan` (`xchan`),
KEY `cat` (`cat`),
KEY `k` (`k`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `abook` ( CREATE TABLE IF NOT EXISTS `abook` (
`abook_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `abook_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`abook_account` int(10) unsigned NOT NULL DEFAULT '0', `abook_account` int(10) unsigned NOT NULL DEFAULT '0',

View File

@ -1,3 +1,16 @@
CREATE TABLE "abconfig" (
"id" serial NOT NULL,
"chan" text NOT NULL,
"xchan" text NOT NULL,
"cat" text NOT NULL,
"k" text NOT NULL,
"v" text NOT NULL,
PRIMARY KEY ("id")
);
create index "abconfig_chan" on abconfig ("chan");
create index "abconfig_xchan" on abconfig ("xchan");
create index "abconfig_cat" on abconfig ("cat");
create index "abconfig_k" on abconfig ("k");
CREATE TABLE "abook" ( CREATE TABLE "abook" (
"abook_id" serial NOT NULL, "abook_id" serial NOT NULL,
"abook_account" bigint NOT NULL, "abook_account" bigint NOT NULL,
@ -547,7 +560,7 @@ CREATE TABLE "iconfig" (
"k" text NOT NULL DEFAULT '', "k" text NOT NULL DEFAULT '',
"v" text NOT NULL DEFAULT '', "v" text NOT NULL DEFAULT '',
"sharing" int NOT NULL DEFAULT '0', "sharing" int NOT NULL DEFAULT '0',
PRIMARY_KEY("id") PRIMARY KEY("id")
); );
create index "iconfig_iid" on iconfig ("iid"); create index "iconfig_iid" on iconfig ("iid");
create index "iconfig_cat" on iconfig ("cat"); create index "iconfig_cat" on iconfig ("cat");

View File

@ -1,6 +1,6 @@
<?php <?php
define( 'UPDATE_VERSION' , 1164 ); define( 'UPDATE_VERSION' , 1165 );
/** /**
* *
@ -2019,3 +2019,42 @@ function update_r1163() {
return UPDATE_SUCCESS; return UPDATE_SUCCESS;
return UPDATE_FAILED; return UPDATE_FAILED;
} }
function update_r1164() {
if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
$r1 = q("CREATE TABLE \"abconfig\" (
\"id\" serial NOT NULL,
\"chan\" text NOT NULL,
\"xchan\" text NOT NULL,
\"cat\" text NOT NULL,
\"k\" text NOT NULL,
\"v\" text NOT NULL,
PRIMARY KEY (\"id\") ");
$r2 = q("create index \"abconfig_chan\" on abconfig (\"chan\") ");
$r3 = q("create index \"abconfig_xchan\" on abconfig (\"xchan\") ");
$r4 = q("create index \"abconfig_cat\" on abconfig (\"cat\") ");
$r5 = q("create index \"abconfig_k\" on abconfig (\"k\") ");
$r = $r1 && $r2 && $r3 && $r4 && $r5;
}
else {
$r = q("CREATE TABLE IF NOT EXISTS `abconfig` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`chan` char(255) NOT NULL DEFAULT '',
`xchan` char(255) NOT NULL DEFAULT '',
`cat` char(255) NOT NULL DEFAULT '',
`k` char(255) NOT NULL DEFAULT '',
`v` mediumtext NOT NULL,
PRIMARY KEY (`id`),
KEY `chan` (`chan`),
KEY `xchan` (`xchan`),
KEY `cat` (`cat`),
KEY `k` (`k`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ");
}
if($r)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}

View File

@ -322,6 +322,9 @@ function connedit_clone(&$a) {
if(! $a->poi) if(! $a->poi)
return; return;
$channel = $a->get_channel();
$r = q("SELECT abook.*, xchan.* $r = q("SELECT abook.*, xchan.*
FROM abook left join xchan on abook_xchan = xchan_hash FROM abook left join xchan on abook_xchan = xchan_hash
WHERE abook_channel = %d and abook_id = %d LIMIT 1", WHERE abook_channel = %d and abook_id = %d LIMIT 1",
@ -338,6 +341,10 @@ function connedit_clone(&$a) {
unset($clone['abook_account']); unset($clone['abook_account']);
unset($clone['abook_channel']); unset($clone['abook_channel']);
$abconfig = load_abconfig($channel['channel_hash'],$clone['abook_xchan']);
if($abconfig)
$clone['abconfig'] = $abconfig;
build_sync_packet(0 /* use the current local_channel */, array('abook' => array($clone))); build_sync_packet(0 /* use the current local_channel */, array('abook' => array($clone)));
} }

View File

@ -14,7 +14,9 @@ function follow_init(&$a) {
$return_url = $_SESSION['return_url']; $return_url = $_SESSION['return_url'];
$confirm = intval($_REQUEST['confirm']); $confirm = intval($_REQUEST['confirm']);
$result = new_contact($uid,$url,$a->get_channel(),true,$confirm); $channel = $a->get_channel();
$result = new_contact($uid,$url,$channel,true,$confirm);
if($result['success'] == false) { if($result['success'] == false) {
if($result['message']) if($result['message'])
@ -34,6 +36,10 @@ function follow_init(&$a) {
unset($clone['abook_account']); unset($clone['abook_account']);
unset($clone['abook_channel']); unset($clone['abook_channel']);
$abconfig = load_abconfig($channel['channel_hash'],$clone['abook_xchan']);
if($abconfig)
$clone['abconfig'] = $abconfig;
build_sync_packet(0 /* use the current local_channel */, array('abook' => array($clone))); build_sync_packet(0 /* use the current local_channel */, array('abook' => array($clone)));

View File

@ -341,6 +341,10 @@ function import_account(&$a, $account_id) {
if($abooks) { if($abooks) {
foreach($abooks as $abook) { foreach($abooks as $abook) {
$abconfig = null;
if(array_key_exists('abconfig',$abook) && is_array($abook['abconfig']) && count($abook['abconfig']))
$abconfig = $abook['abconfig'];
unset($abook['abook_id']); unset($abook['abook_id']);
unset($abook['abook_rating']); unset($abook['abook_rating']);
unset($abook['abook_rating_text']); unset($abook['abook_rating_text']);
@ -382,6 +386,17 @@ function import_account(&$a, $account_id) {
$friends ++; $friends ++;
if(intval($abook['abook_feed'])) if(intval($abook['abook_feed']))
$feeds ++; $feeds ++;
if($abconfig) {
// @fixme does not handle sync of del_abconfig
foreach($abconfig as $abc) {
if($abc['chan'] === $channel['channel_hash'])
set_abconfig($abc['chan'],$abc['xchan'],$abc['cat'],$abc['k'],$abc['v']);
}
}
} }
} }
logger('import step 8'); logger('import step 8');

View File

@ -1 +1 @@
2016-02-28.1321H 2016-02-29.1322H

View File

@ -19,20 +19,30 @@ code {
display:none; display:none;
} }
#jot-title-wrap,
#jot-pagetitle-wrap,
#jot-category-wrap {
border-bottom: 1px solid #ccc;
}
#jot-attachment-wrap {
border-top: 1px solid #ccc;
}
#jot-title-wrap input, #jot-title-wrap input,
#jot-pagetitle-wrap input { #jot-pagetitle-wrap input {
padding: 8px; padding: 10px;
margin-bottom: 5px;
} }
.profile-jot-text { .profile-jot-text {
height: 39px; height: 39px;
padding: 8px; padding: 10px;
width: 100%; width: 100%;
} }
.jot-attachment { .jot-attachment {
padding: 8px; border: 0px;
padding: 10px;
width: 100%; width: 100%;
} }
@ -42,13 +52,18 @@ code {
} }
#profile-jot-submit-wrapper { #profile-jot-submit-wrapper {
margin-top: 10px; border-top: 1px solid #ccc;
padding: 10px;
} }
#profile-jot-perms-end { #profile-jot-perms-end {
height: 30px; height: 30px;
} }
#profile-jot-form {
line-height: initial;
}
#profile-jot-wrapper { #profile-jot-wrapper {
margin-bottom: 30px; margin-bottom: 30px;
} }
@ -194,6 +209,7 @@ a.wall-item-name-link {
padding: 8px; padding: 8px;
height: 150px; height: 150px;
overflow: auto; overflow: auto;
resize: vertical;
} }
.qcomment { .qcomment {

View File

@ -38,6 +38,6 @@
} }
#files-upload { #files-upload {
padding: 4px; padding: 7px 10px;
width: 100%; width: 100%;
} }

View File

@ -25,7 +25,7 @@
} }
#photos-upload-choose { #photos-upload-choose {
padding: 4px; padding: 7px 10px;
width: 100%; width: 100%;
} }

View File

@ -295,7 +295,7 @@ footer {
.vcard { .vcard {
margin-bottom: 10px; margin-bottom: 10px;
padding: 10px; padding: 0px 10px 10px 10px;
background-color: rgba(254,254,254,0.5); background-color: rgba(254,254,254,0.5);
border: 1px solid rgba(254,254,254,0.5); border: 1px solid rgba(254,254,254,0.5);
-moz-border-radius: $radiuspx; -moz-border-radius: $radiuspx;
@ -341,9 +341,7 @@ footer {
#profile-photo-wrapper { #profile-photo-wrapper {
width: 251px; width: 251px;
height: 251px; height: 251px;
margin-top: -10px;
margin-bottom: 10px; margin-bottom: 10px;
border: 1px solid #ccc;
border-radius: $radiuspx; border-radius: $radiuspx;
} }
@ -1142,7 +1140,6 @@ img.mail-conv-sender-photo {
.jothidden { .jothidden {
font-weight: bold; font-weight: bold;
border-radius: $radiuspx;
} }
.jothidden input::-webkit-input-placeholder { .jothidden input::-webkit-input-placeholder {
@ -1153,30 +1150,26 @@ img.mail-conv-sender-photo {
font-weight: bold; font-weight: bold;
} }
.jothidden > input {
border: 1px solid transparent;
background-color: transparent;
}
.jothidden > input:hover,
.jothidden > input:focus {
border: 1px solid #cccccc;
background-color: #fff;
}
#profile-jot-wrapper { #profile-jot-wrapper {
background-color: rgba(254,254,254,.5); background-color: rgba(254,254,254,1);
border: 1px solid rgba(254,254,254,.5); border: 1px solid #ccc;
border-radius: $radiuspx; border-radius: $radiuspx;
} }
#profile-jot-text { #profile-jot-text {
color:#000; resize: none;
border: 1px solid #cccccc; border-width: 0px;
-moz-border-radius: $radiuspx;
border-radius: $radiuspx; border-radius: $radiuspx;
} }
#profile-jot-text:focus {
resize: vertical;
}
#profile-jot-text::-webkit-input-placeholder { #profile-jot-text::-webkit-input-placeholder {
font-size:16px; font-size:16px;
} }
@ -1515,7 +1508,7 @@ nav .dropdown-menu {
.section-content-tools-wrapper { .section-content-tools-wrapper {
padding: 7px 10px; padding: 7px 10px;
background-color: $comment_item_colour; background-color: $comment_item_colour;
border-bottom: 3px solid $comment_item_colour; border-bottom: 3px solid comment_item_colour;
} }
.section-content-info-wrapper { .section-content-info-wrapper {
@ -1709,9 +1702,8 @@ nav .badge.mail-update:hover {
.nav-tabs.nav-justified { .nav-tabs.nav-justified {
background-color: rgba(254,254,254,.5); background-color: rgba(254,254,254,.5);
border: 1px solid rgba(254,254,254,.5); border-top-left-radius: 4px;
border-top-left-radius: $radiuspx; border-top-right-radius: 4px;
border-top-right-radius: $radiuspx;
} }
.nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a,
@ -1824,13 +1816,13 @@ nav .badge.mail-update:hover {
/* Modified original CSS to match input in Redbasic */ /* Modified original CSS to match input in Redbasic */
.jothidden .bootstrap-tagsinput { .jothidden .bootstrap-tagsinput {
border-color: $bgcolour; border: 0px solid transparent;
background-color: $bgcolour; margin-bottom: 0px;
box-shadow: none; box-shadow: none;
display: inline-block; display: inline-block;
border-radius: $radiuspx; border-radius: $radiuspx;
cursor: text; cursor: text;
padding: 0px 8px; padding: 0px 10px;
width: 100%; width: 100%;
} }
@ -1838,11 +1830,6 @@ nav .badge.mail-update:hover {
font-size: 100%; font-size: 100%;
} }
.jothidden .bootstrap-tagsinput:hover, .jothidden .bootstrap-tagsinput:focus {
border: 1px solid #ccc;
background-color: #fff;
}
/* Abusing theme-green is less work than makeing a new new one */ /* Abusing theme-green is less work than makeing a new new one */
.theme-green .back-bar .selected-bar { background-color: #000000; background-image: none; !important } .theme-green .back-bar .selected-bar { background-color: #000000; background-image: none; !important }

View File

@ -1,7 +1,7 @@
<div class="generic-content-wrapper"> <div class="generic-content-wrapper">
<div class="section-title-wrapper"> <div class="section-title-wrapper">
<div class="pull-right"> <div class="pull-right">
<button class="btn btn-success btn-xs" onclick="openClose('form'); closeMenu('event-tools');">{{$new_event.1}}</button> <button class="btn btn-success btn-xs" onclick="openClose('form');">{{$new_event.1}}</button>
<div class="btn-group"> <div class="btn-group">
<button class="btn btn-default btn-xs" onclick="changeView('prev', false);" title="{{$prev}}"><i class="icon-backward"></i></button> <button class="btn btn-default btn-xs" onclick="changeView('prev', false);" title="{{$prev}}"><i class="icon-backward"></i></button>
<button id="events-spinner" class="btn btn-default btn-xs" onclick="changeView('today', false);" title="{{$today}}"><i class="icon-bullseye"></i></button> <button id="events-spinner" class="btn btn-default btn-xs" onclick="changeView('today', false);" title="{{$today}}"><i class="icon-bullseye"></i></button>

View File

@ -1,4 +1,4 @@
<div class='form-group field input'> <div id="id_{{$field.0}}_wrapper" class='form-group field input'>
<label for='id_{{$field.0}}' id='label_{{$field.0}}'>{{$field.1}}{{if $field.4}}<span class="required"> {{$field.4}}</span>{{/if}}</label> <label for='id_{{$field.0}}' id='label_{{$field.0}}'>{{$field.1}}{{if $field.4}}<span class="required"> {{$field.4}}</span>{{/if}}</label>
<input class="form-control" name='{{$field.0}}' id='id_{{$field.0}}' type="text" value="{{$field.2}}"{{if $field.5}} {{$field.5}}{{/if}}> <input class="form-control" name='{{$field.0}}' id='id_{{$field.0}}' type="text" value="{{$field.2}}"{{if $field.5}} {{$field.5}}{{/if}}>
<span id='help_{{$field.0}}' class='help-block'>{{$field.3}}</span> <span id='help_{{$field.0}}' class='help-block'>{{$field.3}}</span>

View File

@ -1,3 +1,10 @@
{{$mimeselect}}
{{$layoutselect}}
{{if $id_select}}
<div class="channel-id-select-div">
<span class="channel-id-select-desc">{{$id_seltext}}</span> {{$id_select}}
</div>
{{/if}}
<div id="profile-jot-wrapper"> <div id="profile-jot-wrapper">
<form id="profile-jot-form" action="{{$action}}" method="post"> <form id="profile-jot-form" action="{{$action}}" method="post">
{{if $parent}} {{if $parent}}
@ -17,13 +24,7 @@
<input type="hidden" name="preview" id="jot-preview" value="0" /> <input type="hidden" name="preview" id="jot-preview" value="0" />
<input type="hidden" id="jot-consensus" name="consensus" value="{{if $consensus}}{{$consensus}}{{else}}0{{/if}}" /> <input type="hidden" id="jot-consensus" name="consensus" value="{{if $consensus}}{{$consensus}}{{else}}0{{/if}}" />
{{if $showacl}}{{$acl}}{{/if}} {{if $showacl}}{{$acl}}{{/if}}
{{$mimeselect}}
{{$layoutselect}}
{{if $id_select}}
<div class="channel-id-select-div">
<span class="channel-id-select-desc">{{$id_seltext}}</span> {{$id_select}}
</div>
{{/if}}
{{if $webpage}} {{if $webpage}}
<div id="jot-pagetitle-wrap" class="jothidden"> <div id="jot-pagetitle-wrap" class="jothidden">
<input name="pagetitle" id="jot-pagetitle" type="text" placeholder="{{$placeholdpagetitle}}" value="{{$pagetitle}}"> <input name="pagetitle" id="jot-pagetitle" type="text" placeholder="{{$placeholdpagetitle}}" value="{{$pagetitle}}">
@ -159,10 +160,11 @@
</div> </div>
<div id="profile-jot-text-loading"></div> <div id="profile-jot-text-loading"></div>
<div id="profile-jot-end" class="clear"></div> <div id="profile-jot-end" class="clear"></div>
<div id="jot-preview-content" style="display:none;"></div>
</form> </form>
</div> </div>
<div id="jot-preview-content" style="display:none;"></div>
<!-- Modal for item expiry--> <!-- Modal for item expiry-->
<div class="modal" id="expiryModal" tabindex="-1" role="dialog" aria-labelledby="expiryModalLabel" aria-hidden="true"> <div class="modal" id="expiryModal" tabindex="-1" role="dialog" aria-labelledby="expiryModalLabel" aria-hidden="true">
<div class="modal-dialog"> <div class="modal-dialog">

View File

@ -26,7 +26,7 @@
<div id="body-textarea"> <div id="body-textarea">
{{include file="field_textarea.tpl" field=$body}} {{include file="field_textarea.tpl" field=$body}}
</div> </div>
<div class="pull-right btn-group form-group"> <div class="pull-right btn-group">
<div class="btn-group"> <div class="btn-group">
{{if $lockstate}} {{if $lockstate}}
<button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" onclick="return false;"> <button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" onclick="return false;">

View File

@ -23,7 +23,7 @@
<li><a href="profile_photo" >{{$editmenu.menu.chg_photo}}</a></li> <li><a href="profile_photo" >{{$editmenu.menu.chg_photo}}</a></li>
{{if $editmenu.menu.cr_new}}<li><a href="profiles/new" id="profile-listing-new-link">{{$editmenu.menu.cr_new}}</a></li>{{/if}} {{if $editmenu.menu.cr_new}}<li><a href="profiles/new" id="profile-listing-new-link">{{$editmenu.menu.cr_new}}</a></li>{{/if}}
</ul> </ul>
{{else}} {{elseif $editmenu}}
<a class="btn btn-primary btn-xs" href="{{$editmenu.edit.0}}" ><i class="icon-pencil"></i>&nbsp;{{$editmenu.edit.3}}</a> <a class="btn btn-primary btn-xs" href="{{$editmenu.edit.0}}" ><i class="icon-pencil"></i>&nbsp;{{$editmenu.edit.3}}</a>
{{/if}} {{/if}}
</div> </div>

View File

@ -19,7 +19,7 @@
{{if $editmenu.menu.cr_new}}<li><a href="profiles/new" id="profile-listing-new-link">{{$editmenu.menu.cr_new}}</a></li>{{/if}} {{if $editmenu.menu.cr_new}}<li><a href="profiles/new" id="profile-listing-new-link">{{$editmenu.menu.cr_new}}</a></li>{{/if}}
</ul> </ul>
</div> </div>
{{else}} {{elseif $editmenu}}
<a class="profile-edit-side-link" href="{{$editmenu.edit.0}}" ><i class="icon-pencil" title="{{$editmenu.edit.1}}"></i></a> <a class="profile-edit-side-link" href="{{$editmenu.edit.0}}" ><i class="icon-pencil" title="{{$editmenu.edit.1}}"></i></a>
{{/if}} {{/if}}
{{/if}} {{/if}}