NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Job History phonetool amazon
// @description Add Job History and Job Data into PhoneTool
// @author shjaisw@
// @namespace https://w.amazon.com/index.php/EnvImprovementNinjas/JobHistory
// @version 20221215
// @match https://phonetool.amazon.com/people/*
// @match https://phonetool.amazon.com/users/*
// @match https://connect.amazon.com/people/*
// @match https://connect.amazon.com/users/*
// @license MIT
// @updateURL https://openuserjs.org/meta/kalpdev.1/Job_History_phonetool_amazon.meta.js
// @downloadURL https://openuserjs.org/install/kalpdev.1/Job_History_phonetool_amazon.user.js
// @match https://admindirectory.corp.amazon.com/users/*
// @match https://admindirectory.corp.amazon.com/people/*
// @require https://m.media-amazon.com/images/I/41aUf1WGWNL./handlebars.runtime_with_templates.min-v4.7.7.js#sha256=480441feaaf3810569c4f629d9bdca7ca10975fd30f53a7a3a1ae4cb04c3187d
// @require https://m.media-amazon.com/images/I/61BHMfGpmbL./jquery-1.12.4.min.js#sha256=668b046d12db350ccba6728890476b3efee53b2f42dbb84743e5e9f1ae0cc404
// @require https://m.media-amazon.com/images/I/412BflKV--L./openid.xhr.min.js#sha256=8a17dfbab69c3482e6308f5083cb5eb940a66d5baa1fc10b42953578549d7de6
// ==/UserScript==
// Note: The version string must be formatted YYYYMMDD to help Greasemonkey's version comparison logic
(function($, Handlebars) {
'use strict';
var fetchJobData = function(user) {
return $.ajax({
method: "GET",
url: 'https://phonetool.amazon.com/users/' + user + '.json',
xhrFields: {
withCredentials: true
},
dataType: 'json'
});
};
var fetchJobHistory = function(user) {
return $.ajax({
method: "GET",
url: 'https://ekarulf.corp.amazon.com/cors/job-history/',
data: {
login: user
},
xhrFields: {
withCredentials: true
},
dataType: 'json'
});
};
var renderJobHistory = function(jobHistory) {
var template = Handlebars.templates["job-history.html"];
var viewModel = {};
if ($.isArray(jobHistory) && jobHistory.length > 0) {
viewModel.history = jobHistory;
}
return template(viewModel);
};
var renderJobData = function(jobData) {
var template = Handlebars.templates["job-data.html"];
var viewModel = {};
if (typeof jobData.job_level === 'number') {
viewModel.job_level = jobData.job_level;
}
if (typeof jobData.total_tenure_formatted === 'string') {
viewModel.total_tenure_formatted = jobData.total_tenure_formatted;
}
return template(viewModel);
};
// Main function
var user = $('.login').text().trim();
// Patch to fix Firefox returning no data
if (user.length == 0) {
user = document.location.href.substring(document.location.href.lastIndexOf('/')+1, document.location.href.length);
}
$.when(fetchJobHistory(user)).done(function(jobHistory) {
// Insert Job History after org chart in DOM
var jobHistoryHtml = renderJobHistory(jobHistory);
$('.well.org-chart').after(jobHistoryHtml);
});
$.when(fetchJobData(user)).done(function(jobData) {
// Insert job data after employee id
var jobDataHtml = renderJobData(jobData);
$('.UserDetailsTable').append(jobDataHtml);
});
}(jQuery.noConflict(true), Handlebars));