v1.2.10.6 interim
This commit is contained in:
@@ -36,7 +36,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers.Support
|
||||
// Model.
|
||||
Model_UserReport model = new Model_UserReport(Localiser);
|
||||
|
||||
return View("/Views/UserReport/Index.cshtml", model);
|
||||
return View("/Views/Support/UserReport/Index.cshtml", model);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
+1
@@ -4,6 +4,7 @@
|
||||
/* User Report - Index */
|
||||
ViewData["Title"] = "User Reports";
|
||||
Model.AdditionalFiles_JS.Add("js/sax-spt-rpt.js");
|
||||
Model.AdditionalFiles_JS.Add("rjs/rooster-min.js");
|
||||
}
|
||||
|
||||
<div class="sax-panel UserReports">
|
||||
+7
-1
@@ -2,6 +2,8 @@
|
||||
@inject SaxLocaliser Localiser
|
||||
@{
|
||||
/* Support - User Report dialog */
|
||||
Model.AdditionalFiles_CSS.Add("rjs/sax-rjs.css");
|
||||
Model.AdditionalFiles_JS.Add("rjs/sax-rjs.js");
|
||||
}
|
||||
|
||||
<script type="text/javascript">
|
||||
@@ -69,7 +71,11 @@
|
||||
</div>
|
||||
<div class="col-sm">
|
||||
<div class="sax-control">
|
||||
@Html.TextAreaFor(model => model.UserReport.Report, new { @id = "ifUserReportReport", @class = "UserReportReport sax-textarea", @rows = 12, @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Support.ColumnIdx.UserReport_Report) })
|
||||
@Html.HiddenFor(model => model.UserReport.Report, new { @id = "ifUserReportReport", @class = "UserReportReport sax-input" })
|
||||
<div class="rjs-container">
|
||||
<div class="rjs-editor" style="min-height:96px;max-height:256px;"></div>
|
||||
<div class="rjs-toolbar"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sax-message"></div>
|
||||
</div>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -5,7 +5,7 @@
|
||||
(function (win, doc, undef)
|
||||
{
|
||||
"use strict";
|
||||
let sr = sax.SupportUserReport = { $pnl: {}, $frm: {}, $dlg: {}, ajax: {}, data: {} };
|
||||
let sr = sax.SupportUserReport = { $pnl: {}, $frm: {}, $ctrl: {}, rjs: {}, $dlg: {}, ajax: {}, data: {} };
|
||||
let $pnl = sr.$pnl, $frm = sr.$frm, $dlg = sr.$dlg;
|
||||
|
||||
//--------------------------------------------------------------
|
||||
@@ -23,7 +23,7 @@
|
||||
}
|
||||
sr.doRefreshResults = function (response)
|
||||
{
|
||||
sax.debug('doRefreshResults', response);
|
||||
//sax.debug('doRefreshResults', response);
|
||||
delete sr.awaitingRefreshResponse;
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
$pnl.msgs.hide().empty();
|
||||
@@ -100,6 +100,7 @@
|
||||
{
|
||||
sr.clearItem();
|
||||
$dlg.rpt.dialog('option', 'title', sax.dlg.title.createUserReport);
|
||||
sr.rjs.reportEditor = sax.rjs.init(sr.$pnl.reportEditor, sr.$ctrl.reportInput, '');
|
||||
sr.openDialog();
|
||||
}
|
||||
sr.openDialog = function ()
|
||||
@@ -110,11 +111,14 @@
|
||||
{
|
||||
let frm = $frm.rpt;
|
||||
$('input.UserReportId,input.UserReportExists,input[type="text"],textarea,select', frm).val('');
|
||||
sr.$pnl.reportEditor.html('');
|
||||
sax.populateSelectCodeDesc('#cbUserReportType', sr.data.reportTypes);
|
||||
sax.populateSelectCodeDesc('#cbUserReportStatus', sr.data.statuses);
|
||||
$('.UserReportStatus', frm).val(sr.data.defaultStatusCode);
|
||||
sax.clearControlErrors();
|
||||
sr.cleanUp();
|
||||
delete sr.data.$item;
|
||||
if (sr.rjs.reportEditor) sr.rjs.reportEditor.dispose();
|
||||
delete sr.rjs.reportEditor;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
@@ -134,10 +138,10 @@
|
||||
let item = response.report;
|
||||
$('.UserReportId', frm).val(item.id);
|
||||
$('.UserReportExists', frm).val(1);
|
||||
$('select.UserReportType', frm).remove('option[value=""],option:not([value])').val(item.reportTypeCode);
|
||||
$('input.UserReportTitle', frm).val(item.title);
|
||||
$('textarea.UserReportReport', frm).val(item.report);
|
||||
$('select.UserReportStatus', frm).val(item.statusCode);
|
||||
$('.sax-control .UserReportType', frm).remove('option[value=""],option:not([value])').val(item.reportTypeCode);
|
||||
$('.sax-control .UserReportTitle', frm).val(item.title);
|
||||
sr.rjs.reportEditor = sax.rjs.init(sr.$pnl.reportEditor, sr.$ctrl.reportInput, item.report);
|
||||
$('.sax-control .UserReportStatus', frm).val(item.statusCode);
|
||||
sax.clearControlErrors();
|
||||
$dlg.rpt.dialog('option', 'title', sax.dlg.title.updateUserReport);
|
||||
sr.openDialog();
|
||||
@@ -163,11 +167,7 @@
|
||||
$('.sax-panel-item-list', $pnl.results).prepend(sr.data.$item).show();
|
||||
}
|
||||
sr.populateItem(sr.data.$item, item);
|
||||
sr.cleanUp();
|
||||
}
|
||||
sr.cleanUp= function ()
|
||||
{
|
||||
delete sr.data.$item;
|
||||
sr.clearItem();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
@@ -185,11 +185,13 @@
|
||||
|
||||
var opt = sax.dlgOpts();
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { sr.storeItem(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); sr.cleanUp(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); sr.clearItem(); };
|
||||
$dlg.rpt = $('#dlgUserReport').dialog(opt);
|
||||
|
||||
$frm.rpt = $('#frmUserReport');
|
||||
$frm.rpt.on('input', '.sax-input', function () { sax.clearControlError(this); }).on('change', '.sax-select', function () { sax.clearControlError(this); });
|
||||
sr.$ctrl.reportInput = $(".UserReportReport .sax-control .UserReportReport");
|
||||
sr.$pnl.reportEditor = $(".UserReportReport .sax-control .rjs-editor");
|
||||
|
||||
setTimeout(sr.refreshResults, 250);
|
||||
});
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
RoosterJS stylesheet.
|
||||
*/
|
||||
|
||||
.rjs-container
|
||||
{
|
||||
border: solid 1px #595959;
|
||||
border-top-left-radius: 2px;
|
||||
border-bottom-left-radius: 2px;
|
||||
}
|
||||
|
||||
.rjs-container.rjs-editing
|
||||
{
|
||||
/*box-shadow: 0 0 0 2px #80808040 inset;*/
|
||||
}
|
||||
|
||||
.rjs-editor
|
||||
{
|
||||
padding:4px 8px 4px 8px;
|
||||
overflow-y:scroll;
|
||||
}
|
||||
|
||||
.rjs-editor:focus
|
||||
{
|
||||
/*box-shadow:none;*/
|
||||
}
|
||||
|
||||
.rjs-toolbar
|
||||
{
|
||||
display:none;
|
||||
min-height:24px;
|
||||
padding:2px 4px 4px 4px;
|
||||
border-top:1px solid #808080;
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
.rjs-container.rjs-editing .rjs-toolbar
|
||||
{
|
||||
display:block;
|
||||
}
|
||||
|
||||
/* The End */
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* RoosterJS scripts.
|
||||
*/
|
||||
(function (win, doc, undef)
|
||||
{
|
||||
/* Rooster JS Editor. */
|
||||
"use strict";
|
||||
let rjs = sax.rjs = sax.rjs || {};
|
||||
//--------------------------------------------------------------
|
||||
rjs.init = function ($pnl, $inp, data)
|
||||
{
|
||||
let editor = roosterjs.createEditor($pnl[0], [], data);
|
||||
$pnl.off('focus').on('focus', function () { rjs.onFocusEditor($pnl, editor, $inp); });
|
||||
$pnl.off('blur').on('blur', function () { rjs.onBlurEditor($pnl, editor, $inp); });
|
||||
return editor;
|
||||
}
|
||||
rjs.onFocusEditor = function ($pnl, rjsEd, $inp)
|
||||
{
|
||||
//sax.debug('rjs.onFocusEditor', $pnl, rjsEd, $inp);
|
||||
$pnl.closest(".rjs-container").addClass("rjs-editing");
|
||||
}
|
||||
rjs.onBlurEditor = function ($pnl, rjsEd, $inp)
|
||||
{
|
||||
//sax.debug('rjs.onBlurEditor');
|
||||
$pnl.closest(".rjs-container").removeClass("rjs-editing");
|
||||
while ($pnl.children().length>1)
|
||||
{
|
||||
let lc = $pnl.children().last();
|
||||
if (!lc || lc.text().trim().length) break;
|
||||
lc.remove();
|
||||
}
|
||||
$inp.val($pnl.html());
|
||||
}
|
||||
//--------------------------------------------------------------
|
||||
$(function ()
|
||||
{
|
||||
});
|
||||
//--------------------------------------------------------------
|
||||
}(window, window.document));
|
||||
/* The End */
|
||||
Reference in New Issue
Block a user