IGWiki Main Page


Ricerca pagine

Marzo2024
262728291 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
1234567

IGSuiteIGWebMail: Modifiche proposte da Ale (Bozza) (Documento scaduto)
  Modifica PaginaStorico paginaProprietàGet PdfCalcTranslatorVisualizza il documento in formato stampabile.Posso Aiutarti

IGWebMail


Modifiche di Ale-IGWebMail-fatte
Indice generale modifiche di Ale
Files totali: 1 - Sub-directories: 0 - Spazio occupato: 3.6 Kb

Ricerca in email di altri utenti

Nella mia proposta avevo distinto la ricerca in tutte le proprie cartelle dalla ricerca nelle email di tutti gli utenti. Questo mi sembra meglio, perché un conto è ricordare un'email che si è ricevuto senza che si ricordi esattamente in quale cartella è stata registrata, un'altro è ricercare tra le email di tutti.

LucaS 07.05.2007 Allora forse converrebbe inserire due temini nel dizionario webmail_lang tipo "Cerca in tutte le proprie cartelle" e "Cerca nelle cartelle di tutti gli utenti". Che ne pensi?

webmail::findshow


    ## Translate folders name
    $validfolders{$_} = $folderinfo{$_}{name} for keys %folderinfo;
+   $validfolders{everybody} = "All users"; #XXXTRANSLATE

Con rispetto della riservatezza per evitare la ricerca nel corpo di messaggi non completamente condivisi.
webmail::findexec:


  elsif ($on{fieldtofind} eq 'body')
   {
       $query = "body~*'$in{keytofind}'";
+      $query = "(owner='$auth_user' or sharemode=1) and ($query)" if $in{folder} eq 'everybody';'''
   }

La ricerca per PID veniva effettuata automaticamente nelle cartelle di tutti gli utenti, ed effettuavo una ricerca esatta (senza usare una regex nella query).

LucaS 07.05.2007 Avevo visto. Ma da anni ho labitudine di ricercare i protocolli inserendo solo la parte univoca del numero. Ad esempio se cerco 'E00123.07' inserendo '123.07' ottengo lo stesso risultato con meno lavoro (al massimo rischio di avere anche 'x123.07' ma mi va bene lo stesso tanto a vista la clicco)

webmail::findexec


  elsif ($on{fieldtofind} eq 'protocol')
   { 
*   $query = "pid= '$in{keytofind}'"; 
+   $in{folder} = 'everybody'; 
   }

La query diventava pertanto:


  DbQuery("select id, issue, timeissue, sender, contactid, receiver,".
          " owner, subject, folder, content, status, size, pid, sharemode ".
          "from email_msgs ".
          "where ".
*         "(owner='$auth_user'".($in{folder} eq 'everybody' ? " or sharemode<>2)" : ")").
*         " and ($query) ".
          "order by issue desc");

Miglioramento addressbook

Questa modifica permette di visualizzare nell'addressbook di IGWebMail anche i nomi dei contatti che non hanno specificato un'email, ma che hanno del personale con l'email.

Permette inoltre di visualizzare come link solo i contatti che non sono staff di un contatto (master=''), e di non visualizzare il checkbox per i contatti che non hanno un'email.

Quando la 'visualizzazione è focalizzata sullo staff di un certo contatto questo fatto viene evidenziato in testa alla lista dello staff.

Avevi notato che la query come l'avevo modificata era molto lenta (su Postgre):


     DbQuery("select contacts.contactid, contacts.contactname, contacts.email, contacts.master from contacts ".

             "where ".
             ($on{alphabet} ne 'all' ? "substr(contacts.contactname,1,1)='$on{alphabet}' and " : "").
             "(email<>'' or (master='0' and (select count(*) from contacts cont1 where cont1.master=contacts.contactid and cont1.email<>'') > 0) ) "
             "and contacts.contacttype<>1 ".
             ($on{alphabet} ne 'all' ? " and substr(contacts.contactname,1,1)='$on{alphabet}' " : " ").
             "group by contacts.contactid ".
             "order by contacts.contactname");
    }

Allora ti avevo proposto questa variante che sfrutta una join sulla medesima tabella contatti per individuare lo staff con email, ma non so se hai effettuato dei test sulle prestazioni di questa variante:


     DbQuery("select contacts.contactid, contacts.contactname, contacts.email, contacts.master from contacts ".
             "left join contacts staff on staff.master = contacts.contactid and staff.email<>'' ".
             "where ".
             ($on{alphabet} ne 'all' ? "substr(contacts.contactname,1,1)='$on{alphabet}' and " : "").
             "(contacts.email<>'' or (contacts.master='0' and staff.email<>'')) "
             "and contacts.contacttype<>1 ".
             ($on{alphabet} ne 'all' ? " and substr(contacts.contactname,1,1)='$on{alphabet}' " : " ").
             "group by contacts.contactid ".
             "order by contacts.contactname");
    }

Il resto era nel documento che ti avevo inviato al riguardo.


Nome: Modifiche di Ale-IGWebMail - Revisione: 1 - Autore: Forlani Alessandro (02.05.2007) - Modificata da: Forlani Alessandro (12.05.2007) - Categoria: Ale - Scadenza: 01.05.2008 - Permessi di visualizzazione: Tutti indistintamente - Permessi di modifica: Condiviso con tutti gli utenti - Copyright © LucaS All right reserved

Need account? Non hai un account?
Login
Password
Secure connection


Ultimi documenti modificati
   
getrss