EOL update entry

try to take over the world!

  1. // ==UserScript==
  2. // @name EOL update entry
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description try to take over the world!
  6. // @author Yan
  7. // @include http://dx-pvs-stage.juniper.net/eol/eolRecord/edit.htm*
  8. // @grant none
  9. // ==/UserScript==
  10. /* jshint -W097 */
  11.  
  12.  
  13. var input1 = document.createElement('input');
  14. input1.id = 'xlsfile';
  15. input1.type = 'file';
  16. input1.name = 'file';
  17. input1.accept = 'application/vnd.ms-excel';
  18.  
  19. (function injectJs() {
  20. var scr = document.createElement('script');
  21. scr.type = 'text/javascript';
  22. scr.src = 'https://cdn.rawgit.com/SheetJS/js-xls/master/xls.js';
  23. document.getElementsByTagName('head') [0].appendChild(scr);
  24. })()
  25.  
  26.  
  27. function to_json(workbook) {
  28. var result = {};
  29. workbook.SheetNames.forEach(function(sheetName) {
  30. var roa = XLS.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
  31. if(roa.length > 0){
  32. result[sheetName] = roa;
  33. }
  34. });
  35. return result;
  36. }
  37. prefix = 'http://dx-pvs-stage.juniper.net/eol/eolRecord/edit.htm?recordId='
  38. tail = '&action=view';
  39. mapping = {"EOL_MATRIX_ID":"record.matrixId",
  40. "MODEL_ID":"record.model.modelId",
  41. "ANNOUNCEMENT_TYPE":"record.announcementType",
  42. "NOTE":"record.note",
  43. "PRODUCT":"record.product",
  44. "LAST_SOFTWARE_VERSION":"record.lastSoftwareVersion",
  45. "TOP_LEVEL_ASSY_NUM":"record.topLevelAssyNum",
  46. "CIRCUIT_ASSY_NUM":"record.circuitAssyNum",
  47. "PSN_NUMBER":"record.psnNumber.id",
  48. "PSN_NUMBER_URL":"record.psnNumber.url",
  49. "MEMORY":"record.memory",
  50. "IS_MEMORY_USED":"record.memoryUsed",
  51. "STATUS":"record.status",
  52. "REPLACEMENT_MODEL":"record.replacementModel",
  53. "DESC_REPLACEMENT_MODEL":"record.descReplacementModel",
  54. "MINIMUM_SOFTWARE_VERSION":"record.minimumSoftwareVersion",
  55. "ANNOUNCED_DATE":"announcedDateStr",
  56. "END_SALE_DATE":"endSaleDateStr",
  57. "LAST_CUSTOMER_RECEIPT_DATE":"lastCustomerReceiptDateStr",
  58. "END_WARRANTY_SVC_CNVRSN_DATE":"endWarrantyServiceConversionDateStr",
  59. "FIRST_SERVICE_STEP_DOWN_DATE":"firstServiceStepDownDateStr",
  60. "END_ENGINEERING_DATE":"endEngineeringDateStr",
  61. "END_ENGINEERING_DATE_HW":"endEngineeringDateHardwareStr",
  62. "SECOND_SERVICE_STEP_DOWN_DATE":"secondServiceStepDownDateStr",
  63. "END_SERVICE_CONTRACT_RNWL_DATE":"endServiceContractRenewalDateStr",
  64. "END_SERVICE_DATE":"endServiceDateStr"};
  65.  
  66. function handlefile(e) {
  67. var f = e.target.files[0];
  68. var reader = new FileReader();
  69. //var name = f.name;
  70. //console.log(name);
  71. reader.readAsBinaryString(f);
  72. reader.onload = function(e) {
  73. console.log('read file suc');
  74. var data = e.target.result;
  75. var X = XLS;
  76. var wb = X.read(data, {
  77. type: 'binary'
  78. });
  79. var xjson = to_json(wb);
  80. console.log(xjson);
  81. var rowall = xjson[Object.keys(xjson)[0]];
  82. for (var roww in rowall) {
  83. (function() {
  84. var contents = rowall[roww];
  85. var m_id = contents['EOL_MATRIX_ID'];
  86. var urll = prefix + m_id + tail;
  87. $.get(urll, function(data) {
  88. var form = $('#editRecordForm', data);
  89. for (var key in contents) {
  90. //form[mapping[key]] = contents[key];
  91. var map1 = mapping[key];
  92. $('#action', form).val('edit');
  93. $('[name='+map1+']',form[0]).val(contents[key]);
  94. }
  95. $.ajax({
  96. type: "POST",
  97. data: form.serialize(),
  98. traditional: true,
  99. url: "http://dx-pvs-stage.juniper.net/eol/eolRecord/edit.htm",
  100. success: function(data) {
  101. console.log(m_id + " success updated");
  102. }
  103. })
  104. })
  105. })()
  106. }
  107. }
  108. }
  109.  
  110. $(document).ready(function() {
  111. state = document.getElementById('left');
  112. state.appendChild(input1);
  113. $('#xlsfile')[0].addEventListener('change', handlefile, false);
  114. })

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址