---------- Forwarded message ---------- From: "Ankur Ankan" <[email protected]> Date: Jul 5, 2012 12:31 PM Subject: Re: Zimbra plugin code review To: "Maxim Solodovnik" <[email protected]>
Thanks Maxim for your comments :-) You will be seeing a much improved code the next time. 1) I thought that the user might have more than one server and I couldn't find a way in which I could implement the no of servers according to user's choice. 2) I was about to change it. I had earlier thought of using an object by the name of server having three elements baseurl, username and password. Which would be better an array or object?? 3) I will remove it all the unecessary comments when I commit code to jira next time. 4) I will do that. 5) I think I have left that there by mistake and I guess it is not being used anywhere. 6) I will do that also. On Jul 5, 2012 12:12 PM, "Maxim Solodovnik" <[email protected]> wrote: > Hello Ankur, > > I finally was able to find time and review code of your plugin. > > 1) Why user need 5 different OM servers in his settings? > > 2) instead of having > var server1_baseurl; > var server1_username; > var server1_password; > .................................... > var server5_baseurl; > var server5_username; > var server5_password; > > I would recommend you not to store this values but get it by id in runtime > and store values only in the array of objects structure like this: > var credentials = [ > {url: "url1", user: "user1", pass: "pass1"} > , {url: "url2", user: "user2", pass: "pass2"} > ......... > ]; > with later access as creadentials[0].url creadentials[0].user etc. > > for (var i = 0; i < 5; ++i) { > var baseurl_text = new DwtText({parent:this.pView, name:"server" + > (i+1) + "_baseurl_text", id:"server" + (i+1) + "_baseurl_text"}); > baseurl_text.setText("URL"); > var baseurl = new DwtInputField ({parent:this.pView, name: "server" + > (i+1) + "_baseurl", id: "server" + (i+1) + "_baseurl"}); > > > .... etc .... > } > {baseurl: "url1", username: "name1", password: "pass1"} > {baseurl: "url2", username: "name2", password: "pass2"} > ]; > > 3) The code contains lots of commented code making js file hard to read. > > 4) calendar_popup_startdate and calendar_popup_enddate as well > as startdate_calendar_okbtnlistener and enddate_calendar_okbtnlistener are > almost identical I would create helper function with general code and use > it. > > 5) I would change com_zimbra_om._url value from " > http://demo.dataved.ru/openmeetings/services/UserService/getSession" > to com_zimbra_om._url = "http://demo.dataved.ru/openmeetings/services/"; > > 6) in several places URL constructed by concatenating > http://demo.openmeetings.de/openmeetings/services/UserService string with > params. I would create helper function to construct URL: > function getURL(service, function, o) { > var result = com_zimbra_om._url + "/" + service + "/" + function + "?"; > if (sid) { > result += "SID=" + sid > } > if (o) { > for (var key : in o) { > result += "&" + key + "=" + escape(o[key]); > } > } > } > > and call it like this: var url = getURL("UserService", "getSession"); > var url = getURL("UserService", "getRooms", {name: room_name, > roomtypes_id: roomtypes_id, numberOfPartizipants: numberOfPartizipants, > ispublic: ispublic}); > etc. > > I guess that's it for now :) hope it was helpful. > > -- > WBR > Maxim aka solomax >
