diff options
-rw-r--r-- | Zotlabs/Lib/Apps.php | 9 | ||||
-rw-r--r-- | app/channel.apd | 4 | ||||
-rw-r--r-- | app/connections.apd | 4 | ||||
-rw-r--r-- | app/directory.apd | 4 | ||||
-rw-r--r-- | app/events.apd | 4 | ||||
-rw-r--r-- | app/grid.apd | 4 | ||||
-rw-r--r-- | app/help.apd | 4 | ||||
-rw-r--r-- | app/mail.apd | 6 | ||||
-rw-r--r-- | app/photos.apd | 4 | ||||
-rw-r--r-- | app/storage.apd | 4 | ||||
-rw-r--r-- | app/wiki.apd | 4 | ||||
-rw-r--r-- | include/nav.php | 63 | ||||
-rw-r--r-- | view/css/bootstrap-red.css | 49 | ||||
-rw-r--r-- | view/js/main.js | 30 | ||||
-rw-r--r-- | view/theme/redbasic/css/style.css | 24 | ||||
-rw-r--r-- | view/tpl/app.tpl | 2 | ||||
-rwxr-xr-x | view/tpl/nav.tpl | 370 | ||||
-rw-r--r-- | view/tpl/navapps.tpl | 17 |
18 files changed, 281 insertions, 325 deletions
diff --git a/Zotlabs/Lib/Apps.php b/Zotlabs/Lib/Apps.php index 595cf33ee..c8345e351 100644 --- a/Zotlabs/Lib/Apps.php +++ b/Zotlabs/Lib/Apps.php @@ -339,12 +339,9 @@ class Apps { } $install_action = (($installed) ? t('Update') : t('Install')); - $icon = ((strpos($papp['photo'],'icon:') === 0) ? substr($papp['photo'],5) : ''); - return replace_macros(get_markup_template('app.tpl'),array( '$app' => $papp, - '$icon' => $icon, '$hosturl' => $hosturl, '$purchase' => (($papp['page'] && (! $installed)) ? t('Purchase') : ''), '$install' => (($hosturl && $mode == 'view') ? $install_action : ''), @@ -512,8 +509,11 @@ class Apps { intval(TERM_OBJ_APP), intval($r[$x]['id']) ); + + $r[$x]['app_icon'] = ((strpos($r[$x]['app_photo'],'icon:') === 0) ? substr($r[$x]['app_photo'],5) : ''); } } + return($r); } @@ -719,6 +719,9 @@ class Apps { if($app['app_photo']) $ret['photo'] = $app['app_photo']; + if($app['app_icon']) + $ret['icon'] = $app['app_icon']; + if($app['app_version']) $ret['version'] = $app['app_version']; diff --git a/app/channel.apd b/app/channel.apd index 0b5400ae4..a13f9fd8b 100644 --- a/app/channel.apd +++ b/app/channel.apd @@ -1,4 +1,6 @@ +version: 1 url: $baseurl/channel/$nick requires: local_channel name: Channel Home -photo: $baseurl/app/home.png +photo: icon:home +categories: nav_featured_app, Conversation, Personal diff --git a/app/connections.apd b/app/connections.apd index f4b5ad87a..63bc1ef1f 100644 --- a/app/connections.apd +++ b/app/connections.apd @@ -1,4 +1,6 @@ +version: 1 url: $baseurl/connections requires: local_channel name: Connections -photo: $baseurl/app/connections.png +photo: icon:users +categories: nav_featured_app, Social diff --git a/app/directory.apd b/app/directory.apd index c4a6f12d9..a4efa1831 100644 --- a/app/directory.apd +++ b/app/directory.apd @@ -1,3 +1,5 @@ +version: 1 url: $baseurl/directory name: Directory -photo: $baseurl/app/directory.png +photo: icon:sitemap +categories: nav_featured_app, Social diff --git a/app/events.apd b/app/events.apd index dd725e177..dc3257d77 100644 --- a/app/events.apd +++ b/app/events.apd @@ -1,4 +1,6 @@ +version: 1 url: $baseurl/events requires: local_channel name: Events -photo: $baseurl/app/events.png +photo: icon:calendar +categories: nav_featured_app, Productivity diff --git a/app/grid.apd b/app/grid.apd index bc77aa6f1..e152c33d0 100644 --- a/app/grid.apd +++ b/app/grid.apd @@ -1,4 +1,6 @@ +version: 1 url: $baseurl/network requires: local_channel name: Grid -photo: $baseurl/images/hubzilla_logo_6.png +photo: icon:th +categories: nav_featured_app, Conversation, Social diff --git a/app/help.apd b/app/help.apd index ca7208e6a..8c7d2ea83 100644 --- a/app/help.apd +++ b/app/help.apd @@ -1,3 +1,5 @@ +version: 1 url: $baseurl/help name: Help -photo: $baseurl/app/help.png +photo: icon:question +categories: nav_featured_app diff --git a/app/mail.apd b/app/mail.apd index b9fdb9967..cc427500e 100644 --- a/app/mail.apd +++ b/app/mail.apd @@ -1,4 +1,6 @@ -url: $baseurl/message +version: 1 +url: $baseurl/mail/combined requires: local_channel name: Mail -photo: $baseurl/app/mail.png +photo: icon:envelope +categories: nav_featured_app, Conversation diff --git a/app/photos.apd b/app/photos.apd index 3422d5205..7a7a4b7b6 100644 --- a/app/photos.apd +++ b/app/photos.apd @@ -1,4 +1,6 @@ +version: 1 url: $baseurl/photos/$nick requires: local_channel name: Photos -photo: $baseurl/app/photos.png +photo: icon:photo +categories: Multimedia diff --git a/app/storage.apd b/app/storage.apd index c959a3cd4..7dcbcc089 100644 --- a/app/storage.apd +++ b/app/storage.apd @@ -1,4 +1,6 @@ +version: 1 url: $baseurl/cloud/$nick requires: local_channel name: Files -photo: $baseurl/app/storage.png +photo: icon:folder-open +categories: Productivity diff --git a/app/wiki.apd b/app/wiki.apd index 95245055c..94a3e6741 100644 --- a/app/wiki.apd +++ b/app/wiki.apd @@ -1,4 +1,6 @@ +version: 1 url: $baseurl/wiki/$nick requires: local_channel name: Wiki -photo: $baseurl/app/wiki.png +photo: icon:pencil-square-o +categories: Productivity diff --git a/include/nav.php b/include/nav.php index 7d6877600..356c0643b 100644 --- a/include/nav.php +++ b/include/nav.php @@ -85,30 +85,30 @@ EOT; $nav['logout'] = Array('logout',t('Logout'), "", t('End this session'),'logout_nav_btn'); // user menu - $nav['usermenu'][] = Array('channel/' . $channel['channel_address'], t('Home'), "", t('Your posts and conversations'),'channel_nav_btn'); + //$nav['usermenu'][] = Array('channel/' . $channel['channel_address'], t('Home'), "", t('Your posts and conversations'),'channel_nav_btn'); $nav['usermenu'][] = Array('profile/' . $channel['channel_address'], t('View Profile'), "", t('Your profile page'),'profile_nav_btn'); if(feature_enabled(local_channel(),'multi_profiles') && (! $basic)) $nav['usermenu'][] = Array('profiles', t('Edit Profiles'),"", t('Manage/Edit profiles'),'profiles_nav_btn'); else $nav['usermenu'][] = Array('profiles/' . $prof[0]['id'], t('Edit Profile'),"", t('Edit your profile'),'profiles_nav_btn'); - $nav['usermenu'][] = Array('photos/' . $channel['channel_address'], t('Photos'), "", t('Your photos'),'photos_nav_btn'); - $nav['usermenu'][] = Array('cloud/' . $channel['channel_address'],t('Files'),"",t('Your files'),'cloud_nav_btn'); + //$nav['usermenu'][] = Array('photos/' . $channel['channel_address'], t('Photos'), "", t('Your photos'),'photos_nav_btn'); + //$nav['usermenu'][] = Array('cloud/' . $channel['channel_address'],t('Files'),"",t('Your files'),'cloud_nav_btn'); - if((! $basic) && feature_enabled(local_channel(),'ajaxchat')) - $nav['usermenu'][] = Array('chat/' . $channel['channel_address'], t('Chat'),"",t('Your chatrooms'),'chat_nav_btn'); + //if((! $basic) && feature_enabled(local_channel(),'ajaxchat')) + // $nav['usermenu'][] = Array('chat/' . $channel['channel_address'], t('Chat'),"",t('Your chatrooms'),'chat_nav_btn'); - require_once('include/menu.php'); - $has_bookmarks = menu_list_count(local_channel(),'',MENU_BOOKMARK) + menu_list_count(local_channel(),'',MENU_SYSTEM|MENU_BOOKMARK); - if(($has_bookmarks) && (! $basic)) { - $nav['usermenu'][] = Array('bookmarks', t('Bookmarks'), "", t('Your bookmarks'),'bookmarks_nav_btn'); - } + //require_once('include/menu.php'); + //$has_bookmarks = menu_list_count(local_channel(),'',MENU_BOOKMARK) + menu_list_count(local_channel(),'',MENU_SYSTEM|MENU_BOOKMARK); + //if(($has_bookmarks) && (! $basic)) { + // $nav['usermenu'][] = Array('bookmarks', t('Bookmarks'), "", t('Your bookmarks'),'bookmarks_nav_btn'); + //} - if(feature_enabled($channel['channel_id'],'webpages') && (! $basic)) - $nav['usermenu'][] = Array('webpages/' . $channel['channel_address'],t('Webpages'),"",t('Your webpages'),'webpages_nav_btn'); - if(feature_enabled($channel['channel_id'],'wiki') && (! $basic)) - $nav['usermenu'][] = Array('wiki/' . $channel['channel_address'],t('Wikis'),"",t('Your wikis'),'wiki_nav_btn'); + //if(feature_enabled($channel['channel_id'],'webpages') && (! $basic)) + // $nav['usermenu'][] = Array('webpages/' . $channel['channel_address'],t('Webpages'),"",t('Your webpages'),'webpages_nav_btn'); + //if(feature_enabled($channel['channel_id'],'wiki') && (! $basic)) + // $nav['usermenu'][] = Array('wiki/' . $channel['channel_address'],t('Wikis'),"",t('Your wikis'),'wiki_nav_btn'); } else { if(! get_account_id()) { @@ -244,28 +244,25 @@ EOT; //app bin - $navapps = ''; - if(get_config('system','experimental_app_bin')) { - if(local_channel()) { - //Zlib\Apps::import_system_apps(); - $syslist = array(); - $list = Zlib\Apps::app_list(local_channel(), false, 'nav_featured_app'); - if($list) { - foreach($list as $li) { - $syslist[] = Zlib\Apps::app_encode($li); - } + if(local_channel()) { + //Zlib\Apps::import_system_apps(); + $syslist = array(); + $list = Zlib\Apps::app_list(local_channel(), false, 'nav_featured_app'); + if($list) { + foreach($list as $li) { + $syslist[] = Zlib\Apps::app_encode($li); } - Zlib\Apps::translate_system_apps($syslist); - } - else { - $syslist = Zlib\Apps::get_system_apps(true); } - - $navapps = replace_macros(get_markup_template('navapps.tpl'), array( - '$apps' => $syslist, - '$localuser' => local_channel(), - )); + Zlib\Apps::translate_system_apps($syslist); } + else { + $syslist = Zlib\Apps::get_system_apps(true); + } + + $navapps = replace_macros(get_markup_template('navapps.tpl'), array( + '$apps' => $syslist, + '$localuser' => local_channel(), + )); $tpl = get_markup_template('nav.tpl'); diff --git a/view/css/bootstrap-red.css b/view/css/bootstrap-red.css index cea911440..f1ebb204e 100644 --- a/view/css/bootstrap-red.css +++ b/view/css/bootstrap-red.css @@ -3,23 +3,15 @@ /* nav overrides */ nav .badge { - position: relative; - top: -49px; - left: 2px; - float: left; + position: absolute; + top: 1px; + left: 1px; font-size: 10px; line-height: 20px; padding: 0px 5px; height: 20px; min-width: 20px; border-radius: 10px; - cursor: pointer; -} - -@media screen and (max-width: 767px) { - nav .badge { - top: -46px; - } } #navbar-collapse-1 i, @@ -27,31 +19,12 @@ nav .badge { font-size: 14px; } -nav ul li { - max-height: 50px; -} - nav .navbar-header img { height: 49px; width: 49px; margin-top: 1px; } -nav .dropdown-menu { - max-height: 450px; - width: 270px; - overflow-y: auto; - margin-top: 0px; -} - -nav .navbar-collapse .navbar-left { - float: left; -} - -nav .navbar-collapse .navbar-right { - float: right; -} - /* nav overrides end */ @@ -60,13 +33,19 @@ aside .nav-pills > li > a, padding: 6px 10px; } -.wall-item-tools .dropdown-menu { - min-width: auto; +nav .dropdown-menu { + margin-top: 0px; + max-height: 70vh; + overflow: auto; +} + +nav .navbar-collapse.in .dropdown-menu { + max-height: none; + overflow: none; } -.dropdown-menu li a { - overflow: hidden; - text-overflow: ellipsis; +.wall-item-tools .dropdown-menu { + min-width: auto; } .nav-tabs.nav-justified > li { diff --git a/view/js/main.js b/view/js/main.js index 2fc912093..db37925e5 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -308,12 +308,6 @@ $(function() { } } - // fancyboxes - // Is this actually used anywhere? - $("a.popupbox").colorbox({ - 'transition' : 'elastic' - }); - NavUpdate(); // Allow folks to stop the ajax page updates with the pause/break key $(document).keydown(function(event) { @@ -374,30 +368,38 @@ function NavUpdate() { updateCountsOnly = false; + if(data.network || data.home || data.intros || data.mail || data.all_events || data.notify) { + $('#notifications-btn').css('color', 'white').prop('disabled', false); + } + else { + $('#notifications-btn').css('color', 'grey').prop('disabled', true); + $('#navbar-collapse-1').removeClass('in'); + } + if(data.network == 0) { data.network = ''; - $('.net-update').removeClass('show'); + $('.net-update, .net-button').hide(); } else { - $('.net-update').addClass('show'); + $('.net-update, .net-button').show(); } $('.net-update').html(data.network); - if(data.home == 0) { data.home = ''; $('.home-update').removeClass('show'); } else { $('.home-update').addClass('show'); } + if(data.home == 0) { data.home = ''; $('.home-update, .home-button').hide(); } else { $('.home-update, .home-button').show(); } $('.home-update').html(data.home); - if(data.intros == 0) { data.intros = ''; $('.intro-update').removeClass('show'); } else { $('.intro-update').addClass('show'); } + if(data.intros == 0) { data.intros = ''; $('.intro-update, .intro-button').hide(); } else { $('.intro-update, .intro-button').show(); } $('.intro-update').html(data.intros); - if(data.mail == 0) { data.mail = ''; $('.mail-update').removeClass('show'); } else { $('.mail-update').addClass('show'); } + if(data.mail == 0) { data.mail = ''; $('.mail-update, .mail-button').hide(); } else { $('.mail-update, .mail-button').show(); } $('.mail-update').html(data.mail); - if(data.notify == 0) { data.notify = ''; $('.notify-update').removeClass('show'); } else { $('.notify-update').addClass('show'); } + if(data.notify == 0) { data.notify = ''; $('.notify-update, .notify-button').hide(); } else { $('.notify-update, .notify-button').show(); } $('.notify-update').html(data.notify); if(data.register == 0) { data.register = ''; $('.register-update').removeClass('show'); } else { $('.register-update').addClass('show'); } $('.register-update').html(data.register); - if(data.events == 0) { data.events = ''; $('.events-update').removeClass('show'); } else { $('.events-update').addClass('show'); } + if(data.events == 0) { data.events = ''; $('.events-update, .events-button').hide(); } else { $('.events-update, .events-button').show(); } $('.events-update').html(data.events); if(data.events_today == 0) { data.events_today = ''; $('.events-today-update').removeClass('show'); } else { $('.events-today-update').addClass('show'); $('.events-update').html(data.events + '*'); } @@ -409,7 +411,7 @@ function NavUpdate() { if(data.birthdays_today == 0) { data.birthdays_today = ''; $('.birthdays-today-update').removeClass('show'); } else { $('.birthdays-today-update').addClass('show'); $('.birthdays-update').html(data.birthdays + '*'); } $('.birthdays-today-update').html(data.birthdays_today); - if(data.all_events == 0) { data.all_events = ''; $('.all_events-update').removeClass('show'); } else { $('.all_events-update').addClass('show'); } + if(data.all_events == 0) { data.all_events = ''; $('.all_events-update, .all_events-button').hide(); } else { $('.all_events-update, .all_events-button').show(); } $('.all_events-update').html(data.all_events); if(data.all_events_today == 0) { data.all_events_today = ''; $('.all_events-today-update').removeClass('show'); } else { $('.all_events-today-update').addClass('show'); $('.all_events-update').html(data.all_events + '*'); } diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index fd41b4c89..6a5b59ffd 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -1188,6 +1188,11 @@ margin-right: 50px; color: $toolicon_colour; } +nav .navbar-collapse.in .generic-icons, +nav .navbar-collapse.collapsing .generic-icons { + color: $nav_active_icon_colour; +} + .admin-icons { font-size: 1.2em; color: $toolicon_colour; @@ -1524,7 +1529,6 @@ img.mail-conv-sender-photo { /* nav bootstrap */ - nav img { border-radius: $radiuspx; } @@ -1747,22 +1751,11 @@ blockquote { border-radius: $radiuspx; } -nav .badge:hover { - background-color: #999; -} - nav .badge.home-update, nav .badge.notify-update, nav .badge.intro-update, nav .badge.mail-update { - background-color:#C9302C; -} - -nav .badge.home-update:hover, -nav .badge.notify-update:hover, -nav .badge.intro-update:hover, -nav .badge.mail-update:hover { - background-color:#D9534F; + background-color: #C9302C; } .dropdown-menu { @@ -1830,7 +1823,8 @@ nav .badge.mail-update:hover { #expand-aside, #expand-tabs, #doco-return-to-top-btn, -#context-help-btn { +#context-help-btn, +#notifications-btn { color: $nav_active_icon_colour; padding: 7px 10px; } @@ -2103,6 +2097,8 @@ dl.bb-dl > dd > li { .app-icon { font-size: 80px; + color: $toolicon_colour; + text-shadow: 3px 3px 3px lightgrey; text-align: center; } diff --git a/view/tpl/app.tpl b/view/tpl/app.tpl index 434653e1e..a389695ee 100644 --- a/view/tpl/app.tpl +++ b/view/tpl/app.tpl @@ -1,6 +1,6 @@ <div class="app-container"> <div class="app-detail{{if $deleted}} app-deleted{{/if}}"> - <a href="{{$app.url}}" {{if $ap.target}}target="{{$ap.target}}" {{/if}}{{if $app.desc}}title="{{$app.desc}}{{if $app.price}} ({{$app.price}}){{/if}}"{{else}}title="{{$app.name}}"{{/if}}>{{if $icon}}<i class="app-icon fa fa-fw fa-{{$icon}}"></i>{{else}}<img src="{{$app.photo}}" width="80" height="80" />{{/if}} + <a href="{{$app.url}}" {{if $ap.target}}target="{{$ap.target}}" {{/if}}{{if $app.desc}}title="{{$app.desc}}{{if $app.price}} ({{$app.price}}){{/if}}"{{else}}title="{{$app.name}}"{{/if}}>{{if $app.icon}}<i class="app-icon fa fa-fw fa-{{$app.icon}}"></i>{{else}}<img src="{{$app.photo}}" width="80" height="80" />{{/if}} <div class="app-name" style="text-align:center;">{{$app.name}}</div> </a> </div> diff --git a/view/tpl/nav.tpl b/view/tpl/nav.tpl index f59afee5b..68326a077 100755 --- a/view/tpl/nav.tpl +++ b/view/tpl/nav.tpl @@ -1,231 +1,190 @@ - <div class="container-fluid"> - <div class="navbar-header"> - <div> - <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1"> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <button id="expand-tabs" type="button" class="navbar-toggle" data-toggle="collapse" data-target="#tabs-collapse-1"> - <i class="fa fa-arrow-circle-down" id="expand-tabs-icon"></i> - </button> - <button id="expand-aside" type="button" class="navbar-toggle" data-toggle="offcanvas" data-target="#region_1"> - <i class="fa fa-arrow-circle-right" id="expand-aside-icon"></i> - </button> - {{if $nav.help.6}} - <button id="context-help-btn" class="navbar-toggle" type="button" onclick="contextualHelp(); return false;"> - <i class="fa fa-question-circle"></i> - </button> - {{/if}} - </div> - {{if $userinfo}} - <div class="usermenu-head dropdown-toggle fakelink" data-toggle="dropdown"> - <img id="avatar" src="{{$userinfo.icon}}" alt="{{$userinfo.name}}"> - <span class="caret" id="usermenu-caret"></span> - </div> - {{if $localuser}} - <ul class="dropdown-menu" role="menu" aria-labelledby="avatar"> - {{foreach $nav.usermenu as $usermenu}} - <li role="presentation"><a href="{{$usermenu.0}}" title="{{$usermenu.3}}" role="menuitem" id="{{$usermenu.4}}">{{$usermenu.1}}</a></li> - {{/foreach}} - <li role="presentation" class="divider"></li> - {{if $nav.profiles}}<li role="presentation"><a href="{{$nav.profiles.0}}" title="{{$nav.profiles.3}}" role="menuitem" id="{{$nav.profiles.4}}">{{$nav.profiles.1}}</a></li>{{/if}} - {{if $nav.settings}}<li role="presentation"><a href="{{$nav.settings.0}}" title="{{$nav.settings.3}}" role="menuitem" id="{{$nav.settings.4}}">{{$nav.settings.1}}</a></li>{{/if}} - {{if $nav.manage}}<li role="presentation"><a href="{{$nav.manage.0}}" title="{{$nav.manage.3}}" role="menuitem" id="{{$nav.manage.4}}">{{$nav.manage.1}}</a></li>{{/if}} - {{if $nav.channels}} - {{foreach $nav.channels as $chan}} - <li role="presentation" class="nav-channel-select"><a href="manage/{{$chan.channel_id}}" title="{{$chan.channel_name}}" role="menuitem">{{$chan.channel_name}}</a></li> - {{/foreach}} - {{/if}} - {{if $nav.admin}} - <li role="presentation" class="divider"></li> - <li role="presentation"><a href="{{$nav.admin.0}}" title="{{$nav.admin.3}}" role="menuitem" id="{{$nav.admin.4}}">{{$nav.admin.1}}</a></li> - {{/if}} - {{if $nav.logout}} - <li role="presentation" class="divider"></li> - <li role="presentation"><a href="{{$nav.logout.0}}" title="{{$nav.logout.3}}" role="menuitem" id="{{$nav.logout.4}}">{{$nav.logout.1}}</a></li> - {{/if}} - </ul> - {{else}} - {{if $nav.rusermenu}} - <ul class="dropdown-menu" role="menu" aria-labelledby="avatar"> - <li role="presentation"><a href="{{$nav.rusermenu.0}}" role="menuitem">{{$nav.rusermenu.1}}</a></li> - <li role="presentation"><a href="{{$nav.rusermenu.2}}" role="menuitem">{{$nav.rusermenu.3}}</a></li> - </ul> - {{/if}} - {{/if}} - {{/if}} +<div class="container-fluid"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-2"> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + {{if $localuser}} + <button id="notifications-btn" type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1" style="color: grey;"> + <i class="fa fa-exclamation-circle"></i> + </button> + {{/if}} + <button id="expand-tabs" type="button" class="navbar-toggle" data-toggle="collapse" data-target="#tabs-collapse-1"> + <i class="fa fa-arrow-circle-down" id="expand-tabs-icon"></i> + </button> + <button id="expand-aside" type="button" class="navbar-toggle" data-toggle="offcanvas" data-target="#region_1"> + <i class="fa fa-arrow-circle-right" id="expand-aside-icon"></i> + </button> + {{if $nav.help.6}} + <button id="context-help-btn" class="navbar-toggle" type="button" onclick="contextualHelp(); return false;"> + <i class="fa fa-question-circle"></i> + </button> + {{/if}} + {{if $userinfo}} + <div class="usermenu-head dropdown-toggle fakelink" data-toggle="dropdown"> + <img id="avatar" src="{{$userinfo.icon}}" alt="{{$userinfo.name}}"> + <span class="caret" id="usermenu-caret"></span> </div> - <div class="collapse navbar-collapse" id="navbar-collapse-1"> - <ul class="nav navbar-nav navbar-left"> - + {{if $localuser}} + <ul class="dropdown-menu" role="menu" aria-labelledby="avatar"> + {{foreach $nav.usermenu as $usermenu}} + <li role="presentation"><a href="{{$usermenu.0}}" title="{{$usermenu.3}}" role="menuitem" id="{{$usermenu.4}}">{{$usermenu.1}}</a></li> + {{/foreach}} + {{if $nav.manage}} + <li role="presentation"><a href="{{$nav.manage.0}}" title="{{$nav.manage.3}}" role="menuitem" id="{{$nav.manage.4}}">{{$nav.manage.1}}</a></li> + {{/if}} + {{if $nav.channels}} + {{foreach $nav.channels as $chan}} + <li role="presentation" class="nav-channel-select"><a href="manage/{{$chan.channel_id}}" title="{{$chan.channel_name}}" role="menuitem">{{$chan.channel_name}}</a></li> + {{/foreach}} + {{/if}} + <li role="presentation" class="divider"></li> + {{if $nav.profiles}} + <li role="presentation"><a href="{{$nav.profiles.0}}" title="{{$nav.profiles.3}}" role="menuitem" id="{{$nav.profiles.4}}">{{$nav.profiles.1}}</a></li> + {{/if}} + {{if $nav.settings}} + <li role="presentation"><a href="{{$nav.settings.0}}" title="{{$nav.settings.3}}" role="menuitem" id="{{$nav.settings.4}}">{{$nav.settings.1}}</a></li> + {{/if}} + {{if $nav.admin}} + <li role="presentation" class="divider"></li> + <li role="presentation"><a href="{{$nav.admin.0}}" title="{{$nav.admin.3}}" role="menuitem" id="{{$nav.admin.4}}">{{$nav.admin.1}}</a></li> + {{/if}} + {{if $nav.logout}} + <li role="presentation" class="divider"></li> + <li role="presentation"><a href="{{$nav.logout.0}}" title="{{$nav.logout.3}}" role="menuitem" id="{{$nav.logout.4}}">{{$nav.logout.1}}</a></li> + {{/if}} + </ul> + {{else}} + {{if $nav.rusermenu}} + <ul class="dropdown-menu" role="menu" aria-labelledby="avatar"> + <li role="presentation"><a href="{{$nav.rusermenu.0}}" role="menuitem">{{$nav.rusermenu.1}}</a></li> + <li role="presentation"><a href="{{$nav.rusermenu.2}}" role="menuitem">{{$nav.rusermenu.3}}</a></li> + </ul> + {{/if}} + {{/if}} + {{/if}} + </div> + <div class="collapse navbar-collapse" id="navbar-collapse-1"> + <ul class="nav navbar-nav navbar-left"> {{if $nav.network}} - <li class="{{$sel.network}} hidden-xs"> - <a href="{{$nav.network.0}}" title="{{$nav.network.3}}" id="{{$nav.network.4}}"><i class="fa fa-th"></i></a> - <span class="net-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-network-menu"></span> - <ul id="nav-network-menu" role="menu" class="dropdown-menu" rel="network"> - {{* <li id="nav-network-see-all"><a href="{{$nav.network.all.0}}">{{$nav.network.all.1}}</a></li> *}} - <li id="nav-network-mark-all"><a href="#" onclick="markRead('network'); return false;">{{$nav.network.mark.1}}</a></li> - <li class="empty">{{$emptynotifications}}</li> - </ul> - </li> - <li class="{{$sel.network}} visible-xs"> - <a href="{{$nav.network.0}}" title="{{$nav.network.3}}" ><i class="fa fa-th"></i></a> - <span class="net-update badge" rel="#nav-network-menu"></span> - </li> + <li class="{{$sel.network}} net-button" style="display: none;"> + <a href="#" title="{{$nav.network.3}}" id="{{$nav.network.4}}" data-toggle="dropdown" rel="#nav-network-menu"> + <i class="fa fa-fw fa-th"></i> + <span class="net-update badge"></span> + </a> + <ul id="nav-network-menu" role="menu" class="dropdown-menu" rel="network"> + {{* <li id="nav-network-see-all"><a href="{{$nav.network.all.0}}">{{$nav.network.all.1}}</a></li> *}} + <li id="nav-network-mark-all"><a href="#" onclick="markRead('network'); return false;">{{$nav.network.mark.1}}</a></li> + <li class="empty">{{$emptynotifications}}</li> + </ul> + </li> {{/if}} - {{if $nav.home}} - <li class="{{$sel.home}} hidden-xs"> - <a class="{{$nav.home.2}}" href="{{$nav.home.0}}" title="{{$nav.home.3}}" id="{{$nav.home.4}}"><i class="fa fa-home"></i></a> - <span class="home-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-home-menu"></span> - <ul id="nav-home-menu" class="dropdown-menu" rel="home"> - {{* <li id="nav-home-see-all"><a href="{{$nav.home.all.0}}">{{$nav.home.all.1}}</a></li> *}} - <li id="nav-home-mark-all"><a href="#" onclick="markRead('home'); return false;">{{$nav.home.mark.1}}</a></li> - <li class="empty">{{$emptynotifications}}</li> - </ul> - </li> - <li class="{{$sel.home}} visible-xs"> - <a class="{{$nav.home.2}}" href="{{$nav.home.0}}" title="{{$nav.home.3}}" ><i class="fa fa-home"></i></a> - <span class="home-update badge" rel="#nav-home-menu"></span> - </li> + <li class="{{$sel.home}} home-button" style="display: none;"> + <a class="{{$nav.home.2}}" href="#" title="{{$nav.home.3}}" id="{{$nav.home.4}}" data-toggle="dropdown" rel="#nav-home-menu"> + <i class="fa fa-fw fa-home"></i> + <span class="home-update badge"></span> + </a> + <ul id="nav-home-menu" class="dropdown-menu" rel="home"> + {{* <li id="nav-home-see-all"><a href="{{$nav.home.all.0}}">{{$nav.home.all.1}}</a></li> *}} + <li id="nav-home-mark-all"><a href="#" onclick="markRead('home'); return false;">{{$nav.home.mark.1}}</a></li> + <li class="empty">{{$emptynotifications}}</li> + </ul> + </li> {{/if}} - {{if $nav.messages}} - <li class="{{$sel.messages}} hidden-xs"> - <a class="{{$nav.messages.2}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" id="{{$nav.messages.4}}"><i class="fa fa-envelope"></i></a> - <span class="mail-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-messages-menu"></span> - <ul id="nav-messages-menu" class="dropdown-menu" rel="messages"> - <li id="nav-messages-see-all"><a href="{{$nav.messages.all.0}}">{{$nav.messages.all.1}}</a></li> - <li id="nav-messages-mark-all"><a href="#" onclick="markRead('messages'); return false;">{{$nav.messages.mark.1}}</a></li> - <li class="empty">{{$emptynotifications}}</li> - </ul> - </li> - <li class="{{$sel.messages}} visible-xs"> - <a class="{{$nav.messages.2}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" ><i class="fa fa-envelope"></i></a> - <span class="mail-update badge" rel="#nav-messages-menu"></span> - </li> + <li class="{{$sel.messages}} mail-button" style="display: none;"> + <a class="{{$nav.messages.2}}" href="#" title="{{$nav.messages.3}}" id="{{$nav.messages.4}}" data-toggle="dropdown" rel="#nav-messages-menu"> + <i class="fa fa-fw fa-envelope"></i> + <span class="mail-update badge"></span> + </a> + <ul id="nav-messages-menu" class="dropdown-menu" rel="messages"> + <li id="nav-messages-see-all"><a href="{{$nav.messages.all.0}}">{{$nav.messages.all.1}}</a></li> + <li id="nav-messages-mark-all"><a href="#" onclick="markRead('messages'); return false;">{{$nav.messages.mark.1}}</a></li> + <li class="empty">{{$emptynotifications}}</li> + </ul> + </li> {{/if}} - {{if $nav.all_events}} - <li class="{{$sel.all_events}} hidden-xs"> - <a class="{{$nav.all_events.2}}" href="{{$nav.all_events.0}}" title="{{$nav.all_events.3}}" id='{{$nav.all_events.4}}'><i class="fa fa-calendar"></i></a> - <span class="all_events-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-all_events-menu"></span> - <ul id="nav-all_events-menu" class="dropdown-menu" rel="all_events"> - <li id="nav-all_events-see-all"><a href="{{$nav.all_events.all.0}}">{{$nav.all_events.all.1}}</a></li> - <li id="nav-all_events-mark-all"><a href="#" onclick="markRead('all_events'); return false;">{{$nav.all_events.mark.1}}</a></li> - <li class="empty">{{$emptynotifications}}</li> - </ul> - </li> - <li class="{{$sel.all_events}} visible-xs"> - <a class="{{$nav.all_events.2}}" href="{{$nav.all_events.0}}" title="{{$nav.all_events.3}}" ><i class="fa fa-calendar"></i></a> - <span class="all_events-update badge" rel="#nav-all_events-menu"></span> - </li> + <li class="{{$sel.all_events}} all_events-button" style="display: none;"> + <a class="{{$nav.all_events.2}}" href="#" title="{{$nav.all_events.3}}" id="{{$nav.all_events.4}}" data-toggle="dropdown" rel="#nav-all_events-menu"> + <i class="fa fa-fw fa-calendar"></i> + <span class="all_events-update badge"></span> + </a> + <ul id="nav-all_events-menu" class="dropdown-menu" rel="all_events"> + <li id="nav-all_events-see-all"><a href="{{$nav.all_events.all.0}}">{{$nav.all_events.all.1}}</a></li> + <li id="nav-all_events-mark-all"><a href="#" onclick="markRead('all_events'); return false;">{{$nav.all_events.mark.1}}</a></li> + <li class="empty">{{$emptynotifications}}</li> + </ul> + </li> {{/if}} - {{if $nav.intros}} - <li class="{{$sel.intros}} hidden-xs"> - <a class="{{$nav.intros.2}}" href="{{$nav.intros.0}}" title="{{$nav.intros.3}}" id="{{$nav.intros.4}}"><i class="fa fa-user"></i></a> - <span class="intro-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-intros-menu"></span> - <ul id="nav-intros-menu" class="dropdown-menu" rel="intros"> - <li id="nav-intros-see-all"><a href="{{$nav.intros.all.0}}">{{$nav.intros.all.1}}</a></li> - <li class="empty">{{$emptynotifications}}</li> - </ul> - </li> - <li class="{{$sel.intros}} visible-xs"> - <a class="{{$nav.intros.2}}" href="{{$nav.intros.0}}" title="{{$nav.intros.3}}" ><i class="fa fa-user"></i></a> - <span class="intro-update badge" rel="#nav-intros-menu"></span> - </li> + <li class="{{$sel.intros}} intro-button" style="display: none;"> + <a class="{{$nav.intros.2}}" href="{{$nav.intros.0}}" title="{{$nav.intros.3}}" id="{{$nav.intros.4}}" data-toggle="dropdown" rel="#nav-intros-menu"> + <i class="fa fa-fw fa-user"></i> + <span class="intro-update badge"></span> + </a> + <ul id="nav-intros-menu" class="dropdown-menu" rel="intros"> + <li id="nav-intros-see-all"><a href="{{$nav.intros.all.0}}">{{$nav.intros.all.1}}</a></li> + <li class="empty">{{$emptynotifications}}</li> + </ul> + </li> {{/if}} - {{if $nav.notifications}} - <li class="{{$sel.notifications}} hidden-xs"> - <a href="{{$nav.notifications.0}}" title="{{$nav.notifications.1}}" id="{{$nav.notifications.4}}"><i class="fa fa-exclamation"></i></a> - <span class="notify-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-notify-menu"></span> - <ul id="nav-notify-menu" class="dropdown-menu" rel="notify"> - <li id="nav-notify-see-all"><a href="{{$nav.notifications.all.0}}">{{$nav.notifications.all.1}}</a></li> - <li id="nav-notify-mark-all"><a href="#" onclick="markRead('notify'); return false;">{{$nav.notifications.mark.1}}</a></li> - <li class="empty">{{$emptynotifications}}</li> - </ul> - </li> - <li class="{{$sel.notifications}} visible-xs"> - <a href="{{$nav.notifications.0}}" title="{{$nav.notifications.1}}"><i class="fa fa-exclamation"></i></a> - <span class="notify-update badge" rel="#nav-notify-menu"></span> - </li> + <li class="{{$sel.notifications}} notify-button" style="display: none;"> + <a href="{{$nav.notifications.0}}" title="{{$nav.notifications.1}}" id="{{$nav.notifications.4}}" data-toggle="dropdown" rel="#nav-notify-menu"> + <i class="fa fa-fw fa-exclamation"></i> + <span class="notify-update badge"></span> + </a> + <ul id="nav-notify-menu" class="dropdown-menu" rel="notify"> + <li id="nav-notify-see-all"><a href="{{$nav.notifications.all.0}}">{{$nav.notifications.all.1}}</a></li> + <li id="nav-notify-mark-all"><a href="#" onclick="markRead('notify'); return false;">{{$nav.notifications.mark.1}}</a></li> + <li class="empty">{{$emptynotifications}}</li> + </ul> + </li> {{/if}} - {{if $nav.login && !$userinfo}} - <li class=""> - <a href="#" title="{{$nav.loginmenu.0.3}}" id="{{$nav.loginmenu.0.4}}" onclick="openClose('nav-login'); return false;">{{$nav.loginmenu.0.1}} <span class="caret" id="loginmenu-caret"></span></a> - <div id="nav-login" class="dropdown-menu"> - <div class="form-group"> - {{$nav.login}} - </div> - {{$nav.remote_login}} + <li class="hidden-xs"> + <a href="#" title="{{$nav.loginmenu.0.3}}" id="{{$nav.loginmenu.0.4}}" onclick="openClose('nav-login'); return false;">{{$nav.loginmenu.0.1}} <span class="caret" id="loginmenu-caret"></span></a> + <div id="nav-login" class="dropdown-menu"> + <div class="form-group"> + {{$nav.login}} </div> - </li> + {{$nav.remote_login}} + </div> + </li> {{/if}} - {{if $nav.register}} - <li class="{{$nav.register.2}}"><a href="{{$nav.register.0}}" title="{{$nav.register.3}}" id="{{$nav.register.4}}">{{$nav.register.1}}</a></li> + <li class="{{$nav.register.2}} hidden-xs"><a href="{{$nav.register.0}}" title="{{$nav.register.3}}" id="{{$nav.register.4}}">{{$nav.register.1}}</a></li> {{/if}} - {{if $nav.alogout}} - <li class="{{$nav}}-alogout.2"><a href="{{$nav.alogout.0}}" title="{{$nav.alogout.3}}" id="{{$nav.alogout.4}}">{{$nav.alogout.1}}</a></li> - {{/if}} - </ul> - - <ul class="nav navbar-nav navbar-right"> - <li class="hidden-xs"> - <form method="get" action="search" role="search"> - <div id="nav-search-spinner"></div><input class="fa-search" id="nav-search-text" type="text" value="" placeholder=" {{$help}}" name="search" title="{{$nav.search.3}}" onclick="this.submit();"/> - </form> - </li> - <li class="visible-xs"> - <a href="/search" title="{{$nav.search.3}}"><i class="fa fa-search"></i></a> - </li> - - {{if $powered_by}} - <div id="powered-by">{{$powered_by}}</div> - {{/if}} -{{if ! $navapps}} - {{if $nav.directory}} - <li class="{{$sel.directory}}"> - <a class="{{$nav.directory.2}}" href="{{$nav.directory.0}}" title="{{$nav.directory.3}}" id="{{$nav.directory.4}}"><i class="fa fa-sitemap"></i></a> - </li> - {{/if}} - - {{if $nav.apps}} - <li class="{{$sel.apps}}"> - <a class="{{$nav.apps.2}}" href="{{$nav.apps.0}}" title="{{$nav.apps.3}}" id="{{$nav.apps.4}}"><i class="fa fa-cogs"></i></a> - </li> + <li class="{{$nav}}-alogout.2 hidden-xs"><a href="{{$nav.alogout.0}}" title="{{$nav.alogout.3}}" id="{{$nav.alogout.4}}">{{$nav.alogout.1}}</a></li> {{/if}} - - {{if $nav.help}} - <li class="{{$sel.help}}{{if $nav.help.6}} hidden-xs{{/if}}"> - <a class="{{$nav.help.2}}" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" id="{{$nav.help.4}}"{{if $nav.help.6}} onclick="contextualHelp(); return false;"{{/if}}>{{if $nav.help.6}}<i class="fa fa-question-circle"></i>{{else}}<i class="fa fa-question"></i>{{/if}}</a> - </li> + </ul> + <ul class="nav navbar-nav navbar-right"> + <li class="hidden-xs"> + <form method="get" action="search" role="search"> + <div id="nav-search-spinner"></div><input class="fa-search" id="nav-search-text" type="text" value="" placeholder=" {{$help}}" name="search" title="{{$nav.search.3}}" onclick="this.submit();"/> + </form> + </li> + {{if $nav.help.6}} + <li class="{{$sel.help}} hidden-xs"> + <a class="{{$nav.help.2}}" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" id="{{$nav.help.4}}" onclick="contextualHelp(); return false;"><i class="fa fa-question-circle"></i></a> + </li> {{/if}} -{{/if}} - - {{if $navapps}} - {{if $nav.help.6}} - <li class="{{$sel.help}} hidden-xs"> - <a class="{{$nav.help.2}}" target="hubzilla-help" href="{{$nav.help.0}}" title="{{$nav.help.3}}" id="{{$nav.help.4}}" onclick="contextualHelp(); return false;"><i class="fa fa-question-circle"></i></a> - </li> - {{/if}} - <li class="dropdown-toggle" data-toggle="dropdown"> - <a href="#"><i class="fa fa-bars"></i></a> - </li> + <li class="hidden-xs"> + <a href="#" data-toggle="dropdown"><i class="fa fa-bars"></i></a> + <ul class="dropdown-menu"> {{$navapps}} - {{/if}} - - </ul> - - </div> - <div class="collapse navbar-collapse" id="navbar-collapse-2"> + </ul> + </li> + </ul> + </div> + <div class="collapse navbar-collapse" id="navbar-collapse-2"> + <ul class="nav navbar-nav navbar-left hidden-sm hidden-md hidden-lg"> {{$navapps}} - </div> + </ul> </div> {{if $nav.help.6}} <div id="contextual-help-content" class="contextual-help-content"> @@ -236,3 +195,4 @@ </div> </div> {{/if}} +</div> diff --git a/view/tpl/navapps.tpl b/view/tpl/navapps.tpl index de4a6223c..310ab5f42 100644 --- a/view/tpl/navapps.tpl +++ b/view/tpl/navapps.tpl @@ -1,9 +1,8 @@ -<ul class="dropdown-menu" style="max-height: 80vh"> - {{foreach $apps as $app}} - <li><a href="{{$app.url}}">{{if $icon}}<i class="app-icon fa fa-{{$icon}}"></i>{{else}}<img src="{{$app.photo}}" width="16" height="16" />{{/if}} {{$app.name}}</a></li> - {{/foreach}} - {{if $localuser}} - <li class="divider"></li> - <li><a href="/apps/edit"><i class="app-icon fa fa-plus-circle"></i> Add Apps</a></li> - {{/if}} -</ul> +{{foreach $apps as $app}} +<li><a href="{{$app.url}}">{{if $app.icon}}<i class="generic-icons fa fa-fw fa-{{$app.icon}}"></i>{{else}}<img src="{{$app.photo}}" width="16" height="16" style="margin-right:9px;"/>{{/if}}{{$app.name}}</a></li> +{{/foreach}} +{{if $localuser}} +<li class="divider"></li> +<li><a href="/apps/edit"><i class="generic-icons fa fa-fw fa-plus-circle"></i>Add Apps</a></li> +{{/if}} + |