自动同步.js 4.45 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 = {
          '0': {
            'title': '首页'
          }
        },
        TAXONOMY_DATE = {
          '0': {
            'title': '首页'
          }
        },
        NODE_DATE = {
          '0': {
            'title': '首页'
          }
        },
        TAXONOMY_INIT_DATE = {},
        NODE_INIT_DATE = {};

    function hasStorage(name, date) {
      if (JSON.stringify(date) === '{}') {
        return false;
      }

      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_INIT_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;
            delete link_obj[index];
          }
        });
      }

      return settingObj;
    }

    hasStorage('menu_date', MENU_DATE);
    hasStorage('toxonomy_link_date', TAXONOMY_INIT_DATE);
    hasStorage('node_link_date', NODE_INIT_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 ($('.taxonomy-term-department-form #edit-name-0-value').length > 0 && hasStorage('taxonomy_date', TAXONOMY_DATE)) {
      var settingObj = storageOper('taxonomy_date', $.parseJSON(localStorage.getItem('taxonomy_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 ($('.node-page-form #edit-name-0-value').length > 0 && hasStorage('node_date', NODE_DATE)) {
      var NodesettingObj = storageOper('node_date', $.parseJSON(localStorage.getItem('node_date')));

      $('#edit-name-0-value').val(NodesettingObj.title);
      if (NodesettingObj.hasOwnProperty('parent')) {
        $('#edit-parent option').each(function() {
          if ($(this).text() == NodesettingObj.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) && (JSON.stringify(localStorage.getItem('toxonomy_link_date')) !== '{}') || (JSON.stringify(localStorage.getItem('node_link_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);