gophish/static/js/dist/app/templates.min.js

1 line
8.8 KiB
JavaScript
Raw Permalink Normal View History

2022-08-09 14:24:29 +00:00
var templates=[],icons={"application/vnd.ms-excel":"fa-file-excel-o","text/plain":"fa-file-text-o","image/gif":"fa-file-image-o","image/png":"fa-file-image-o","application/pdf":"fa-file-pdf-o","application/x-zip-compressed":"fa-file-archive-o","application/x-gzip":"fa-file-archive-o","application/vnd.openxmlformats-officedocument.presentationml.presentation":"fa-file-powerpoint-o","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"fa-file-word-o","application/octet-stream":"fa-file-o","application/x-msdownload":"fa-file-o"};function save(e){var t={attachments:[]};t.name=$("#name").val(),t.subject=$("#subject").val(),t.envelope_sender=$("#envelope-sender").val(),t.html=CKEDITOR.instances.html_editor.getData(),t.html=t.html.replace(/https?:\/\/{{\.URL}}/gi,"{{.URL}}"),$("#use_tracker_checkbox").prop("checked")?-1==t.html.indexOf("{{.Tracker}}")&&-1==t.html.indexOf("{{.TrackingUrl}}")&&(t.html=t.html.replace("</body>","{{.Tracker}}</body>")):t.html=t.html.replace("{{.Tracker}}</body>","</body>"),t.text=$("#text_editor").val(),$.each($("#attachmentsTable").DataTable().rows().data(),(function(e,a){t.attachments.push({name:unescapeHtml(a[1]),content:a[3],type:a[4]})})),-1!=e?(t.id=templates[e].id,api.templateId.put(t).success((function(e){successFlash("Template edited successfully!"),load(),dismiss()})).error((function(e){modalError(e.responseJSON.message)}))):api.templates.post(t).success((function(e){successFlash("Template added successfully!"),load(),dismiss()})).error((function(e){modalError(e.responseJSON.message)}))}function dismiss(){$("#modal\\.flashes").empty(),$("#attachmentsTable").dataTable().DataTable().clear().draw(),$("#name").val(""),$("#subject").val(""),$("#text_editor").val(""),$("#html_editor").val(""),$("#modal").modal("hide")}var deleteTemplate=function(e){Swal.fire({title:"Are you sure?",text:"This will delete the template. This can't be undone!",type:"warning",animation:!1,showCancelButton:!0,confirmButtonText:"Delete "+escapeHtml(templates[e].name),confirmButtonColor:"#428bca",reverseButtons:!0,allowOutsideClick:!1,preConfirm:function(){return new Promise((function(t,a){api.templateId.delete(templates[e].id).success((function(e){t()})).error((function(e){a(e.responseJSON.message)}))}))}}).then((function(e){e.value&&Swal.fire("Template Deleted!","This template has been deleted!","success"),$('button:contains("OK")').on("click",(function(){location.reload()}))}))};function deleteTemplate(e){confirm("Delete "+templates[e].name+"?")&&api.templateId.delete(templates[e].id).success((function(e){successFlash(e.message),load()}))}function attach(e){attachmentsTable=$("#attachmentsTable").DataTable({destroy:!0,order:[[1,"asc"]],columnDefs:[{orderable:!1,targets:"no-sort"},{sClass:"datatable_hidden",targets:[3,4]}]}),$.each(e,(function(e,t){var a=new FileReader;a.onload=function(e){var o=icons[t.type]||"fa-file-o";attachmentsTable.row.add(['<i class="fa '+o+'"></i>',escapeHtml(t.name),'<span class="remove-row"><i class="fa fa-trash-o"></i></span>',a.result.split(",")[1],t.type||"application/octet-stream"]).draw()},a.onerror=function(e){console.log(e)},a.readAsDataURL(t)}))}function edit(e){$("#modalSubmit").unbind("click").click((function(){save(e)})),$("#attachmentUpload").unbind("click").click((function(){this.value=null})),$("#html_editor").ckeditor(),setupAutocomplete(CKEDITOR.instances.html_editor),$("#attachmentsTable").show(),attachmentsTable=$("#attachmentsTable").DataTable({destroy:!0,order:[[1,"asc"]],columnDefs:[{orderable:!1,targets:"no-sort"},{sClass:"datatable_hidden",targets:[3,4]}]});var t={attachments:[]};-1!=e?($("#templateModalLabel").text("Edit Template"),t=templates[e],$("#name").val(t.name),$("#subject").val(t.subject),$("#envelope-sender").val(t.envelope_sender),$("#html_editor").val(t.html),$("#text_editor").val(t.text),attachmentRows=[],$.each(t.attachments,(function(e,t){var a=icons[t.type]||"fa-file-o";attachmentRows.push(['<i class="fa '+a+'"></i>',escapeHtml(t.name),'<span class="remove-row"><i class="fa fa-trash-o"></i></span>',t.content,t.type||"application