File: 0.01.0a/js/request.js (View as HTML)

  1: /* -------------------------------------------------------------
  2: This file is part of FreeDESK
  3: 
  4: FreeDESK is (C) Copyright 2012 David Cutting
  5: 
  6: FreeDESK is free software: you can redistribute it and/or modify
  7: it under the terms of the GNU General Public License as published by
  8: the Free Software Foundation, either version 3 of the License, or
  9: (at your option) any later version.
 10: 
 11: FreeDESK is distributed in the hope that it will be useful,
 12: but WITHOUT ANY WARRANTY; without even the implied warranty of
 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 14: GNU General Public License for more details.
 15: 
 16: You should have received a copy of the GNU General Public License
 17: along with FreeDESK.  If not, see www.gnu.org/licenses
 18: 
 19: For more information see www.purplepixie.org/freedesk/
 20: -------------------------------------------------------------- */
 21: 
 22: /**
 23:  * FreeDESK client-side request code
 24: **/
 25: 
 26: function FreeDESK_Request()
 27: {
 28: 	var customerIsSelected = false;
 29: 
 30: 	this.searchCustomer = function()
 31: 	{
 32: 		var url = "entity.php?mode=search&entity=customer&";
 33: 		url += DESK.formToQuery('customersearch');
 34: 		url += "&searchnow=1&callback=DESKRequest.searchCustomerCallback&onereturn=1";
 35: 		url += "&sid=" + DESK.sid;
 36: 		
 37: 		DESK.openWindow("FreeDESK Customer Search", url);
 38: 	}
 39: 	
 40: 	this.searchCustomerCallback = function(customerid)
 41: 	{
 42: 		document.getElementById('customer_id').innerHTML = customerid;
 43: 		document.getElementById('customer_select').style.display = 'none';
 44: 		document.getElementById('customer_details').style.display = 'block';
 45: 		DESKRequest.customerSelected(true);
 46: 	}
 47: 	
 48: 	this.searchCustomerAgain = function()
 49: 	{
 50: 		document.getElementById('customer_details').style.display = 'none';
 51: 		document.getElementById('customer_select').style.display = 'block';
 52: 		DESKRequest.customerSelected(false);
 53: 	}
 54: 	
 55: 	this.customerSelected = function(sel)
 56: 	{
 57: 		DESKRequest.customerIsSelected = sel;
 58: 	}
 59: 	
 60: 	this.Create = function(closeOnComplete)
 61: 	{
 62: 		if (closeOnComplete == undefined)
 63: 			var closeOnComplete = false;
 64: 		
 65: 		
 66: 		if (!this.customerIsSelected)
 67: 		{
 68: 			alert("Must select a customer");
 69: 			return;
 70: 		}
 71: 		
 72: 		var detail = DESK.formToQuery("request_create");
 73: 		var mode = "request_create";
 74: 		var add = "customer="+document.getElementById('customer_id').innerHTML;
 75: 		
 76: 		var data = "mode="+mode+"&"+add+"&"+detail+"&sid="+DESK.sid;
 77: 		
 78: 		var sr = new ServerRequest();
 79: 		
 80: 		var add = Array();
 81: 		
 82: 		if (closeOnComplete)
 83: 			add[0]=1;
 84: 		else
 85: 			add[0]=0;
 86: 		
 87: 		sr.callback = DESKRequest.createCallback;
 88: 		sr.url = "api.php";
 89: 		sr.additional = add;
 90: 		sr.Post(data);
 91: 	}
 92: 	
 93: 	this.createCallback = function(xml, add)
 94: 	{
 95: 		if (DESK.isError(xml))
 96: 		{
 97: 			Alerts.add(DESK.getError(xml), 2, 10);
 98: 		}
 99: 		else
100: 		{
101: 			var req = xml.getElementsByTagName("request")[0];
102: 			var id = (req.textContent == undefined) ? req.firstChild.nodeValue : req.textContent;
103: 			var url = "request.php?id="+id+"&sid="+DESK.sid;
104: 			
105: 			if (document.forms["request_create"]["emailflag"]!=undefined && 
106: 				document.forms["request_create"]["emailflag"].checked) // email customer
107: 			{
108: 				var update = document.forms["request_create"]["update"].value;
109: 				var emailurl = "email.php?template=open&request="+id+"&update="+encodeURI(update)+"&sid="+DESK.sid;
110: 				DESK.openWindow("Email", emailurl);
111: 			}
112: 			
113: 			if (add[0] == 1)
114: 				window.close();
115: 			else
116: 				window.location.href = url;
117: 		}
118: 	}
119: 	
120: 	this.emailUpdateCheck = function()
121: 	{
122: 		//alert(document.forms["request_update"]["emailflag"].checked);
123: 		if (document.forms["request_update"]["emailflag"] != undefined && 
124: 			document.forms["request_update"]["emailflag"].checked) // email customer
125: 		{
126: 			var req = currentRequestID;
127: 			var update = document.forms["request_update"]["update"].value;
128: 			var template = "update";
129: 			if (document.forms["request_update"]["status"].value == "0")
130: 				template = "close";
131: 			
132: 			//alert(template);
133: 				
134: 			var emailurl = "email.php?template="+template+"&request="+req+"&update="+encodeURI(update)+"&sid="+DESK.sid;
135: 			DESK.openWindow("Email", emailurl);
136: 		}
137: 	}
138: 	
139: }
140: 
141: var DESKRequest = new FreeDESK_Request();
142: 
143: