Adding PromptOnNavigate option.

This commit is contained in:
Sipke Schoorstra
2014-07-28 17:17:32 -07:00
parent 6e4fcd6a2a
commit 5a633330eb
3 changed files with 24 additions and 18 deletions

View File

@@ -10,6 +10,7 @@
var pipe = element.data("pipe");
var returnUrl = element.data("return-url");
var addUrl = element.data("add-url");
var promptOnNavigate = element.data("prompt-on-navigate");
var addButton = element.find(".button.add");
var template =
'<li><div data-id="{contentItemId}" class="media-library-picker-item"><div class="thumbnail">{thumbnail}<div class="overlay"><h3>{title}</h3></div></div></div><a href="#" data-id="{contentItemId}" class="media-library-picker-remove">' + removeText + '</a>' + pipe + '<a href="{editLink}?ReturnUrl=' + returnUrl + '">' + editText + '</a></li>';
@@ -30,21 +31,23 @@
addButton.show();
}
};
window.mediaLibraryDirty = false;
var showSaveMsg = function() {
element.find('.media-library-picker-message').show();
window.mediaLibraryDirty = true;
};
if (!window.mediaLibraryNavigateAway) {
$(window).on("beforeunload", window.mediaLibraryNavigateAway = function() {
if (window.mediaLibraryDirty) {
return dirtyText;
}
});
element.closest("form").on("submit", function() {
window.mediaLibraryDirty = false;
});
if (promptOnNavigate) {
window.mediaLibraryDirty = false;
var showSaveMsg = function() {
element.find('.media-library-picker-message').show();
window.mediaLibraryDirty = true;
};
if (!window.mediaLibraryNavigateAway) {
$(window).on("beforeunload", window.mediaLibraryNavigateAway = function() {
if (window.mediaLibraryDirty) {
return dirtyText;
}
});
element.closest("form").on("submit", function() {
window.mediaLibraryDirty = false;
});
}
}
refreshIds();

View File

@@ -9,4 +9,5 @@
Multiple: settings.Multiple,
Required: settings.Required,
Hint: settings.Hint,
ContentItems: Model.ContentItems)
ContentItems: Model.ContentItems,
PromptOnNavigate: true)

View File

@@ -13,6 +13,7 @@
var multiple = (bool)(Model.Multiple ?? false);
var required = (bool)(Model.Required ?? false);
var hint = (string) Model.Hint;
var promptOnNavigate = (bool) (Model.PromptOnNavigate ?? true);
var contentItems = (IEnumerable<ContentItem>)Model.ContentItems ?? Enumerable.Empty<ContentItem>();
var contentManager = WorkContext.Resolve<IContentManager>();
}
@@ -25,8 +26,9 @@
data-dirty-text="@T("You have unsaved changes. Please only accept to leave if you don't mind losing those changes.")"
data-pipe="@T(" | ")"
data-add-url="@HttpUtility.JavaScriptStringEncode(Url.Action("Index", "Admin", new { area = "Orchard.MediaLibrary", dialog = true }))"
data-return-url="@HttpUtility.JavaScriptStringEncode(Request.RawUrl)">
<label @if (required) { <text> class="required" </text> }>@displayName</label>
data-return-url="@HttpUtility.JavaScriptStringEncode(Request.RawUrl)"
data-prompt-on-navigate="@promptOnNavigate.ToString().ToLower()">
<label @if (required) { <text> class="required" </text> }>@displayName</label>
<div class="message message-Warning media-library-picker-message">@T("You need to save your changes.")</div>
<div class="items media-library-picker" summary="@displayName">
<ul>