📄 htmlperson.js
字号:
/* * GContact / PAUL Grégory * * In this file are functions relative to persons to update the view (html) */ /* * Show / hide user details * @param event coming from the link on persons list */function showUserInfos(e) { if (!e) var e = window.event if (!this.name) { alert("problem : id in attribute name not found"); return false; } var userInfo = document.getElementById('userInfo' + this.name); if (userInfo.style.display == "none") { userInfo.style.display = "block"; this.innerHTML = msgHide; } else { userInfo.style.display = "none"; this.innerHTML = msgShow; } return true;}/* * Update the view if a person has been deleted * @param Id of the person wich was deleted, formated in XML */function updateUserDeleted(resultXML) { if (resultXML) { var id = resultXML.getElementsByTagName("response")[0].getAttribute('idDeleted'); // On supprime le parent ! var elToDel = document.getElementById('user' + id); elToDel.parentNode.removeChild(elToDel); // Updating group list zone getGroupList(); // Updating birthdays list zone getBirthdays(); } else content.innerHTML = problemXmlResult; return true;}/* * Show a form to create a new person * @param Groups list, formated in XML, to feed the list of group in wich put the person */function updateFormNewPerson(resultXML) { if (resultXML) { var content = document.getElementById("content"); content.innerHTML = '<form name="formContact" id="formContact" method="post" action="#">' + '<fieldset><legend>'+ lbl_person_info +'</legend>' + personForm + '<input class="marginButtons" type="button" value="'+ action_create +'" onclick="return createPerson();" />' + '</fieldset></form>' + msgRequired; var lstgroup = document.getElementById("idgroup"); lstgroup.options.length = 0; var groups = resultXML.getElementsByTagName("groups")[0]; for (var i = 0; i < groups.childNodes.length; i++) lstgroup.options[i] = new Option(groups.childNodes[i].getAttribute("name"), groups.childNodes[i].getAttribute("id")); } else content.innerHTML = problemXmlResult; return true;}/* * Show a form to update a new person * @param Person information (with contacts and addresses) and groups list, formated in XML */function getModifyPersonForm(resultXML) { var content = document.getElementById("content"); if (resultXML) { content.innerHTML = ""; var element = resultXML.getElementsByTagName("element")[0]; // Adresses var addresses = element.getElementsByTagName("address"); var formAddresses = '<span id="addresses"><fieldset><legend>'+ lbl_addresses +'</legend>'; for (var i = 0; i < addresses.length; i++) { var addr = addresses[i]; var addrId = addr.getAttribute('id'); formAddresses += '<div class="address">' + '<label for="addrTitle'+ addrId +'">'+ lbl_address_title +' : </label><input type="text" id="addrTitle'+ addrId +'" value="'+ addr.getAttribute('title') +'" onKeyUp="return updateCombo(event, \'addr\', this, '+ addrId +');" onblur="setTimeout(cleanList, 100);" autocomplete="off"/><br/>' + '<select id="addrTitleList'+ addrId +'" class="dynamicList" tabindex="500"></select>' + '<label for="addrStreet'+ addrId +'">'+ lbl_address_street +' : </label><input type="text" id="addrStreet'+ addrId +'" value="'+ addr.getAttribute('street') +'" /><br/>' + '<label for="addrStreetNext'+ addrId +'">'+ lbl_address_street_next +' : </label><input type="text" id="addrStreetNext'+ addrId +'" value="'+ addr.getAttribute('street_next') +'" /><br/>' + '<label for="addrZipCode'+ addrId +'">'+ lbl_address_zipcode +' : </label><input type="text" id="addrZipCode'+ addrId +'" value="'+ addr.getAttribute('zipcode') +'" /><br/>' + '<label for="addrTown'+ addrId +'">'+ lbl_address_town +' : </label><input type="text" id="addrTown'+ addrId +'" value="'+ addr.getAttribute('town') +'" /> *<br/>' + '<label for="addrCountry'+ addrId +'">'+ lbl_address_country +' : </label><input type="text" id="addrCountry'+ addrId +'" value="'+ addr.getAttribute('country') +'" /><br/>' + '<label for="addrNote'+ addrId +'">'+ lbl_notes +' : </label><textarea name="note" id="addrNote'+ addrId +'" cols="25" rows="4">'+ addr.getAttribute('note') +'</textarea><br/>' + '<input class="marginButtons" type="button" name="delete" value="'+ action_delete +'" onclick="deleteAddress('+ addrId + ');"/>' + '</div>'; } formAddresses += ((addresses.length > 0) ? '<input class="marginButtons" type="button" name="modify" value="'+ action_update_addresses +'" onclick="modifyAddresses();"/><hr/>' : '') + '<div class="address">' + '<label for="addrTitle">'+ lbl_address_title +' : </label><input type="text" id="addrTitle" value="Domicile" onKeyUp="return updateComboWithoutId(event, \'addr\', this);" onblur="setTimeout(cleanList, 100);" autocomplete="off" /><br/>' + '<select id="addrTitleList" class="dynamicList" tabindex="501"></select>' + '<label for="addrStreet">'+ lbl_address_street +' : </label><input type="text" id="addrStreet" value="" /><br/>' + '<label for="addrStreetNext">'+ lbl_address_street_next +' : </label><input type="text" id="addrStreetNext" value="" /><br/>' + '<label for="addrZipCode">'+ lbl_address_zipcode +' : </label><input type="text" id="addrZipCode" value="" /><br/>' + '<label for="addrTown">'+ lbl_address_town +' : </label><input type="text" id="addrTown" value="" /> *<br/>' + '<label for="addrCountry">'+ lbl_address_country +' : </label><input type="text" id="addrCountry" value="'+ lbl_default_country +'" /><br/>' + '<label for="addrNote">'+ lbl_notes +' : </label><textarea name="note" id="addrNote" cols="25" rows="4"></textarea><br/>' + '<input class="marginButtons" type="button" name="create" value="'+ action_create +'" onclick="createAddress();"/>' + '</div></fieldset></span>'; // Contacts var contacts = element.getElementsByTagName("contact"); var formContacts = '<span id="contacts"><fieldset><legend>'+ lbl_contacts +'</legend>'; for (var i = 0; i < contacts.length; i++) { var ct = contacts[i]; var ctId = ct.getAttribute('id'); formContacts += '<div class="contact">' + '<label for="ctType">'+ lbl_contact_type +' : </label><input type="text" id="ctType' + ctId + '" name="ctType' + ctId + '" value="'+ ct.getAttribute('type') +'" onKeyUp="return updateCombo(event, \'ct\', this, '+ ctId +');" onblur="setTimeout(cleanList, 100);" autocomplete="off"> *<br/>' + '<select id="ctTypeList' + ctId + '" class="dynamicList" tabindex="502"></select>' + '<label for="ctValue">'+ lbl_contact_value +' : </label><input type="text" id="ctValue' + ctId + '" value="'+ ct.getAttribute('value') +'" /> *<br/>' + '<label for="ctNote">'+ lbl_notes +' : </label><input type="text" id="ctNote' + ctId + '" value="'+ ct.getAttribute('note') +'" /> <br/>' + '<input class="marginButtons" type="button" name="delete" value="'+ action_delete +'" onclick="deleteContact('+ ctId + ');"/>' + '</div>'; } formContacts += ((contacts.length > 0) ? '<input class="marginButtons" type="button" name="modify" value="Modifier ces contacts" onclick="modifyContacts();"/><hr/>' : '') + '<div class="contact">' + '<label for="ctType">'+ lbl_contact_type +' : </label><input type="text" id="ctType" value="" onKeyUp="return updateComboWithoutId(event, \'ct\', this);" onblur="setTimeout(cleanList, 100);" autocomplete="off" /> *<br/>' + '<select id="ctTypeList" class="dynamicList" tabindex="503"></select>' + '<label for="ctValue">'+ lbl_contact_value +' : </label><input type="text" id="ctValue" value="" /> *<br/>' + '<label for="ctNote">'+ lbl_notes +' : </label><input type="text" id="ctNote" value="" /> <br/>' + '<input class="marginButtons" type="button" name="create" value="'+ action_create +'" onclick="createContact();"/>' + '</div></fieldset></span>'; content.innerHTML = '<form name="formContact" id="formContact" method="post" action="#">' + '<fieldset><legend>'+ lbl_person_info +'</legend><input type="hidden" id="idperson" name="idperson" value="" />' + personForm + '<input class="marginButtons" type="button" value="'+ action_update +'" onclick="return modifyPerson();" /></fieldset>' + formContacts + formAddresses + '<div style="clear: both;"></div>' + '</form>' + msgRequired; document.getElementById("idperson").value = element.getAttribute("id"); document.getElementById("title").value = unescape(element.getAttribute("title")); document.getElementById("firstname").value = unescape(element.getAttribute("firstname")); document.getElementById("lastname").value =unescape( element.getAttribute("lastname")); document.getElementById("birthdate").value = unescape(element.getAttribute("birthdate")); document.getElementById("note").value = unescape(element.getAttribute("note")); var lstgroup = document.getElementById("idgroup"); lstgroup.options.length = 0; var groups = resultXML.getElementsByTagName("groups")[0]; for (var i = 0; i < groups.childNodes.length; i++) { lstgroup.options[i] = new Option(groups.childNodes[i].getAttribute("name"), groups.childNodes[i].getAttribute("id")); if (element.getAttribute("idgroup") == groups.childNodes[i].getAttribute("id")) lstgroup.selectedIndex = i; } // On met à jour la liste des anniversaires (au cas où on a changé la date de naissance) if (resultXML.documentElement.getAttribute("modifiedPerson") != null || resultXML.documentElement.getAttribute("createdPerson") != null) { getBirthdays(); getGroupList(); } // On renseigne les types de contacts disponibles dans une variable var types = resultXML.getElementsByTagName("contactTypes")[0].childNodes; typesAvailable = new Array(); for (var i = 0; i < types.length; i++) { typesAvailable[i] = types[i].getAttribute("value"); } // On renseigne les titres d'addresses disponibles dans une variable var titles = resultXML.getElementsByTagName("addressTitles")[0].childNodes; AddrTitlesAvailable = new Array(); for (var i = 0; i < titles.length; i++) { AddrTitlesAvailable[i] = titles[i].getAttribute("value"); } } else content.innerHTML = problemXmlResult; return true;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -