]> git.mxchange.org Git - friendica.git/commitdiff
rework autocomplete: some cleanup and docu
authorrabuzarus <>
Sun, 24 Jan 2016 18:56:23 +0000 (19:56 +0100)
committerRoland Haeder <roland@mxchange.org>
Sun, 1 May 2016 11:46:08 +0000 (13:46 +0200)
13 files changed:
include/acl_selectors.php
include/dir_fns.php
include/nav.php
view/global.css
view/templates/message-head.tpl
view/templates/nav_head.tpl [new file with mode: 0644]
view/theme/vier/breathe.css
view/theme/vier/narrow.css
view/theme/vier/plus.css
view/theme/vier/shadow.css
view/theme/vier/style.css
view/theme/vier/templates/nav.tpl
view/theme/vier/templates/nav_head.tpl [new file with mode: 0644]

index d78393aeee462725509f9334eac2f17b62ee9f92..46f737e4c2d1c930e67eb7b794f129e3d5380b9e 100644 (file)
@@ -1,13 +1,15 @@
 <?php
 
+/**
+ * @file include/acl_selectors.php
+ */
+
 require_once("include/contact_selectors.php");
 require_once("include/contact_widgets.php");
+require_once("include/dir_fns.php");
 require_once("include/features.php");
 require_once("mod/proxy.php");
 
