自动同步.js 2.33 KB
// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://*/*
// @grant        none
// ==/UserScript==

(function($) {
  'use strict';

  // Your code here...
  var MENU_DATE;

  function storageOper(_cookieName, obj) {
    var settingObj = {};

    $.each(obj, function(index, arr) {
      if (obj[index].hasOwnProperty('parent')) {
        settingObj.parent = obj[index].parent;
      }
      settingObj.title = obj[index].title;
      delete obj[index];
      localStorage.setItem(_cookieName, JSON.stringify(obj));
      return false;
    });

    return settingObj;
  }

  function hasStorage(name, date) {
    if (typeof localStorage.getItem(name) != 'string') {
      localStorage.setItem(name, JSON.stringify(date));
    }

    return !!localStorage.getItem(name);
  }

  function triggerClick(e) {
    if (e.length > 0) {
      e.click();
    }
  }

  hasStorage('menu_date', MENU_DATE);

  triggerClick($('[data-drupal-link-system-path="manage/department/add"]')[0]);
  triggerClick($('[data-drupal-link-system-path="admin/structure/menu/manage/main/add"]')[0]);

  var settingObj = storageOper('menu_date', $.parseJSON(localStorage.getItem('menu_date')));

  if ($('#edit-name-0-value').length > 0 && hasStorage('menu_date', MENU_DATE)) {

    $('#edit-name-0-value').val(settingObj.title);
    if (settingObj.hasOwnProperty('parent')) {
      $('#edit-parent option').each(function() {
        if ($(this).text() == settingObj.parent) {
          $('#edit-parent option').attr('selected', false);
          $(this).attr('selected', true);
        }
      });
    }

    $('#edit-submit').trigger('click');
  }

  if ($('#edit-title-0-value').length > 0 && $('#edit-link-0-uri').length > 0 && hasStorage('menu_date', MENU_DATE)) {

    $('#edit-link-0-uri').val('/');
    $('#edit-title-0-value').val(settingObj.title);

    if (settingObj.hasOwnProperty('parent')) {
      $('#edit-menu-parent option').each(function() {
        if ($(this).text().indexOf(settingObj.parent) > 0) {
          $('#edit-parent option').attr('selected', false);
          $(this).attr('selected', true);
          $('#edit-menu-parent').trigger("chosen:updated");
        }
      });
    }

    //$('#edit-submit').trigger('click');
  }

})(jQuery);