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  });