]> git.sur5r.net Git - contagged/commitdiff
more redesign and code cleanup
authorAndreas Gohr <gohr@cosmocode.de>
Tue, 19 Jun 2007 13:47:29 +0000 (15:47 +0200)
committerAndreas Gohr <gohr@cosmocode.de>
Tue, 19 Jun 2007 13:47:29 +0000 (15:47 +0200)
darcs-hash:20070619134729-6e07b-8b411d5cba884bcaf19559cbd53f694cf2fe2f2e.gz

42 files changed:
ajax.php
config.php
import.php
lang/en.php
login.php
pix/imagebox/close.jpg [new file with mode: 0644]
pix/imagebox/loading.gif [new file with mode: 0644]
pix/imagebox/next_image.jpg [new file with mode: 0644]
pix/imagebox/prev_image.jpg [new file with mode: 0644]
pix/imagebox/spacer.gif [new file with mode: 0644]
scripts/formatDate.js [new file with mode: 0644]
scripts/gui.js
styles/design.css [new file with mode: 0644]
styles/layout.css [new file with mode: 0644]
styles/scripted.css [new file with mode: 0644]
template.php
templates/blank.gif [deleted file]
templates/entry_edit.tpl
templates/entry_show.tpl
templates/entry_vcf.tpl
templates/export_list_csv.tpl
templates/export_list_csv_entry.tpl
templates/extended_edit.tpl [deleted file]
templates/extended_show.tpl [deleted file]
templates/filter.tpl [deleted file]
templates/footer.tpl
templates/header.tpl
templates/import.tpl
templates/importVCF.tpl [deleted file]
templates/importVCF_entry.tpl [deleted file]
templates/import_entry.tpl
templates/list.tpl
templates/list_entry.tpl
templates/list_filter.tpl [deleted file]
templates/login.tpl
templates/openxchange_edit.tpl [deleted file]
templates/openxchange_show.tpl [deleted file]
templates/orgs.tpl
templates/pngbehavior.htc [deleted file]
templates/search.tpl [new file with mode: 0644]
templates/tags.tpl
templates/toolbar.tpl

index 75a5822ed26227c8ba0c15ef9ca44c3c2ba40ffa..997eba1e49e2c3ce9399ac53cf16bbe6cd498ab7 100644 (file)
--- a/ajax.php
+++ b/ajax.php
@@ -2,7 +2,6 @@
 require_once('init.php');
 ldap_login();
 
-header('Content-Type: text/xml; charset=utf-8');
 
 /*
 echo '<bla><[!CDATA[';
@@ -13,25 +12,18 @@ echo ']]></bla>';
 $FIELD = preg_replace('/entry\[/','',$_REQUEST['field']);
 $FIELD = preg_replace('/\W+/','',$FIELD);
 
-if($FIELD == 'marker'||$FIELD == 'markers'){
+if($_REQUEST['dn'] && $_REQUEST['addnote']){
+  ajax_addnote($_REQUEST['dn'],$_REQUEST['addnote']);
+}elseif($_REQUEST['dn'] && $_REQUEST['settags']){
+  ajax_settags($_REQUEST['dn'],$_REQUEST['settags']);
+}elseif($_REQUEST['dn'] && $_REQUEST['loadtags']){
+  ajax_loadtags($_REQUEST['dn'],$_REQUEST['loadtags']);
+}elseif($FIELD == 'marker'||$FIELD == 'markers'){
   ajax_taglookup($_REQUEST['value']);
 }else{
   ajax_lookup($FIELD,$_REQUEST['value']);
 }
 
-/*
-if(!empty($_REQUEST['taglookup'])){
-  ajax_taglookup($_REQUEST['taglookup']);
-}elseif(!empty($_REQUEST['lookup']) && !empty($_REQUEST['s'])){
-  ajax_lookup($_REQUEST['lookup'],$_REQUEST['s']);
-}elseif(!empty($_REQUEST['addnote'])){
-  ajax_addnote($_REQUEST['addnote'],$_REQUEST['note']);
-}elseif(!empty($_REQUEST['settags'])){
-  ajax_settags($_REQUEST['settags'],$_REQUEST['tags']);
-}
-*/
-
-
 /**
  * Add a note to the existing notes
  */
@@ -40,6 +32,8 @@ function ajax_addnote($dn,$note){
   global $LDAP_CON;
   global $FIELDS;
 
+  header('Content-Type: text/html; charset=utf-8');
+
   // fetch the existing note
   $result = ldap_search($LDAP_CON,$dn,'(objectClass=inetOrgPerson)',array($FIELDS['note']));
   if(ldap_count_entries($LDAP_CON,$result)){
@@ -57,7 +51,7 @@ function ajax_addnote($dn,$note){
 }
 
 /**
- * Sett tags for a contact
+ * Set tags for a contact
  */
 function ajax_settags($dn,$tags){
   global $conf;
@@ -65,6 +59,8 @@ function ajax_settags($dn,$tags){
   global $FIELDS;
   if(!$FIELDS['_marker']) return;
 
+  header('Content-Type: text/html; charset=utf-8');
+
   $tags = explode(',',$tags);
   $tags = array_map('trim',$tags);
   $tags = array_unique($tags);
@@ -82,11 +78,41 @@ function ajax_settags($dn,$tags){
   }
 }
 
+/**
+ * Load current tags of an entry
+ */
+function ajax_loadtags($dn,$type='plain'){
+  global $conf;
+  global $LDAP_CON;
+  global $FIELDS;
+  if(!$FIELDS['_marker']) return;
+
+  header('Content-Type: text/html; charset=utf-8');
+
+  $sr = ldap_search($LDAP_CON,$dn,'(objectClass=inetOrgPerson)',array($FIELDS['_marker']));
+  if(!ldap_count_entries($LDAP_CON,$sr)) return false;
+  $result = ldap_get_binentries($LDAP_CON, $sr);
+  $entry  = $result[0];
+
+  if($type == 'plain'){
+    echo join(', ',$entry[$FIELDS['_marker']]);
+  }else{
+    foreach ($entry[$FIELDS['_marker']] as $tag){
+      echo '<a href="index.php?marker=';
+      echo rawurlencode($tag);
+      echo '" class="tag">';
+      echo htmlspecialchars($tag);
+      echo '</a> ';
+    }
+  }
+}
+
 /**
  * Find all tags (markers) starting with the given
  * string
  */
 function ajax_taglookup($tag){
+  header('Content-Type: text/xml; charset=utf-8');
   global $conf;
   global $LDAP_CON;
   global $FIELDS;
@@ -127,6 +153,7 @@ function ajax_taglookup($tag){
  * Do a simple lookup in any simple field
  */
 function ajax_lookup($field,$search){
+    header('Content-Type: text/xml; charset=utf-8');
     global $conf;
     global $LDAP_CON;
     global $FIELDS;
index 349a116450e670ab91c0246121adeb418360b9fb..d46910e4a6d9005604c1c0b1b9cd94b9d8b62737 100644 (file)
@@ -54,6 +54,6 @@
   $conf['dateformat']  = '%d.%m.%Y';
 
   // Force recompilation of smarty templates?
-  $conf['smartycompile'] = 0;
+  $conf['smartycompile'] = 1;
 
 
index 2f880f16d77b2b1117079839dd8be1bc4054d25e..c26e85c08be9747964ecac06eb2a5781ce441ccf 100644 (file)
@@ -99,9 +99,6 @@ function zaurus_entry($cnct){
   $entry['mobile']       = empty($cnct['HomeMobile']) ? $cnct['BusinessMobile'] : $cnct['HomeMobile'];
   $entry['fax']          = empty($cnct['BusinessFax']) ? $cnct['HomeFax'] : $cnct['BusinessFax'];
 
-#  $entry['anniversary'] = $cnt[''];
-
-  utf8_decode_array($entry);
   return $entry;
 }
 
index da1b254e5d72bb1ca26736b81ed836814e365c59..1f2b97d3fad64660011c7ed7e293ca29c845e105 100644 (file)
@@ -53,7 +53,7 @@ $lang['csvexport']        = 'CSV';
 $lang['vcfexport']        = 'VCard';
 $lang['vcfimport']        = 'Import';
 $lang['search']           = 'Search';
-$lang['submit']           = 'Send';
+$lang['submit']           = 'Save';
 $lang['help']             = 'Help';
 $lang['select']           = 'Select';
 $lang['orgs']             = 'Companies';
index 1e4b0d0e5ace54cd55f41f657ba817110e35ecb4..524d75f8487247c907e89a5304ff8d7666dd6ecb 100644 (file)
--- a/login.php
+++ b/login.php
@@ -1,26 +1,30 @@
-<?
-  require_once('init.php');
+<?php
+/**
+ * Do the login/logout process
+ */
 
-  $msg = $lang['msg_login'];
-  if(isset($_REQUEST['username'])){
+require_once('init.php');
+
+$msg = $lang['msg_login'];
+if(isset($_REQUEST['username'])){
     if (empty($_REQUEST['password'])) { $_REQUEST['password']=''; }
     if (do_ldap_bind($_REQUEST['username'],$_REQUEST['password'])){
-      //forward to next page
-      if(!empty($_SESSION['ldapab']['lastlocation'])){
-        header('Location: '.$_SESSION['ldapab']['lastlocation']);
-      }else{
-        header('Location: index.php');
-      }
-      exit;
+        //forward to next page
+        if(!empty($_SESSION['ldapab']['lastlocation'])){
+            header('Location: '.$_SESSION['ldapab']['lastlocation']);
+        }else{
+            header('Location: index.php');
+        }
+        exit;
     }else{
-      $msg = $lang['msg_loginfail'];;
+        $msg = $lang['msg_loginfail'];;
     }
-  }
+}
+
+//prepare templates
+tpl_std();
+$smarty->assign('msg',$msg);
+//display templates
+header('Content-Type: text/html; charset=utf-8');
+$smarty->display('login.tpl');
 
-  //prepare templates
-  tpl_std();
-  $smarty->assign('msg',$msg);
-  //display templates
-  header('Content-Type: text/html; charset=utf-8');
-  $smarty->display('login.tpl');
-?>
diff --git a/pix/imagebox/close.jpg b/pix/imagebox/close.jpg
new file mode 100644 (file)
index 0000000..3fcd7c5
Binary files /dev/null and b/pix/imagebox/close.jpg differ
diff --git a/pix/imagebox/loading.gif b/pix/imagebox/loading.gif
new file mode 100644 (file)
index 0000000..5bb90fd
Binary files /dev/null and b/pix/imagebox/loading.gif differ
diff --git a/pix/imagebox/next_image.jpg b/pix/imagebox/next_image.jpg
new file mode 100644 (file)
index 0000000..0a6e3cf
Binary files /dev/null and b/pix/imagebox/next_image.jpg differ
diff --git a/pix/imagebox/prev_image.jpg b/pix/imagebox/prev_image.jpg
new file mode 100644 (file)
index 0000000..2ce01dc
Binary files /dev/null and b/pix/imagebox/prev_image.jpg differ
diff --git a/pix/imagebox/spacer.gif b/pix/imagebox/spacer.gif
new file mode 100644 (file)
index 0000000..68b18e3
Binary files /dev/null and b/pix/imagebox/spacer.gif differ
diff --git a/scripts/formatDate.js b/scripts/formatDate.js
new file mode 100644 (file)
index 0000000..11c6197
--- /dev/null
@@ -0,0 +1,290 @@
+Array.prototype.exists = function (x) {
+    for (var i = 0; i < this.length; i++) {
+        if (this[i] == x) return true;
+    }
+    return false;
+}
+
+Date.prototype.formatDate = function (input,time) {
+    // formatDate :
+    // a PHP date like function, for formatting date strings
+    // See: http://www.php.net/date
+    //
+    // input : format string
+    // time : epoch time (seconds, and optional)
+    //
+    // if time is not passed, formatting is based on 
+    // the current "this" date object's set time.
+    //
+    // supported:
+    // a, A, B, d, D, F, g, G, h, H, i, j, l (lowercase L), L, 
+    // m, M, n, O, r, s, S, t, U, w, W, y, Y, z
+    //
+    // unsupported:
+    // I (capital i), T, Z    
+
+    var switches =    ["a", "A", "B", "d", "D", "F", "g", "G", "h", "H", 
+                       "i", "j", "l", "L", "m", "M", "n", "O", "r", "s", 
+                       "S", "t", "U", "w", "W", "y", "Y", "z"];
+    var daysLong =    ["Sunday", "Monday", "Tuesday", "Wednesday", 
+                       "Thursday", "Friday", "Saturday"];
+    var daysShort =   ["Sun", "Mon", "Tue", "Wed", 
+                       "Thu", "Fri", "Sat"];
+    var monthsShort = ["Jan", "Feb", "Mar", "Apr",
+                       "May", "Jun", "Jul", "Aug", "Sep",
+                       "Oct", "Nov", "Dec"];
+    var monthsLong =  ["January", "February", "March", "April",
+                       "May", "June", "July", "August", "September",
+                       "October", "November", "December"];
+    var daysSuffix = ["st", "nd", "rd", "th", "th", "th", "th", // 1st - 7th
+                      "th", "th", "th", "th", "th", "th", "th", // 8th - 14th
+                      "th", "th", "th", "th", "th", "th", "st", // 15th - 21st
+                      "nd", "rd", "th", "th", "th", "th", "th", // 22nd - 28th
+                      "th", "th", "st"];                        // 29th - 31st
+
+    function a() {
+        // Lowercase Ante meridiem and Post meridiem
+        return self.getHours() > 11? "pm" : "am";
+    }
+    function A() {
+        // Uppercase Ante meridiem and Post meridiem
+        return self.getHours() > 11? "PM" : "AM";
+    }
+
+    function B(){
+        // Swatch internet time. code simply grabbed from ppk,
+        // since I was feeling lazy:
+        // http://www.xs4all.nl/~ppk/js/beat.html
+        var off = (self.getTimezoneOffset() + 60)*60;
+        var theSeconds = (self.getHours() * 3600) + 
+                         (self.getMinutes() * 60) + 
+                          self.getSeconds() + off;
+        var beat = Math.floor(theSeconds/86.4);
+        if (beat > 1000) beat -= 1000;
+        if (beat < 0) beat += 1000;
+        if ((""+beat).length == 1) beat = "00"+beat;
+        if ((""+beat).length == 2) beat = "0"+beat;
+        return beat;
+    }
+    
+    function d() {
+        // Day of the month, 2 digits with leading zeros
+        return new String(self.getDate()).length == 1?
+        "0"+self.getDate() : self.getDate();
+    }
+    function D() {
+        // A textual representation of a day, three letters
+        return daysShort[self.getDay()];
+    }
+    function F() {
+        // A full textual representation of a month
+        return monthsLong[self.getMonth()];
+    }
+    function g() {
+        // 12-hour format of an hour without leading zeros
+        return self.getHours() > 12? self.getHours()-12 : self.getHours();
+    }
+    function G() {
+        // 24-hour format of an hour without leading zeros
+        return self.getHours();
+    }
+    function h() {
+        // 12-hour format of an hour with leading zeros
+        if (self.getHours() > 12) {
+          var s = new String(self.getHours()-12);
+          return s.length == 1?
+          "0"+ (self.getHours()-12) : self.getHours()-12;
+        } else { 
+          var s = new String(self.getHours());
+          return s.length == 1?
+          "0"+self.getHours() : self.getHours();
+        }  
+    }
+    function H() {
+        // 24-hour format of an hour with leading zeros
+        return new String(self.getHours()).length == 1?
+        "0"+self.getHours() : self.getHours();
+    }
+    function i() {
+        // Minutes with leading zeros
+        return new String(self.getMinutes()).length == 1? 
+        "0"+self.getMinutes() : self.getMinutes(); 
+    }
+    function j() {
+        // Day of the month without leading zeros
+        return self.getDate();
+    }    
+    function l() {
+        // A full textual representation of the day of the week
+        return daysLong[self.getDay()];
+    }
+    function L() {
+        // leap year or not. 1 if leap year, 0 if not.
+        // the logic should match iso's 8601 standard.
+        var y_ = Y();
+        if (         
+            (y_ % 4 == 0 && y_ % 100 != 0) ||
+            (y_ % 4 == 0 && y_ % 100 == 0 && y_ % 400 == 0)
+            ) {
+            return 1;
+        } else {
+            return 0;
+        }
+    }
+    function m() {
+        // Numeric representation of a month, with leading zeros
+        return self.getMonth() < 9?
+        "0"+(self.getMonth()+1) : 
+        self.getMonth()+1;
+    }
+    function M() {
+        // A short textual representation of a month, three letters
+        return monthsShort[self.getMonth()];
+    }
+    function n() {
+        // Numeric representation of a month, without leading zeros
+        return self.getMonth()+1;
+    }
+    function O() {
+        // Difference to Greenwich time (GMT) in hours
+        var os = Math.abs(self.getTimezoneOffset());
+        var h = ""+Math.floor(os/60);
+        var m = ""+(os%60);
+        h.length == 1? h = "0"+h:1;
+        m.length == 1? m = "0"+m:1;
+        return self.getTimezoneOffset() < 0 ? "+"+h+m : "-"+h+m;
+    }
+    function r() {
+        // RFC 822 formatted date
+        var r; // result
+        //  Thu    ,     21          Dec         2000
+        r = D() + ", " + j() + " " + M() + " " + Y() +
+        //        16     :    01     :    07          +0200
+            " " + H() + ":" + i() + ":" + s() + " " + O();
+        return r;
+    }
+    function S() {
+        // English ordinal suffix for the day of the month, 2 characters
+        return daysSuffix[self.getDate()-1];
+    }
+    function s() {
+        // Seconds, with leading zeros
+        return new String(self.getSeconds()).length == 1?
+        "0"+self.getSeconds() : self.getSeconds();
+    }
+    function t() {
+
+        // thanks to Matt Bannon for some much needed code-fixes here!
+        var daysinmonths = [null,31,28,31,30,31,30,31,31,30,31,30,31];
+        if (L()==1 && n()==2) return 29; // leap day
+        return daysinmonths[n()];
+    }
+    function U() {
+        // Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
+        return Math.round(self.getTime()/1000);
+    }
+    function W() {
+        // Weeknumber, as per ISO specification:
+        // http://www.cl.cam.ac.uk/~mgk25/iso-time.html
+        
+        // if the day is three days before newyears eve,
+        // there's a chance it's "week 1" of next year.
+        // here we check for that.
+        var beforeNY = 364+L() - z();
+        var afterNY  = z();
+        var weekday = w()!=0?w()-1:6; // makes sunday (0), into 6.
+        if (beforeNY <= 2 && weekday <= 2-beforeNY) {
+            return 1;
+        }
+        // similarly, if the day is within threedays of newyears
+        // there's a chance it belongs in the old year.
+        var ny = new Date("January 1 " + Y() + " 00:00:00");
+        var nyDay = ny.getDay()!=0?ny.getDay()-1:6;
+        if (
+            (afterNY <= 2) && 
+            (nyDay >=4)  && 
+            (afterNY >= (6-nyDay))
+            ) {
+            // Since I'm not sure we can just always return 53,
+            // i call the function here again, using the last day
+            // of the previous year, as the date, and then just
+            // return that week.
+            var prevNY = new Date("December 31 " + (Y()-1) + " 00:00:00");
+            return prevNY.formatDate("W");
+        }
+        
+        // week 1, is the week that has the first thursday in it.
+        // note that this value is not zero index.
+        if (nyDay <= 3) {
+            // first day of the year fell on a thursday, or earlier.
+            return 1 + Math.floor( ( z() + nyDay ) / 7 );
+        } else {
+            // first day of the year fell on a friday, or later.
+            return 1 + Math.floor( ( z() - ( 7 - nyDay ) ) / 7 );
+        }
+    }
+    function w() {
+        // Numeric representation of the day of the week
+        return self.getDay();
+    }
+    
+    function Y() {
+        // A full numeric representation of a year, 4 digits
+
+        // we first check, if getFullYear is supported. if it
+        // is, we just use that. ppks code is nice, but wont
+        // work with dates outside 1900-2038, or something like that
+        if (self.getFullYear) {
+            var newDate = new Date("January 1 2001 00:00:00 +0000");
+            var x = newDate .getFullYear();
+            if (x == 2001) {              
+                // i trust the method now
+                return self.getFullYear();
+            }
+        }
+        // else, do this:
+        // codes thanks to ppk:
+        // http://www.xs4all.nl/~ppk/js/introdate.html
+        var x = self.getYear();
+        var y = x % 100;
+        y += (y < 38) ? 2000 : 1900;
+        return y;
+    }
+    function y() {
+        // A two-digit representation of a year
+        var y = Y()+"";
+        return y.substring(y.length-2,y.length);
+    }
+    function z() {
+        // The day of the year, zero indexed! 0 through 366
+        var t = new Date("January 1 " + Y() + " 00:00:00");
+        var diff = self.getTime() - t.getTime();
+        return Math.floor(diff/1000/60/60/24);
+    }
+        
+    var self = this;
+    if (time) {
+        // save time
+        var prevTime = self.getTime();
+        self.setTime(time);
+    }
+    
+    var ia = input.split("");
+    var ij = 0;
+    while (ia[ij]) {
+        if (ia[ij] == "\\") {
+            // this is our way of allowing users to escape stuff
+            ia.splice(ij,1);
+        } else {
+            if (switches.exists(ia[ij])) {
+                ia[ij] = eval(ia[ij] + "()");
+            }
+        }
+        ij++;
+    }
+    // reset time, back to what it was
+    if (prevTime) {
+        self.setTime(prevTime);
+    }
+    return ia.join("");
+}
index 3ec99e010b6f2387df8aee76e6dcd4e9a730f133..e4a9a2688bbe5e0d895d0824519f50838cadb45b 100644 (file)
@@ -1,5 +1,105 @@
 
+/**
+ * Inplace tag editing
+ */
+function tagedit() {
+    var txt  = document.createElement('textarea');
+    txt.id   = 'tagedit_editor';
+    txt.name = 'marker';
+    txt.className = 'ipe';
+    $(txt).load('ajax.php',{loadtags: 'plain', dn: DN});
+    $(txt).Autocomplete({
+        source: 'ajax.php',
+        delay: 300,
+        helperClass: 'autocompleter',
+        selectClass: 'autocompleterSelect',
+        inputWidth: true,
+        minchars: 1,
+        multiple: true,
+        multipleSeperator: ','
+    });
 
+    var save       = new Image();
+    save.src       = 'pix/accept.png';
+    save.id        = 'tagedit_save';
+    save.className = 'click';
+    $(save).click(function(){
+        $('#taglist').load('ajax.php',{settags: $('#tagedit_editor').val(), dn: DN});
+        $('#tagedit_save').remove();
+        $('#tagedit_cancel').remove();
+        $('#tagedit_start').show();
+    });
+
+    var canc       = new Image();
+    canc.src       = 'pix/cancel.png';
+    canc.id        = 'tagedit_cancel';
+    canc.className = 'click';
+    $(canc).click(function(){
+        $('#taglist').load('ajax.php',{loadtags: 'html', dn: DN});
+        $('#tagedit_save').remove();
+        $('#tagedit_cancel').remove();
+        $('#tagedit_start').show();
+    });
+
+    $('#tagedit_start').hide();
+    $('#taglist').empty().prepend(txt);
+    $('#tagedit').append(save);
+    $('#tagedit').append(canc);
+    $('#tagedit_editor').focus();
+}
+
+/**
+ * Inplace note adding
+ */
+function noteedit(type){
+    var txt  = document.createElement('textarea');
+    txt.id   = 'noteedit_editor';
+    txt.className = 'ipe';
+
+    // prepare text
+    var text = '';
+    if(type=='call'){
+        text += '**Call** ';
+    }else if(type=='mail'){
+        text += '**Mail** ';
+    }else if(type=='todo'){
+        text += '**Todo** ';
+    }else if(type=='note'){
+        text += '**Note** ';
+    }
+    var dt = new Date();
+    text += '//'+dt.formatDate('j. M y H:i')+' '+USER+'//: ';
+    $(txt).val(text);
+
+    var save       = new Image();
+    save.src       = 'pix/accept.png';
+    save.id        = 'noteedit_save';
+    save.className = 'click';
+    $(save).click(function(){
+        $('#notes').load('ajax.php',{addnote: $('#noteedit_editor').val(), dn: DN});
+        $('#noteedit_editor').remove();
+        $('#noteedit_save').remove();
+        $('#noteedit_cancel').remove();
+        $('#noteedit .ed').show()
+    });
+
+    var canc       = new Image();
+    canc.src       = 'pix/cancel.png';
+    canc.id        = 'noteedit_cancel';
+    canc.className = 'click';
+    $(canc).click(function(){
+        $('#noteedit_editor').remove();
+        $('#noteedit_save').remove();
+        $('#noteedit_cancel').remove();
+        $('#noteedit .ed').show();
+    });
+
+    $('#notes').prepend(txt);
+    $('#noteedit .ed').hide();
+    $('#noteedit').append(save);
+    $('#noteedit').append(canc);
+    $('#noteedit_editor').focus();
+}
 
 
 
@@ -8,8 +108,8 @@
  */
 $(document).ready(function() {
 
-  // autocompletion
-  $('#taglookup').Autocomplete({
+    // autocompletion
+    $('#taglookup').Autocomplete({
         source: 'ajax.php',
         delay: 300,
         helperClass: 'autocompleter',
@@ -18,8 +118,8 @@ $(document).ready(function() {
         minchars: 1,
         //multiple: true,
         //multipleSeperator: ','
-  });
-  $('#tageditlookup').Autocomplete({
+    });
+    $('#tageditlookup').Autocomplete({
         source: 'ajax.php',
         delay: 300,
         helperClass: 'autocompleter',
@@ -28,23 +128,65 @@ $(document).ready(function() {
         minchars: 1,
         multiple: true,
         multipleSeperator: ','
-  });
-  // autocompletion
-  $('input.ac').Autocomplete({
+    });
+    // autocompletion
+    $('input.ac').Autocomplete({
         source: 'ajax.php',
         delay: 300,
         helperClass: 'autocompleter',
         selectClass: 'autocompleterSelect',
         inputWidth: true,
         minchars: 1,
-  });
+    });
 
-  $.ImageBox.init({
+    // nice images
+    $.ImageBox.init({
         loaderSRC: 'pix/imagebox/loading.gif',
         closeHTML: '<img src="pix/imagebox/close.jpg" border="0" />'
-  });
+    });
+
+    // tag editing
+    if($('#tagedit')){
+        var img       = new Image();
+        img.src       = 'pix/tag_blue_edit.png';
+        img.className = 'click';
+        img.id        = 'tagedit_start';
+        $('#tagedit').empty().after(img);
+        $(img).click(tagedit)
+    }
+
+    // note editing
+    if($('#noteedit')){
+        var img;
+
+        img           = new Image();
+        img.src       = 'pix/note.png';
+        img.className = 'click ed';
+        $(img).click(function(){noteedit('note');});
+        $('#noteedit').append(img);
+
+        img           = new Image();
+        img.src       = 'pix/arrow_right.png';
+        img.className = 'click ed';
+        $(img).click(function(){noteedit('todo');});
+        $('#noteedit').append(img);
+
+        img           = new Image();
+        img.src       = 'pix/email.png';
+        img.className = 'click ed';
+        $(img).click(function(){noteedit('mail');});
+        $('#noteedit').append(img);
+
+        img           = new Image();
+        img.src       = 'pix/phone.png';
+        img.className = 'click ed';
+        $(img).click(function(){noteedit('call');});
+        $('#noteedit').append(img);
+    }
+
+
+    // set focus
+    if($('#searchfield')) $('#searchfield').focus();
+    if($('#firstfield')) $('#firstfield').focus();
 
-  // set focus
-  if($('#searchfield')) $('#searchfield').focus();
-  if($('#firstfield')) $('#firstfield').focus();
 });
diff --git a/styles/design.css b/styles/design.css
new file mode 100644 (file)
index 0000000..5a4d9f2
--- /dev/null
@@ -0,0 +1,140 @@
+/* some general setups */
+
+* { padding: 0; margin: 0; }
+
+body {
+    font: 80% "Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif;
+    background-color: #fff;
+    color: #333;
+}
+
+img {
+    border: 0;
+}
+
+div {
+    margin: 0;
+    padding: 0;
+}
+
+/* genral link setup */
+
+a:link,
+a:visited {
+    text-decoration: none;
+    color: #06c;
+}
+
+a:hover,
+a:active {
+    text-decoration: underline;
+    color: #06c;
+}
+
+.click {
+    cursor: pointer;
+}
+
+/* logo */
+
+div#titlerow div.logo a {font-size:25px; font-weight:bolder}
+div#titlerow div.logo span {font-size:16px; font-weight:bold}
+
+/* photo */
+
+img.photo {
+    border: 1px solid #999;
+    padding: 0.5em;
+}
+
+/* forms */
+
+input, select, textarea {
+    border: 1px solid #999;
+    background-color: #F5F5F5;
+}
+
+input:focus, select:focus, textarea:focus {
+    border: 1px solid #06c;
+}
+
+/* editing and other link icons */
+
+a.ed_help {
+    background: transparent url(../pix/help.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 16px;
+}
+
+a.ed_orgs {
+    background: transparent url(../pix/book_open.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 16px;
+}
+
+a.ed_new {
+    background: transparent url(../pix/page_add.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 16px;
+}
+
+a.ed_show {
+    background: transparent url(../pix/page_red.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 16px;
+}
+
+a.ed_edit {
+    background: transparent url(../pix/page_edit.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 16px;
+}
+
+a.ed_copy {
+    background: transparent url(../pix/page_copy.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 16px;
+}
+
+a.ed_delete {
+    background: transparent url(../pix/page_delete.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 16px;
+}
+
+a.ed_vcfexport {
+    background: transparent url(../pix/vcard.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 16px;
+}
+
+a.ed_csvexport {
+    background: transparent url(../pix/page_white_excel.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 16px;
+}
+
+a.ed_vcfimport {
+    background: transparent url(../pix/page_in.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 16px;
+}
+
+a.ed_login {
+    background: transparent url(../pix/key.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 18px;
+}
+
+a.ed_logout {
+    background: transparent url(../pix/key_go.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 18px;
+}
+
+a.tag {
+    background: transparent url(../pix/tag_blue.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 18px;
+    white-space: nowrap;
+}
+
+
+/* TagCloud */
+div#tagcloud {text-align: justify}
+div#tagcloud a {white-space: nowrap;}
+a.cloud_0 {font-size: 90%; }
+a.cloud_1 {font-size: 110%; }
+a.cloud_2 {font-size: 140%; }
+a.cloud_3 {font-size: 150%; }
+a.cloud_4 {font-size: 160%; }
+a.cloud_5 {font-size: 180%; }
+a.cloud_6 {font-size: 200%; }
+
diff --git a/styles/layout.css b/styles/layout.css
new file mode 100644 (file)
index 0000000..dcffc41
--- /dev/null
@@ -0,0 +1,209 @@
+/* body */
+body {
+    padding: 0.5em;
+}
+
+/* top row */
+
+div#titlerow {
+    overflow: hidden;
+    height: 3em;
+    margin-bottom: 1em;
+}
+
+div#titlerow div.logo {
+    float: left;
+    margin-left: 2em;
+}
+
+div#titlerow div.search {
+    float: right;
+    margin-top: 1em;
+}
+
+div#titlerow div.search form {
+    float: left;
+}
+
+div#titlerow div.search form.tags {
+    margin-left: 1em;
+}
+
+
+/* Editing buttons */
+
+div#toolbar {
+    overflow: hidden;
+    padding-left: 2em;
+}
+
+div#toolbar ul li {
+    list-style-type: none;
+    float: left;
+    border-left: 1px solid #999;
+    border-top: 1px solid #999;
+    border-right: 1px solid #999;
+    margin: 0 0.2em 0 0.2em;
+    text-align: center;
+    -moz-border-radius: 50% 50% 0 0;
+    padding: 0.2em 0.4em 0.1em 0.4em;
+}
+
+div#toolbar ul li.sep {
+    border: none;
+    width: 1em;
+}
+
+/* A-Z filters */
+
+div#filterrow {
+    float: left;
+    overflow: hidden;
+    clear: left;
+    width: 2em;
+}
+
+div#filterrow ul li {
+    list-style-type: none;
+    border-left: 1px solid #999;
+    border-top: 1px solid #999;
+    border-bottom: 1px solid #999;
+    margin: 0.2em 0 0.2em 0.6em;
+    text-align: center;
+    -moz-border-radius: 50% 0 0 50%;
+    margin-right: -1px;
+}
+
+/* content */
+
+div#content {
+    margin-left: 2em;
+    border: 1px solid #999;
+    padding: 1em;
+    height: auto !important;
+    min-height: 45em;
+    height: 45em;
+}
+
+/* list of contacts or organizations */
+table.list tr:hover {
+    background-color: #DCDCDC !important;
+}
+
+table.list tr.even {
+    background-color: #F5F5F5;
+}
+
+table.list td {
+    padding: 0.1em;
+}
+
+/* contact view */
+div#show table.show table {
+    margin-left: 2em;
+}
+
+div#show table.show table th {
+    font-weight: normal;
+    text-align: right;
+    padding-right: 1em;
+    width: 20%;
+}
+
+div#show table th,
+div#show table td {
+    vertical-align: top;
+}
+
+div#show h3 {
+    margin: 1em 0 0.6em 0;
+}
+
+/* contact edit */
+div#edit table th,
+div#edit table td {
+    vertical-align: top;
+    padding: 0.2em;
+}
+
+div#edit table th {
+    font-weight: normal;
+    text-align: right;
+    padding-right: 1em;
+    width: 35%;
+}
+
+div#edit textarea.input,
+div#edit input.input {
+    width: 95%;
+}
+
+div#edit span.hint {
+    font-size: 75%;
+}
+
+/* tagcloud */
+div#tagcloud {
+    margin: 2em;
+}
+
+/* login form */
+
+form#login {
+    width: 30em;
+    margin: 7em auto;
+}
+
+form#login fieldset {
+    padding: 1em 2em;
+    border: 1px solid #999;
+}
+
+form#login legend {
+    background: transparent url(../pix/key.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 20px;
+}
+
+form#login div.msg {
+    font-weight: bold;
+    margin-bottom: 1em;
+}
+
+form#login div.row {
+    margin: 0.6em;
+}
+
+form#login input.input {
+    width: 12em;
+}
+
+form#login input.button {
+    display: block;
+    margin: 1em auto;
+}
+
+/* import */
+
+form#import {
+    width: 30em;
+    margin: 2em auto;
+}
+
+form#import fieldset {
+    padding: 1em 2em;
+    border: 1px solid #999;
+}
+
+form#import legend {
+    background: transparent url(../pix/page_in.png) 0px 1px no-repeat;
+    padding: 1px 0px 1px 20px;
+}
+
+/* footer */
+div#footrow {
+    margin-left: 2em;
+}
+
+div#footrow div.login{
+    float: right;
+}
diff --git a/styles/scripted.css b/styles/scripted.css
new file mode 100644 (file)
index 0000000..d387cfb
--- /dev/null
@@ -0,0 +1,61 @@
+
+/**
+ * Autocompletion
+ */
+.autocompleter {
+    background-color: #fff;
+    border: 1px solid #999;
+    font-size: 80%;
+}
+
+.autocompleterSelect {
+    background-color: #06c;
+    color: #fff;
+}
+
+/**
+ * ImageBox effects
+ */
+
+#ImageBoxOverlay {
+    background-color: #000;
+}
+#ImageBoxCaption {
+    background-color: #F4F4EC;
+}
+#ImageBoxContainer {
+    width: 250px;
+    height: 250px;
+    background-color: #F4F4EC;
+}
+#ImageBoxCaptionText {
+    font-weight: bold;
+    padding-bottom: 5px;
+    font-size: 13px;
+}
+#ImageBoxCaptionImages {
+    margin: 0;
+}
+#ImageBoxNextImage {
+    background-image: url(pix/imagebox/spacer.gif);
+    background-color: transparent;
+}
+#ImageBoxPrevImage {
+    background-image: url(pix/imagebox/spacer.gif);
+    background-color: transparent;
+}
+#ImageBoxNextImage:hover {
+    background-image: url(pix/imagebox/next_image.jpg);
+    background-repeat:  no-repeat;
+    background-position: right top;
+}
+#ImageBoxPrevImage:hover {
+    background-image: url(pix/imagebox/prev_image.jpg);
+    background-repeat:  no-repeat;
+    background-position: left bottom;
+}
+
+textarea.ipe {
+    width: 95%;
+    height: 5em;
+}
index 5c74ed374b3df9e461ab7ac9e6f13f0d096200fd..c5e850e68e945fb8cee1f672b65a9d365e7542c3 100644 (file)
@@ -152,17 +152,7 @@ function tpl_orgs(){
   global $FIELDS;
 
   $orgs = array();
-
-  $sr = ldap_list($LDAP_CON,$conf['publicbook'],"ObjectClass=inetOrgPerson",array($FIELDS['organization']));
-  $result1 = ldap_get_binentries($LDAP_CON, $sr);
-  //check users private addressbook
-  if(!empty($_SESSION['ldapab']['binddn'])){
-    $sr = @ldap_list($LDAP_CON,
-                    $conf['privatebook'].','.$_SESSION['ldapab']['binddn'],
-                    "ObjectClass=inetOrgPerson",array($FIELDS['organization']));
-    $result2 = ldap_get_binentries($LDAP_CON, $sr);
-  }
-  $result = array_merge((array)$result1,(array)$result2);
+  $result = ldap_queryabooks("ObjectClass=inetOrgPerson",array($FIELDS['organization']));
 
   if(count($result)){
     foreach ($result as $entry){
diff --git a/templates/blank.gif b/templates/blank.gif
deleted file mode 100644 (file)
index 9935f82..0000000
Binary files a/templates/blank.gif and /dev/null differ
index 8dad65bc98f053de2be6b3869cba8e19821f2eee..13e87eb974626f4eec76abde73d8c3b47ebcc0b7 100644 (file)
@@ -1,5 +1,7 @@
 {include file="header.tpl"}
 
+<div id="edit">
+
 <h1>
   {if $entry.type != ''}
   <img src="pix/{$entry.type|h}.png" border="0" width="22" height="22" align="middle" title="{$entry.type|h}">
 <!--  -->
   <tr>
     <td valign="top" width="50%" align="center">
-      <table>
+      <table width="100%">
 {* always required ... if $fields.name *}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.name}:</td>
+          <th>{$lang.name}:</th>
           <td><input type="text" class="input" name="entry[name]" value="{$entry.name|h}" id="firstfield"></td>
         </tr>
 {* /if *}
 {if $fields.givenname}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.givenname}:</td>
+          <th>{$lang.givenname}:</th>
           <td><input type="text" class="input" name="entry[givenname]" value="{$entry.givenname|h}"></td>
         </tr>
 {/if}
 {if $fields.title}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.title}:</td>
