github.com/jonathaningram/gophish@v0.3.1-0.20170829042651-ac3fe6aeae6c/static/js/src/app/gophish.js (about) 1 function errorFlash(message) { 2 $("#flashes").empty() 3 $("#flashes").append("<div style=\"text-align:center\" class=\"alert alert-danger\">\ 4 <i class=\"fa fa-exclamation-circle\"></i> " + message + "</div>") 5 } 6 7 function successFlash(message) { 8 $("#flashes").empty() 9 $("#flashes").append("<div style=\"text-align:center\" class=\"alert alert-success\">\ 10 <i class=\"fa fa-check-circle\"></i> " + message + "</div>") 11 } 12 13 function modalError(message) { 14 $("#modal\\.flashes").empty().append("<div style=\"text-align:center\" class=\"alert alert-danger\">\ 15 <i class=\"fa fa-exclamation-circle\"></i> " + message + "</div>") 16 } 17 18 function query(endpoint, method, data, async) { 19 return $.ajax({ 20 url: "/api" + endpoint + "?api_key=" + user.api_key, 21 async: async, 22 method: method, 23 data: JSON.stringify(data), 24 dataType: "json", 25 contentType: "application/json" 26 }) 27 } 28 29 function escapeHtml(text) { 30 return $("<div/>").text(text).html() 31 } 32 33 function unescapeHtml(html) { 34 return $("<div/>").html(html).text() 35 } 36 37 /* 38 Define our API Endpoints 39 */ 40 var api = { 41 // campaigns contains the endpoints for /campaigns 42 campaigns: { 43 // get() - Queries the API for GET /campaigns 44 get: function () { 45 return query("/campaigns/", "GET", {}, false) 46 }, 47 // post() - Posts a campaign to POST /campaigns 48 post: function (data) { 49 return query("/campaigns/", "POST", data, false) 50 }, 51 // summary() - Queries the API for GET /campaigns/summary 52 summary: function () { 53 return query("/campaigns/summary", "GET", {}, false) 54 } 55 }, 56 // campaignId contains the endpoints for /campaigns/:id 57 campaignId: { 58 // get() - Queries the API for GET /campaigns/:id 59 get: function (id) { 60 return query("/campaigns/" + id, "GET", {}, true) 61 }, 62 // delete() - Deletes a campaign at DELETE /campaigns/:id 63 delete: function (id) { 64 return query("/campaigns/" + id, "DELETE", {}, false) 65 }, 66 // results() - Queries the API for GET /campaigns/:id/results 67 results: function (id) { 68 return query("/campaigns/" + id + "/results", "GET", {}, true) 69 }, 70 // complete() - Completes a campaign at POST /campaigns/:id/complete 71 complete: function (id) { 72 return query("/campaigns/" + id + "/complete", "GET", {}, true) 73 }, 74 // summary() - Queries the API for GET /campaigns/summary 75 summary: function (id) { 76 return query("/campaigns/" + id + "/summary", "GET", {}, true) 77 } 78 }, 79 // groups contains the endpoints for /groups 80 groups: { 81 // get() - Queries the API for GET /groups 82 get: function () { 83 return query("/groups/", "GET", {}, false) 84 }, 85 // post() - Posts a group to POST /groups 86 post: function (group) { 87 return query("/groups/", "POST", group, false) 88 }, 89 // summary() - Queries the API for GET /groups/summary 90 summary: function () { 91 return query("/groups/summary", "GET", {}, true) 92 } 93 }, 94 // groupId contains the endpoints for /groups/:id 95 groupId: { 96 // get() - Queries the API for GET /groups/:id 97 get: function (id) { 98 return query("/groups/" + id, "GET", {}, false) 99 }, 100 // put() - Puts a group to PUT /groups/:id 101 put: function (group) { 102 return query("/groups/" + group.id, "PUT", group, false) 103 }, 104 // delete() - Deletes a group at DELETE /groups/:id 105 delete: function (id) { 106 return query("/groups/" + id, "DELETE", {}, false) 107 } 108 }, 109 // templates contains the endpoints for /templates 110 templates: { 111 // get() - Queries the API for GET /templates 112 get: function () { 113 return query("/templates/", "GET", {}, false) 114 }, 115 // post() - Posts a template to POST /templates 116 post: function (template) { 117 return query("/templates/", "POST", template, false) 118 } 119 }, 120 // templateId contains the endpoints for /templates/:id 121 templateId: { 122 // get() - Queries the API for GET /templates/:id 123 get: function (id) { 124 return query("/templates/" + id, "GET", {}, false) 125 }, 126 // put() - Puts a template to PUT /templates/:id 127 put: function (template) { 128 return query("/templates/" + template.id, "PUT", template, false) 129 }, 130 // delete() - Deletes a template at DELETE /templates/:id 131 delete: function (id) { 132 return query("/templates/" + id, "DELETE", {}, false) 133 } 134 }, 135 // pages contains the endpoints for /pages 136 pages: { 137 // get() - Queries the API for GET /pages 138 get: function () { 139 return query("/pages/", "GET", {}, false) 140 }, 141 // post() - Posts a page to POST /pages 142 post: function (page) { 143 return query("/pages/", "POST", page, false) 144 } 145 }, 146 // pageId contains the endpoints for /pages/:id 147 pageId: { 148 // get() - Queries the API for GET /pages/:id 149 get: function (id) { 150 return query("/pages/" + id, "GET", {}, false) 151 }, 152 // put() - Puts a page to PUT /pages/:id 153 put: function (page) { 154 return query("/pages/" + page.id, "PUT", page, false) 155 }, 156 // delete() - Deletes a page at DELETE /pages/:id 157 delete: function (id) { 158 return query("/pages/" + id, "DELETE", {}, false) 159 } 160 }, 161 // SMTP contains the endpoints for /smtp 162 SMTP: { 163 // get() - Queries the API for GET /smtp 164 get: function () { 165 return query("/smtp/", "GET", {}, false) 166 }, 167 // post() - Posts a SMTP to POST /smtp 168 post: function (smtp) { 169 return query("/smtp/", "POST", smtp, false) 170 } 171 }, 172 // SMTPId contains the endpoints for /smtp/:id 173 SMTPId: { 174 // get() - Queries the API for GET /smtp/:id 175 get: function (id) { 176 return query("/smtp/" + id, "GET", {}, false) 177 }, 178 // put() - Puts a SMTP to PUT /smtp/:id 179 put: function (smtp) { 180 return query("/smtp/" + smtp.id, "PUT", smtp, false) 181 }, 182 // delete() - Deletes a SMTP at DELETE /smtp/:id 183 delete: function (id) { 184 return query("/smtp/" + id, "DELETE", {}, false) 185 } 186 }, 187 // import handles all of the "import" functions in the api 188 import_email: function (raw) { 189 return query("/import/email", "POST", {}, false) 190 }, 191 // clone_site handles importing a site by url 192 clone_site: function (req) { 193 return query("/import/site", "POST", req, false) 194 }, 195 // send_test_email sends an email to the specified email address 196 send_test_email: function (req) { 197 return query("/util/send_test_email", "POST", req, true) 198 } 199 } 200 201 // Register our moment.js datatables listeners 202 $(document).ready(function () { 203 $.fn.dataTable.moment('MMMM Do YYYY, h:mm:ss a'); 204 // Setup tooltips 205 $('[data-toggle="tooltip"]').tooltip() 206 });