自动同步.js 4.13 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': 'menu首页'
      }
    },
    TAXONOMY_DATE = {
      '0': {
        'title': 'date首页'
      }
    },
    NODE_DATE = {
      '0': {
        'title': 'node首页'
      }
    },
    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 ($('[data-drupal-link-system-path="manage/page/add"]').length > 0) {
    $('[data-drupal-link-system-path="manage/page/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-title-0-value').length > 0 && hasStorage('node_date', NODE_DATE)) {
    var NodesettingObj = storageOper('node_date', $.parseJSON(localStorage.getItem('node_date')));
    $('##edit-title-0-value').val(NodesettingObj.title);
    $('#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);