+          <th>{$lang.title}:</th>
           <td><input type="text" class="input" name="entry[title]" value="{$entry.title|h}"></td>
         </tr>
 {/if}
   </tr>
 
   <tr>
-    <td colspan="2"><hr /></td>
+    <td colspan="2">&nbsp;</td>
   </tr>
 
   <tr>
     <td valign="top" width="50%" align="center">
-      <table>
+      <table width="100%">
         <tr>
-          <td colspan="2"><b>{$lang.business}</b></td>
+          <td colspan="2"><h3>{$lang.business}</h3></td>
         </tr>
 {if $fields.organization}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.organization}:</td>
+          <th>{$lang.organization}:</th>
           <td>
             <input type="text" class="input ac" name="entry[organization]" value="{$entry.organization|h}">
           </td>
 {/if}
 {if $fields.office}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.office}:</td>
+          <th>{$lang.office}:</th>
           <td><input type="text" class="input" name="entry[office]" value="{$entry.office|h}"></td>
         </tr>
 {/if}
 {if $fields.street}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.street}:</td>
+          <th>{$lang.street}:</th>
           <td><input type="text" class="input ac" name="entry[street]" value="{$entry.street|h}"></td>
         </tr>
 {/if}
 {if $fields.zip}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.zip}:</td>
+          <th>{$lang.zip}:</th>
           <td><input type="text" class="input" name="entry[zip]" value="{$entry.zip|h}"></td>
         </tr>
 {/if}
 {if $fields.location}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.location}:</td>
