Skip to content

Instantly share code, notes, and snippets.

@pcon
Last active December 20, 2015 06:49
Show Gist options
  • Save pcon/6089279 to your computer and use it in GitHub Desktop.
Save pcon/6089279 to your computer and use it in GitHub Desktop.
/*jslint browser: true, regexp: true */
/*global casper, require, jQuery*/
var BASE_URL, LOGIN_URL, LOGIN_USERNAME, LOGIN_PASSWORD, SCHEDULED_JOBS_URI, casp;
casp = require('casper').create({
clientScripts: [
'jquery.min.js'
],
viewportSize: {
width: 1024,
height: 768
},
verbose: true,
logLevel: 'info'
});
if (!casp.cli.has('username') && !casp.cli.has('password')) {
casp.echo('Usage: $ casperjs deleteScheduledJobs.casper.js --username=USERNAME --password=PASSWORD [--prod]').exit(-1);
}
if (casp.cli.has('prod')) {
LOGIN_URL = 'https://login.salesforce.com/';
} else {
LOGIN_URL = 'https://test.salesforce.com/';
}
LOGIN_USERNAME = casp.cli.get('username');
LOGIN_PASSWORD = casp.cli.get('password');
SCHEDULED_JOBS_URI = '08e?setupid=ScheduledJobs';
casp.start(LOGIN_URL, function () {
'use strict';
this.log('Logging in', 'info');
this.fill('form', {
'username': LOGIN_USERNAME,
'pw': LOGIN_PASSWORD
}, true);
this.log('Logged in', 'info');
BASE_URL = casp.getCurrentUrl().split('.salesforce.com')[0] + '.salesforce.com/';
casp.thenOpen(BASE_URL + SCHEDULED_JOBS_URI, function () {
var deleteUrls;
this.log('Fetching jobs to delete', 'info');
deleteUrls = this.evaluate(function () {
var urls, url;
urls = [];
jQuery('table.list tr.dataRow').each(function (i, item) {
url = {};
url.href = jQuery('td.actionColumn a.actionLink', item).attr('href').substring(1);
url.name = jQuery('th', item).html();
urls.push(url);
});
return urls;
});
this.each(deleteUrls, function (self, url) {
this.log('Deleting "' + url.name + '"', 'info');
self.thenOpen(BASE_URL + url.href, function () {
this.log('"' + url.name + '" deleted', 'info');
}, function () {
this.log('Timed out deleting "' + url.name + '"', 'error');
});
});
});
});
casp.run();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment