自动同步.js 3.11 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 = {}

  var TAXONOMY_DATE = {};

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

    return !!localStorage.getItem(name);
  }

  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;
    });

    if (hasStorage('link_date', TAXONOMY_DATE)) {
      var link_obj = $.parseJSON(localStorage.getItem('link_date'));
      $.each(link_obj, function(index, arr) {
        if (link_obj[index].taxonomy == settingObj.title) {
          settingObj.url = link_obj[index].url;
        }
      });
    }

    return settingObj;
  }

  hasStorage('menu_date', MENU_DATE);
  hasStorage('link_date', TAXONOMY_DATE);

  if ($('[data-drupal-link-system-path="manage/department/add"]').length > 0) {
    $('[data-drupal-link-system-path="manage/department/add"]')[0].click();
  }

  if ($('[data-drupal-link-system-path="admin/structure/menu/manage/main/add"]').length > 0) {
    $('[data-drupal-link-system-path="admin/structure/menu/manage/main/add"]')[0].click();
  }

  if ($('#edit-name-0-value').length > 0 && hasStorage('menu_date', MENU_DATE)) {
    var settingObj = storageOper('menu_date', $.parseJSON(localStorage.getItem('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) && hasStorage('link_date', TAXONOMY_DATE)) {
    var MenusettingObj = storageOper('menu_date', $.parseJSON(localStorage.getItem('menu_date')));
    $('#edit-link-0-uri').val('/');
    $('#edit-title-0-value').val(MenusettingObj.title);

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

    if (MenusettingObj.hasOwnProperty('url')) {
      $('#edit-link-0-uri').val('/taxonomy/term/' + MenusettingObj.url);
    } else {
      $('#edit-link-0-uri').val('/');
    }

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

})(jQuery);