+          <th>{$lang.location}:</th>
           <td><input type="text" class="input ac" name="entry[location]" value="{$entry.location|h}"></td>
         </tr>
 {/if}
 {if $fields.state}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.state}:</td>
+          <th>{$lang.state}:</th>
           <td><input type="text" class="input ac" name="entry[state]" value="{$entry.state|h}"></td>
         </tr>
 {/if}
         <tr>
           <td align="right" valign="top">{$lang.country}:</td>
           <td>
-            <input type="text" class="input ac" name="entry[country]" value="{$entry.country|h}"><br>
+            <input type="text" class="input ac" name="entry[country]" value="{$entry.country|h}"><br />
           </td>
         </tr>
 {/if}
 {if $fields.phone}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.phone}:</td>
+          <th>{$lang.phone}:</th>
           <td><input type="text" class="input" name="entry[phone]" value="{$entry.phone|h}"></td>
         </tr>
 {/if}
 {if $fields.switchboard}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.switchboard}:</td>
+          <th>{$lang.switchboard}:</th>
           <td><input type="text" class="input" name="entry[switchboard]" value="{$entry.switchboard|h}"></td>
         </tr>
 {/if}
 {if $fields.fax}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.fax}:</td>
+          <th>{$lang.fax}:</th>
           <td><input type="text" class="input" name="entry[fax]" value="{$entry.fax|h}"></td>
         </tr>
 {/if}
 {if $fields.pager}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.pager}:</td>
+          <th>{$lang.pager}:</th>
           <td><input type="text" class="input" name="entry[pager]" value="{$entry.pager|h}"></td>
         </tr>
 {/if}
 {if $fields.manager}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.manager}:</td>
+          <th>{$lang.manager}:</th>
           <td>
             <select name="entry[manager]" class="input">
               <option value="">--- {$lang.select} ---</option>
 
     <td valign="top" width="50%" align="center">
 
-      <table>
+      <table width="100%">
         <tr>
-          <td colspan="2"><b>{$lang.private}</b></td>
+          <td colspan="2"><h3>{$lang.private}</b></h3>
         </tr>
 {if $fields.homestreet}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.homestreet}:</td>
+          <th>{$lang.homestreet}:</th>
           <td><textarea name="entry[homestreet]" class="input" rows="2" cols="30">{$entry.homestreet|h}</textarea></td>
         </tr>
 {/if}
 {if $fields.homephone}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.homephone}:</td>
+          <th>{$lang.homephone}:</th>
           <td><input type="text" class="input" name="entry[homephone]" value="{$entry.homephone|h}"></td>
         </tr>
 {/if}
 {if $fields.mobile}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.mobile}:</td>
+          <th>{$lang.mobile}:</th>
           <td><input type="text" class="input" name="entry[mobile]" value="{$entry.mobile|h}"></td>
         </tr>
 {/if}
-{if $fields.url}
-        <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.url}:</td>
-          <td><input type="text" class="input ac" name="entry[url]" value="{$entry.url|h}"></td>
-        </tr>
-{/if}
 {if $fields.photo}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.photo}:<br /><span class="hint">({$lang.msg_jpegonly})</span></td>
+          <th>{$lang.photo}:<br /><span class="hint">({$lang.msg_jpegonly})</span></th>
           <td>{if $entry.photo}
                 <input type="checkbox" class="radio" name="delphoto" id="delphoto" value="1">
                 <label for="delphoto">{$lang.delphoto}</label>
 {/if}
 {if $fields.birthday}
         <tr>
-          <td align="right" valign="top">{$lang.birthday}:<br><span class="hint">({$lang.msg_dateformat})</span></td>
+          <td align="right" valign="top">{$lang.birthday}:<br /><span class="hint">({$lang.msg_dateformat})</span></td>
           <td><input type="text" class="input" name="entry[birthday]" value="{$entry.birthday|h}" maxlength="10"></td>
         </tr>
 {/if}
 {if $fields.anniversary}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.anniversary}:<br><span class="hint">({$lang.msg_dateformat})</span></td>
+          <th>{$lang.anniversary}:<br /><span class="hint">({$lang.msg_dateformat})</span></th>
           <td><input type="text" class="input" name="entry[anniversary]" value="{$entry.anniversary|h}" maxlength="10"></td>
         </tr>
 {/if}
 {if $fields.spouse}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.spouse}:</td>
+          <th>{$lang.spouse}:</th>
           <td><input type="text" class="input" name="entry[spouse]" value="{$entry.spouse|h}"></td>
         </tr>
 {/if}
 
         <tr>
-          <td colspan="2"><b>{$lang.communication}</b></td>
+          <td colspan="2"><h3>{$lang.communication}</h3></td>
+        </tr>
+{if $fields.url}
+        <tr>
+          <th>{$lang.url}:</th>
+          <td><input type="text" class="input ac" name="entry[url]" value="{$entry.url|h}"></td>
         </tr>
+{/if}
 {if $fields._mail}
         {foreach from=$entry.mail|smarty:nodefaults item=mail}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.mail} {counter}:</td>
+          <th>{$lang.mail} {counter}:</th>
           <td><input type="text" class="input" name="entry[mail][]" value="{$mail}"></td>
         </tr>
         {/foreach}
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.mail} {counter}:</td>
+          <th>{$lang.mail} {counter}:</th>
           <td><input type="text" class="input" name="entry[mail][]" value=""></td>
         </tr>
         <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.mail} {counter}:</td>
+          <th>{$lang.mail} {counter}:</th>
           <td><input type="text" class="input" name="entry[mail][]" value=""></td>
         </tr>
 {/if}
   </tr>
 
   <tr>
-    <td colspan="2"><hr /></td>
+    <td colspan="2">&nbsp;</td>
+  </tr>
+
+  <tr>
+    <td colspan="2"><h3>{$lang.extended}</h3></td>
   </tr>
 
   <tr>
     <td width="50%" valign="top" align="center">
-      <table>
-        <tr>
-          <td colspan="2"><b>{$lang.extended}</b></td>
-        </tr>
-{if $fields._marker}
-        <tr>
-          <td align="right" valign="top" nowrap="nowrap">{$lang.marker}:<br><span class="hint">({$lang.msg_tagsep})</span></td>
-          <td>
-            <textarea class="input" name="entry[markers]" id="tageditlookup">{$entry.markers|h}</textarea>
-          </td>
-        </tr>
-{/if}
+      <table width="100%">
 {if $fields.note}
         <tr>
           <td align="right" valign="top">{$lang.note}:</td>
       </table>
     </td>
     <td width="50%" valign="top" align="center">
-      <table>
+      <table width="100%">
+{if $fields._marker}
+        <tr>
+          <th>{$lang.marker}:<br /><span class="hint">({$lang.msg_tagsep})</span></th>
+          <td>
+            <textarea class="input" name="entry[markers]" id="tageditlookup">{$entry.markers|h}</textarea>
+          </td>
+        </tr>
+{/if}
 {if $fields.certificate}
         <tr>
           <td align="right" valign="top">{$lang.certificate}:</td>
           <td>
             <textarea name="entry[certificate]" class="input" rows="6" cols="28" onClick="this.form.elements['entry[certificate]'].select();">{$entry.certificate|h}</textarea>
-            <br><input type="button" name="clearCert" value="Clear" onClick="if (confirm('Are you sure?')) this.form.elements['entry[certificate]'].value='';">
+            <br /><input type="button" name="clearCert" value="Clear" onClick="if (confirm('Are you sure?')) this.form.elements['entry[certificate]'].value='';">
           </td>
         </tr>
 {/if}
         <tr>
           <td align="right" valign="top">{$lang.timezone}:</td>
           <td>
-            <input type="text" class="inputbr" name="entry[timezone]" value="{$entry.timezone|h}"><br>
+            <input type="text" class="inputbr" name="entry[timezone]" value="{$entry.timezone|h}"><br />
           </td>
         </tr>
 {/if}
   {if $entry.dn == ''}
   <tr>
     <td colspan="2" align="center">
-      {$lang.msg_addto}<br>
+      {$lang.msg_addto}<br />
       <table><tr><td>
       <input type="radio" name="type" value="public" id="typepublic" class="radio" checked="checked">
-      <label for="typepublic"><img src="pix/public.png" border="0" width="16" height="16" align="middle">{$lang.publicbook}</label><br>
+      <label for="typepublic"><img src="pix/public.png" border="0" width="16" height="16" align="middle">{$lang.publicbook}</label><br />
       <input type="radio" name="type" value="private" id="typeprivate" class="radio">
       <label for="typeprivate"><img src="pix/private.png" border="0" width="16" height="16" align="middle">{$lang.privatebook}</label>
       </td></tr></table>
   {/if}
 
   <tr>
-    <td colspan="2" align="center"><br><input type="submit" class="input" value="{$lang.submit}"></td>
+    <td colspan="2" align="center"><br /><input type="submit" class="button" value="{$lang.submit}"></td>
   </tr>
 </table>
 
 </form>
 
+</div>
+
 {include file="footer.tpl"}
index fa794bdc2f69a0ef814cadc169718383067e2b0f..e94d2dbce197c37ed121c74a727adc617ba8b92d 100644 (file)
@@ -1,33 +1,38 @@
 {include file="header.tpl"}
 
+<div id="show">
+
 {if $entry.photo != ''}
-  <a href="img.php?dn={$entry.dn|escape:url}&amp;.jpg" rel="imagebox" title="{$entry.givenname|h} {$entry.name|h}"><img src="img.php?dn={$entry.dn|escape:url}" align="right" class="photo" width="130" /></a>
+    <a href="img.php?dn={$entry.dn|escape:url}&amp;.jpg" rel="imagebox"
+       title="{$entry.givenname|h} {$entry.name|h}"><img src="img.php?dn={$entry.dn|escape:url}"
+       align="right" class="photo" width="130" /></a>
 {/if}
 <h1>
-  <img src="pix/{$entry.type|h}.png" border="0" width="22" height="22" align="middle" title="{$entry.type|h}" />
-  {$entry.givenname|h} {$entry.name|h}
+    <img src="pix/{$entry.type|h}.png" border="0" width="22" height="22"
+    align="middle" title="{$entry.type|h}" alt="" />
+    {$entry.givenname|h} {$entry.name|h}
 </h1>
 
-<table width="100%" {if $user}ondblclick="window.location.href='entry.php?dn={$entry.dn|escape:url}&mode=edit'"{/if|h}>
+<table width="100%" class="show"
+       {if $user}ondblclick="window.location.href='entry.php?dn={$entry.dn|escape:url}&amp;mode=edit'"{/if}>
   <tr>
     <td valign="top" width="50%">
-      <b>{$lang.business}</b>
-      <dl><dd>
-        <table>
+      <h3>{$lang.business}</h3>
+        <table width="100%">
           <tr>
             <td colspan="2">
-              {$entry.title|h} {$entry.givenname|h} {$entry.name|h}<br>
+              {$entry.title|h} {$entry.givenname|h} {$entry.name|h}<br />
 {if $entry.organization}
-              <a href="index.php?org={$entry.organization|escape:url}">{$entry.organization|h}</a><br>
+              <a href="index.php?org={$entry.organization|escape:url}">{$entry.organization|h}</a><br />
 {/if}
 {if $entry.office}
-              {$entry.office|h}<br>
+              {$entry.office|h}<br />
 {/if}
 {if $entry.street}
-              {$entry.street|h}<br>
+              {$entry.street|h}<br />
 {/if}
 {if $entry.location}
-              {$entry.zip} {$entry.location|h}<br>
+              {$entry.zip} {$entry.location|h}<br />
 {/if}
 {if $entry.state}
               {$entry.state|h}
 {if $entry.country}
               {$entry.country|h}
 {/if}
-              <br><br>
+              <br /><br />
             </td>
           </tr>
 {if $entry.phone}
           <tr>
-            <td align="right">{$lang.phone}:</td>
+            <th>{$lang.phone}:</th>
             <td>{$entry.phone|h}</td>
           </tr>
 {/if}
 {if $entry.switchboard}
           <tr>
-            <td align="right">{$lang.switchboard}:</td>
+            <th>{$lang.switchboard}:</th>
             <td>{$entry.switchboard|h}</td>
           </tr>
 {/if}
 {if $entry.fax}
           <tr>
-            <td align="right">{$lang.fax}:</td>
+            <th>{$lang.fax}:</th>
             <td>{$entry.fax|h}</td>
           </tr>
 {/if}
 {if $entry.pager}
           <tr>
-            <td align="right">{$lang.pager}:</td>
+            <th>{$lang.pager}:</th>
             <td>{$entry.pager|h}</td>
           </tr>
 {/if}
 {if $managername}
           <tr>
-            <td align="right">{$lang.manager}:</td>
+            <th>{$lang.manager}:</th>
             <td>{$managername}</td>
           </tr>
 {/if}
 {if $entry.position}
           <tr>
-            <td align="right">{$lang.position}:</td>
+            <th>{$lang.position}:</th>
             <td>{$entry.position|h}</td>
           </tr>
 {/if}
 {if $entry.department}
           <tr>
-            <td align="right">{$lang.department}:</td>
+            <th>{$lang.department}:</th>
             <td>{$entry.department|h}</td>
           </tr>
 {/if}
 
         </table>
-      </dd></dl>
-
 
     </td>
 
 
     <td valign="top" width="50%">
-      <b>{$lang.private}</b>
-      <dl><dd>
-        <table>
+      <h3>{$lang.private}</h3>
+        <table width="100%">
           <tr>
             <td colspan="2">
