From 5a633330eba6644e24d2b6a18f15305fd8798338 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Mon, 28 Jul 2014 17:17:32 -0700 Subject: [PATCH] Adding PromptOnNavigate option. --- .../Scripts/media-library-picker.js | 33 ++++++++++--------- .../Fields/MediaLibraryPicker.Edit.cshtml | 3 +- .../Views/MediaLibraryPicker.cshtml | 6 ++-- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Scripts/media-library-picker.js b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Scripts/media-library-picker.js index e451a07bd..27110b0c0 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Scripts/media-library-picker.js +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Scripts/media-library-picker.js @@ -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 = '
  • {thumbnail}

    {title}

    ' + removeText + '' + pipe + '' + editText + '
  • '; @@ -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(); diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/EditorTemplates/Fields/MediaLibraryPicker.Edit.cshtml b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/EditorTemplates/Fields/MediaLibraryPicker.Edit.cshtml index 33ecc2ecd..e7ff51031 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/EditorTemplates/Fields/MediaLibraryPicker.Edit.cshtml +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/EditorTemplates/Fields/MediaLibraryPicker.Edit.cshtml @@ -9,4 +9,5 @@ Multiple: settings.Multiple, Required: settings.Required, Hint: settings.Hint, - ContentItems: Model.ContentItems) \ No newline at end of file + ContentItems: Model.ContentItems, + PromptOnNavigate: true) \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/MediaLibraryPicker.cshtml b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/MediaLibraryPicker.cshtml index b5a7bb466..d5dc16ee5 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/MediaLibraryPicker.cshtml +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Views/MediaLibraryPicker.cshtml @@ -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)Model.ContentItems ?? Enumerable.Empty(); var contentManager = WorkContext.Resolve(); } @@ -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)"> - + data-return-url="@HttpUtility.JavaScriptStringEncode(Request.RawUrl)" + data-prompt-on-navigate="@promptOnNavigate.ToString().ToLower()"> +
    @T("You need to save your changes.")