HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/HKemperman1/osthoes.nl/wwwroot/admin/Menus/ModuleActions/ModuleActions.ascx
<%@ Control Language="C#" AutoEventWireup="true" Inherits="DotNetNuke.Admin.Containers.ModuleActions" Codebehind="ModuleActions.ascx.cs" %>
<asp:LinkButton runat="server" ID="actionButton" />

<%
    if (SupportsQuickSettings)
    {
        %>
        <li id="moduleActions-<% = ModuleContext.Configuration.ModuleID %>-QuickSettings" style="display:none">
            <div>
                <div class="qsHeader"><%=Localization.GetSafeJSString("QuickSettings", Localization.SharedResourceFile) %></div>
                <div class="qsContainer">
                    <asp:Panel id="quickSettings" runat="server">
    
                    </asp:Panel>
                </div>
                <div class="qsFooter">
                    <a class="secondarybtn"><%=Localization.GetSafeJSString("Cancel", Localization.SharedResourceFile) %></a>
                    <a class="primarybtn"><%=Localization.GetSafeJSString("Save", Localization.SharedResourceFile) %></a>
                </div>
            </div>
        </li>
        <%
    }
%>

<script type="text/javascript">
    /*globals jQuery, window */
    (function ($) {
        var moduleId = <% = ModuleContext.ModuleId %>;
        var displayQuickSettings = <% = DisplayQuickSettings.ToString().ToLower() %>;
        var supportsQuickSettings = <% = SupportsQuickSettings.ToString().ToLower() %>;

        function setUpActions() {
            var tabId = <% = ModuleContext.TabId %>;

            //Initialise the actions menu plugin
            $('#<%= actionButton.ClientID %>').dnnModuleActions({
                    actionButton: "<% =actionButton.UniqueID %>",
                    moduleId: moduleId,
                    tabId: tabId,
                    customActions: <% = CustomActionsJSON %>,
                    adminActions: <% = AdminActionsJSON %>,
                    panes: <% = Panes %>,
                    customText: "<% = CustomText %>",
                    adminText: "<% = AdminText %>",
                    moveText: "<% = MoveText %>",
                    topText: '<% = Localization.GetSafeJSString(LocalizeString("MoveTop.Action"))%>',
                    upText: '<% = Localization.GetSafeJSString(LocalizeString("MoveUp.Action"))%>',
                    downText: '<% = Localization.GetSafeJSString(LocalizeString("MoveDown.Action"))%>',
                    bottomText: '<% = Localization.GetSafeJSString(LocalizeString("MoveBottom.Action"))%>',
                    movePaneText: '<% = Localization.GetSafeJSString(LocalizeString("MoveToPane.Action"))%>',
                    deleteText: '<%= Localization.GetSafeJSString("DeleteItem.Text", Localization.SharedResourceFile) %>',
                    yesText: '<%= Localization.GetSafeJSString("Yes.Text", Localization.SharedResourceFile) %>',
                    noText: '<%= Localization.GetSafeJSString("No.Text", Localization.SharedResourceFile) %>',
                    confirmTitle: '<%= Localization.GetSafeJSString("Confirm.Text", Localization.SharedResourceFile) %>',
                    rootFolder: '<%= Page.ResolveClientUrl("~/") %>',
                    supportsMove: <% = SupportsMove.ToString().ToLower() %>,
                    supportsQuickSettings: supportsQuickSettings,
                    displayQuickSettings: displayQuickSettings,
                    isShared : <% = IsShared.ToString().ToLower() %>
                }
            );
        }

        // register window resize on ajaxComplete to reposition action menus - only in edit mode
        // after page fully load
        var resizeThrottle;
        $(window).resize(function () {
            if (resizeThrottle) {
                clearTimeout(resizeThrottle);
                resizeThrottle = null;
            }
            resizeThrottle = setTimeout(
                function () {
                    var menu = $('.actionMenu');
                    menu.each(function () {
                        var $this = $(this);
                        var id = $this.attr('id');
                        if (id) {
                            var mId = id.split('-')[1];
                            if (moduleId == mId) {
                                var container = $(".DnnModule-" + mId);
                                var root = $('ul.dnn_mact', $this);
                                var containerPosition = container.offset();
                                var containerWidth = container.width();

                                var rootMenuWidth = (supportsQuickSettings) ? 85 : 65;

                                root.css({
                                    position: "absolute",
                                    marginLeft: 0,
                                    marginTop: 0,
                                    top: containerPosition.top,
                                    left: containerPosition.left + containerWidth - rootMenuWidth
                                });

                                if (displayQuickSettings) {
                                    var ul = $('#moduleActions-' + mId + ' .dnn_mact > li.actionQuickSettings > ul');
                                    var $self = ul.parent();
                                    if ($self.length > 0) {
                                        var windowHeight = $(window).height();
                                        var windowScroll = $(window).scrollTop();
                                        var thisTop = $self.offset().top;
                                        var atViewPortTop = (thisTop - windowScroll) < windowHeight / 2;

                                        var ulHeight = ul.height();

                                        if (!atViewPortTop) {
                                            ul.css({
                                                top: -ulHeight,
                                                right: 0
                                            }).show('slide', { direction: 'down' }, 80, function () {
                                                dnn.addIframeMask(ul[0]);
                                                displayQuickSettings = false;
                                            });
                                        }
                                        else {
                                            ul.css({
                                                top: 20,
                                                right: 0
                                            }).show('slide', { direction: 'up' }, 80, function () {
                                                dnn.addIframeMask(ul[0]);
                                                displayQuickSettings = false;
                                            });
                                        }
                                    }
                                }
                               
                            }
                        }
                    });
                    resizeThrottle = null;
                },
                100
            );
        });

        // Webkit based browsers (like Chrome and Safari) can access images width and height properties only after images have been fully loaded. 
        // It will cause menu action out of scope, TO fix this, use $(window).load instead of $(document).ready
        $(window).load(function () {
            setUpActions();

            $(document).ajaxComplete(function () {
                $(window).resize();
            });
            $(window).resize();
        });        

    } (jQuery));
</script>