File:
0.01.1a/js/request.js (
View as Code)
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: