LockD&DMail

Bloque le drag and drop sur la messagerie

// ==UserScript==
// @name        LockD&DMail
// @namespace   Dreadcast
// @version     2.0.0
// @author      Odul, Isilin/Pelagia
// @match       https://www.dreadcast.net/Main
// @description Bloque le drag and drop sur la messagerie
// @license     https://github.com/Isilin/dreadcast-scripts?tab=GPL-3.0-1-ov-file
// @require     https://update.gf.qytechs.cn/scripts/507382/Dreadcast%20Development%20Kit.user.js
// @grant       GM_getValue
// @grant       GM_setValue
// ==/UserScript==

$(() => {
  const style = `
    #lock_message i.fa-lock-open {
      color: #999 !important;
    }

    #lock_message i.fa-lock {
      color: #a90f0f !important;
    }

    #lock_message {
      position: absolute;
      right: 0px;
      top: 5px;
      align-content: center;
    }

    #lock_message:has(i.fa-lock) {
      border: 1px solid #a90f0f;
    }

    #lock_message:has(i.fa-lock-open) {
      border: 1px solid #999;
    }
  `;

  const LOCK_TAG = 'dd_message_lock';

  let isLocked;

  const syncParams = () => {
    isLocked = DC.LocalMemory.get(LOCK_TAG);
  };

  const initPersistence = () => {
    DC.LocalMemory.init(LOCK_TAG, true);

    syncParams();
  };

  const loadUI = () => {
    MenuMessagerie.prototype.handleDrag = function () {
      $('#liste_messages .message:not(.ui-draggable)').draggable({
        cursorAt: {
          top: 0,
          left: -20,
        },
        helper: function () {
          var a = $('#liste_messages .content input:checked').length;
          return $(
            '<div id="dragged_msg"><span>' + (a ? a : '') + '</span></div>',
          );
        },
        start: function () {
          if ($('.fas', '#lock_message').hasClass('fa-lock-open'))
            return '-1' == $('#current_folder').attr('data-id')
              ? !1
              : (!$(this).hasClass('selected') &&
                  $('#liste_messages').length &&
                  nav.getMessagerie().messageUnselectAll(),
                void (
                  $('#folder_list:hidden').length &&
                  $('#liste_messages .folder_list').trigger('click')
                ));
        },
        stop: function () {
          if ($('.fas', '#lock_message').hasClass('fa-lock-open'))
            $('#liste_messages .folder_list').trigger('click');
        },
      });
    };

    $('#zone_messagerie').append(
      DC.UI.Button(
        'lock_message',
        isLocked
          ? '<i class="fas fa-lock" />'
          : '<i class="fas fa-lock-open" />',
        function () {
          if ($('.fas', this).hasClass('fa-lock')) {
            $('.fas', this).removeClass('fa-lock').addClass('fa-lock-open');
            DC.LocalMemory.set(LOCK_TAG, false);
          } else {
            $('.fas', this).removeClass('fa-lock-open').addClass('fa-lock');
            DC.LocalMemory.set(LOCK_TAG, true);
          }
        },
      ),
    );
  };

  $(document).ready(() => {
    initPersistence();

    loadUI();
    DC.Style.apply(style);
  });
});

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址