-              {$entry.title} {$entry.givenname} {$entry.name|h}<br>
+              {$entry.title|h} {$entry.givenname|h} {$entry.name|h}<br />
 {if $entry.homestreet}
-              {$entry.homestreet|h|nl2br}<br><br>
+              {$entry.homestreet|h|nl2br}<br /><br />
 {/if}
             </td>
           </tr>
 {if $entry.homephone}
           <tr>
-            <td align="right">{$lang.homephone}:</td>
+            <th>{$lang.homephone}:</th>
             <td>{$entry.homephone|h}</td>
           </tr>
 {/if}
 {if $entry.mobile}
           <tr>
-            <td align="right">{$lang.mobile}:</td>
+            <th>{$lang.mobile}:</th>
             <td>{$entry.mobile|h}</td>
           </tr>
 {/if}
-{if $entry.url}
-          <tr>
-            <td align="right">{$lang.url}:</td>
-            <td><a href="{$entry.url}" target="_blank">{$entry.url|h}</a></td>
-          </tr>
-{/if}
 {if $entry.birthday}
           <tr>
-            <td align="right">{$lang.birthday}:</td>
+            <th>{$lang.birthday}:</th>
             <td>{$entry.birthday|h}</td>
           </tr>
 {/if}
 {if $entry.anniversary}
           <tr>
-            <td align="right">{$lang.anniversary}:</td>
+            <th>{$lang.anniversary}:</th>
             <td>{$entry.anniversary|date_format:$conf.dateformat|h}</td>
           </tr>
 {/if}
 {if $entry.spouse}
           <tr>
-            <td align="right">{$lang.spouse}:</td>
+            <th>{$lang.spouse}:</th>
             <td>{$entry.spouse|h}</td>
           </tr>
 {/if}
 
         </table>
-      </dd></dl>
 
-      <b>{$lang.communication}</b>
-      <dl><dd>
-        <table>
+      <h3>{$lang.communication}</h3>
+        <table width="100%">
+{if $entry.url}
+          <tr>
+            <th>{$lang.url}:</th>
+            <td><a href="{$entry.url|http}" target="_blank">{$entry.url|h}</a></td>
+          </tr>
+{/if}
 {if $entry.mail}
           <tr>
-            <td valign="top" align="right">{$lang.mail}:</td>
+            <th>{$lang.mail}:</th>
             <td>
               {foreach from=$entry.mail item=mail}
-                <a href="mailto:{$mail|escape:url}">{$mail|h}</a><br>
+                <a href="mailto:{$mail|escape:url}">{$mail|h}</a><br />
               {/foreach}
             </td>
           </tr>
 {/if}
 {if $entry.instantmessenger}
           <tr>
-            <td align="right">{$lang.instantmessenger}:</td>
+            <th>{$lang.instantmessenger}:</th>
             <td>{$entry.instantmessenger|h}</td>
           </tr>
 {/if}
 {if $entry.ipphone}
           <tr>
-            <td align="right">{$lang.ipphone}:</td>
+            <th>{$lang.ipphone}:</th>
             <td>{$entry.ipphone|h}</td>
           </tr>
 {/if}
 
         </table>
-      </dd></dl>
 
     </td>
   </tr>
 </table>
 
-<hr noshade="noshade" size="1" />
+<h3>{$lang.extended}</h3>
 
-<table width="100%">
+<table width="100%" class="show">
   <tr>
     <td width="50%" valign="top">
-      <b>{$lang.extended}</b>
-      <dl><dd>
-        <table>
-{if $fields._marker}
-          <tr>
-            <td valign="top" align="right">
-              {$lang.marker}:
-            </td>
-            <td id="tedit_insert">
-              <span id="tedit_out">
-                {foreach from=$entry.marker item=marker}
-                  <a href="index.php?marker={$marker|escape:url}" class="tag">{$marker|h}</a> 
-                {/foreach}
-              </span>
-              {if $user}
-                <img src="pix/tag_blue_edit.png" align="right" width="16" height="16" onclick="tedit_showEditor('{$dn}')" class="click" />
-              {/if}
-            </td>
-          </tr>
-{/if}
+        <table width="100%">
 {if $fields.note}
           <tr>
-            <td valign="top" align="right">
+            <th>
               {$lang.note}:
-            </td>
+              <div {if $user}id="noteedit"{/if}>&nbsp;</div>
+            </th>
             <td>
-              {if $user}
-                 <img src="pix/phone.png" width="16" height="16" onclick="nedit_showEditor('call','{$entry.dn}','{$user|escape:javascript}');" class="click" />
-                 <img src="pix/email.png" width="16" height="16" onclick="nedit_showEditor('mail','{$entry.dn}','{$user|escape:javascript}');" class="click" />
-                 <img src="pix/arrow_right.png" width="16" height="16" onclick="nedit_showEditor('todo','{$entry.dn}','{$user|escape:javascript}');" class="click" />
-                 <img src="pix/note.png" width="16" height="16" onclick="nedit_showEditor('note','{$entry.dn}','{$user|escape:javascript}');" class="click" />
-              {/if}
-              <dl class="notes"><dd id="nedit_insert">
+              <div id="notes">
                 {$entry.note|noteparser}
-              </dd></dl>
+                &nbsp;
+              </div>
             </td>
           </tr>
 {/if}
         </table>
-      </dd></dl>
     </td>
     <td width="50%" valign="top">
-      <dl><dd>
-        <table >
+        <table width="100%">
+{if $fields._marker}
+          <tr>
+            <th>
+              {$lang.marker}:
+              <div {if $user}id="tagedit"{/if}>&nbsp;</div>
+            </th>
+            <td>
+              <span id="taglist">
+                {foreach from=$entry.marker item=marker}
+                  <a href="index.php?marker={$marker|escape:url}" class="tag">{$marker|h}</a>
+                {/foreach}
+                &nbsp;
+              </span>
+            </td>
+          </tr>
+{/if}
 {if $entry.certificate}
          <tr>
-           <td align="right">{$lang.certificate}:</td>
+           <th>{$lang.certificate}:</th>
            <td><form>
               <textarea rows=3 cols=28 name='certificate' onClick='this.form.certificate.select();'>{$entry.certificate|h}</textarea>
             </form></td>
 {/if}
 {if $entry.domain}
           <tr>
-            <td align="right">{$lang.domain}:</td>
+            <th>{$lang.domain}:</th>
             <td>{$entry.domain|h}</td>
           </tr>
 {/if}
 {if $entry.timezone}
           <tr>
-            <td align="right">{$lang.timezone}:</td>
+            <th>{$lang.timezone}:</th>
             <td>{$entry.timezone|h}</td>
           </tr>
 {/if}
         </table>
-      </dd></dl>
     </td>
   </tr>
 </table>
 
 
+</div>
 
 {include file="footer.tpl"}
index ed3776c6158648a1156aebb7342c514038390f18..2555416db429ce5279485c652909ccc71e2c2746 100644 (file)
@@ -15,5 +15,5 @@ EMAIL;INTERNET:{$mail}
 ADR;WORK;ENCODING=QUOTED-PRINTABLE:;;{$entry.street|escape:qp};{$entry.location|escape:qp};;{$entry.plz|escape:qp};
 ADR;HOME;ENCODING=QUOTED-PRINTABLE:;;{$entry.homestreet|escape:qp}
 URL;WORK:{$entry.url}
-BDAY:{$entry.anniversary}
+BDAY:{$entry.birthday}
 END:VCARD
index 6e3228903393c4208a173dc17b5ca7685ed71c2b..34835a25d584c9c8af18f6783605607cc3239251 100644 (file)
@@ -1,2 +1,2 @@
-{$lang.name|csv};{$lang.givenname|csv};{$lang.title|csv};{$lang.organization|csv};{$lang.office|csv};{$lang.street|csv};{$lang.zip|csv};{$lang.location|csv};{$lang.phone|csv};{$lang.fax|csv};{$lang.pager|csv};{$lang.homestreet|csv};{$lang.homephone|csv};{$lang.mobile|csv};{$lang.url|csv};{$lang.note|csv};{$lang.mail|csv};{$lang.mail|csv};{$lang.mail|csv};
+{$lang.name|csv};{$lang.givenname|csv};{$lang.title|csv};{$lang.organization|csv};{$lang.office|csv};{$lang.street|csv};{$lang.zip|csv};{$lang.location|csv};{$lang.phone|csv};{$lang.fax|csv};{$lang.pager|csv};{$lang.homestreet|csv};{$lang.homephone|csv};{$lang.mobile|csv};{$lang.url|csv};{$lang.note|csv};{$lang.mail|csv};{$lang.mail|csv};{$lang.mail|csv};{$lang.marker|csv}
 {$list}
index 85442cd90389f08774773148e117377527b97e36..d37b0821f22557891afe92c85dca8c34ef1cf5b9 100644 (file)
@@ -1,2 +1,2 @@
-{$entry.name|csv};{$entry.givenname|csv};{$entry.title|csv};{$entry.organization|csv};{$entry.office|csv};{$entry.street|csv};{$entry.zip|csv};{$entry.location|csv};{$entry.phone|csv};{$entry.fax|csv};{$entry.pager|csv};{$entry.homestreet|csv};{$entry.homephone|csv};{$entry.mobile|csv};{$lang.url|csv};{$entry.note|csv};{$entry.mail[0]|csv};{$entry.mail[1]|csv};{$entry.mail[2]|csv};
+{$entry.name|csv};{$entry.givenname|csv};{$entry.title|csv};{$entry.organization|csv};{$entry.office|csv};{$entry.street|csv};{$entry.zip|csv};{$entry.location|csv};{$entry.phone|csv};{$entry.fax|csv};{$entry.pager|csv};{$entry.homestreet|csv};{$entry.homephone|csv};{$entry.mobile|csv};{$lang.url|csv};{$entry.note|csv};{$entry.mail[0]|csv};{$entry.mail[1]|csv};{$entry.mail[2]|csv};{$entry.markers|csv}
 
diff --git a/templates/extended_edit.tpl b/templates/extended_edit.tpl
deleted file mode 100644 (file)
index b69323d..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-
-  <tr>
-    <td colspan="2"><b>{$lang.extended}</b></td>
-  </tr>
-  <tr>
-    <td align="right" valign="top" nowrap="nowrap">{$lang.anniversary}:<br><span class="hint">({$lang.msg_dateformat})</span></td>
-    <td><input type="text" class="input" name="entry[anniversary]" value="{$entry.anniversary|escape}" maxlength="10"></td>
-  </tr>
-
-  <tr>
-    <td align="right" valign="top" nowrap="nowrap">{$lang.marker}:<br><span class="hint">({$lang.msg_tagsep})</span></td>
-    <td>
-      <textarea class="input" name="entry[markers]" id="tageditlookup">{$entry.markers|escape}</textarea><div id="tageditresult" class="autocomplete"></div>
-    </td>
-
-  </tr>
diff --git a/templates/extended_show.tpl b/templates/extended_show.tpl
deleted file mode 100644 (file)
index ff90894..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<b>{$lang.extended}</b>
-<dl><dd>
-  <table>
-    <tr>
-    {if $entry.anniversary}
-    <tr>
-      <td align="right">{$lang.anniversary}:</td>
-      <td>{$entry.anniversary|date_format:$conf.dateformat}</td>
-    </tr>
-    {/if}
-    <tr>
-      <td valign="top" align="right">
-        {$lang.marker}:
-      </td>
-      <td id="tedit_insert">
-
-        <span id="tedit_out">
-        {foreach from=$entry.marker item=marker}
-          <a href="index.php?marker={$marker|escape:url}" class="tag">{$marker}</a> 
-        {/foreach}
-        </span>
-        {if $user}
-          <img src="pix/tag_blue_edit.png" align="right" width="16" height="16" onclick="tedit_showEditor('{$dn}')" class="click" />
-        {/if}
-      </td>
-    </tr>
-  </table>
-</dd></dl>
diff --git a/templates/filter.tpl b/templates/filter.tpl
deleted file mode 100644 (file)
index 73f783e..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<ul class="x">
-  <li><a href="index.php?filter=a">A</a></li>
-  <li><a href="index.php?filter=b">B</a></li>
-  <li><a href="index.php?filter=c">C</a></li>
-  <li><a href="index.php?filter=d">D</a></li>
-  <li><a href="index.php?filter=e">E</a></li>
-  <li><a href="index.php?filter=f">F</a></li>
-  <li><a href="index.php?filter=g">G</a></li>
-  <li><a href="index.php?filter=h">H</a></li>
-  <li><a href="index.php?filter=i">I</a></li>
-  <li><a href="index.php?filter=j">J</a></li>
-  <li><a href="index.php?filter=k">K</a></li>
-  <li><a href="index.php?filter=l">L</a></li>
-  <li><a href="index.php?filter=m">M</a></li>
-  <li><a href="index.php?filter=n">N</a></li>
-  <li><a href="index.php?filter=o">O</a></li>
-  <li><a href="index.php?filter=p">P</a></li>
-  <li><a href="index.php?filter=q">Q</a></li>
-  <li><a href="index.php?filter=r">R</a></li>
-  <li><a href="index.php?filter=s">S</a></li>
-  <li><a href="index.php?filter=t">T</a></li>
-  <li><a href="index.php?filter=u">U</a></li>
-  <li><a href="index.php?filter=v">V</a></li>
-  <li><a href="index.php?filter=w">W</a></li>
-  <li><a href="index.php?filter=x">X</a></li>
-  <li><a href="index.php?filter=y">Y</a></li>
-  <li><a href="index.php?filter=z">Z</a></li>
-  <li><a href="index.php?filter=other">#</a></li>
-  <li><a href="index.php?filter=*">*</a></li>
-</ul>
-
-{if $fields._marker}
-  <div class="tags x">
-    <form method="get" action="index.php" accept-charset="utf-8">
-      <a href="tags.php" class="tag">{$lang.marker}</a>:
-
-      <input name="marker" class="searchfield" type="text" id="taglookup"
-       value="{$smarty.request.marker|escape}" />
-      <input type="submit" value="{$lang.search}" class="searchbutton" />
-    </form>
-  </div>
-{/if}
-
-<div class="search x">
-  <form method="get" action="index.php" accept-charset="utf-8">
-    <input type="text" name="search" class="searchfield" id="searchfield"
-     value="{$smarty.request.search|escape}" />
-    <input type="submit" value="{$lang.search}" class="searchbutton" />
-  </form>
-</div>
index 7b3f048f16cac335f3bc45e1c94b3b2915ae78c3..42a4191ec58b7243482f4fc413c59d24bdbc764a 100644 (file)
@@ -1,67 +1,22 @@
-  </div>
+    </div>
+
+    <div id="footrow">
+        <div class="login">
+            {if $user == ''}
+                <a href="login.php" class="ed_login">{$lang.login}</a>
+            {else}
+                <a href="login.php?username=" class="ed_logout">{$lang.logout}</a>
+            {/if}
+        </div>
 
