From: Andreas Gohr Date: Tue, 19 Jun 2007 13:47:29 +0000 (+0200) Subject: more redesign and code cleanup X-Git-Tag: 0.7.1~63 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=cb2adba7030b7a2eba73afa7e4ec1f48b57a6073;p=contagged more redesign and code cleanup darcs-hash:20070619134729-6e07b-8b411d5cba884bcaf19559cbd53f694cf2fe2f2e.gz --- diff --git a/ajax.php b/ajax.php index 75a5822..997eba1 100644 --- 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 '<[!CDATA['; @@ -13,25 +12,18 @@ echo ']]>'; $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 ''; + echo htmlspecialchars($tag); + echo ' '; + } + } +} + /** * 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; diff --git a/config.php b/config.php index 349a116..d46910e 100644 --- a/config.php +++ b/config.php @@ -54,6 +54,6 @@ $conf['dateformat'] = '%d.%m.%Y'; // Force recompilation of smarty templates? - $conf['smartycompile'] = 0; + $conf['smartycompile'] = 1; diff --git a/import.php b/import.php index 2f880f1..c26e85c 100644 --- a/import.php +++ b/import.php @@ -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; } diff --git a/lang/en.php b/lang/en.php index da1b254..1f2b97d 100644 --- a/lang/en.php +++ b/lang/en.php @@ -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'; diff --git a/login.php b/login.php index 1e4b0d0..524d75f 100644 --- a/login.php +++ b/login.php @@ -1,26 +1,30 @@ -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 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 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 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 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 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 index 0000000..11c6197 --- /dev/null +++ b/scripts/formatDate.js @@ -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(""); +} diff --git a/scripts/gui.js b/scripts/gui.js index 3ec99e0..e4a9a26 100644 --- a/scripts/gui.js +++ b/scripts/gui.js @@ -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: '' - }); + }); + + // 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 index 0000000..5a4d9f2 --- /dev/null +++ b/styles/design.css @@ -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 index 0000000..dcffc41 --- /dev/null +++ b/styles/layout.css @@ -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 index 0000000..d387cfb --- /dev/null +++ b/styles/scripted.css @@ -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; +} diff --git a/template.php b/template.php index 5c74ed3..c5e850e 100644 --- a/template.php +++ b/template.php @@ -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 index 9935f82..0000000 Binary files a/templates/blank.gif and /dev/null differ diff --git a/templates/entry_edit.tpl b/templates/entry_edit.tpl index 8dad65b..13e87eb 100644 --- a/templates/entry_edit.tpl +++ b/templates/entry_edit.tpl @@ -1,5 +1,7 @@ {include file="header.tpl"} +
+

{if $entry.type != ''} @@ -16,22 +18,22 @@ - +
{* always required ... if $fields.name *} - + {* /if *} {if $fields.givenname} - + {/if} {if $fields.title} - + {/if} @@ -43,18 +45,18 @@ - + - - - diff --git a/templates/openxchange_show.tpl b/templates/openxchange_show.tpl deleted file mode 100644 index 6f50348..0000000 --- a/templates/openxchange_show.tpl +++ /dev/null @@ -1,72 +0,0 @@ -
{$lang.name}:{$lang.name}:
{$lang.givenname}:{$lang.givenname}:
{$lang.title}:{$lang.title}:

 
- +
- + {if $fields.organization} - + @@ -62,31 +64,31 @@ {/if} {if $fields.office} - + {/if} {if $fields.street} - + {/if} {if $fields.zip} - + {/if} {if $fields.location} - + {/if} {if $fields.state} - + {/if} @@ -94,37 +96,37 @@ {/if} {if $fields.phone} - + {/if} {if $fields.switchboard} - + {/if} {if $fields.fax} - + {/if} {if $fields.pager} - + {/if} {if $fields.manager} - + - - - - - - - diff --git a/templates/import_entry.tpl b/templates/import_entry.tpl index 4e11770..2054197 100644 --- a/templates/import_entry.tpl +++ b/templates/import_entry.tpl @@ -1,38 +1,38 @@ - - - - + + diff --git a/templates/list.tpl b/templates/list.tpl index f1e28ad..a413fb4 100644 --- a/templates/list.tpl +++ b/templates/list.tpl @@ -1,6 +1,6 @@ {include file="header.tpl"} -
{$lang.business}

{$lang.business}

{$lang.organization}:{$lang.organization}:
{$lang.office}:{$lang.office}:
{$lang.street}:{$lang.street}:
{$lang.zip}:{$lang.zip}:
{$lang.location}:{$lang.location}:
{$lang.state}:{$lang.state}:
{$lang.country}: -
+
{$lang.phone}:{$lang.phone}:
{$lang.switchboard}:{$lang.switchboard}:
{$lang.fax}:{$lang.fax}:
{$lang.pager}:{$lang.pager}:
{$lang.manager}:{$lang.manager}: - +
- + {if $fields.homestreet} - + {/if} {if $fields.homephone} - + {/if} {if $fields.mobile} - + {/if} -{if $fields.url} - - - - -{/if} {if $fields.photo} - + - + {/if} {if $fields.anniversary} - + {/if} {if $fields.spouse} - + {/if} - + + +{if $fields.url} + + + +{/if} {if $fields._mail} {foreach from=$entry.mail|smarty:nodefaults item=mail} - + {/foreach} - + - + {/if} @@ -247,23 +249,16 @@ - + + + + + - - - - - - - - - - - - diff --git a/templates/extended_show.tpl b/templates/extended_show.tpl deleted file mode 100644 index ff90894..0000000 --- a/templates/extended_show.tpl +++ /dev/null @@ -1,28 +0,0 @@ -{$lang.extended} -
-
{$lang.private}

{$lang.private}

{$lang.homestreet}:{$lang.homestreet}:
{$lang.homephone}:{$lang.homephone}:
{$lang.mobile}:{$lang.mobile}:
{$lang.url}:
{$lang.photo}:
({$lang.msg_jpegonly})
{$lang.photo}:
({$lang.msg_jpegonly})
{if $entry.photo} @@ -193,39 +189,45 @@ {/if} {if $fields.birthday}
{$lang.birthday}:
({$lang.msg_dateformat})
{$lang.birthday}:
({$lang.msg_dateformat})
{$lang.anniversary}:
({$lang.msg_dateformat})
{$lang.anniversary}:
({$lang.msg_dateformat})
{$lang.spouse}:{$lang.spouse}:
{$lang.communication}

{$lang.communication}

{$lang.url}:
{$lang.mail} {counter}:{$lang.mail} {counter}:
{$lang.mail} {counter}:{$lang.mail} {counter}:
{$lang.mail} {counter}:{$lang.mail} {counter}:

 

{$lang.extended}

- - - - -{if $fields._marker} - - - - -{/if} +
{$lang.extended}
{$lang.marker}:
({$lang.msg_tagsep})
- -
{if $fields.note} @@ -274,13 +269,21 @@
{$lang.note}:
- +
+{if $fields._marker} + + + + +{/if} {if $fields.certificate} {/if} @@ -294,7 +297,7 @@ {/if} @@ -305,10 +308,10 @@ {if $entry.dn == ''} - +
{$lang.marker}:
({$lang.msg_tagsep})
+ +
{$lang.certificate}: -
+
{$lang.timezone}: -
+
- {$lang.msg_addto}
+ {$lang.msg_addto}
-
+
@@ -317,10 +320,12 @@ {/if}


+ + {include file="footer.tpl"} diff --git a/templates/entry_show.tpl b/templates/entry_show.tpl index fa794bd..e94d2db 100644 --- a/templates/entry_show.tpl +++ b/templates/entry_show.tpl @@ -1,33 +1,38 @@ {include file="header.tpl"} +
+ {if $entry.photo != ''} - + {/if}

- - {$entry.givenname|h} {$entry.name|h} + + {$entry.givenname|h} {$entry.name|h}

- +
- {$lang.business} -
- +

{$lang.business}

+
{if $entry.phone} - + {/if} {if $entry.switchboard} - + {/if} {if $entry.fax} - + {/if} {if $entry.pager} - + {/if} {if $managername} - + {/if} {if $entry.position} - + {/if} {if $entry.department} - + {/if}
- {$entry.title|h} {$entry.givenname|h} {$entry.name|h}
+ {$entry.title|h} {$entry.givenname|h} {$entry.name|h}
{if $entry.organization} - {$entry.organization|h}
+ {$entry.organization|h}
{/if} {if $entry.office} - {$entry.office|h}
+ {$entry.office|h}
{/if} {if $entry.street} - {$entry.street|h}
+ {$entry.street|h}
{/if} {if $entry.location} - {$entry.zip} {$entry.location|h}
+ {$entry.zip} {$entry.location|h}
{/if} {if $entry.state} {$entry.state|h} @@ -35,196 +40,181 @@ {if $entry.country} {$entry.country|h} {/if} -

+

{$lang.phone}:{$lang.phone}: {$entry.phone|h}
{$lang.switchboard}:{$lang.switchboard}: {$entry.switchboard|h}
{$lang.fax}:{$lang.fax}: {$entry.fax|h}
{$lang.pager}:{$lang.pager}: {$entry.pager|h}
{$lang.manager}:{$lang.manager}: {$managername}
{$lang.position}:{$lang.position}: {$entry.position|h}
{$lang.department}:{$lang.department}: {$entry.department|h}
-
-
- {$lang.private} -
- +

{$lang.private}

+
{if $entry.homephone} - + {/if} {if $entry.mobile} - + {/if} -{if $entry.url} - - - - -{/if} {if $entry.birthday} - + {/if} {if $entry.anniversary} - + {/if} {if $entry.spouse} - + {/if}
- {$entry.title} {$entry.givenname} {$entry.name|h}
+ {$entry.title|h} {$entry.givenname|h} {$entry.name|h}
{if $entry.homestreet} - {$entry.homestreet|h|nl2br}

+ {$entry.homestreet|h|nl2br}

{/if}
{$lang.homephone}:{$lang.homephone}: {$entry.homephone|h}
{$lang.mobile}:{$lang.mobile}: {$entry.mobile|h}
{$lang.url}:{$entry.url|h}
{$lang.birthday}:{$lang.birthday}: {$entry.birthday|h}
{$lang.anniversary}:{$lang.anniversary}: {$entry.anniversary|date_format:$conf.dateformat|h}
{$lang.spouse}:{$lang.spouse}: {$entry.spouse|h}
-
- {$lang.communication} -
- +

{$lang.communication}

+
+{if $entry.url} + + + + +{/if} {if $entry.mail} - + {/if} {if $entry.instantmessenger} - + {/if} {if $entry.ipphone} - + {/if}
{$lang.url}:{$entry.url|h}
{$lang.mail}:{$lang.mail}: {foreach from=$entry.mail item=mail} - {$mail|h}
+ {$mail|h}
{/foreach}
{$lang.instantmessenger}:{$lang.instantmessenger}: {$entry.instantmessenger|h}
{$lang.ipphone}:{$lang.ipphone}: {$entry.ipphone|h}
-
-
+

{$lang.extended}

- +
- {$lang.extended} -
- -{if $fields._marker} - - - - -{/if} +
- {$lang.marker}: - - - {foreach from=$entry.marker item=marker} - {$marker|h} - {/foreach} - - {if $user} - - {/if} -
{if $fields.note} - {/if}
+ {$lang.note}: - +
 
+
- {if $user} - - - - - {/if} -
+
{$entry.note|noteparser} -
+   +
-
-
- +
+{if $fields._marker} + + + + +{/if} {if $entry.certificate} - + @@ -232,22 +222,22 @@ {/if} {if $entry.domain} - + {/if} {if $entry.timezone} - + {/if}
+ {$lang.marker}: +
 
+
+ + {foreach from=$entry.marker item=marker} + {$marker|h} + {/foreach} +   + +
{$lang.certificate}:{$lang.certificate}:
{$lang.domain}:{$lang.domain}: {$entry.domain|h}
{$lang.timezone}:{$lang.timezone}: {$entry.timezone|h}
-
+
{include file="footer.tpl"} diff --git a/templates/entry_vcf.tpl b/templates/entry_vcf.tpl index ed3776c..2555416 100644 --- a/templates/entry_vcf.tpl +++ b/templates/entry_vcf.tpl @@ -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 diff --git a/templates/export_list_csv.tpl b/templates/export_list_csv.tpl index 6e32289..34835a2 100644 --- a/templates/export_list_csv.tpl +++ b/templates/export_list_csv.tpl @@ -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} diff --git a/templates/export_list_csv_entry.tpl b/templates/export_list_csv_entry.tpl index 85442cd..d37b082 100644 --- a/templates/export_list_csv_entry.tpl +++ b/templates/export_list_csv_entry.tpl @@ -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 index b69323d..0000000 --- a/templates/extended_edit.tpl +++ /dev/null @@ -1,16 +0,0 @@ - -
{$lang.extended}
{$lang.anniversary}:
({$lang.msg_dateformat})
{$lang.marker}:
({$lang.msg_tagsep})
-
-
- - {if $entry.anniversary} - - - - - {/if} - - - - -
{$lang.anniversary}:{$entry.anniversary|date_format:$conf.dateformat}
- {$lang.marker}: - - - - {foreach from=$entry.marker item=marker} - {$marker} - {/foreach} - - {if $user} - - {/if} -
- diff --git a/templates/filter.tpl b/templates/filter.tpl deleted file mode 100644 index 73f783e..0000000 --- a/templates/filter.tpl +++ /dev/null @@ -1,50 +0,0 @@ - - -{if $fields._marker} -
-
- {$lang.marker}: - - - -
-
-{/if} - - diff --git a/templates/footer.tpl b/templates/footer.tpl index 7b3f048..42a4191 100644 --- a/templates/footer.tpl +++ b/templates/footer.tpl @@ -1,67 +1,22 @@ - + + +
+ -
- {if $user == ''} - {$lang.notloggedin} -     - {$lang.login} - {else} - {$lang.loggedinas} {$user} -     - {$lang.logout} - {/if} + {if $user == ''} + {$lang.notloggedin} + {else} + {$lang.loggedinas} {$user} + {/if}
- - diff --git a/templates/header.tpl b/templates/header.tpl index a06fc33..0fc3492 100644 --- a/templates/header.tpl +++ b/templates/header.tpl @@ -1,42 +1,93 @@ + - ConTagged - {$lang.ldapab} - + ConTagged - {$lang.ldapab} + + - - + + + - - - + + + + + - + - {if $LDAPERRORS != ''} - - {/if} +
-
- - - {$lang.ldapab} -
+
+ + + +
+ +
+ {include file="toolbar.tpl"} +
+ + +
+ +
-
- {include file="filter.tpl"} -
-
- {include file="toolbar.tpl"} -
diff --git a/templates/import.tpl b/templates/import.tpl index 3ec11e6..fe08cc3 100644 --- a/templates/import.tpl +++ b/templates/import.tpl @@ -1,25 +1,22 @@ - - - - -
-
- {$lang.msg_uploadvcf}: - -
-
-

- - {if $list == ''} + +
+ {$lang.upload} + + + +
+ + +
+{if $list == ''} - {else} +{else} {* $list is a concatenation of multiple importVCF_entry.tpl *} {$list} - {/if} +{/if}
- {$error} + {$error}
-


diff --git a/templates/importVCF.tpl b/templates/importVCF.tpl deleted file mode 100644 index d4b1294..0000000 --- a/templates/importVCF.tpl +++ /dev/null @@ -1,25 +0,0 @@ - - - - -
-
- {$lang.msg_uploadvcf}: - -
-
- -

- - {if $list == ''} - - - - {else} - {* $list is a concatenation of multiple importVCF_entry.tpl *} - {$list} - {/if} -
- {$error} -
-


diff --git a/templates/importVCF_entry.tpl b/templates/importVCF_entry.tpl deleted file mode 100644 index 5e35e2d..0000000 --- a/templates/importVCF_entry.tpl +++ /dev/null @@ -1,39 +0,0 @@ -
- {$entry.name}, {$entry.givenname} - - - - - - - - - - - - - - - - - - {foreach from=$entry.mail item=mail} - - {/foreach} - - - - - -
- {$entry.name}, {$entry.givenname} - - - - - - - - - - - - - - - - - - {foreach from=$entry.mail item=mail} - - {/foreach} - - - - - + + + {$entry.name}, {$entry.givenname} + + + + + + + + + + + + + + + + + + {foreach from=$entry.mail item=mail} + + {/foreach} + + + + +
+
{if $conf.userlogreq == 1 && $user == ''} - - - - - - + + + + + + + {/if} diff --git a/templates/list_filter.tpl b/templates/list_filter.tpl deleted file mode 100644 index ac0dab4..0000000 --- a/templates/list_filter.tpl +++ /dev/null @@ -1,63 +0,0 @@ -
diff --git a/templates/list_entry.tpl b/templates/list_entry.tpl index 29e64a0..65729b0 100644 --- a/templates/list_entry.tpl +++ b/templates/list_entry.tpl @@ -1,26 +1,29 @@ {if $entry.type} -
- - - {$entry.name|h}, {$entry.givenname|h} - - {$entry.organization|h}  - - {$entry.phone|h}  - - {$entry.mail[0]|h}  - - {if $entry.photo} - - {else} -   - {/if} -
+ {$entry.type|h} + + {$entry.name|h}, {$entry.givenname|h} + + {$entry.organization|h}  + + {$entry.phone|h}  + + {$entry.mail[0]|h}  + + {if $entry.photo} + {$lang.photo|h} + {else} +   + {/if} +
- - -{if $conf.openxchange} - -{/if} - -{if $conf.extended} - -
- -{/if} - - -
- A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z - # - * - -
- - -
-
-
- {$lang.marker}: - - -
-
-
- - -
-
diff --git a/templates/login.tpl b/templates/login.tpl index 2a950da..80741c9 100644 --- a/templates/login.tpl +++ b/templates/login.tpl @@ -1,31 +1,30 @@ {include file="header.tpl"} -


-
- - - - - - - - - - - - - - - - - - -
{$msg}

{$lang.username}:
{$lang.password}:
- - -
-
-


+
+
+ {$lang.login} + +
{$msg|h}
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + + +
+
{include file="footer.tpl"} diff --git a/templates/openxchange_edit.tpl b/templates/openxchange_edit.tpl deleted file mode 100644 index 0856a4f..0000000 --- a/templates/openxchange_edit.tpl +++ /dev/null @@ -1,71 +0,0 @@ -
- - - - - - - - - - - - - - - - - - - - - - - - -
{$lang.openxchange}
{$lang.birthday}:
{$lang.ipphone}:
{$lang.instantmessenger}:
{$lang.domain}:
{$lang.certificate}: - -
- -
-
- - - - - - - - - - - - - - - - - -
{$lang.moreopenxchange}
{$lang.country}: -
-
-
{$lang.timezone}: -
-
-
{$lang.categories}: -
-
-
-
-
- - - - -
- {$lang.openxchange} -
- - {if $entry.birthday} - - - - - {/if} - {if $entry.ipphone} - - - - - {/if} - {if $entry.instantmessenger} - - - - - {/if} - {if $entry.domain} - - - - - {/if} - {if $entry.certificate} - - - - - {/if} -
{$lang.birthday}:{$entry.birthday}
{$lang.ipphone}:{$entry.ipphone}
{$lang.instantmessenger}:{$entry.instantmessenger}
{$lang.domain}:{$entry.domain}
{$lang.certificate}:
- -
-
-
- {$lang.moreopenxchange} -
- - {if $entry.country} - - - - - {/if} - {if $entry.timezone} - - - - - {/if} - {if $entry.categories} - - - - - {/if} -
{$lang.country}:{$entry.country}
{$lang.timezone}:{$entry.timezone}
{$lang.categories}: - {foreach from=$entry.categories item=categories} - {$categories}
- {/foreach} -
-
-
diff --git a/templates/orgs.tpl b/templates/orgs.tpl index 0c030af..ba6bfb5 100644 --- a/templates/orgs.tpl +++ b/templates/orgs.tpl @@ -1,21 +1,21 @@ {include file="header.tpl"} - +
{foreach from=$orgs item=org} - - - - + + + + {foreachelse} - - - + + + {/foreach}
- - - {$org}
-
+ + + {$org|h}
+
-

{$lang.err_noentries}

-
+

{$lang.err_noentries}

+
diff --git a/templates/pngbehavior.htc b/templates/pngbehavior.htc deleted file mode 100644 index 7849c8d..0000000 --- a/templates/pngbehavior.htc +++ /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! - - - - - diff --git a/templates/search.tpl b/templates/search.tpl new file mode 100644 index 0000000..eec6d6e --- /dev/null +++ b/templates/search.tpl @@ -0,0 +1,16 @@ + + +{if $fields._marker} +
+ {$lang.marker}: + + + +
+{/if} + diff --git a/templates/tags.tpl b/templates/tags.tpl index c0befac..df70408 100644 --- a/templates/tags.tpl +++ b/templates/tags.tpl @@ -1,8 +1,9 @@ {include file="header.tpl"} -
- {$tagcloud} -
+
+ {$tagcloud} +

{$lang.tagcloud}

+ {include file="footer.tpl"} diff --git a/templates/toolbar.tpl b/templates/toolbar.tpl index b155388..e282640 100644 --- a/templates/toolbar.tpl +++ b/templates/toolbar.tpl @@ -2,26 +2,23 @@
  • - + {$lang.help}
  • - + {$lang.orgs}
  • -
  • +
  •  
  • {if $user}
  • - + {$lang.new}
  • {/if} -
  • +
  •  
  • {if $dn} {if $user} @@ -29,22 +26,18 @@ {if $smarty.request.mode == 'edit'}
  • - + {$lang.show}
  • {elseif $smarty.request.mode != 'copy'}
  • - + {$lang.edit}
  • - + {$lang.copy}
  • - + {$lang.delete}
  • {/if} @@ -52,27 +45,26 @@
  • - + {$lang.vcfexport}
  • -
  • +
  •  
  • {/if} {if $list}
  • - + {$lang.csvexport}
  • {/if} {if $user}
  • - + {$lang.vcfimport}
  • {/if} - +