123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639 |
- <!DOCTYPE html>
- <html lang="en" manifest="cache.manifest">
- <head>
- <title>CardDavMATE</title>
- <meta http-equiv="cache-control" content="no-cache" />
- <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
- <!--
- CardDavMATE - the open source CardDAV Web Client
- Copyright (C) 2011-2015
- Jan Mate <jan.mate@inf-it.com>
- Andrej Lezo <andrej.lezo@inf-it.com>
- Matej Mihalik <matej.mihalik@inf-it.com>
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as
- published by the Free Software Foundation, either version 3 of the
- License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- -->
- <link rel="stylesheet" href="css/jquery-ui.custom.css" type="text/css" />
- <link rel="stylesheet" href="css/jquery.tagsinput.css" type="text/css" />
- <link rel="stylesheet" href="css/spectrum.custom.css" type="text/css" />
- <link rel="stylesheet" href="css/default.css" type="text/css" />
- <script src="cache_handler.js" type="text/javascript"></script>
- <script src="lib/jquery-2.1.4.min.js" type="text/javascript"></script>
- <script src="lib/jquery.browser.js" type="text/javascript"></script>
- <script src="lib/jquery.autosize.js" type="text/javascript"></script>
- <script src="lib/jquery-ui-1.11.4.custom.js" type="text/javascript"></script>
- <script src="lib/jquery.quicksearch.js" type="text/javascript"></script>
- <script src="lib/jquery.placeholder-1.1.9.js" type="text/javascript"></script>
- <script src="lib/jshash-2.2_sha256.js" type="text/javascript"></script>
- <script src="lib/jquery.tagsinput.js" type="text/javascript"></script>
- <script src="lib/spectrum.js" type="text/javascript"></script>
- <script src="config.js" type="text/javascript"></script>
- <script src="common.js" type="text/javascript"></script>
- <script src="webdav_protocol.js" type="text/javascript"></script>
- <script src="localization.js" type="text/javascript"></script>
- <script src="interface.js" type="text/javascript"></script>
- <script src="vcard_rfc_regex.js" type="text/javascript"></script>
- <script src="resource.js" type="text/javascript"></script>
- <script src="addressbook.js" type="text/javascript"></script>
- <script src="data_process.js" type="text/javascript"></script>
- <script src="main.js" type="text/javascript"></script>
- </head>
- <body>
- <div id="cacheDialog">
- <div id="cacheDialogText">newer version detected!</div>
- <div id="cacheDialogButtonWrapper">
- <input id="cacheDialogButton" type="button" value="refresh" onclick="window.location.reload()"/>
- </div>
- </div>
- <div id="MainLoader">
- <div id="MainLoaderInner" class="loaderInfo">Loading ...</div>
- <div class="loader"></div>
- </div>
- <div id="LoginPage" style="opacity: 1; display:none">
- <div class="window">
- <div id="Login">
- <form onsubmit="event.preventDefault(); login();">
- <table>
- <tr>
- <td data-size="login_logo"><img data-type="system_logo" src="" alt="Logo" /></td>
- </tr>
- <tr>
- <td data-size="login_input"><input data-type="system_username" type="text" name="username" class="fs" placeholder="Login" /></td>
- </tr>
- <tr>
- <td data-size="login_input"><input data-type="system_password" type="password" name="password" class="fs" placeholder="Password" /></td>
- </tr>
- <tr>
- <td data-size="login">
- <select data-type="language" onchange="if($(this).val()!=''){globalInterfaceLanguage=$(this).find('option').filter(':selected').attr('data-type');resetSettings();if(isAvaible('CalDavZAP') && !isCalDAVLoaded)localizeCalDAV();if(isAvaible('CardDavMATE') && !isCardDAVLoaded)localizeCardDAV();if(isAvaible('Settings') && !isSettingsLoaded)localizeSettings();if(isAvaible('Projects') && !isProjectsLoaded)localizeProjects();}">
- <option data-type=""> </option>
- </select>
- </td>
- </tr>
- <tr>
- <td><img data-type="system_login" alt="login" title="login" src="images/login.svg" onclick="if(event.shiftKey) ignoreServerSettings=true; $(this).closest('form').find('[type=\'submit\']').click();" /></td>
- </tr>
- <tr style="display:none">
- <td><input type="submit" /></td>
- </tr>
- </table>
- </form>
- </div>
- <div id="login_message" style="display: none;"></div>
- <div id="LoginLoader">
- <div class="loader"></div>
- </div>
- </div>
- <div class="footer">This is SOFTWARE!!!</div>
- </div>
- <div class="integration_d">
- <div id="intCarddav" title="addressbook" onclick="checkForApplication('CardDavMATE');">
- <img class="int_error" src="images/error_badge.svg" alt="error" />
- </div>
- <div class="intBlank"></div>
- <div id="intRefresh" title="refresh" onclick="reloadResources();"></div>
- <div class="intBlank"></div>
- <div id="intLogout" title="logout" onclick="logout();"></div>
- </div>
- <div class="System" id="SystemCardDavMATE">
- <div class="update_d" style="display: none;">
- <div class="update_h"></div>
- </div>
- <div class="resourcesCardDAV_d">
- <div data-type="resourcesCardDAV_txt" class="resourcesCardDAV_h">Resources</div>
- <img id="showUnloadedAddressbooks" src="images/delegation.svg" alt="Subscribe" title="Subscribe" onclick="showUnloadedCardDAVCollections();" />
- <input id="Logout" style="display: none;" data-url="" class="system_l" type="image" src="images/logout.svg" alt="Logout" title="Logout" onclick="logout();" />
- <input id="loadUnloadedAddressbooks" type="button" value="save" onclick="loadAdditionalCardDAVCollections()" style="margin-top:4px;margin-left:6px;" />
- <input id="loadUnloadedAddressbooksCancel" type="button" value="cancel" onclick="cancelUnloadedCardDAVCollections();" style="margin-top:4px;margin-right:6px;float:right;" />
- </div>
- <div class="collection_d">
- <input id="ResourceCardDAVToggle" type="image" src="images/resources.svg" alt="Show/Hide Resources" />
- <input id="AddContact" disabled="disabled" data-account-uid="" data-url="" data-filter-url="" data-color="" class="collection_a element_no_display" type="image" src="images/new_item.svg" alt="Add Contact" title="Add Contact" onclick="
- if($('#vCardEditor').attr('data-editor-state')!='edit')
- {
- $('#ResourceCardDAVListOverlay').fadeTo(globalEditorFadeAnimation, 0.6);
- $('#ABListOverlay').fadeTo(globalEditorFadeAnimation, 0.6);
- globalRefABListTable.find('.ablist_item.ablist_item_selected').removeClass('ablist_item_selected');
- globalAddressbookList.loadContactByVcard('BEGIN:VCARD\r\nVERSION:3.0\r\n'+(typeof globalGroupContactsByCompanies!='undefined' && globalGroupContactsByCompanies===true ? 'X-ABShowAs:company\r\n' : '')+'FN:\r\nN:;;;;\r\nEND:VCARD\r\n', this.getAttribute('data-color'), true, 'add');
- $('#vCardEditor').attr('data-editor-state','edit');
- $('#vCardEditor').attr({'data-account-uid': this.getAttribute('data-account-uid'), 'data-url': this.getAttribute('data-url')});
- $('#vCardEditor').find('[data-type=cancel]').attr('data-id', globalAddressbookList.getLoadedContactUID());
- // todo: move to the processEditor* ?
- if(typeof globalContactsExtEditorProcess =='function')
- $('#vCardEditor').find('[data-type=org]').focus();
- else
- $('#vCardEditor').find('[data-type=given]').focus();
- $('#ABContact').scrollTop(0);
- }" />
- </div>
- <div class="contact_d">
- <div data-type="contact_txt" class="contact_h">Contact</div>
- </div>
- <div id="ResourceCardDAVList">
- <div id="ResourceCardDAVListTemplate" style="display: none;">
- <div class="resourceCardDAV_header"><input type="checkbox"></div>
- <div class="resourceCardDAV_item">
- <div class="resourceCardDAV"><div class="resourceCardDAVColor"></div><input type="text" class="colorPicker"/><input type="checkbox" data-ind="false"></div>
- <div class="contact_group">
- <div class="group" style="display: none;"><div class="resourceCardDAVGroupColor"></div><input type="checkbox"></div>
- </div>
- </div>
- </div>
- </div>
- <div id="ResourceCardDAVListOverlay"></div>
- <div id="AddressbookOverlay">
- <div class="loaderInfo">Addressbooking ...</div>
- <div class="loader"></div>
- </div>
- <div id="SearchBox">
- <img data-type="invalid" style="position: inline; margin-top: 0px; margin-top: 4px; margin-left: 8px; vertical-align: top;" src="images/search.svg" alt="invalid" />
- <div class="container">
- <input data-type="search" type="text" placeholder="Search" size="45" value="" />
- </div>
- <img data-type="reset" style="display: none; position: absolute; margin-top: 5px; right: 9px; vertical-align: top; cursor: pointer;" src="images/reset_b.svg" alt="reset" onclick="$('#ABInMessage').height(0);hideNotVisibleMessage();if(globalQs!=null){$('[data-type=search]').val(''); globalQs.search('');}" />
- </div>
- <div id="ABList">
- <table id="ABListTable">
- <colgroup>
- <col class="ablist_column_color" />
- </colgroup>
- <tbody>
- <tr class="ablist_table_header">
- <th></th>
- </tr>
- <tr class="ablist_table_container">
- <td>
- <div class="ablist_table_wrapper">
- <table id="ABListTableInner">
- <colgroup>
- <col class="ablist_column_color" />
- </colgroup>
- <tbody>
- <tr class="ablist_header" style="display: none;">
- <td></td>
- </tr>
- <tr class="ablist_item" style="display: none;">
- <td class="ablist_item_color"></td>
- </tr>
- </tbody>
- </table>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div id="ABListOverlay"></div>
- <div id="ABContactColor"></div>
- <div id="ABMessage">
- <div id="ABMessageText"></div>
- </div>
- <div id="ABContact">
- <div id="vCardTemplate">
- <div id="ABInMessage">
- <div id="ABInMessageText">
- </div>
- </div>
- <div id="ABInMessageEditBox" >
- <div id="ABInMessageTextEditBox">
- </div>
- </div>
- <div id="EditorBox" style="display: none;">
- <table id="vCardEditor" data-url="" data-etag="" data-editor-state="show">
- <tr>
- <td class="opw zero_height">
- </td>
- <td class="opw zero_height">
- </td>
- <td class="type zero_height">
- </td>
- <td colspan="2" class="zero_height">
- </td>
- </tr>
- <tr>
- <td colspan="5" class="clean">
- <table style="margin-bottom:10px">
- <tr>
- <td data-attr-name="PHOTO" rowspan="10" class="photo_box">
- <div class="photo_div">
- <canvas id="photo" data-type="photo" class="photo photo_user photo_blank" onclick="if($(this).parent().find('#photo_drag').css('display')!='none'){if(event.shiftKey){showPhotoBox(event);}else{$('#upload_file').trigger('click');}}">Photo</canvas>
- <img id="photo_drag" data-type="photo_drag" class="photo_drag" style="position: absolute; left: 0px; top: 0px; display: none; pointer-events: none;" src="images/drag.svg" alt="" /><img id="reset_img" data-type="reset_img" style="position: absolute; top: 10px; left: 140px; vertical-align: top; cursor: pointer; display: none;" src="images/reset_b.svg" alt="remove" onclick="vCard.tplM['contentline_PHOTO'][0]=null; $('#upload_file, #photoURL, #photoURLHidden').val('');$(this).css('display', 'none'); $('#photo').addClass('photo_blank'); var canvasElement=$('#photo').get(0); canvasElement.getContext('2d').clearRect(0,0,canvasElement.width,canvasElement.height);">
- <div style="width: 0px !important; height: 0px !important; overflow: hidden !important; top: -20px !important; left: -20px !important;"><input type="file" id="upload_file" name="upload_file" accept="image/*" /></div>
- </div>
- <div id="photoArrow"></div>
- <div id="photoBox">
- <h1>remote image url</h1>
- <div id="photoBoxContent">
- <form onsubmit="return false;">
- <input type="text" id="photoURL" autocomplete="off" />
- <img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -22px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid">
- <input type="hidden" id="photoURLHidden" autocomplete="off" />
- <input type="submit" id="photoBoxButton" value="OK" />
- </form>
- </div>
- </div>
- </td>
- </tr>
- <tr data-type="DEST">
- <td colspan="4" data-size="full"><span><select data-type="xfull_type" data-attr-name="_DEST_"></select></span></td>
- </tr>
- <tr>
- <td style="padding-top: 1px;" colspan="2"><input data-type="given" type="text" class="hs" placeholder="FirstName" value="" /></td>
- <td style="padding-top: 1px;" colspan="2"><input data-type="family" type="text" class="hs" placeholder="LastName" value="" /></td>
- </tr>
- <tr>
- <td colspan="2"><input data-type="middle" type="text" class="hs" placeholder="MiddleName" value="" /></td>
- <td data-attr-name="NICKNAME" colspan="2"><input data-type="nickname" type="text" class="hs" placeholder="NickName" value="" /></td>
- </tr>
- <tr>
- <td><input data-type="prefix" type="text" style="width:94px" placeholder="Prefix" value="" /></td>
- <td><input data-type="suffix" type="text" style="width:95px" placeholder="Suffix" value="" /></td>
- <td data-attr-name="BDAY" colspan="2">
- <input data-type="date_bday" type="text" class="hs" placeholder="BirthDay" value="" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- </tr>
- <tr>
- <td data-attr-name="X-PHONETIC-FIRST-NAME" colspan="2">
- <input data-type="ph_firstname" type="text" class="hs" placeholder="PhoneticFirstName" value="" />
- </td>
- <td data-attr-name="X-PHONETIC-LAST-NAME" colspan="2">
- <input data-type="ph_lastname" type="text" class="hs" placeholder="PhoneticLastName" value="" />
- </td>
- </tr>
- <tr data-attr-name="TITLE">
- <td colspan="4"><input data-type="title" type="text" class="fs" placeholder="JobTitle" value="" /></td>
- </tr>
- <tr data-attr-name="ORG">
- <td colspan="4"><input data-type="org" type="text" class="fs" placeholder="Company" size="45" value="" /></td>
- </tr>
- <tr data-attr-name="ORG">
- <td colspan="4"><input data-type="department" type="text" class="fs" placeholder="Department" size="45" value="" /></td>
- </tr>
- <tr data-attr-name="X-Flags" class="heightfix">
- <td data-attr-name="X-ABShowAs" class="heightfix" colspan="2">
- <label class="element_grayed">
- <input data-type="isorg" type="checkbox" onclick="$('#photo').toggleClass('photo_user photo_company');" /><span data-type="company_contact">Company Contact</span>
- </label>
- </td>
- <td data-attr-name="X-BOOLEAN" class="heightfix" colspan="2">
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr data-attr-name="TEL">
- <td data-type="phone_txt" colspan="5" class="attr_desc">Phone</td>
- </tr>
- <tr data-attr-name="TEL" data-type="%phone" data-id="0">
- <td data-type="%del"><input class="op" type="image" src="images/op_del.svg" alt="-" /></td>
- <td data-type="%add"><input class="op" type="image" src="images/op_add.svg" alt="+" /></td>
- <td data-size="small">
- <select data-type="phone_type" onchange="if($(':selected', this).attr('data-type')==':custom') {$(this).parent().find('span[data-type=custom_span]').css('display','inline'); $(this).parent().find('[data-type=custom_value]').focus().trigger('change')} else $(this).parent().find('span[data-type=custom_span]').css('display','none');">
- <option data-type="work">work</option>
- <option data-type="home">home</option>
- <option data-type="cell">mobile</option>
- <option data-type="cell,work">work mobile</option>
- <option data-type="cell,home">home mobile</option>
- <option data-type="main">main</option>
- <option data-type="pager">pager</option>
- <option data-type="fax">fax</option>
- <option data-type="fax,work">work fax</option>
- <option data-type="fax,home">home fax</option>
- <option data-type="iphone">iPhone</option>
- <option data-type="other">other</option>
- <option data-type=":custom">» custom</option>
- </select><span data-type="custom_span" style="position: relative; margin-left: -134px; margin-top: 0px; vertical-align: top; display: none; z-index: 1;"><input data-type="custom_value" type="text" class="ss" placeholder="custom" value="" /><img data-type="invalid" style="z-index: 2; margin-top: 1px; margin-left: -16px; vertical-align: top; display: none;" src="images/error_b.svg" alt="invalid" /></span>
- </td>
- <td colspan="2" onmouseover="if(globalSettings.urihandlertel.value!=null && $(this).find('input[data-type=value]').prop('readonly') && $(this).find('input[type=image]').css('visibility')=='hidden') $(this).find('input[type=image]').css('visibility','')" onmouseout="$(this).find('input[type=image]').css('visibility','hidden');">
- <input data-type="value" type="text" class="fs" placeholder="Phone" value="" /><input data-type="value_handler" style="position: inline; margin-left: -17px; visibility: hidden; vertical-align: top;" type="image" src="images/arrow.svg" alt=">" onclick="if(globalSettings.urihandlertel.value!=null) { parent.location=globalSettings.urihandlertel.value+$(this).parent().find('input[data-type=value]').val(); $(this).css('visibility','hidden');}" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- </tr>
- <tr data-attr-name="EMAIL">
- <td data-type="email_txt" colspan="5" class="attr_desc">Email</td>
- </tr>
- <tr data-attr-name="EMAIL" data-type="%email" data-id="0">
- <td data-type="%del"><input class="op" type="image" src="images/op_del.svg" alt="-" /></td>
- <td data-type="%add"><input class="op" type="image" src="images/op_add.svg" alt="+" /></td>
- <td data-size="small">
- <select data-type="email_type" onchange="if($(':selected', this).attr('data-type')==':custom') {$(this).parent().find('span[data-type=custom_span]').css('display','inline'); $(this).parent().find('[data-type=custom_value]').focus().trigger('change')} else $(this).parent().find('span[data-type=custom_span]').css('display','none');">
- <option data-type="internet,work">work</option>
- <option data-type="home,internet">home</option>
- <option data-type=":mobileme:,internet">mobileMe</option>
- <option data-type=":_$!<other>!$_:,internet">other</option>
- <option data-type=":custom">» custom</option>
- </select><span data-type="custom_span" style="position: relative; margin-left: -134px; margin-top: 0px; vertical-align: top; display: none; z-index: 1;"><input data-type="custom_value" type="text" class="ss" placeholder="custom" value="" /><img data-type="invalid" style="z-index: 2; margin-top: 1px; margin-left: -16px; vertical-align: top; display: none;" src="images/error_b.svg" alt="invalid" /></span>
- </td>
- <td colspan="2" onmouseover="if(globalSettings.urihandleremail.value!=null && $(this).find('input[data-type=value]').prop('readonly') && $(this).find('input[type=image]').css('visibility')=='hidden') $(this).find('input[type=image]').css('visibility','')" onmouseout="$(this).find('input[type=image]').css('visibility','hidden');">
- <input data-type="value" type="text" class="fs" placeholder="Email" value="" /><input data-type="value_handler" style="position: inline; margin-left: -17px; visibility: hidden; vertical-align: top;" type="image" src="images/arrow.svg" alt=">" onclick="if(globalSettings.urihandleremail.value!=null) { parent.location=globalSettings.urihandleremail.value+$(this).parent().find('input[data-type=value]').val(); $(this).css('visibility','hidden');}" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- </tr>
- <tr data-attr-name="URL">
- <td data-type="url_txt" colspan="5" class="attr_desc">URL</td>
- </tr>
- <tr data-attr-name="URL" data-type="%url" data-id="0">
- <td data-type="%del"><input class="op" type="image" src="images/op_del.svg" alt="-" /></td>
- <td data-type="%add"><input class="op" type="image" src="images/op_add.svg" alt="+" /></td>
- <td data-size="small">
- <select data-type="url_type" onchange="if($(':selected', this).attr('data-type')==':custom') {$(this).parent().find('span[data-type=custom_span]').css('display','inline'); $(this).parent().find('[data-type=custom_value]').focus().trigger('change')} else $(this).parent().find('span[data-type=custom_span]').css('display','none');">
- <option data-type="work">work</option>
- <option data-type="home">home</option>
- <option data-type=":_$!<homepage>!$_:">homePage</option>
- <option data-type=":_$!<other>!$_:">other</option>
- <option data-type=":custom">» custom</option>
- </select><span data-type="custom_span" style="position: relative; margin-left: -134px; margin-top: 0px; vertical-align: top; display: none; z-index: 1;"><input data-type="custom_value" type="text" class="ss" placeholder="custom" value="" /><img data-type="invalid" style="z-index: 2; margin-top: 1px; margin-left: -16px; vertical-align: top; display: none;" src="images/error_b.svg" alt="invalid" /></span>
- </td>
- <td colspan="2" onmouseover="if(globalSettings.urihandlerurl.value!=null && $(this).find('input[data-type=value]').prop('readonly') && $(this).find('input[data-type=value]').val()!='' && $(this).find('input[type=image]').css('visibility')=='hidden') $(this).find('input[type=image]').css('visibility','')" onmouseout="$(this).find('input[type=image]').css('visibility','hidden');">
- <input data-type="value" type="text" class="fs" placeholder="URL" value="" /><input data-type="value_handler" style="position: inline; margin-left: -17px; visibility: hidden; vertical-align: top;" type="image" src="images/arrow.svg" alt=">" onclick="if(globalSettings.urihandlerurl.value!=null){var value=$(this).parent().find('input[data-type=value]').val(); if(value.match(RegExp('^[a-z0-9]+:','i'))==null) value=globalSettings.urihandlerurl.value+value; window.open(value); $(this).css('visibility','hidden');}" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- </tr>
- <tr data-attr-name="X-ABRELATEDNAMES">
- <td data-type="related_txt" colspan="5" class="attr_desc">Related</td>
- </tr>
- <tr data-attr-name="X-ABRELATEDNAMES" data-type="%person" data-id="0">
- <td data-type="%del"><input class="op" type="image" src="images/op_del.svg" alt="-" /></td>
- <td data-type="%add"><input class="op" type="image" src="images/op_add.svg" alt="+" /></td>
- <td data-size="small">
- <select data-type="person_type" onchange="if($(':selected', this).attr('data-type')==':custom') {$(this).parent().find('span[data-type=custom_span]').css('display','inline'); $(this).parent().find('[data-type=custom_value]').focus().trigger('change')} else $(this).parent().find('span[data-type=custom_span]').css('display','none');">
- <option data-type=":_$!<manager>!$_:">manager</option>
- <option data-type=":_$!<assistant>!$_:">assistant</option>
- <option data-type=":_$!<father>!$_:">father</option>
- <option data-type=":_$!<mother>!$_:">mother</option>
- <option data-type=":_$!<parent>!$_:">parent</option>
- <option data-type=":_$!<brother>!$_:">brother</option>
- <option data-type=":_$!<sister>!$_:">sister</option>
- <option data-type=":_$!<child>!$_:">child</option>
- <option data-type=":_$!<friend>!$_:">friend</option>
- <option data-type=":_$!<spouse>!$_:">spouse</option>
- <option data-type=":_$!<partner>!$_:">partner</option>
- <option data-type=":_$!<other>!$_:">other</option>
- <option data-type=":custom">» custom</option>
- </select><span data-type="custom_span" style="position: relative; margin-left: -134px; margin-top: 0px; vertical-align: top; display: none; z-index: 1;"><input data-type="custom_value" type="text" class="ss" placeholder="custom" value="" /><img data-type="invalid" style="z-index: 2; margin-top: 1px; margin-left: -16px; vertical-align: top; display: none;" src="images/error_b.svg" alt="invalid" /></span>
- </td>
- <td colspan="2"><input data-type="value" type="text" class="fs" placeholder="Name" value="" /></td>
- </tr>
- <tr data-attr-name="IMPP">
- <td data-type="im_txt" colspan="5" class="attr_desc">IM</td>
- </tr>
- <tr data-attr-name="IMPP" data-type="%im" data-id="0">
- <td data-type="%del"><input class="op" type="image" src="images/op_del.svg" alt="-" /></td>
- <td data-type="%add"><input class="op" type="image" src="images/op_add.svg" alt="+" /></td>
- <td data-size="small">
- <select data-type="im_type" onchange="if($(':selected', this).attr('data-type')==':custom') {$(this).parent().find('span[data-type=custom_span]').css('display','inline'); $(this).parent().find('[data-type=custom_value]').focus().trigger('change')} else $(this).parent().find('span[data-type=custom_span]').css('display','none');">
- <option data-type="work">work</option>
- <option data-type="home">home</option>
- <option data-type=":mobileme:">mobileMe</option>
- <option data-type=":_$!<other>!$_:">other</option>
- <option data-type=":custom">» custom</option>
- </select><span data-type="custom_span" style="position: relative; margin-left: -134px; margin-top: 0px; vertical-align: top; display: none; z-index: 1;"><input data-type="custom_value" type="text" class="ss" placeholder="custom" value="" /><img data-type="invalid" style="z-index: 2; margin-top: 1px; margin-left: -16px; vertical-align: top; display: none;" src="images/error_b.svg" alt="invalid" /></span>
- </td>
- <td><input data-type="value" type="text" class="ms" placeholder="UserID" value="" /></td>
- <td data-size="small" style="width: 139px; /* FF hack */">
- <select data-type="im_service_type" onchange="if($(':selected', this).attr('data-type')==':custom') {$(this).parent().find('span[data-type=custom_span]').css('display','inline'); $(this).parent().find('[data-type=custom_value]').focus().trigger('change')} else $(this).parent().find('span[data-type=custom_span]').css('display','none');">
- <option data-type="aim">AIM</option>
- <option data-type="icq">ICQ</option>
- <option data-type="irc">IRC</option>
- <option data-type="jabber">Jabber</option>
- <option data-type="msn">MSN</option>
- <option data-type="yahoo">Yahoo</option>
- <option data-type="facebook">Facebook</option>
- <option data-type="gadugadu">GaduGadu</option>
- <option data-type="googletalk">GoogleTalk</option>
- <option data-type="qq">QQ</option>
- <option data-type="skype">Skype</option>
- <option data-type=":custom">» custom</option>
- </select><span data-type="custom_span" style="position: relative; margin-left: -134px; margin-top: 0px; vertical-align: top; display: none; z-index: 1;"><input data-type="custom_value" type="text" class="ss" placeholder="custom" value="" /><img data-type="invalid" style="z-index: 2; margin-top: 1px; margin-left: -16px; vertical-align: top; display: none;" src="images/error_b.svg" alt="invalid" /></span>
- </td>
- </tr>
- <tr data-attr-name="X-SOCIALPROFILE">
- <td data-type="profile_txt" colspan="5" class="attr_desc">Profile</td>
- </tr>
- <tr data-attr-name="X-SOCIALPROFILE" data-type="%profile" data-id="0">
- <td data-type="%del"><input class="op" type="image" src="images/op_del.svg" alt="-" /></td>
- <td data-type="%add"><input class="op" type="image" src="images/op_add.svg" alt="+" /></td>
- <td data-size="small">
- <select data-type="profile_type" onchange="if($(':selected', this).attr('data-type')==':custom') {$(this).parent().find('span[data-type=custom_span]').css('display','inline'); $(this).parent().find('[data-type=custom_value]').focus().trigger('change')} else $(this).parent().find('span[data-type=custom_span]').css('display','none');">
- <option data-type="twitter">twitter</option>
- <option data-type="facebook">facebook</option>
- <option data-type="flickr">flickr</option>
- <option data-type="linkedin">linkedin</option>
- <option data-type="myspace">myspace</option>
- <option data-type="sinaweibo">sina weibo</option>
- <option data-type=":custom">» custom</option>
- </select><span data-type="custom_span" style="position: relative; margin-left: -134px; margin-top: 0px; vertical-align: top; display: none; z-index: 1;"><input data-type="custom_value" type="text" class="ss" placeholder="custom" value="" /><img data-type="invalid" style="z-index: 2; margin-top: 1px; margin-left: -16px; vertical-align: top; display: none;" src="images/error_b.svg" alt="invalid" /></span>
- </td>
- <td colspan="2" onmouseover="if(globalSettings.urihandlerprofile.value[$(this).parent().find('[data-type=profile_type] option').filter(':selected').attr('data-type')]!=undefined && globalSettings.urihandlerprofile.value[$(this).parent().find('[data-type=profile_type] option').filter(':selected').attr('data-type')]!=null && $(this).find('input[data-type=value]').prop('readonly') && $(this).find('input[type=image]').css('visibility')=='hidden') $(this).find('input[type=image]').css('visibility','')" onmouseout="$(this).find('input[type=image]').css('visibility','hidden');">
- <input data-type="value" type="text" class="fs" placeholder="UserName" value="" /><input data-type="value_handler" style="position: inline; margin-left: -17px; visibility: hidden; vertical-align: top;" type="image" src="images/arrow.svg" alt=">" onclick="if(globalSettings.urihandlerprofile.value[$(this).parent().parent().find('[data-type=profile_type] option').filter(':selected').attr('data-type')]!=undefined && globalSettings.urihandlerprofile.value[$(this).parent().parent().find('[data-type=profile_type] option').filter(':selected').attr('data-type')]!=null)
- {var type=$(this).parent().parent().find('[data-type=profile_type] option').filter(':selected').attr('data-type'), value=$(this).parent().find('input[data-type=value]').val(); if(type=='twitter') value=value.replace(/^@/,''); window.open(globalSettings.urihandlerprofile.value[type].replace('%u', value)); $(this).css('visibility','hidden');}" />
- </td>
- </tr>
- <tr data-attr-name="X-ABDATE">
- <td data-type="dates_txt" colspan="5" class="attr_desc">Dates</td>
- </tr>
- <tr data-attr-name="X-ABDATE" data-type="%date" data-id="0">
- <td data-type="%del"><input class="op" type="image" src="images/op_del.svg" alt="-" /></td>
- <td data-type="%add"><input class="op" type="image" src="images/op_add.svg" alt="+" /></td>
- <td data-size="small">
- <select data-type="date_type" onchange="if($(':selected', this).attr('data-type')==':custom') {$(this).parent().find('span[data-type=custom_span]').css('display','inline'); $(this).parent().find('[data-type=custom_value]').focus().trigger('change')} else $(this).parent().find('span[data-type=custom_span]').css('display','none');">
- <option data-type=":_$!<anniversary>!$_:">anniversary</option>
- <option data-type=":_$!<other>!$_:">other</option>
- <option data-type=":custom">» custom</option>
- </select><span data-type="custom_span" style="position: relative; margin-left: -134px; margin-top: 0px; vertical-align: top; display: none; z-index: 1;"><input data-type="custom_value" type="text" class="ss" placeholder="custom" value="" /><img data-type="invalid" style="z-index: 2; margin-top: 1px; margin-left: -16px; vertical-align: top; display: none;" src="images/error_b.svg" alt="invalid" /></span>
- </td>
- <td colspan="2"><input data-type="date_value" type="text" class="fs" placeholder="Name" value="" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" /></td>
- </tr>
- <tr data-attr-name="ADR">
- <td data-type="address_txt" colspan="5" class="attr_desc">Address</td>
- </tr>
- <tr data-attr-name="ADR" data-type="%address" data-id="0">
- <td data-type="%del"><input class="op" type="image" src="images/op_del.svg" alt="-" /></td>
- <td data-type="%add"><input class="op" type="image" src="images/op_add.svg" alt="+" /></td>
- <td data-size="small">
- <select data-type="address_type" onchange="if($(':selected', this).attr('data-type')==':custom') {$(this).parent().find('span[data-type=custom_span]').css('display','inline'); $(this).parent().find('[data-type=custom_value]').focus().trigger('change')} else $(this).parent().find('span[data-type=custom_span]').css('display','none');">
- <option data-type="work">work</option>
- <option data-type="home">home</option>
- <option data-type=":_$!<other>!$_:">other</option>
- <option data-type=":custom">» custom</option>
- </select><span data-type="custom_span" style="position: relative; margin-left: -134px; margin-top: 0px; vertical-align: top; display: none; z-index: 1;"><input data-type="custom_value" type="text" class="ss" placeholder="custom" value="" /><img data-type="invalid" style="z-index: 2; margin-top: 1px; margin-left: -16px; vertical-align: top; display: none;" src="images/error_b.svg" alt="invalid" /></span>
- </td>
- <td colspan="2" class="clean">
- <table>
- <tr data-type="container">
- <td data-addr-fid="0" colspan="2">
- <input data-type="value" data-addr-field="" type="text" class="fs" placeholder="" value="" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- </tr>
- <tr data-type="container">
- <td data-addr-fid="1" colspan="2" data-size="full">
- </td>
- </tr>
- <tr data-type="container">
- <td data-addr-fid="2" colspan="2">
- <input data-type="value" data-addr-field="" type="text" class="fs" placeholder="" value="" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- </tr>
- <tr data-type="container">
- <td data-addr-fid="3" colspan="2">
- <input data-type="value" data-addr-field="" type="text" class="fs" placeholder="" value="" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- </tr>
- <tr data-type="container">
- <td data-addr-fid="4" colspan="2">
- <input data-type="value" data-addr-field="" type="text" class="fs" placeholder="" value="" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- </tr>
- <tr data-type="container">
- <td data-addr-fid="5">
- <input data-type="value" data-addr-field="" type="text" class="hs" placeholder="" value="" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- <td data-addr-fid="6" style="width:195px;">
- <input data-type="value" data-addr-field="" type="text" class="hs" placeholder="" value="" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- </tr>
- <tr data-type="container">
- <td data-addr-fid="7">
- <input data-type="value" data-addr-field="" type="text" class="hs" placeholder="" value="" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- <td data-addr-fid="8" data-size="half">
- </td>
- </tr>
- <tr data-type="container">
- <td data-addr-fid="9" colspan="2">
- <input data-type="value" data-addr-field="" type="text" class="fs" placeholder="" value="" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- </tr>
- <tr data-type="container">
- <td data-addr-fid="10" colspan="2">
- <input data-type="value" data-addr-field="" type="text" class="fs" placeholder="" value="" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- </tr>
- <tr data-type="container">
- <td data-addr-fid="11" colspan="2" data-size="full">
- <span data-type="%country_container">
- <select data-addr-field="country" data-type="country_type">
- <option data-type="" data-full-name=""> </option>
- </select>
- </span>
- </td>
- </tr>
- <tr data-type="container">
- <td data-addr-fid="12" colspan="2">
- <input data-type="value" data-addr-field="" type="text" class="fs" placeholder="" value="" /><img data-type="invalid" style="position: inline; margin-top: 1px; margin-left: -20px; display: none; vertical-align: top;" src="images/error_b.svg" alt="invalid" />
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr data-attr-name="CATEGORIES">
- <td data-type="categories_txt" colspan="5" class="attr_desc">Categories</td>
- </tr>
- <tr data-attr-name="CATEGORIES" data-type="%categories" data-id="0">
- <td></td>
- <td></td>
- <td colspan="3">
- <input data-type="value" class="fs" name="tags" id="tags" value="" />
- </td>
- </tr>
- <tr data-attr-name="NOTE">
- <td data-type="note_txt" colspan="5" class="attr_desc">Note</td>
- </tr>
- <tr data-attr-name="NOTE" data-type="%note" data-id="0">
- <td></td>
- <td></td>
- <td colspan="3">
- <textarea data-type="value" class="ms" placeholder="NoteText"></textarea>
- </td>
- </tr>
- <tr>
- <td colspan="5" class="buttons">
- <input data-type="add_contact" type="button" value="Add Contact" onclick="
- $('#ResourceCardDAVListOverlay').fadeTo(globalEditorFadeAnimation, 0.6);
- $('#ABListOverlay').fadeTo(globalEditorFadeAnimation, 0.6);
- var tmp_account_uid=$('#vCardEditor').attr('data-account-uid');
- var tmp_data_url=$('#vCardEditor').attr('data-url').replace(new RegExp('[^/]+$'), '');
- var tmp_data_id=$('#vCardEditor').find('[data-type=cancel]').attr('data-id');
- var tmp_background_color=$('#ABContactColor').css('background-color');
- globalRefABListTable.find('.ablist_item.ablist_item_selected').removeClass('ablist_item_selected');
- $('#ABContactColor').css('background-color', tmp_background_color);
- globalAddressbookList.loadContactByVcard('BEGIN:VCARD\r\nVERSION:3.0\r\nORG:'+vcardEscapeValue($('#vCardEditor').find('[data-type=org]').val())+';'+vcardEscapeValue($('#vCardEditor').find('[data-type=department]').val())+'\r\nFN:\r\nN:;;;;\r\nEND:VCARD\r\n', tmp_background_color, false, 'add');
- $('#vCardEditor').attr('data-editor-state','edit');
- $('#vCardEditor').attr('data-account-uid', tmp_account_uid);
- $('#vCardEditor').attr('data-url', tmp_data_url);
- $('#vCardEditor').find('[data-type=cancel]').attr('data-id', tmp_data_id);
- $('#vCardEditor').find('[data-type=given]').focus();
- $('#ABContact').scrollTop(0);
- checkContactFormScrollBar();
- " />
- <input data-type="edit" type="button" value="Edit" onclick="
- // OK ale treba optimalizovat selectory
- $('#ResourceCardDAVListOverlay').fadeTo(globalEditorFadeAnimation, 0.6);
- $('#ABListOverlay').fadeTo(globalEditorFadeAnimation, 0.6);
- processEditorElements($('#vCardEditor'), 'show', null, $('#vCardEditor').find('[data-type=isorg]').prop('checked'));
- $('#vCardEditor').find('[data-disabled]').prop('disabled',true);
- $('#vCardEditor').find('[data-type=given]').focus();
- $('#ABContact').scrollTop(0);
- checkContactFormScrollBar();
- " />
- <input data-type="save" type="button" value="Save" onclick="
- if($('#vCardEditor').find('img[data-type=invalid]').is(':visible'))
- {
- show_editor_message('in', 'message_error', localization[globalInterfaceLanguage].errUnableSaveInvalidData, globalHideInfoMessageAfter);
- return false;
- }
- else
- {
- $('#ResourceCardDAVListOverlay').fadeTo(globalEditorFadeAnimation, 0.6);
- $('#ABListOverlay').fadeTo(globalEditorFadeAnimation,0.6);
- globalRefAddContact.prop('disabled',true);
- $('#ABContactOverlay').fadeTo(globalEditorFadeAnimation,1,function(){
- dataToVcard($('#vCardEditor').attr('data-account-uid'), $('#vCardEditor').attr('data-url'), globalRefAddContact.attr('data-filter-url'), $('#vCardEditor').attr('data-etag'))
- })
- }
- " />
- <input data-type="cancel" type="button" value="Cancel" data-id="" onclick="
- $('#ResourceCardDAVListOverlay').fadeOut(globalEditorFadeAnimation);
- $('#ABListOverlay').fadeOut(globalEditorFadeAnimation);
- globalAddressbookList.loadContactByUID(this.getAttribute('data-id'));
- " />
- <input data-type="delete_from_group" type="button" value="Delete from Group" onclick="
- $('#ResourceCardDAVListOverlay').fadeTo(globalEditorFadeAnimation,0.6); $('#ABListOverlay').fadeTo(globalEditorFadeAnimation,0.6); globalRefAddContact.prop('disabled',true); $('#ABContactOverlay').fadeTo(globalEditorFadeAnimation,1,function(){
- lockAndPerformToCollection({accountUID: $('#vCardEditor').attr('data-account-uid'), uid: $('#vCardEditor').attr('data-url')}, globalRefAddContact.attr('data-filter-url'), 'DELETE_FROM_GROUP');
- });
- " />
- <input data-type="delete" type="button" value="Delete" onclick="
- $('#ResourceCardDAVListOverlay').fadeTo(globalEditorFadeAnimation,0.6); $('#ABListOverlay').fadeTo(globalEditorFadeAnimation,0.6); globalRefAddContact.prop('disabled',true); $('#ABContactOverlay').fadeTo(globalEditorFadeAnimation,1,function(){
- lockAndPerformToCollection({accountUID: $('#vCardEditor').attr('data-account-uid'), uid: $('#vCardEditor').attr('data-url')}, globalRefAddContact.attr('data-filter-url'), 'DELETE');
- });
- " />
- </td>
- </tr>
- </table>
- </div>
- </div>
- </div>
- <div id="ABContactOverlay">
- <div class="half">
- <div class="loader"></div>
- </div>
- </div>
- </div>
- </body>
- </html>
|