-  <div id="footrow">
-    {if $user == ''}
-      {$lang.notloggedin}
-      &nbsp;&nbsp;&nbsp;
-      <a href="login.php"><img src="pix/key.png" border="0" width="16" height="16" align="middle" /> {$lang.login}</a>
-    {else}
-      {$lang.loggedinas} <b>{$user}</b>
-      &nbsp;&nbsp;&nbsp;
-      <a href="login.php?username="><img src="pix/key_go.png" border="0" width="16" height="16" align="middle" /> {$lang.logout}</a>
-    {/if}
+        {if $user == ''}
+            {$lang.notloggedin}
+        {else}
+            {$lang.loggedinas} <b>{$user}</b>
+        {/if}
   </div>
 </div>
 
 </body>
 </html>
 
-
-<!--
-
-  </td>
-</tr>
-
-<tr>
-  <td class="buttonrow" align="right" colspan="2">
-    <table width="100%"><tr>
-      <td align="left">
-        <a href="orgs.php"><img src="pix/book_open.png" border="0" width="16" height="16" align="middle" />{$lang.orgs}</a>
-      </td>
-      <td align="right">
-      {if $dn}
-        <a href="entry.php?dn={$dn|escape:url}&mode=vcf"><img src="pix/vcard.png" border="0" width="16" height="16" align="middle" />{$lang.vcfexport}</a>
-      {/if}
-      {if $list}
-        <a href="index.php?filter={$filter|escape:url}&marker={$marker|escape:url}&search={$search|escape:url}&export=csv"><img src="pix/page_white_excel.png" border="0" width="16" height="16" align="middle">{$lang.csvexport}</a>
-      {/if}
-      {if $user}
-          <a href="import.php"><img src="pix/page_in.png" border="0" width="16" height="16" align="middle">{$lang.vcfimport}</a> 
-        {if $dn}
-          {if $smarty.request.mode == 'edit'}
-            <a href="entry.php?dn={$dn|escape:url}"><img src="pix/page_red.png" border="0" width="16" height="16" align="middle">{$lang.show}</a>
-          {elseif $smarty.request.mode != 'copy'}
-            <a href="entry.php?dn={$dn|escape:url}&mode=edit"><img src="pix/page_edit.png" border="0" width="16" height="16" align="middle">{$lang.edit}</a>
-            <a href="entry.php?dn={$dn|escape:url}&mode=copy"><img src="pix/page_copy.png" border="0" width="16" height="16" align="middle">{$lang.copy}</a>
-            <a href="entry.php?dn={$dn|escape:url}&del=1" onClick="return confirm('{$lang.msg_reallydel}');"><img src="pix/page_delete.png" border="0" width="16" height="16" align="middle">{$lang.delete}</a>
-          {/if}
-        {/if}
-          <a href="entry.php?mode=edit"><img src="pix/page_add.png" border="0" width="16" height="16" align="middle">{$lang.new}</a>
-      {/if}
-      </td>
-    </tr></table>
-  </td>
-</tr>
-<tr>
-  <td class="footrow" colspan="2">
-    {if $user == ''}
-      <a href="login.php"><img src="pix/key.png" border="0" width="16" height="16" align="middle" /> {$lang.login}</a>&nbsp;&nbsp;&nbsp;
-      {$lang.notloggedin}
-    {else}
-      <a href="login.php?username="><img src="pix/key_go.png" border="0" width="16" height="16" align="middle" /> {$lang.logout}</a>&nbsp;&nbsp;&nbsp;
-      {$lang.loggedinas} <b>{$user}</b>
-    {/if}
-  </td>
-</tr>
-</table>
--->
index a06fc33b5747c16c53f45d833f4059013e8d9c38..0fc34924a8d9e4fed4c8922e375b4d1f9c4494ea 100644 (file)
@@ -1,42 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html>
 <head>
-  <title>ConTagged - {$lang.ldapab}</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>ConTagged - {$lang.ldapab}</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
+<!--
   <link rel="stylesheet" type="text/css" href="templates/layout.css" />
   <link rel="stylesheet" type="text/css" href="templates/style.css" />
+-->
 
-  <link rel="stylesheet" type="text/css" href="styles/scripted.css" />
-  <script src="scripts/jquery.js" type="text/javascript"></script>
+    <link rel="stylesheet" type="text/css" href="styles/layout.css" />
+    <link rel="stylesheet" type="text/css" href="styles/design.css" />
+    <link rel="stylesheet" type="text/css" href="styles/scripted.css" />
 
-  <script src="scripts/interface/iutil.js" type="text/javascript"></script>
-  <script src="scripts/interface/iautocompleter.js" type="text/javascript"></script>
-  <script src="scripts/interface/imagebox.js" type="text/javascript"></script>
+    <script src="scripts/jquery.js" type="text/javascript"></script>
+    <script src="scripts/interface/iutil.js" type="text/javascript"></script>
+    <script src="scripts/interface/iautocompleter.js" type="text/javascript"></script>
+    <script src="scripts/interface/imagebox.js" type="text/javascript"></script>
+    <script src="scripts/formatDate.js" type="text/javascript"></script>
 
-  <script src="scripts/gui.js" type="text/javascript"></script>
+    <script src="scripts/gui.js" type="text/javascript"></script>
 
-  {if $LDAPERRORS != ''}
-  <script>
-    window.alert('{$lang.err_ldap}:\n\n{$LDAPERRORS|escape:quotes}');
-  </script>
-  {/if}
+    <script type="text/javascript">
+        {if $LDAPERRORS != ''}
+            window.alert('{$lang.err_ldap}:\n\n{$LDAPERRORS|escape:quotes}');
+        {/if}
+        {if $entry.dn}
+            DN = '{$entry.dn|escape:javascript}';
+        {/if}
+        {if $user}
+            USER = '{$user|escape:javascript}';
+        {/if}
+    </script>
 </head>
 <body>
 
 <div id="ldapab">
 
-  <div id="titlerow">
-    <a href="{$home}" class="logo">ConTagged</a>
-    <span class="logosmall">- {$lang.ldapab}</span>
-  </div>
+    <div id="titlerow">
+        <div class="logo">
+            <a href="{$home}">ConTagged</a>
+            <span>- {$lang.ldapab}</span>
+        </div>
+
+        <div class="search">
+            {include file="search.tpl"}
+        </div>
+    </div>
+
+    <div id="toolbar">
+        {include file="toolbar.tpl"}
+    </div>
+
+
+    <div id="filterrow">
+        <ul>
+            <li><a href="index.php?filter=a">A</a></li>
+            <li><a href="index.php?filter=b">B</a></li>
+            <li><a href="index.php?filter=c">C</a></li>
+            <li><a href="index.php?filter=d">D</a></li>
+            <li><a href="index.php?filter=e">E</a></li>
+            <li><a href="index.php?filter=f">F</a></li>
+            <li><a href="index.php?filter=g">G</a></li>
+            <li><a href="index.php?filter=h">H</a></li>
+            <li><a href="index.php?filter=i">I</a></li>
+            <li><a href="index.php?filter=j">J</a></li>
+            <li><a href="index.php?filter=k">K</a></li>
+            <li><a href="index.php?filter=l">L</a></li>
+            <li><a href="index.php?filter=m">M</a></li>
+            <li><a href="index.php?filter=n">N</a></li>
+            <li><a href="index.php?filter=o">O</a></li>
+            <li><a href="index.php?filter=p">P</a></li>
+            <li><a href="index.php?filter=q">Q</a></li>
+            <li><a href="index.php?filter=r">R</a></li>
+            <li><a href="index.php?filter=s">S</a></li>
+            <li><a href="index.php?filter=t">T</a></li>
+            <li><a href="index.php?filter=u">U</a></li>
+            <li><a href="index.php?filter=v">V</a></li>
+            <li><a href="index.php?filter=w">W</a></li>
+            <li><a href="index.php?filter=x">X</a></li>
+            <li><a href="index.php?filter=y">Y</a></li>
+            <li><a href="index.php?filter=z">Z</a></li>
+            <li><a href="index.php?filter=other">#</a></li>
+            <li><a href="index.php?filter=*">*</a></li>
+        </ul>
+    </div>
 
-  <div id="filterrow">
-    {include file="filter.tpl"}
-  </div>
 
-  <div id="toolbar">
-    {include file="toolbar.tpl"}
-  </div>
 
 
   <div id="content">
index 3ec11e6cc5f73109bced87cf6627b95d50d6d95e..fe08cc3b977023cdec38d7130249734bb99bcf3d 100644 (file)
@@ -1,25 +1,22 @@
-<table cellspacing="0" cellpadding="0" width="100%">
-<tr>
-<td class="filterrow">
-  <form action="import.php" method="post" enctype="multipart/form-data" accept-charset="utf-8">
-    {$lang.msg_uploadvcf}: <input name="userfile" type="file" class="upload" />
-    <input type="submit" value="{$lang.upload}" class="searchbutton"/>
-  </form>
-</td>
-</tr>
-</table>
 
-<br><br>
-<table cellspacing="0" cellpadding="0" width="100%" align="center">
-  {if $list == ''}
+<form action="import.php" method="post" enctype="multipart/form-data" accept-charset="utf-8" id="import">
+    <fieldset>
+        <legend>{$lang.upload}</legend>
+        <label for="upload">{$lang.msg_uploadvcf}:</label>
+        <input name="userfile" type="file" class="upload" id="upload" />
+        <input type="submit" value="{$lang.upload}" />
+    </fieldset>
+</form>
+
+<table cellspacing="0" cellpadding="0" width="100%" align="center" class="list">
+{if $list == ''}
     <tr>
       <td align="center">
-        {$error}
+          {$error}
       </td>
     </tr>
-  {else}
+{else}
     {* $list is a concatenation of multiple importVCF_entry.tpl *}
     {$list}
-  {/if}
+{/if}
 </table>
-<br><br><br>
diff --git a/templates/importVCF.tpl b/templates/importVCF.tpl
deleted file mode 100644 (file)
index d4b1294..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<table cellspacing="0" cellpadding="0" width="100%">
-<tr>
-<td class="filterrow">
-  <form action="importVCF.php" method="post" enctype="multipart/form-data" accept-charset="utf-8">
-    {$lang.msg_uploadvcf}: <input name="userfile" type="file" class="upload" />
-    <input type="submit" value="{$lang.upload}" class="searchbutton"/>
-  </form>
-</td>
-</tr>
-</table>
-
-<br><br>
-<table cellspacing="0" cellpadding="0" width="100%" align="center">
-  {if $list == ''}
-    <tr>
-      <td align="center">
-        {$error}
-      </td>
-    </tr>
-  {else}
-    {* $list is a concatenation of multiple importVCF_entry.tpl *}
-    {$list}
-  {/if}
-</table>
-<br><br><br>
diff --git a/templates/importVCF_entry.tpl b/templates/importVCF_entry.tpl
deleted file mode 100644 (file)
index 5e35e2d..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<tr>
-       <form action="entry.php" method="post" target="_blank" accept-charset="utf-8">
-  <td class="result">
-    <b>{$entry.name}, {$entry.givenname}</b>
-  </td>
-  <td class="result">
-               <input type="hidden" name="save" value="1" />
-               <input type="hidden" name="entry[name]" value="{$entry.name|escape}" />
-               <input type="hidden" name="entry[givenname]" value="{$entry.givenname|escape}" />
-               <input type="hidden" name="entry[title]" value="{$entry.title|escape}" />
-               <input type="hidden" name="entry[organization]" value="{$entry.organization|escape}" />
-               <input type="hidden" name="entry[office]" value="{$entry.office|escape}" />
-               <input type="hidden" name="entry[street]" value="{$entry.street|escape}" />
-               <input type="hidden" name="entry[zip]" value="{$entry.zip|escape}" />
-               <input type="hidden" name="entry[location]" value="{$entry.location|escape}" />
-               <input type="hidden" name="entry[phone]" value="{$entry.phone|escape}" />
-               <input type="hidden" name="entry[fax]" value="{$entry.fax|escape}" />
-               <input type="hidden" name="entry[pager]" value="{$entry.pager|escape}" />
-               <input type="hidden" name="entry[homestreet]" value="{$entry.homestreet|escape}" />
-               <input type="hidden" name="entry[homephone]" value="{$entry.homephone|escape}" />
-               <input type="hidden" name="entry[mobile]" value="{$entry.mobile|escape}" />
-               <input type="hidden" name="entry[url]" value="{$entry.url|escape}" />
-               {foreach from=$entry.mail item=mail}
-               <input type="hidden" name="entry[mail][]" value="{$mail|escape}" />
-               {/foreach}
-               <input type="hidden" name="entry[note]" value="{$entry.note|escape}" />
-               <input type="hidden" name="entry[anniversary]" value="{$entry.anniversary|escape}" />
-       </td>
-       <td class="result" align="right">
-               <button name="type" value="public">
-       <img src="pix/public.png" border="0" width="16" height="16" align="middle">{$lang.publicbook}
-               </button>
-    <button name="type" value="private">
-       <img src="pix/private.png" border="0" width="16" height="16" align="middle">{$lang.privatebook}
-               </button>
-  </td>
-  </form>
-</tr>
-
index 4e1177027a43fb863934732b089d15bba911e65b..205419739c64f5314bbb17966a4ae79856dac574 100644 (file)
@@ -1,38 +1,38 @@
 <tr>
