您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
This script is a companion script to run with the "Installz Script"
// ==UserScript== // @name User Setup Loop // @namespace localhost // @version 0.1.3 // @description This script is a companion script to run with the "Installz Script" // @author [email protected] // @include *autoloop.us* // @grant none // @icon // ==/UserScript== 'use strict'; /*ItemList [#] Item 0 Advisor Accept Appt Every 1 Walkins Consume Capacity 2 Use Advisor from Last RO 3 Default Dealer Make 4 Sales Phone 5 Service Phone 6 parsedSettingsString 7 Sales Contact - Email 8 Sales Contact - Title 9 Service Contact - Name 10 Service Contact - Email 11 Service Contact - Title 12 Area Code 13 Appointment Confirmation - Voice 14 Appointment Confirmation - SMS 15 Appointment Confirmation - Email 16 Appointment Confirmation - BDC 17 Parts Department Link 18 Service Department Link 19 New Vehicles Link 20 Used Vehicles Link 21 Sales Specials Link 22 Service Monday Open 23 Service Monday Close 24 Service Tuesday Open 25 Service Tuesday Close 26 Service Wednesday Open 27 Service Wednesday Close 28 Service Thursday Open 29 Service Thursday Close 30 Service Friday Open 31 Service Friday Close 32 Service Saturday Open 33 Service Saturday Close 34 Service Sunday Open 35 Service Sunday Close 36 Sales Monday Open 37 Sales Monday Close 38 Sales Tuesday Open 39 Sales Tuesday Close 40 Sales Wednesday Open 41 Sales Wednesday Close 42 Sales Thursday Open 43 Sales Thursday Close 44 Sales Friday Open 45 Sales Friday Close 46 Sales Saturday Open 47 Sales Saturday Close 48 Sales Sunday Open 49 Sales Sunday Close 50 Missed Appointment - Voice 51 Missed Appointment - SMS 52 Missed Appointment - Email 53 Missed Appointment - BDC 54 Customer Recovery - Voice 55 Customer Recovery - SMS 56 Customer Recovery - Email 57 Customer Recovery - BDC 58 Declined Repairs - Voice 59 Declined Repairs - SMS 60 Declined Repairs - Email 61 Declined Repairs - BDC 62 Parts Arrival - Voice 63 Parts Arrival - SMS 64 Parts Arrival - Email 65 Parts Arrival - BDC 66 Scheduled Maint - Voice 67 Scheduled Maint - SMS 68 Scheduled Maint - Email 69 Scheduled Maint - BDC 70 Service Completion - Voice 71 Service Completion - SMS 72 Service Completion - Email 73 Service Completion - BDC 74 Service FollowUp - Voice 75 Service FollowUp - SMS 76 Service FollowUp - Email 77 Service FollowUp - BDC 78 Service Intro - Voice 79 Service Intro - SMS 80 Service Intro - Email 81 Service Intro - BDC 82 State Inspection Reminder - Voice 83 State Inspection Reminder - SMS 84 State Inspection Reminder - Email 85 State Inspection Reminder - BDC 86 Tires Due - Voice 87 Tires Due - SMS 88 Tires Due - Email 89 Tires Due - BDC 90 Vehicle Accessories - Voice 91 Vehicle Accessories - SMS 92 Vehicle Accessories - Email 93 Vehicle Accessories - BDC 94 Customer Birthday - Voice 95 Customer Birthday - SMS 96 Customer Birthday - Email 97 Customer Birthday - BDC 98 Ext. Service Contract - Voice 99 Ext. Service Contract - SMS 100 Ext. Service Contract - Email 101 Ext. Service Contract - BDC 102 Lease Expiration - Voice 103 Lease Expiration - SMS 104 Lease Expiration - Email 105 Lease Expiration - BDC 106 Sales FollowUp - Voice 107 Sales FollowUp - SMS 108 Sales FollowUp - Email 109 Sales FollowUp - BDC 110 Service Contract FollowUp - Voice 111 Service Contract FollowUp - SMS 112 Service Contract FollowUp - Email 113 Service Contract FollowUp - BDC 114 Service to Sales - Voice 115 Service to Sales - SMS 116 Service to Sales - Email 117 Service to Sales - BDC 118 Trade Cycle - Voice 119 Trade Cycle - SMS 120 Trade Cycle - Email 121 Trade Cycle - BDC 122 Vehicle Anniversary - Voice 123 Vehicle Anniversary - SMS 124 Vehicle Anniversary - Email 125 Vehicle Anniversary - BDC 126 Facebook Link 127 Twitter Link 128 Youtube Link 129 Instagram Link 130 Schedule Appt Link 131 Sales Signatory - Name 132 Sales Signatory - Title 133 Sales Signatory - Phone 134 Sales Signatory - Email 135 Service Signatory - Name 136 Service Signatory - Title 137 Service Signatory - Phone 138 Service Signatory - Email 139 Tire URL 140 Notifications - Voice 141 Notifications - SMS 142 Notifications - Email 143 Show Pricing in OCAS 144 Sales User 1 145 Sales User 2 146 Sales User 3 147 Sales User 4 148 Sales User 5 149 Sales User 6 150 Sales User 7 151 Sales User 8 152 Sales User 9 153 Sales User 10 154 Service User 1 155 Service User 2 156 Service User 3 157 Service User 4 158 Service User 5 159 Service User 6 160 Service User 7 161 Service User 8 162 Service User 9 163 Service User 10 164 Website URL 165 Sales Print Friendly Hours 1 166 Sales Print Friendly Hours 2 167 Sales Print Friendly Hours 3 168 Service Print Friendly Hours 1 169 Service Print Friendly Hours 2 170 Service Print Friendly Hours 3 171 Sales Follow Up Survey 172 Service Follow Up Survey 173 Msging name 174 Sales User 11 175 Sales User 12 176 Sales User 13 177 Sales User 14 178 Sales User 15 179 Sales User 16 180 Sales User 17 181 Sales User 18 182 Service User 11 183 Service User 12 184 Service User 13 185 Service User 14 186 Service User 15 187 Service User 16 188 Service User 17 189 Service User 18 */ //user management home page if ((window.location.href == ('https://autoloop.us/DMS/App/DealershipSettings/UserManagement.aspx')) || (window.location.href == ('https://autoloop.us/DMS/App/DealershipSettings/UserManagement.aspx#!'))) { var userLoopStatus = localStorage.getItem("userLoopStatus"); if (userLoopStatus == "y") { $("[data-tip='Add New User']").click(); //click "add new user" } else if (userLoopStatus == "n") { var errorCount = localStorage.getItem("errorCount"); var errorMsg = localStorage.getItem("errorMsg"); alert("User Setup Complete \n\nNOTE: Remember to disable the User Loop!"); if (errorCount.length >= 1) { alert(errorMsg); } } function UserManagementHomePage() { $("pre").append("<button id='startUserLoopBtn' type='button'><font color='black'>Start User Setup Loop</font></button>"); //("<br>User Loop Enabled? <input type= 'checkbox' id= 'enableUserLoop' value= 'enableUserLoop'>"); $("#startUserLoopBtn").click(function(){ var userDataGraveyard = ""; var pageWaitStatus = "n"; var completeUserStatus = "n"; var userLoopStatus = "y"; var userSlotGraveyard = ""; var errorCount; var errorMsg = "Some Users Could Not Be Added Due to Errors: \n"; localStorage.setItem("userDataGraveyard", userDataGraveyard); localStorage.setItem("userLoopStatus", userLoopStatus); localStorage.setItem("pageWaitStatus", pageWaitStatus); localStorage.setItem("completeUserStatus", completeUserStatus); localStorage.setItem("userSlotGraveyard", userSlotGraveyard); localStorage.setItem("errorCount", errorCount); localStorage.setItem("errorMsg", errorMsg); $("[data-tip='Add New User']").click(); }); } UserManagementHomePage(); } //add new user page if (window.location.href == ('https://autoloop.us/DMS/App/DealershipSettings/EditUser.aspx')) { var completeUserStatus = localStorage.getItem("completeUserStatus"); userLoopStatus = "n"; localStorage.setItem("userLoopStatus", userLoopStatus); //if user already exists if ($(".notificationError .messageContents").text().includes("There was a problem with your submission.That Username already exists in the system. Either choose a different Username or add this User from the Add Existing User screen.Show Errors")) { var existingUserEmail = $("[name='ctl00\$ctl00\$Main\$Main\$tfEmailAddress\$textBox']").val(); userLoopStatus = "y"; localStorage.setItem("userLoopStatus", userLoopStatus); localStorage.setItem("existingUserEmail", existingUserEmail); window.location.href = "https://autoloop.us/DMS/App/DealershipSettings/AddExistingUser.aspx"; } else if (($(".notificationError .messageContents").text().includes("'Email Address' contains an invalid email address.")) || ($(".notificationError .messageContents").text().includes("'First Name' is a required field.")) || ($(".notificationError .messageContents").text().includes("'Last Name' is a required field."))) { errorCount = localStorage.getItem("errorCount"); errorMsg = localStorage.getItem("errorMsg"); userLoopStatus = localStorage.getItem("userLoopStatus");; errorCount += "i"; //instead of errorCount++, i am adding one character per time and will count the length of the string errorMsg += "\n" + $("[onkeypress] tr:nth-of-type(1) .invalidField").val(); userLoopStatus = "y"; localStorage.setItem("errorCount", errorCount); localStorage.setItem("errorMsg", errorMsg); localStorage.setItem("userLoopStatus", userLoopStatus); window.location.href = "https://autoloop.us/DMS/App/DealershipSettings/UserManagement.aspx"; } else { if (completeUserStatus == "n") { function UserSetup() { var settingsString = localStorage.getItem("settingsKeyStorage"); //get stored settings key from user management home page var parsedSettingsString = settingsString.split('~'); //settings key parsed, using '~' as delimiter var userDataGraveyard = localStorage.getItem("userDataGraveyard"); //get stored settings key from user management home page var userSlotGraveyard = localStorage.getItem("userSlotGraveyard"); //store "n" so that this code only runs when it is supposed to var UserItemNumbers = { "salesUser1" : parsedSettingsString[144], "salesUser2" : parsedSettingsString[145], "salesUser3" : parsedSettingsString[146], "salesUser4" : parsedSettingsString[147], "salesUser5" : parsedSettingsString[148], "salesUser6" : parsedSettingsString[149], "salesUser7" : parsedSettingsString[150], "salesUser8" : parsedSettingsString[151], "salesUser9" : parsedSettingsString[152], "salesUser10" : parsedSettingsString[153], "salesUser11" : parsedSettingsString[174], "salesUser12" : parsedSettingsString[175], "salesUser13" : parsedSettingsString[176], "salesUser14" : parsedSettingsString[177], "salesUser15" : parsedSettingsString[178], "salesUser16" : parsedSettingsString[179], "salesUser17" : parsedSettingsString[180], "salesUser18" : parsedSettingsString[181], "serviceUser1" : parsedSettingsString[154], "serviceUser2" : parsedSettingsString[155], "serviceUser3" : parsedSettingsString[156], "serviceUser4" : parsedSettingsString[157], "serviceUser5" : parsedSettingsString[158], "serviceUser6" : parsedSettingsString[159], "serviceUser7" : parsedSettingsString[160], "serviceUser8" : parsedSettingsString[161], "serviceUser9" : parsedSettingsString[162], "serviceUser10" : parsedSettingsString[163], "serviceUser11" : parsedSettingsString[182], "serviceUser12" : parsedSettingsString[183], "serviceUser13" : parsedSettingsString[184], "serviceUser14" : parsedSettingsString[185], "serviceUser15" : parsedSettingsString[186], "serviceUser16" : parsedSettingsString[187], "serviceUser17" : parsedSettingsString[188], "serviceUser18" : parsedSettingsString[189], } for (var user in UserItemNumbers) { var currentUser = UserItemNumbers[user]; var userDataGraveyardArray = userDataGraveyard.split(">"); var findUserStatus = "n"; var matchCounter = 0; var userLoopStatus = localStorage.getItem("userLoopStatus"); if (userSlotGraveyard.includes(user) == true) { //do nothing } else { for (var i = 0; i < userDataGraveyardArray.length; i++) { if ((userDataGraveyardArray[i] == currentUser) && (currentUser !== "**")) { //(userDataGraveyardArray[i] !== currentUser) { matchCounter++; } } if (currentUser == "**") { //if the user slot is empty userSlotGraveyard += "~" + user; localStorage.setItem("userSlotGraveyard", userSlotGraveyard); } else if (matchCounter <= 0) { //if the user is not empty or a repeat userSlotGraveyard += "~" + user; localStorage.setItem("userSlotGraveyard", userSlotGraveyard); doo(); break; } else if (matchCounter >= 1) { //if userSlotGraveyard += "~" + user; localStorage.setItem("userSlotGraveyard", userSlotGraveyard); } } if (userSlotGraveyard.split("~").length >= 37) { userLoopStatus = "n"; localStorage.setItem("userLoopStatus", userLoopStatus); window.location.href = "https://autoloop.us/DMS/App/DealershipSettings/UserManagement.aspx"; } } function doo() { findUserStatus = "y"; var userDataGraveyardPlus = userDataGraveyard + ">" + currentUser; completeUserStatus = "y"; userLoopStatus = "y"; localStorage.setItem("userLoopStatus", userLoopStatus); localStorage.setItem("userDataGraveyard", userDataGraveyardPlus); localStorage.setItem("completeUserStatus", completeUserStatus); currentUser = currentUser.split("*"); $("[placeholder]").val(currentUser[0].trim()); $("#executeButton").click(); } } UserSetup(); } else if (completeUserStatus == "y") { completeUserStatus = "n"; localStorage.setItem("completeUserStatus", completeUserStatus); $("[onkeypress] > div:nth-of-type(4) .GeneratedButtonLink:nth-of-type(1)").click(); } } } //add existing user page if (window.location.href == ('https://autoloop.us/DMS/App/DealershipSettings/AddExistingUser.aspx')) { $(window).load(function() { var existingUserEmail = localStorage.getItem("existingUserEmail"); if ($("#ctl00_ctl00_MasterPageBodyTag > div.barWrapper > div.notificationSuccess.notificationMessage > div > ul > li").text().includes(" to this Company. You can add more users, return to your company's settings screen or Edit ")) { window.location.href = "https://autoloop.us/DMS/App/DealershipSettings/EditUser.aspx?UserName=" + existingUserEmail; } else { $("[name='ctl00\$ctl00\$Main\$Main\$tfUserName\$textBox']").val(existingUserEmail); $("[onkeypress] div .GeneratedButtonLink:nth-of-type(2)").click(); } }); } //edit existing user page if (window.location.href.includes('https://autoloop.us/DMS/App/DealershipSettings/EditUser.aspx?UserName=')) { var permissions = localStorage.getItem("permissions"); var permissionsCheck = { "ServiceAdvisorSettingsBtn" : "Advisor", "ServiceManagerSettingsBtn" : "Service Manager", "SalesPersonSettingsBtn" : "Sales Person", "SalesManagerSettingsBtn" : "Sales Manager", "TechnicianSettingsBtn" : "Technician", "BDCRepSettingsBtn" : "BDC Rep", "BDCManagerSettingsBtn" : "BDC Manager", } for (var permission in permissionsCheck) { if (permissions == permissionsCheck[permission]) { $("#" + permission).click(); break; } } //inbox email alias if ($('#ctl00_ctl00_Main_Main_txtInboxAlias').length >= 1) { function Alias() { var firstName = $('#ctl00_ctl00_Main_Main_tfFirstName_textBox').val(); var lastName = $('#ctl00_ctl00_Main_Main_tfLastName_textBox').val(); var alias = (firstName.substring(0, 1)) + lastName; $('#ctl00_ctl00_Main_Main_txtInboxAlias').val(alias); } Alias(); } $("[onkeypress] > div:nth-of-type(4) .GeneratedButtonLink:nth-of-type(1)").click(); //save }