-/**
- *
- */
 
 /**
  * @package acl_selectors
@@ -653,7 +655,12 @@ function acl_lookup(&$a, $out_type = 'json') {
 
        killme();
 }
-
+/**
+ * @brief Searching for global contacts for autocompletion
+ * 
+ * @param App $a
+ * @return type
+ */
 function navbar_complete(&$a) {
 
 //     logger('navbar_complete');
@@ -662,41 +669,25 @@ function navbar_complete(&$a) {
                return;
        }
 
-       $local = get_config('system','poco_local_search');
-       $local = true;
+       // check if searching in the local global contact table is enabled
+       $localsearch = get_config('system','poco_local_search');
 
        $search = $prefix.notags(trim($_REQUEST['search']));
+
+       // don't search if search term has less than 2 characters
        if(! $search || mb_strlen($search) < 2)
                return array();
 
-       $star = false;
-       $address = false;
-
        if(substr($search,0,1) === '@')
                $search = substr($search,1);
 
-       if(substr($search,0,1) === '*') {
-               $star = true;
-               $search = substr($search,1);
-       }
-
-       if(strpos($search,'@') !== false) {
-               $address = true;
-       }
-
-       if($local) {
-               require_once("include/dir_fns.php");
-               $x = dirsearch_autocomplete($search);
+       if($localsearch) {
+               $x = dirsearch_global_by_name($search);
                return $x;
        }
 
-       if(! $local) {
-               require_once("include/dir_fns.php");
-               $url = $directory['url'] . '/dirsearch';
-       
-
+       if(! $localsearch) {
                $p = (($a->pager['page'] != 1) ? '&p=' . $a->pager['page'] : '');
-       
 
                $x = z_fetch_url(get_server().'/lsearch?f=' . $p .  '&search=' . urlencode($search));
                if($x['success']) {
index a362732b7bb834603d139d493ca7bbe6397c6bce..2e39e7ddbfcccd9e668d43f39305ceda668ba158 100644 (file)
@@ -1,11 +1,20 @@
 <?php
 
+/**
+ * @file include/dir_fns.php
+ * @brief Functions for directory
+ */
 
-
-function dirsearch_autocomplete($search) {
+/**
+ * @brief Search global contact table by nick or name
+ *  * 
+ * @param string $search
+ * @return array
+ */
+function dirsearch_global_by_name($search) {
 
        if($search) {
-
+               // check supported networks
                if (get_config('system','diaspora_enabled'))
                        $diaspora = NETWORK_DIASPORA;
                else
@@ -16,7 +25,8 @@ function dirsearch_autocomplete($search) {
                else
                        $ostatus = NETWORK_DFRN;
 
-               $results = q("SELECT `contact`.`id` AS `cid`, `gcontact`.`url`, `gcontact`.`name`, `gcontact`.`nick`, `gcontact`.`photo`, `gcontact`.`network`, `gcontact`.`keywords`, `gcontact`.`addr`
+               $results = q("SELECT `contact`.`id` AS `cid`, `gcontact`.`url`, `gcontact`.`name`, `gcontact`.`nick`, `gcontact`.`photo`,
+                                               `gcontact`.`network`, `gcontact`.`keywords`, `gcontact`.`addr`
                                        FROM `gcontact`
                                        LEFT JOIN `contact` ON `contact`.`nurl` = `gcontact`.`nurl`
                                                AND `contact`.`uid` = %d AND NOT `contact`.`blocked`
index d88e4cc7dc89a534bbb329b6201a8a48f92617f3..8428b6b0fdb654fc5f37986cb926bb3cd7ef2d33 100644 (file)
@@ -2,7 +2,7 @@
 
 function nav(&$a) {
 
-       /**
+       /*
         *
         * Build page header and site navigation bars
         *
@@ -11,23 +11,17 @@ function nav(&$a) {
        if(!(x($a->page,'nav')))
                $a->page['nav'] = '';
 
-       $base = z_root();
-       /**
+       $a->page['htmlhead'] .= replace_macros(get_markup_template('nav_head.tpl'), array());
+
+       /*
         * Placeholder div for popup panel
         */
 
-       $a->page['htmlhead'] .= <<< EOT
-
-<script>$(document).ready(function() {
-               $("#search-text").search_autocomplete('$base/acl');
-});
-</script>
-EOT;
        $a->page['nav'] .= '<div id="panel" style="display: none;"></div>' ;
 
        $nav_info = nav_info($a);
 
-       /**
+       /*
         * Build the page
         */
 
@@ -37,12 +31,13 @@ EOT;
                '$baseurl' => $a->get_baseurl(),
                '$sitelocation' => $nav_info['sitelocation'],
                '$nav' => $nav_info['nav'],
-               '$banner' =>  $nav_info['banner'],
+               '$banner' => $nav_info['banner'],
                '$emptynotifications' => t('Nothing new here'),
                '$userinfo' => $nav_info['userinfo'],
-               '$sel' =>       $a->nav_sel,
+               '$sel' =>  $a->nav_sel,
                '$apps' => $a->apps,
-               '$clear_notifs' => t('Clear notifications')
+               '$clear_notifs' => t('Clear notifications'),
+               '$search_hint' => t('@name, !forum, #tags, content')
        ));
 
        call_hooks('page_header', $a->page['nav']);
@@ -53,7 +48,7 @@ function nav_info(&$a) {
 
        $ssl_state = ((local_user()) ? true : false);
 
-       /**
+       /*
         *
         * Our network is distributed, and as you visit friends some of the
         * sites look exactly the same - it isn't always easy to know where you are.
@@ -69,7 +64,7 @@ function nav_info(&$a) {
        // nav links: array of array('href', 'text', 'extra css classes', 'title')
        $nav = Array();
 
-       /**
+       /*
         * Display login or logout
         */
 
@@ -100,7 +95,7 @@ function nav_info(&$a) {
        }
 
 
-       /**
+       /*
         * "Home" should also take you home from an authenticated remote profile connection
         */
 
@@ -151,7 +146,7 @@ function nav_info(&$a) {
 
        $nav['about'] = Array('friendica', t('Information'), "", t('Information about this friendica instance'));
 
-       /**
+       /*
         *
         * The following nav links are only show to logged in users
         *
@@ -195,7 +190,7 @@ function nav_info(&$a) {
                $nav['contacts'] = array('contacts', t('Contacts'),"", t('Manage/edit friends and contacts'));
        }
 
-       /**
+       /*
         * Admin page
         */
         if (is_site_admin()){
@@ -206,7 +201,7 @@ function nav_info(&$a) {
         $nav['navigation'] = array('navigation/', t('Navigation'), "", t('Site map'));
 
 
-       /**
+       /*
         *
         * Provide a banner/logo/whatever
         *
@@ -229,26 +224,26 @@ function nav_info(&$a) {
 }
 
 
-/*
+/**
  * Set a menu item in navbar as selected
  *
  */
 function nav_set_selected($item){
        $a = get_app();
-    $a->nav_sel = array(
+       $a->nav_sel = array(
                'community'     => null,
-               'network'               => null,
-               'home'                  => null,
-               'profiles'              => null,
+               'network'       => null,
+               'home'          => null,
+               'profiles'      => null,
                'introductions' => null,
                'notifications' => null,
-               'messages'              => null,
-               'directory'         => null,
-               'settings'              => null,
-               'contacts'              => null,
-               'manage'        => null,
-               'events'        => null,
-               'register'      => null,
+               'messages'      => null,
+               'directory'     => null,
+               'settings'      => null,
+               'contacts'      => null,
+               'manage'        => null,
+               'events'        => null,
+               'register'      => null,
        );
        $a->nav_sel[$item] = 'selected';
 }
index 0857cba27be2de3e6a62dfc3335cbfc0d8dd3aac..f375e811b229c372a847b2622156b784b1d96968 100644 (file)
@@ -210,7 +210,6 @@ key { display: inline; background-color: #eee; color: #666; padding:0.2em; font-
 .notify-unseen { background-color: #cceeFF; }
 
 /* autocomplete popup */
-
 ul.acpopup {
   list-style: none;
   float: left;
@@ -220,7 +219,6 @@ ul.acpopup {
 }
 nav .acpopup {
   width: 290px;
-  margin-left: -35px;
   max-height: 450px;
   max-width: 300px;
   overflow-y: auto;
index 49f268c42bcaf26b16f50d97b9d9ea62fb6be059..3fabebc0d267941238c21c083b2e920dbfd41859 100644 (file)
@@ -1,7 +1,7 @@
 
 <script>
 $(document).ready(function() {
-       $("#recip").name_autocomplete(baseurl + '/acl', '', false, function(data) {
+       $("#recip").name_autocomplete(baseurl + '/acl', 'm', false, function(data) {
                $("#recip-complete").val(data.id);
        });
 });
diff --git a/view/templates/nav_head.tpl b/view/templates/nav_head.tpl
new file mode 100644 (file)
index 0000000..e69de29
index 5a36de03e02418526e8f374e8e7d1fdadd671fbd..ec6d91a5698cc8f007c17f024976c1d33c35b054 100644 (file)
@@ -43,7 +43,7 @@ nav a {
   color: #737373;
 }
 
-nav #search-box #search-text {
+nav #nav-search-box #nav-search-text {
   border-radius: 5px;
 }
 
index 09f0e2f12e4f61216bcf475f06dbe5a07e3c371c..ae289af3ac92423cdc8711a7acd2c569f8a88fbb 100644 (file)
@@ -7,6 +7,6 @@ nav ul li .menu-popup {
   right: 0px;
 }
 
-nav #search-box #search-text {
+nav #nav-search-box #nav-search-text {
   width: 100px;
 }
index 8e1865a8692c93c38e57052c83c0f7352aa504d0..a8cf4d2b22b4eb432a098fb0fac1db0ad21ea255 100644 (file)
@@ -159,7 +159,7 @@ section {
   top: 44px;
 }
 
-nav #search-box #search-text {
+nav #nav-search-box #nav-search-text {
   background-color: initial;
   border-style: solid;
   border-width: 1px;
index 9cf142ad6e8516e55c0607af1ee49865614c4297..918f880a80a235c657820d04b6a0dc52c4c2a58f 100644 (file)
@@ -146,7 +146,7 @@ section {
   top: 44px;
 }
 
-nav #search-box #search-text {
+nav #nav-search-box #nav-search-text {
   background-color: initial;
   border-style: solid;
   border-width: 1px;
index 8ade8e2aa561e46a3706779819e02aa48d3ec346..c27e5dfc81970b2d8855354bcf5be9588dde16ab 100644 (file)
@@ -24,69 +24,69 @@ 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: 1px solid #000000; margin: 5px 0px;}
@@ -641,7 +641,7 @@ nav ul li .menu-popup {
   right: auto;
 }
 
-nav #search-box #search-text {
+nav #nav-search-box #nav-search-text {
   /*background-image:  url('icons/lupe.png');
   background-repeat:no-repeat; */
   padding-left:0px;
@@ -912,6 +912,10 @@ acpopup-mce {
   color: #2d2d2d;
   max-height: 150px;
 }
+nav .acpopup {
+  top: 31px !important;
+  margin-left: -23px
+}
 .acpopupitem {
   color: #2d2d2d;
   padding: 4px;
index d2b2838b3e2ee1b75b347d5c422486d2bc3fe945..281714e3eda973968267ef3d624dcde11d5008cf 100644 (file)
@@ -80,9 +80,9 @@
                {{/if}}
 
                {{if $nav.search}}
-                       <li role="search" id="search-box">
+                       <li role="search" id="nav-search-box">
                                <form method="get" action="{{$nav.search.0}}">
-                                       <input accesskey="s" id="search-text" class="nav-menu-search" type="text" value="" name="search">
+                                       <input accesskey="s" id="nav-search-text" class="nav-menu-search" type="text" value="" name="search" placeholder=" {{$search_hint}}">
                                        <select name="search-option">
                                                <option value="fulltext">{{$nav.searchoption.0}}</option>
                                                <option value="tags">{{$nav.searchoption.1}}</option>
diff --git a/view/theme/vier/templates/nav_head.tpl b/view/theme/vier/templates/nav_head.tpl
new file mode 100644 (file)
index 0000000..ff1b96f
--- /dev/null
@@ -0,0 +1,6 @@
+
+<script>
+$(document).ready(function() {
+       $("#nav-search-text").search_autocomplete(baseurl + '/acl');
+});
+</script>