daily pastebin goal
41%
SHARE
TWEET

Untitled

a guest Jan 29th, 2018 54 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         SearchIcrisGrouping
  3. // @namespace    http://tampermonkey.net/
  4. // @version      1.0
  5. // @description  Grouper for http://recording.adcogov.org
  6. // @author       IB
  7. // @match        https://searchicris.co.weld.co.us/recorder/eagleweb/docSearch*
  8. // @grant        none
  9. // @require      https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js
  10. // @require      https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js
  11. // ==/UserScript==
  12.  
  13.  
  14. var App = (function () {
  15.     var saveButton = document.createElement('button');
  16.     var loadInput = document.createElement('input');
  17.     var groupNameInput = document.createElement('input');
  18.     var dropDown = document.createElement('select');
  19.     var documents = $('select[name=__search_select]');
  20.     var data = {};
  21.  
  22.  
  23.     return {
  24.     start : function(){
  25.  
  26.         var trigger = function(){
  27.             var bindings = $(dropDown).val();
  28.              var innerDocuments = $(documents).html().replace(new RegExp('selected="selected"', 'g'), '');
  29.                                  $(documents).empty();
  30.                                  $(documents).html(innerDocuments);
  31.                                  var bindings = bindings.split(',');
  32.                                  for(let i = 0; i < bindings.length; i++){
  33.                                      $('option[value=' + bindings[i] + ']').attr('selected', 'selected');
  34.                                  }
  35.         };
  36.  
  37.         saveButton.innerText = 'Save groups';
  38.         saveButton.type = 'button';
  39.         loadInput.innerText = 'Load groups';
  40.         loadInput.type = 'file';
  41.         groupNameInput.type = 'text';
  42.  
  43.         $(dropDown).change(trigger);
  44.  
  45.         $(loadInput).on('change', function(evt){
  46.             var f = evt.target.files[0];
  47.  
  48.             if (f) {
  49.                 var r = new FileReader();
  50.                 r.onload = function(e) {
  51.                     var contents = e.target.result;
  52.                     if(contents){
  53.                         data = JSON.parse(contents);
  54.                         var i = 0;
  55.                         $(dropDown).empty();
  56.                         for(prop in data){
  57.                             i++;
  58.                             var option = $('<option value="' + data[prop] + '">' + prop + '</option>');
  59.  
  60.                             $(dropDown).append(option);
  61.                         };
  62.                         if(i === 1){
  63.                           trigger();
  64.                         }
  65.                     }
  66.                 };
  67.                 r.readAsText(f);
  68.             } else {
  69.                 alert("Failed to load file");
  70.             }
  71.         });
  72.  
  73.         $(saveButton).on('click', function(){
  74.             if($(groupNameInput).val())
  75.             {
  76.                 data[$(groupNameInput).val()] = $(documents).val();
  77.                 var blob = new Blob([JSON.stringify(data)], {type: "text/plain;charset=utf-8"});
  78.                if (window.navigator.msSaveOrOpenBlob) // IE10+
  79.         window.navigator.msSaveOrOpenBlob(blob, 'groups.json');
  80.     else {
  81.         var a = document.createElement("a"),
  82.                 url = URL.createObjectURL(blob);
  83.         a.href = url;
  84.         a.download = 'groups.json';
  85.         document.body.appendChild(a);
  86.         a.click();
  87.         setTimeout(function() {
  88.             document.body.removeChild(a);
  89.             window.URL.revokeObjectURL(url);
  90.         }, 0);
  91.     }
  92.             }
  93.             else{
  94.                 alert('Specify group name');
  95.             }
  96.         });
  97.  
  98.         $('#searchDocIds').prepend([saveButton, groupNameInput, loadInput, dropDown]);
  99.  
  100.         $('select[name=__search_select]');
  101.     }
  102. };}());
  103.  
  104. App.start();
RAW Paste Data
Pastebin PRO WINTER Special!
Get 40% OFF Pastebin PRO accounts!
Top