This commit is contained in:
2018-07-17 19:39:55 +00:00
parent a22687ca16
commit c41838c813
13 changed files with 2057 additions and 308 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -11,16 +11,16 @@
<title>Rockfish loading....</title>
<!-- ICONS / MANIFEST -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?rfv=6.2">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?rfv=6.2">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?rfv=6.2">
<link rel="manifest" href="/manifest.json?rfv=6.2">
<link rel="mask-icon" href="/safari-pinned-tab.svg?rfv=6.2" color="#5bbad5">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?rfv=6.3">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?rfv=6.3">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?rfv=6.3">
<link rel="manifest" href="/manifest.json?rfv=6.3">
<link rel="mask-icon" href="/safari-pinned-tab.svg?rfv=6.3" color="#5bbad5">
<meta name="theme-color" content="#ffffff">
<!-- 3rd party components fonts and icons -->
<link href="css/materialdesignicons.min.css?rfv=6.2" media="all" rel="stylesheet" type="text/css" />
<link href="css/materialdesignicons.min.css?rfv=6.3" media="all" rel="stylesheet" type="text/css" />
<!--BOOTSTRAP-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB"
@@ -29,60 +29,60 @@
crossorigin="anonymous"> -->
<link rel="stylesheet" href="css/app.css?rfv=6.2" type="text/css" />
<link rel="stylesheet" href="css/mdi-bs4-compat.css?rfv=6.2" type="text/css" />
<link rel="stylesheet" href="css/app.css?rfv=6.3" type="text/css" />
<link rel="stylesheet" href="css/mdi-bs4-compat.css?rfv=6.3" type="text/css" />
<!-- <script src="js/lib/jquery-3.2.1.min.js"></script> -->
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<!-- third-party javascript -->
<script src="js/lib/page.js?rfv=6.2"></script>
<script src="js/lib/jquery.event.gevent.js?rfv=6.2"></script>
<script src="js/lib/jquery.gzserialize.js?rfv=6.2"></script>
<script src="js/lib/handlebars.runtime-v4.0.5.js?rfv=6.2"></script>
<script src="js/lib/store.min.js?rfv=6.2"></script>
<script src="js/lib/jquery.autocomplete.min.js?rfv=6.2"></script>
<script src="js/lib/moment.min.js?rfv=6.2"></script>
<script src="js/lib/page.js?rfv=6.3"></script>
<script src="js/lib/jquery.event.gevent.js?rfv=6.3"></script>
<script src="js/lib/jquery.gzserialize.js?rfv=6.3"></script>
<script src="js/lib/handlebars.runtime-v4.0.5.js?rfv=6.3"></script>
<script src="js/lib/store.min.js?rfv=6.3"></script>
<script src="js/lib/jquery.autocomplete.min.js?rfv=6.3"></script>
<script src="js/lib/moment.min.js?rfv=6.3"></script>
<!-- our javascript -->
<!-- <script src="js/index.js?rfv=6.2"></script> -->
<!-- <script src="js/index.js?rfv=6.3"></script> -->
<script src="js/index.js" asp-append-version="true"></script>
<script src="js/app.util.js?rfv=6.2"></script>
<script src="js/app.api.js?rfv=6.2"></script>
<script src="js/app.utilB.js?rfv=6.2"></script>
<script src="js/app.nav.js?rfv=6.2"></script>
<script src="js/app.shell.js?rfv=6.2"></script>
<script src="js/app.fourohfour.js?rfv=6.2"></script>
<script src="js/app.authenticate.js?rfv=6.2"></script>
<script src="js/app.customers.js?rfv=6.2"></script>
<script src="js/app.customerEdit.js?rfv=6.2"></script>
<script src="js/app.customerSites.js?rfv=6.2"></script>
<script src="js/app.customerSiteEdit.js?rfv=6.2"></script>
<script src="js/app.purchases.js?rfv=6.2"></script>
<script src="js/app.purchaseEdit.js?rfv=6.2"></script>
<script src="js/app.license.js?rfv=6.2"></script>
<script src="js/app.licenseTemplates.js?rfv=6.2"></script>
<script src="js/app.licenseRequestEdit.js?rfv=6.2"></script>
<script src="js/app.licenses.js?rfv=6.2"></script>
<script src="js/app.licenseView.js?rfv=6.2"></script>
<script src="js/app.reportData.js?rfv=6.2"></script>
<script src="js/app.reportDataProdEmail.js?rfv=6.2"></script>
<script src="js/app.reportDataExpires.js?rfv=6.2"></script>
<script src="js/app.search.js?rfv=6.2"></script>
<script src="js/app.subscription.js?rfv=6.2"></script>
<script src="js/app.subnotify.js?rfv=6.2"></script>
<script src="js/app.templates.js?rfv=6.2"></script>
<script src="js/app.templateEdit.js?rfv=6.2"></script>
<script src="js/app.inbox.js?rfv=6.2"></script>
<script src="js/app.mailEdit.js?rfv=6.2"></script>
<script src="js/app.rfcaseEdit.js?rfv=6.2"></script>
<script src="js/app.rfcases.js?rfv=6.2"></script>
<script src="js/app.rfsettings.js?rfv=6.2"></script>
<script src="js/app.util.js?rfv=6.3"></script>
<script src="js/app.api.js?rfv=6.3"></script>
<script src="js/app.utilB.js?rfv=6.3"></script>
<script src="js/app.nav.js?rfv=6.3"></script>
<script src="js/app.shell.js?rfv=6.3"></script>
<script src="js/app.fourohfour.js?rfv=6.3"></script>
<script src="js/app.authenticate.js?rfv=6.3"></script>
<script src="js/app.customers.js?rfv=6.3"></script>
<script src="js/app.customerEdit.js?rfv=6.3"></script>
<script src="js/app.customerSites.js?rfv=6.3"></script>
<script src="js/app.customerSiteEdit.js?rfv=6.3"></script>
<script src="js/app.purchases.js?rfv=6.3"></script>
<script src="js/app.purchaseEdit.js?rfv=6.3"></script>
<script src="js/app.license.js?rfv=6.3"></script>
<script src="js/app.licenseTemplates.js?rfv=6.3"></script>
<script src="js/app.licenseRequestEdit.js?rfv=6.3"></script>
<script src="js/app.licenses.js?rfv=6.3"></script>
<script src="js/app.licenseView.js?rfv=6.3"></script>
<script src="js/app.reportData.js?rfv=6.3"></script>
<script src="js/app.reportDataProdEmail.js?rfv=6.3"></script>
<script src="js/app.reportDataExpires.js?rfv=6.3"></script>
<script src="js/app.search.js?rfv=6.3"></script>
<script src="js/app.subscription.js?rfv=6.3"></script>
<script src="js/app.subnotify.js?rfv=6.3"></script>
<script src="js/app.templates.js?rfv=6.3"></script>
<script src="js/app.templateEdit.js?rfv=6.3"></script>
<script src="js/app.inbox.js?rfv=6.3"></script>
<script src="js/app.mailEdit.js?rfv=6.3"></script>
<script src="js/app.rfcaseEdit.js?rfv=6.3"></script>
<script src="js/app.rfcases.js?rfv=6.3"></script>
<script src="js/app.rfsettings.js?rfv=6.3"></script>
<!-- handlebars templates -->
<script src="js/templates/templates.js?rfv=6.2"></script>
<script src="js/templates/templates.js?rfv=6.3"></script>
<script>

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 2.1 MiB

