require_once('init.php');
ldap_login();
-header('Content-Type: text/xml; charset=utf-8');
/*
echo '<bla><[!CDATA[';
$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
*/
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)){
}
/**
- * Sett tags for a contact
+ * Set tags for a contact
*/
function ajax_settags($dn,$tags){
global $conf;
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);
}
}
+/**
+ * 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;
* 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;
$conf['dateformat'] = '%d.%m.%Y';
// Force recompilation of smarty templates?
- $conf['smartycompile'] = 0;
+ $conf['smartycompile'] = 1;
$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;
}
$lang['vcfexport'] = 'VCard';
$lang['vcfimport'] = 'Import';
$lang['search'] = 'Search';
-$lang['submit'] = 'Send';
+$lang['submit'] = 'Save';
$lang['help'] = 'Help';
$lang['select'] = 'Select';
$lang['orgs'] = 'Companies';
-<?
- 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');
-?>
--- /dev/null
+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("");
+}
+/**
+ * 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();
+}
*/
$(document).ready(function() {
- // autocompletion
- $('#taglookup').Autocomplete({
+ // autocompletion
+ $('#taglookup').Autocomplete({
source: 'ajax.php',
delay: 300,
helperClass: 'autocompleter',
minchars: 1,
//multiple: true,
//multipleSeperator: ','
- });
- $('#tageditlookup').Autocomplete({
+ });
+ $('#tageditlookup').Autocomplete({
source: 'ajax.php',
delay: 300,
helperClass: 'autocompleter',
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();
});
--- /dev/null
+/* 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%; }
+
--- /dev/null
+/* 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;
+}
--- /dev/null
+
+/**
+ * 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;
+}
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){
{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"> </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"> </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"}
{include file="header.tpl"}
+<div id="show">
+
{if $entry.photo != ''}
- <a href="img.php?dn={$entry.dn|escape:url}&.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}&.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}&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}> </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>
+
+ </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}> </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}
+
+ </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"}
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
-{$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}
-{$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}
+++ /dev/null
-
- <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>
+++ /dev/null
-<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>
+++ /dev/null
-<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>
- </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}
-
- <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>
-
- <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>
- {$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>
- {$lang.loggedinas} <b>{$user}</b>
- {/if}
- </td>
-</tr>
-</table>
--->
+<!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">
-<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>
+++ /dev/null
-<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>
+++ /dev/null
-<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>
-
<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>
{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">
{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>
- </td>
- <td class="result">
- {$entry.phone|h}
- </td>
- <td class="result">
- <a href="mailto:{$entry.mail[0]|h}">{$entry.mail[0]|h}</a>
- </td>
- <td class="result" width="16">
- {if $entry.photo}
- <a href="img.php?dn={$entry.dn|escape:url}&.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}
-
- {/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>
+ </td>
+ <td>
+ {$entry.phone|h}
+ </td>
+ <td>
+ <a href="mailto:{$entry.mail[0]|h}">{$entry.mail[0]|h}</a>
+ </td>
+ <td width="16">
+ {if $entry.photo}
+ <a href="img.php?dn={$entry.dn|escape:url}&.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}
+
+ {/if}
+ </td>
</tr>
{/if}
+++ /dev/null
-<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>
{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"}
+++ /dev/null
-<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>
+++ /dev/null
-<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>
{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>
+++ /dev/null
-// 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>
--- /dev/null
+ <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}
+
{include file="header.tpl"}
-<div class="tagcloud">
- {$tagcloud}
-</div>
+<div id="tagcloud">
+ {$tagcloud}
+</div>
<p>{$lang.tagcloud}</p>
+
{include file="footer.tpl"}
<!-- 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"> </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"> </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}&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}&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}&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}&mode=vcf" class="ed_vcfexport">{$lang.vcfexport}</a>
</li>
- <li class="sep"></li>
+ <li class="sep"> </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}&marker={$marker|escape:url}&search={$search|escape:url}&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>