-       <form action="entry.php" method="post" target="_import_" accept-charset="utf-8">
-  <td class="result">
-    <b>{$entry.name}, {$entry.givenname}</b>
-  </td>
-  <td class="result">
-               <input type="hidden" name="save" value="1" />
-               <input type="hidden" name="entry[name]" value="{$entry.name|escape}" />
-               <input type="hidden" name="entry[givenname]" value="{$entry.givenname|escape}" />
-               <input type="hidden" name="entry[title]" value="{$entry.title|escape}" />
-               <input type="hidden" name="entry[organization]" value="{$entry.organization|escape}" />
-               <input type="hidden" name="entry[office]" value="{$entry.office|escape}" />
-               <input type="hidden" name="entry[street]" value="{$entry.street|escape}" />
-               <input type="hidden" name="entry[zip]" value="{$entry.zip|escape}" />
-               <input type="hidden" name="entry[location]" value="{$entry.location|escape}" />
-               <input type="hidden" name="entry[phone]" value="{$entry.phone|escape}" />
-               <input type="hidden" name="entry[fax]" value="{$entry.fax|escape}" />
-               <input type="hidden" name="entry[pager]" value="{$entry.pager|escape}" />
-               <input type="hidden" name="entry[homestreet]" value="{$entry.homestreet|escape}" />
-               <input type="hidden" name="entry[homephone]" value="{$entry.homephone|escape}" />
-               <input type="hidden" name="entry[mobile]" value="{$entry.mobile|escape}" />
-               <input type="hidden" name="entry[url]" value="{$entry.url|escape}" />
-               {foreach from=$entry.mail item=mail}
-               <input type="hidden" name="entry[mail][]" value="{$mail|escape}" />
-               {/foreach}
-               <input type="hidden" name="entry[note]" value="{$entry.note|escape}" />
-               <input type="hidden" name="entry[anniversary]" value="{$entry.anniversary|escape}" />
-       </td>
-       <td class="result" align="right">
-               <button name="type" value="public">
-       <img src="pix/public.png" border="0" width="16" height="16" align="middle">{$lang.publicbook}
-               </button>
-    <button name="type" value="private">
-       <img src="pix/private.png" border="0" width="16" height="16" align="middle">{$lang.privatebook}
-               </button>
+    <form action="entry.php" method="post" target="_import_" accept-charset="utf-8">
+    <td class="result">
+        <b>{$entry.name}, {$entry.givenname}</b>
+    </td>
+    <td>
+        <input type="hidden" name="save" value="1" />
+        <input type="hidden" name="entry[name]" value="{$entry.name|escape}" />
+        <input type="hidden" name="entry[givenname]" value="{$entry.givenname|escape}" />
+        <input type="hidden" name="entry[title]" value="{$entry.title|escape}" />
+        <input type="hidden" name="entry[organization]" value="{$entry.organization|escape}" />
+        <input type="hidden" name="entry[office]" value="{$entry.office|escape}" />
+        <input type="hidden" name="entry[street]" value="{$entry.street|escape}" />
+        <input type="hidden" name="entry[zip]" value="{$entry.zip|escape}" />
+        <input type="hidden" name="entry[location]" value="{$entry.location|escape}" />
+        <input type="hidden" name="entry[phone]" value="{$entry.phone|escape}" />
+        <input type="hidden" name="entry[fax]" value="{$entry.fax|escape}" />
+        <input type="hidden" name="entry[pager]" value="{$entry.pager|escape}" />
+        <input type="hidden" name="entry[homestreet]" value="{$entry.homestreet|escape}" />
+        <input type="hidden" name="entry[homephone]" value="{$entry.homephone|escape}" />
+        <input type="hidden" name="entry[mobile]" value="{$entry.mobile|escape}" />
+        <input type="hidden" name="entry[url]" value="{$entry.url|escape}" />
+        {foreach from=$entry.mail item=mail}
+        <input type="hidden" name="entry[mail][]" value="{$mail|escape}" />
+        {/foreach}
+        <input type="hidden" name="entry[note]" value="{$entry.note|escape}" />
+        <input type="hidden" name="entry[anniversary]" value="{$entry.anniversary|escape}" />
+    </td>
+    <td class="result" align="right">
+        <button name="type" value="public">
+            <img src="pix/public.png" border="0" width="16" height="16" align="middle">{$lang.publicbook}
+        </button>
+        <button name="type" value="private">
+            <img src="pix/private.png" border="0" width="16" height="16" align="middle">{$lang.privatebook}
+        </button>
   </td>
   </form>
 </tr>
index f1e28ad1e9dc05bb75623d71a9cfeb8409f2455f..a413fb4907367feee5752a046e3e0f0621eef0f6 100644 (file)
@@ -1,6 +1,6 @@
 {include file="header.tpl"}
 
-<table cellspacing="0" cellpadding="0" width="100%" align="center">
+<table cellspacing="0" cellpadding="0" width="100%" align="center" class="list">
   {if $conf.userlogreq == 1 && $user == ''}
     <tr>
       <td align="center">
index 29e64a03f962517e7e57539d1e245baad27e599e..65729b02e6fa28f7edd0507f5654a364c6b98b63 100644 (file)
@@ -1,26 +1,29 @@
 {if $entry.type}
-<tr>
-  <td class="result" width="25">
-    <img src="pix/{$entry.type|h}.png" border="0" width="16" height="16" align="middle" title="{$entry.type|h}">
-  </td>
-  <td class="result">
-    <b><a href="entry.php?dn={$entry.dn|escape:url}">{$entry.name|h}, {$entry.givenname|h}</a></b>
-  </td>
-  <td class="result">
-    <a href="index.php?org={$entry.organization|escape:url}">{$entry.organization|h}</a>&nbsp;
-  </td>
-  <td class="result">
-    {$entry.phone|h}&nbsp;
-  </td>
-  <td class="result">
-    <a href="mailto:{$entry.mail[0]|h}">{$entry.mail[0]|h}</a>&nbsp;
-  </td>
-  <td class="result" width="16">
-    {if $entry.photo}
-      <a href="img.php?dn={$entry.dn|escape:url}&amp;.jpg" rel="imagebox" target="_blank" title="{$entry.givenname|escape} {$entry.name|escape}"><img src="pix/image.png" border="0" width="16" height="16" align="middle" title="{$lang.photo|h}"></a>
-    {else}
-      &nbsp;
-    {/if}
-  </td>
+<tr class="{cycle values="even,odd"}">
+    <td width="25">
+        <img src="pix/{$entry.type|h}.png" border="0" width="16" height="16" align="middle"
+         alt="{$entry.type|h}" title="{$entry.type|h}" />
+    </td>
+    <td>
+        <b><a href="entry.php?dn={$entry.dn|escape:url}">{$entry.name|h}, {$entry.givenname|h}</a></b>
+    </td>
+    <td>
+        <a href="index.php?org={$entry.organization|escape:url}">{$entry.organization|h}</a>&nbsp;
+    </td>
+    <td>
+        {$entry.phone|h}&nbsp;
+    </td>
+    <td>
+        <a href="mailto:{$entry.mail[0]|h}">{$entry.mail[0]|h}</a>&nbsp;
+    </td>
+    <td width="16">
+        {if $entry.photo}
+            <a href="img.php?dn={$entry.dn|escape:url}&amp;.jpg" rel="imagebox" target="_blank"
+               title="{$entry.givenname|escape} {$entry.name|escape}"><img src="pix/image.png"
+               border="0" width="16" height="16" align="middle" alt="{$lang.photo|h}"></a>
+        {else}
+            &nbsp;
+        {/if}
+    </td>
 </tr>
 {/if}
diff --git a/templates/list_filter.tpl b/templates/list_filter.tpl
deleted file mode 100644 (file)
index ac0dab4..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<table cellspacing="0" cellpadding="0" width="100%">
-<tr>
-<td class="filterrow">
-  <a href="index.php?filter=a">A</a>
-  <a href="index.php?filter=b">B</a>
-  <a href="index.php?filter=c">C</a>
-  <a href="index.php?filter=d">D</a>
-  <a href="index.php?filter=e">E</a>
-  <a href="index.php?filter=f">F</a>
-  <a href="index.php?filter=g">G</a>
-  <a href="index.php?filter=h">H</a>
-  <a href="index.php?filter=i">I</a>
-  <a href="index.php?filter=j">J</a>
-  <a href="index.php?filter=k">K</a>
-  <a href="index.php?filter=l">L</a>
-  <a href="index.php?filter=m">M</a>
-  <a href="index.php?filter=n">N</a>
-  <a href="index.php?filter=o">O</a>
-  <a href="index.php?filter=p">P</a>
-  <a href="index.php?filter=q">Q</a>
-  <a href="index.php?filter=r">R</a>
-  <a href="index.php?filter=s">S</a>
-  <a href="index.php?filter=t">T</a>
-  <a href="index.php?filter=u">U</a>
-  <a href="index.php?filter=v">V</a>
-  <a href="index.php?filter=w">W</a>
-  <a href="index.php?filter=x">X</a>
-  <a href="index.php?filter=y">Y</a>
-  <a href="index.php?filter=z">Z</a>
-  <a href="index.php?filter=other">#</a>
-  <a href="index.php?filter=*">*</a>
-</td>
-{if $conf.openxchange}
-<td class="filterrow" align="right">
-  <form method="get" action="index.php" style="display:inline">
-    <select name="categories" class="searchfield">
-      <option value="">--- {$lang.categories} ---</option>
-      {html_options values=$categories output=$categories selected=$smarty.request.categories}
-    </select>
-    <input type="submit" value="{$lang.search}" class="searchbutton">
-  </form>
-</td>
-{/if}
-
-{if $conf.extended}
-<td class="filterrow" align="right">
-  <form method="get" action="index.php" style="display:inline">
-    <a href="tags.php">{$lang.marker}</a>:
-    <input name="marker" class="searchfield" type="text" id="taglookup" value="{$smarty.request.marker|escape}"/>
-    <input type="submit" value="{$lang.search}" class="searchbutton">
-  </form>
-</td>
-<div id="tagresult" class="autocomplete"></div>
-
-{/if}
-<td class="filterrow" align="right">
-  <form method="get" action="index.php" style="display:inline" accept-charset="utf-8">
-    <input type="text" name="search" class="searchfield" value="{$smarty.request.search}">
-    <input type="submit" value="{$lang.search}" class="searchbutton">
-  </form>
-</td>
-</tr>
-</table>
index 2a950dafc2cbf652ff13cf831f76529f478f7b9a..80741c98911cb9778d9458245457fada6b5a8931 100644 (file)
@@ -1,31 +1,30 @@
 {include file="header.tpl"}
 
 
-  <br /><br /><br />
-  <form action="login.php" method="post" accept-charset="utf-8">
-  <table class="tableborder" align="center">
-    <tr>
-      <td colspan="2" align="center">{$msg}<br /><br /></td>
-    </tr>
-    <tr>
-      <td align="right">{$lang.username}:</td>
-      <td><input name="username" class="input" type="text" /></td>
-    </tr>
-    <tr>
-      <td align="right">{$lang.password}:</td>
-      <td><input name="password" type="password" class="input" /></td>
-    </tr>
-    <tr>
-      <td colspan="2" align="left">
-        <input type="checkbox" name="remember" value="1" id="remember" />
-        <label for="remember">{$lang.remember}</label>
-      </td>
-    </tr>
-    <tr>
-      <td colspan="2" align="center"><input type="submit" class="input" value="login" /></td>
-    </tr>
-  </table>
-  </form>
-  <br /><br /><br />
+    <form action="login.php" method="post" accept-charset="utf-8" id="login">
+        <fieldset>
+            <legend>{$lang.login}</legend>
+
+            <div class="msg">{$msg|h}</div>
+
+            <div class="row">
+                <input name="username" type="text" class="input" id="username" />
+                <label for="username">{$lang.username}</label>
+            </div>
+
+            <div class="row">
+                <input name="password" type="password" class="input" id="password" />
+                <label for="password">{$lang.password}</label>
+            </div>
+
+            <div class="row">
+                <input type="checkbox" name="remember" value="1" id="remember" />
+                <label for="remember">{$lang.remember}</label>
+            </div>
+
+            <input type="submit" value="{$lang.login}" class="button" />
+
+        </fieldset>
+    </form>
 
 {include file="footer.tpl"}