After

Width:  |  Height:  |  Size: 2.7 MiB

View File

@@ -7,154 +7,182 @@
/*global $, app */
app.mailEdit = (function () {
'use strict';
//---------------- BEGIN MODULE SCOPE VARIABLES --------------
var
stateMap = {},
onSave, onDelete, onSend,
configModule, initModule;
//----------------- END MODULE SCOPE VARIABLES ---------------
app.mailEdit = (function() {
"use strict";
//---------------- BEGIN MODULE SCOPE VARIABLES --------------
var stateMap = {},
onSend,
onSpam,
configModule,
initModule;
//----------------- END MODULE SCOPE VARIABLES ---------------
//------------------- BEGIN EVENT HANDLERS -------------------
//------------------- BEGIN EVENT HANDLERS -------------------
///////////////////////////////////
// SEND A REPLY OR NEW MESSAGE
//
onSend = function(event) {
event.preventDefault();
///////////////////////////////////
// SEND A REPLY OR NEW MESSAGE
//
onSend = function (event) {
event.preventDefault();
$.gevent.publish("app-clear-error");
$.gevent.publish('app-clear-error');
//get form data
var formData = $("form").serializeArray({
checkboxesAsBools: true
});
//get form data
var formData = $("form").serializeArray({
checkboxesAsBools: true
});
//var submitData = {composition:$("#composition").val()};
var submitData = app.utilB.objectifyFormDataArray(formData);
//var submitData = {composition:$("#composition").val()};
var submitData = app.utilB.objectifyFormDataArray(formData);
//is this a new record?
if (stateMap.id != "new") {
//put id into the form data
// submitData.id = stateMap.id;
//is this a new record?
if (stateMap.id != 'new') {
//put id into the form data
// submitData.id = stateMap.id;
app.api.create(
"mail/reply/" +
stateMap.context.params.mail_account +
"/" +
stateMap.context.params.mail_id,
submitData,
function(res) {
if (res.error) {
$.gevent.publish("app-show-error", res.msg);
} else {
page("#!/inbox");
}
}
);
} else {
alert("STUB: New message composition not implemented yet");
// //it's a new record - create
// app.api.create('customer', submitData, function (res) {
// if (res.error) {
// $.gevent.publish('app-show-error',res.msg);
// } else {
// page('#!/inbox');
// }
// });
}
app.api.create('mail/reply/' +
stateMap.context.params.mail_account +
'/' + stateMap.context.params.mail_id, submitData, function (res) {
if (res.error) {
$.gevent.publish('app-show-error', res.msg);
} else {
page('#!/inbox');
}
});
return false;
};
///////////////////////////////////
// SPAM HANDLER
//
onSpam = function(event) {
event.preventDefault();
$.gevent.publish("app-clear-error");
//is this a new record?
if (stateMap.id == "new") {
alert("New message spam handling makes no sense - figure it out!");
return false;
}
app.api.create(
"mail/isspam/" +
stateMap.context.params.mail_account +
"/" +
stateMap.context.params.mail_id,
null,
function(res) {
if (res.error) {
$.gevent.publish("app-show-error", res.msg);
} else {
alert("STUB: New message composition not implemented yet");
// //it's a new record - create
// app.api.create('customer', submitData, function (res) {
// if (res.error) {
// $.gevent.publish('app-show-error',res.msg);
// } else {
// page('#!/inbox');
// }
// });
page("#!/inbox");
}
}
);
return false;
};
return false;
};
//-------------------- END EVENT HANDLERS --------------------
//ONDELETE
//
//removed
//------------------- BEGIN PUBLIC METHODS -------------------
//-------------------- END EVENT HANDLERS --------------------
//CONFIGMODULE
//
configModule = function(context) {
stateMap.context = context.context;
if (stateMap.context.params.id) {
stateMap.id = stateMap.context.params.id;
}
};
//------------------- BEGIN PUBLIC METHODS -------------------
//INITMODULE
//
initModule = function($container) {
if (typeof $container === "undefined") {
$container = $("#app-shell-main-content");
}
$container.html(Handlebars.templates["app.mailEdit"]({}));
// stateMap.replyMode = false;
// if (stateMap.context.querystring.endsWith('reply')) {
// stateMap.replyMode = true;
// }
//CONFIGMODULE
//
configModule = function (context) {
stateMap.context = context.context;
if (stateMap.context.params.id) {
stateMap.id = stateMap.context.params.id;
app.nav.contextClear();
app.nav.contextAddLink("inbox/", "Inbox", "inbox");
//id should always have a value, either a record id or the keyword 'new' for making a new object
if (stateMap.id != "new") {
//fetch existing record
app.api.get(
"mail/preview/" +
stateMap.context.params.mail_account +
"/" +
stateMap.context.params.mail_folder +
"/" +
stateMap.context.params.mail_id,
function(res) {
if (res.error) {
// app.nav.contextClear();
// app.nav.contextAddLink("inbox/", "Inbox", "inbox");
$.gevent.publish("app-show-error", res.msg);
} else {
//fill out form
// app.nav.contextClear();
//app.nav.contextAddLink("inbox/", "Inbox", "inbox");
$("#message").text(res.preview);
if (res.isKeyRequest) {
app.nav.contextAddLink(
"licenseRequestEdit/" + res.id,
"Make",
"key"
);
} else {
$("#composition").text("\n\n- John\nwww.ayanova.com");
}
}
}
};
);
//INITMODULE
//
initModule = function ($container) {
if (typeof $container === 'undefined') {
$container = $('#app-shell-main-content');
}
$("#btn-send").bind("click", onSend);
$container.html(Handlebars.templates['app.mailEdit']({}));
// stateMap.replyMode = false;
// if (stateMap.context.querystring.endsWith('reply')) {
// stateMap.replyMode = true;
// }
//Context menu
app.nav.contextAddButton("btn-generate", "IsSpam", "axe", onSpam);
} else {
//NEW email options
var $group = $("#sendToGroup");
$group.removeClass("invisible");
app.nav.contextClear();
app.nav.contextAddLink("inbox/", "Inbox", "inbox");
// app.nav.contextClear();
// app.nav.contextAddLink("inbox/", "Inbox", "inbox");
// app.nav.contextAddButton('btn-send', 'Send', 'send', onSend);
}
};
//id should always have a value, either a record id or the keyword 'new' for making a new object
if (stateMap.id != 'new') {
//fetch existing record
app.api.get(
'mail/preview/' +
stateMap.context.params.mail_account +
'/' + stateMap.context.params.mail_folder +
'/' + stateMap.context.params.mail_id, function (res) {
if (res.error) {
// app.nav.contextClear();
// app.nav.contextAddLink("inbox/", "Inbox", "inbox");
$.gevent.publish('app-show-error', res.msg);
} else {
//fill out form
// app.nav.contextClear();
//app.nav.contextAddLink("inbox/", "Inbox", "inbox");
$('#message').text(res.preview);
if(res.isKeyRequest){
app.nav.contextAddLink("licenseRequestEdit/" + res.id, "Make", "key");
}else{
$('#composition').text("\n\n- John\nwww.ayanova.com");
}
}
});
$('#btn-send').bind('click', onSend);
//Context menu
//app.nav.contextAddButton('btn-send', 'Send reply', 'send', onSend);
// app.nav.contextAddButton('btn-generate', 'Build', 'key', onReply);
// app.nav.contextAddLink("customerSites/" + stateMap.id, "Sites", "city");//url title icon
} else {
//NEW email options
var $group = $("#sendToGroup");
$group.removeClass("invisible");
// app.nav.contextClear();
// app.nav.contextAddLink("inbox/", "Inbox", "inbox");
// app.nav.contextAddButton('btn-send', 'Send', 'send', onSend);
}
};
// RETURN PUBLIC METHODS
//
return {
configModule: configModule,
initModule: initModule
};
//------------------- END PUBLIC METHODS ---------------------
}());
// RETURN PUBLIC METHODS
//
return {
configModule: configModule,
initModule: initModule
};
//------------------- END PUBLIC METHODS ---------------------
})();

View File

@@ -13,7 +13,7 @@
<label for="composition">Reply</label>
<div class="btn-group float-right ml-5" role="group">
<button id="btn-send" type="button" class="btn btn-sm btn-outline-primary mdi mdi-send"></button>
<button id="btn-send" type="button" class="btn btn-sm btn-outline-primary mdi mdi-send"></button>
</div>
<div class="form-check form-check-inline float-right">

File diff suppressed because one or more lines are too long