diff --git a/templates/openxchange_edit.tpl b/templates/openxchange_edit.tpl
deleted file mode 100644 (file)
index 0856a4f..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<tr>
-<td width="50%" valign="top" align="center">
-  <table>
-  <tr>
-    <td colspan="2"><b>{$lang.openxchange}</b></td>
-  </tr>
-  <tr>
-    <td align="right" valign="top">{$lang.birthday}:</td>
-    <td><input type="text" class="input" name="entry[birthday]" value="{$entry.birthday|escape}"></td>
-  </tr>
-  <tr>
-    <td align="right" valign="top">{$lang.ipphone}:</td>
-    <td><input type="text" class="input" name="entry[ipphone]" value="{$entry.ipphone|escape}"></td>
-  </tr>
-  <tr>
-    <td align="right" valign="top">{$lang.instantmessenger}:</td>
-    <td><input type="text" class="input" name="entry[instantmessenger]" value="{$entry.instantmessenger|escape}"></td>
-  </tr>
-  <tr>
-    <td align="right" valign="top">{$lang.domain}:</td>
-    <td><input type="text" class="input" name="entry[domain]" value="{$entry.domain|escape}"></td>
-  </tr>
-  <tr>
-    <td align="right" valign="top">{$lang.certificate}:</td>
-    <td>
-      <textarea name="entry[certificate]" rows=6 cols=28 onClick="this.form.elements['entry[certificate]'].select();">{$entry.certificate|escape}</textarea>
-      <br>
-      <input type=button name=clearCert value="Clear" onClick="if (confirm('Are you sure?')) this.form.elements['entry[certificate]'].value='';">
-    </td>
-  </tr>
-  </table>
-</td>
-<td width="50%" valign="top" align="center">
-  <table>
-  <tr>
-    <td colspan="2"><b>{$lang.moreopenxchange}</b></td>
-  </tr>
-  <tr>
-    <td align="right" valign="top">{$lang.country}:</td>
-    <td>
-      <select name="entry[country][]" class="input">
-        <option value="">--- {$lang.select} ---</option>
-        {html_options values=$country output=$country selected=$entry.country}
-      </select><br>
-      <input type="text" class="inputbr" name="entry[country][]"><br>
-    </td>
-  </tr>
-  <tr>
-    <td align="right" valign="top">{$lang.timezone}:</td>
-    <td>
-      <select name="entry[timezone][]" class="input">
-        <option value="">--- {$lang.select} ---</option>
-        {html_options values=$timezone output=$timezone selected=$entry.timezone}
-      </select><br>
-      <input type="text" class="inputbr" name="entry[timezone][]"><br>
-    </td>
-  </tr>
-  <tr>
-    <td align="right" valign="top">{$lang.categories}:</td>
-    <td>
-      <select name="entry[categories][]" size="5" class="input" multiple="multiple">
-        {html_options values=$categories output=$categories selected=$entry.categories}
-      </select><br>
-      <input type="text" class="inputbr" name="entry[categories][]"><br>
-      <input type="text" class="inputbr" name="entry[categories][]"><br>
-    </td>
-
-  </tr>
-</table>
-</td>
-</tr>
diff --git a/templates/openxchange_show.tpl b/templates/openxchange_show.tpl
deleted file mode 100644 (file)
index 6f50348..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<table width="100%">
-  <tr>
-      <td width="50%" valign="top">
-       <b>{$lang.openxchange}</b>
-<dl><dd>
-  <table>
-    {if $entry.birthday}
-    <tr>
-      <td align="right">{$lang.birthday}:</td>
-      <td>{$entry.birthday}</td>
-    </tr>
-    {/if}
-    {if $entry.ipphone}
-    <tr>
-      <td align="right">{$lang.ipphone}:</td>
-      <td>{$entry.ipphone}</td>
-    </tr>
-    {/if}
-    {if $entry.instantmessenger}
-    <tr>
-      <td align="right">{$lang.instantmessenger}:</td>
-      <td>{$entry.instantmessenger}</td>
-    </tr>
-    {/if}
-    {if $entry.domain}
-    <tr>
-      <td align="right">{$lang.domain}:</td>
-      <td>{$entry.domain}</td>
-    </tr>
-    {/if}
-    {if $entry.certificate}
-    <tr>
-      <td align="right">{$lang.certificate}:</td>
-      <td><form>
-        <textarea rows=3 cols=28 name='certificate' onClick='this.form.certificate.select();'>{$entry.certificate}</textarea>
-       </form></td>
-    </tr>
-    {/if}
-  </table>
-</dd></dl>
-</td>
-      <td width="50%" valign="top">
-       <b>{$lang.moreopenxchange}</b>
-<dl><dd>
-<table >
-    {if $entry.country}
-    <tr>
-      <td align="right">{$lang.country}:</td>
-      <td>{$entry.country}</td>
-    </tr>
-    {/if}
-    {if $entry.timezone}
-    <tr>
-      <td align="right">{$lang.timezone}:</td>
-      <td>{$entry.timezone}</td>
-    </tr>
-    {/if}
-    {if $entry.categories}
-    <tr>
-      <td valign="top" align="right">{$lang.categories}:</td>
-      <td>
-        {foreach from=$entry.categories item=categories}
-          {$categories}<br>
-        {/foreach}
-      </td>
-    </tr>
-    {/if}
-</table>
-</dd></dl>
-      </td>
-  </tr>
-</table>
index 0c030af3258f60d0c9836bbc312d8f49758cc91d..ba6bfb57280436b95f0ccce970e8c0b1443ae0b3 100644 (file)
@@ -1,21 +1,21 @@
 {include file="header.tpl"}
 
-<table width="100%">
+<table cellspacing="0" cellpadding="0" width="100%" align="center" class="list">
 {foreach from=$orgs item=org}
-  <tr>
-    <td class="result" width="20">
-      <img src="pix/cog.png" border="0" width="16" height="16" align="middle" />
-    </td>
-    <td class="result">
-      <a href="index.php?org={$org|escape:url}">{$org}</a><br>
-    </td>
-  </tr>
+    <tr>
+        <td class="result" width="20">
+            <img src="pix/cog.png" border="0" width="16" height="16" align="middle" />
+        </td>
+        <td class="result">
+            <a href="index.php?org={$org|escape:url}">{$org|h}</a><br>
+        </td>
+    </tr>
 {foreachelse}
-  <tr>
-    <td align="center">
-      <br /><br />{$lang.err_noentries}<br /><br />
-    </td>
-  </tr>
+    <tr>
+        <td align="center">
+            <br /><br />{$lang.err_noentries}<br /><br />
+        </td>
+    </tr>
 {/foreach}
 </table>
 
diff --git a/templates/pngbehavior.htc b/templates/pngbehavior.htc
deleted file mode 100644 (file)
index 7849c8d..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-// this is an ugly fix to make Internet Explorer work with transparent
-// PNG images - do your self a favour and use a real browser!
-
-<public:component>
-<public:attach event="onpropertychange" onevent="propertyChanged()" />
-<script>
-
-var supported = /MSIE (5\.5)|[6789]/.test(navigator.userAgent) && navigator.platform == "Win32";
-var realSrc;
-var blankSrc = "templates/blank.gif";
-
-if (supported) fixImage();
-
-function propertyChanged() {
-   if (!supported) return;
-
-   var pName = event.propertyName;
-   if (pName != "src") return;
-   // if not set to blank
-   if ( ! new RegExp(blankSrc).test(src))
-      fixImage();
-};
-
-function fixImage() {
-   // get src
-   var src = element.src;
-
-   // check for real change
-   if (src == realSrc) {
-      element.src = blankSrc;
-      return;
-   }
-
-   if ( ! new RegExp(blankSrc).test(src)) {
-      // backup old src
-      realSrc = src;
-   }
-
-   // test for png
-   if ( /\.png$/.test( realSrc.toLowerCase() ) ) {
-      // set blank image
-      element.src = blankSrc;
-      // set filter
-      element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
-   }
-   else {
-      // remove filter
-      element.runtimeStyle.filter = "";
-   }
-}
-
-</script>
-</public:component>
diff --git a/templates/search.tpl b/templates/search.tpl
new file mode 100644 (file)
index 0000000..eec6d6e
--- /dev/null
@@ -0,0 +1,16 @@
+    <form method="get" action="index.php" accept-charset="utf-8" class="search">
+        <input type="text" name="search" class="searchfield" id="searchfield"
+               value="{$smarty.request.search|h}" />
+        <input type="submit" value="{$lang.search}" class="searchbutton" />
+    </form>
+
+{if $fields._marker}
+    <form method="get" action="index.php" accept-charset="utf-8" class="tags">
+        <a href="tags.php" class="tag">{$lang.marker}</a>:
+
+        <input name="marker" class="searchfield" type="text" id="taglookup"
+               value="{$smarty.request.marker|h}" />
+        <input type="submit" value="{$lang.search}" class="searchbutton" />
+    </form>
+{/if}
+
index c0befac914d1af5d8817b2be7a410901d03e904b..df704080da9052eaa5b5bbf4fe5e59d1b2336b6c 100644 (file)
@@ -1,8 +1,9 @@
 {include file="header.tpl"}
 
-<div class="tagcloud">
-  {$tagcloud}
-</div>
+<div id="tagcloud">
+    {$tagcloud}
 
+</div>
 <p>{$lang.tagcloud}</p>
+
 {include file="footer.tpl"}
index b155388684d78ec9716d6418a1ebcacacb366f25..e282640cfbdfb25e62d9da22260faab8a59454cc 100644 (file)
@@ -2,26 +2,23 @@
 
   <!-- help -->
   <li>
-    <a href="help.php"><img src="pix/help.png" border="0"
-       width="16" height="16" align="middle" title="{$lang.help}" /></a>
+    <a href="help.php" class="ed_help">{$lang.help}</a>
   </li>
 
   <!-- company list -->
   <li>
-    <a href="orgs.php"><img src="pix/book_open.png" border="0"
-       width="16" height="16" align="middle" title="{$lang.orgs}" /></a>
+    <a href="orgs.php" class="ed_orgs">{$lang.orgs}</a>
   </li>
 
-  <li class="sep"></li>
+  <li class="sep">&nbsp;</li>
 
   {if $user} <!-- new contact -->
     <li>
-      <a href="entry.php?mode=edit"><img src="pix/page_add.png" border="0"
-         width="16" height="16" align="middle" title="{$lang.new}"></a>
+      <a href="entry.php?mode=edit" class="ed_new">{$lang.new}</a>
     </li>
   {/if}
 
-  <li class="sep"></li>
+  <li class="sep">&nbsp;</li>
 
   {if $dn} <!-- begin contact page functions -->
     {if $user} <!-- begin editing functions -->
       <!-- edit/show, copy, delete -->
       {if $smarty.request.mode == 'edit'}
         <li>
-          <a href="entry.php?dn={$dn|escape:url}"><img src="pix/page_red.png"
-           border="0" width="16" height="16" align="middle" title="{$lang.show}" /></a>
+          <a href="entry.php?dn={$dn|escape:url}" class="ed_show">{$lang.show}</a>
         </li>
       {elseif $smarty.request.mode != 'copy'}
         <li>
-          <a href="entry.php?dn={$dn|escape:url}&mode=edit"><img src="pix/page_edit.png"
-             border="0" width="16" height="16" align="middle" title="{$lang.edit}" /></a>
+          <a href="entry.php?dn={$dn|escape:url}&amp;mode=edit" class="ed_edit">{$lang.edit}</a>
         </li>
         <li>
-          <a href="entry.php?dn={$dn|escape:url}&mode=copy"><img src="pix/page_copy.png"
-             border="0" width="16" height="16" align="middle" title="{$lang.copy}" /></a>
+          <a href="entry.php?dn={$dn|escape:url}&amp;mode=copy" class="ed_copy">{$lang.copy}</a>
         </li>
         <li>
-          <a href="entry.php?dn={$dn|escape:url}&del=1" onclick="return confirm('{$lang.msg_reallydel}');"><img
-             src="pix/page_delete.png" border="0" width="16" height="16" align="middle"
-             title="{$lang.delete}" /></a>
+          <a href="entry.php?dn={$dn|escape:url}&amp;del=1" onclick="return confirm('{$lang.msg_reallydel}');"
+             class="ed_delete">{$lang.delete}</a>
         </li>
       {/if}
 
 
     <!-- vcf export -->
     <li>
-      <a href="entry.php?dn={$dn|escape:url}&mode=vcf"><img src="pix/vcard.png"
-         border="0" width="16" height="16" align="middle" title="{$lang.vcfexport}" /></a>
+      <a href="entry.php?dn={$dn|escape:url}&amp;mode=vcf" class="ed_vcfexport">{$lang.vcfexport}</a>
     </li>
 
-    <li class="sep"></li>
+    <li class="sep">&nbsp;</li>
   {/if} <!-- end contact page functions -->
 
 
   {if $list} <!-- export -->
     <li>
-      <a href="index.php?filter={$filter|escape:url}&marker={$marker|escape:url}&search={$search|escape:url}&export=csv"><img src="pix/page_white_excel.png" border="0" width="16" height="16" align="middle" title="{$lang.csvexport}" /></a>
+      <a href="index.php?filter={$filter|escape:url}&amp;marker={$marker|escape:url}&amp;search={$search|escape:url}&amp;export=csv"
+         class="ed_csvexport">{$lang.csvexport}</a>
     </li>
   {/if}
 
   {if $user} <!-- import -->
     <li>
-      <a href="import.php"><img src="pix/page_in.png" border="0"
-         width="16" height="16" align="middle" title="{$lang.vcfimport}" /></a>
+      <a href="import.php" class="ed_vcfimport">{$lang.vcfimport}</a>
     </li>
   {/if}
 
-  
+
 
 </ul>