#perry-pardon-app .container { max-width: 68em; margin-left: auto; margin-right: auto; } #perry-pardon-app .container:after { content: “”; display: table; clear: both; }#perry-pardon-app h1,#perry-pardon-app h2,#perry-pardon-app h3,#perry-pardon-app h4,#perry-pardon-app h5,#perry-pardon-app h6 { margin: 0; }#perry-pardon-app .headline { margin-bottom: 1em; } #perry-pardon-app .headline h2 { font-size: 2em; font-weight: 800; line-height: 1.2; }#perry-pardon-app .content-block { margin: 0; }#perry-pardon-app .search-box { margin-bottom: 1em; }#perry-pardon-app .prose p { font-family: Georgia, Cambria, “Times New Roman”, Times, serif; font-size: 1.125em; line-height: 1.4; margin-bottom: 1.5em; }#perry-pardon-app .prompt { margin-bottom: 1em; } #perry-pardon-app .prompt p { font-weight: 800; }#perry-pardon-app .form-group { margin-bottom: 1em; } #perry-pardon-app .form-group:last-child { margin-bottom: 0; } #perry-pardon-app .form-group label { display: inline-block; font-style: italic; margin-bottom: .25em; } #perry-pardon-app .form-group .form-control { border-radius: 3px; border: 1px solid #cccccc; display: block; font-size: 1em; height: 30px; margin: 0; padding: 5px 10px; width: 100%; }#perry-pardon-app a { color: #008990; text-decoration: none; } #perry-pardon-app a:hover { text-decoration: underline; }#perry-pardon-app ul { list-style: none; padding: 0; }#perry-pardon-app hr { background-color: #bbbbbb; border: 0 none; height: 2px; } #perry-pardon-app hr.slim { height: 1px; }#perry-pardon-app table { font-family: “Helvetica Neue”, Helvetica, Roboto, Arial, sans-serif; font-size: .875em; margin-bottom: 2em; width: 100%; } @media screen and (max-width: 620px) { #perry-pardon-app table { border-top: 1px solid #bbbbbb; display: block; font-size: 1em; } }@media screen and (max-width: 620px) { #perry-pardon-app thead { display: none; } }@media screen and (max-width: 620px) { #perry-pardon-app tbody { display: block; } }#perry-pardon-app th { border-bottom: 1px solid #bbbbbb; font-size: 1em; font-weight: 800; padding: 0 12px 8px; text-align: right; vertical-align: bottom; } #perry-pardon-app th:first-child { text-align: left; } @media screen and (max-width: 620px) { #perry-pardon-app th { display: block; } }#perry-pardon-app td { font-size: .875em; padding: 8px 12px; text-align: right; } #perry-pardon-app td:first-child { text-align: left; } @media screen and (max-width: 620px) { #perry-pardon-app td { display: block; font-weight: 300; padding: 0 12px 8px; text-align: left; } #perry-pardon-app td:first-child { font-size: 1em; font-weight: 800; padding-top: 8px; } #perry-pardon-app td[data-title]:first-child:before { content: none; } #perry-pardon-app td:before { content: attr(data-title) “A”; display: block; font-weight: 800; margin-bottom: .25em; white-space: pre-wrap; } }#perry-pardon-app tr:nth-child(odd) td { background-color: #f0f0f0; }@media screen and (max-width: 620px) { #perry-pardon-app tr { display: block; } } .flatpage-footer { font-size: 0.95em; display: block; margin: 10px 0;}

Search: Pardons by Gov. Rick Perry

Gov. Rick Perry has issued at least 221 pardon proclamations since taking office in December 2000. Use this database to search those declarations by the person’s name, the year the pardon was issued, the crime type and/or the pardon type.

Unsure about the pardons process in Texas? Read related stories about pardons or check out the Texas Board of Pardons and Paroles TribPedia page.

Name Clemency Type Crime Type Conviction County Pardon Date

Explore by using one of the following filters

All Clemency Types
All Years
All Counties
All Crimes
var define = undefined;//MODEL MODEL MODELvar Pardon = Backbone.Model.extend({ initialize: function(){ this.attributes.SortDate = this.createSortDate(this.attributes.Date); }, createSortDate: function(arg) { var a = arg.split(‘/’); if (parseInt(a[0]) < 10){ a[0] = '0'+ a[0]; } if (parseInt(a[1]) < 10){ a[1] = '0' + a[1]; } var b = a[2] + a[0] + a[1]; return b; }});var PardonType = Backbone.Model.extend({ initialize: function(obj) { this.set('Pardon_Type', obj); },});var Year = Backbone.Model.extend({ initialize: function(obj) { this.set('Year', obj); },});var County = Backbone.Model.extend({ initialize: function(obj) { this.set('County', obj); },});var Crime = Backbone.Model.extend({ initialize: function(obj) { this.set('Crime_Type', obj); },});//COLLECTION COLLECTION COLLECTION// List of Pardonsvar PardonCollection = Backbone.Collection.extend({ model: Pardon, getAllYears: function() { return _.uniq(this.pluck('Year')); }});//List of Pardon Typesvar PardonTypeCollection = Backbone.Collection.extend({ model: PardonType,});// List of Yearsvar YearCollection = Backbone.Collection.extend({ model: Year});//List of Countiesvar CountyCollection = Backbone.Collection.extend({ model: County});//List of Crimesvar CrimeCollection = Backbone.Collection.extend({ model: Crime});//VIEWS VIEWS VIEWSvar PardonView = Backbone.View.extend({ tagName: 'tr', template: _.template( $('#person-row').html()), // references the template on main page initialize: function(){ this.render(); }, render: function(){ this.$el.html( this.template(this.model.toJSON())); return this; // returning this from render method.. }});//view to generate the dropdown menu for the pardon typesvar PardonTypeView = Backbone.View.extend({ tagName: 'option', template: _.template('’), initialize:function(){ this.render(); }, render:function(){ this.$el.html( this.template(this.model.toJSON())); return this; }});//view to generate the dropdown menu for the yearvar YearView = Backbone.View.extend({ tagName: ‘option’, template: _.template(”), initialize:function(){ this.render(); }, render:function(){ this.$el.html( this.template(this.model.toJSON())); return this; }});//view to generate the dropdown menu for the countyvar CountyView = Backbone.View.extend({ tagName: ‘option’, template: _.template(”), initialize:function(){ this.render(); }, render:function(){ this.$el.html(this.template(this.model.toJSON())); return this; }});//view to generate the dropdown menu for the crimevar CrimeView = Backbone.View.extend({ tagName: ‘option’, template: _.template(”), initialize:function(){ this.render(); }, render:function(){ this.$el.html(this.template(this.model.toJSON())); return this; }});// View for all peoplevar PardonsView = Backbone.View.extend({ el: ‘#results’, initialize: function(){ this.listenTo(this.collection, ‘reset’, this.render); }, render: function(){ //loop over each item in the collection, make a view for it, return this so we can use it later var payload = []; this.collection.each(function(pardon){ var pardonView = new PardonView({ model: pardon }); payload.push(pardonView.el); }, this); this.$el.html(payload); return this; }});//View for all pardon types (dropdown list)var PardonTypesView = Backbone.View.extend({ el: ‘#pardon-container’, initialize: function(){ this.render(); }, render: function(){ this.collection.each(function(pardontype){ var pardontypeView = new PardonTypeView({ model: pardontype}); this.$el.append(pardontypeView.el); }, this); return this; }});// View for all yearsvar YearsView = Backbone.View.extend({ el: ‘#year-container’, initialize: function(){ this.render(); }, render: function(){ this.collection.each(function(year){ var yearView = new YearView({ model: year}); this.$el.append(yearView.el); }, this); return this; }});// View for all countiesvar CountiesView = Backbone.View.extend({ el: ‘#county-container’, initialize: function(){ this.render(); }, render: function(){ this.collection.each(function(county){ var countyView = new CountyView({ model: county}); this.$el.append(countyView.el); }, this); return this; }});// View for all crimesvar CrimesView = Backbone.View.extend({ el: ‘#crime-container’, initialize: function(){ this.render(); }, render: function(){ this.collection.each(function(crime){ var crimeView = new CrimeView({ model: crime}); this.$el.append(crimeView.el); }, this); return this; }});//view for the search stuffvar SearchView = Backbone.View.extend({ el: ‘#search-container’, initialize: function(){ this.render(); }, render: function(){ // Compile the template using underscore var template = _.template( $(‘#search-template’).html(), {} ); // Load the compiled HTML into the Backbone “el” this.$el.html( template ); }, events: { ‘change select’: ‘updateFilter’, ‘keyup .search’: ‘search’ }, search: function(e) { var search = this.$(‘.search’).val(); var resetDropdowns = function(){ $(‘#pardon-container’).val(‘all’); $(‘#year-container’).val(‘all’); $(‘#county-container’).val(‘all’); $(‘#crime-container’).val(‘all’); }; _.delay(resetDropdowns, 200); _.delay(resetHeaders, 300); //create RegEx out of search input var re = new RegExp(search, ‘i’); //evaluate and if it’s true, return that filter var results = pardonsCollection.filter(function(item) { if (re.test(item.get(‘SortName’)) === true) {return this; }}); //sort results = _.sortBy(results, function(item){ return item.get(‘SortName’); }); filteredCollection.reset(results); if (results.length === 0){ $(‘#no-results’).html(‘No results for ‘ + search +’. Please try again.’); } else { $(‘#no-results’).html(‘ ‘); } }, updateFilter: function() { resetHeaders(); var thisPardon = ($(‘#pardon-container option:selected’).text()); var thisYear = ($(‘#year-container option:selected’).text()); var thisCounty = ($(‘#county-container option:selected’).text()); var thisCrime = ($(‘#crime-container option:selected’).text()); var filter = {}; if (thisPardon !== ‘All Clemency Types’) { filter.Pardon_Type = thisPardon; } if (thisYear !== ‘All Years’) { filter.Year = parseInt(thisYear); } if (thisCounty !== ‘All Counties’) { filter.County = thisCounty; } if (thisCrime !== ‘All Crimes’) { filter.Crime_Type = thisCrime; } //what to do if there is no filter if (_.isEqual(filter, {})) { filteredCollection.reset(pardonData); $(‘.search’).val(”); //what to do if there is a filter } else { var results = pardonsCollection.where(filter); filteredCollection.reset(results); $(‘.search’).val(”); if (results.length === 0){ $(‘#no-results’).html(‘No results. Please try broadening your search by choosing fewer filters.’); } else { $(‘#no-results’).html(‘ ‘); } } }});//view for the table head and to add sort functionvar HeaderView = Backbone.View.extend({ el: ‘#header-container’, initialize: function(){ this.render(); }, render: function(){ // Compile the template using underscore var template = _.template( $(‘#header-template’).html(), {} ); this.$el.html( template ); }, events: {‘click th’: ‘sortMe’}, sortMe: function(e) { var thisAttr = $(e.target).attr(‘id’); var thisClass = $(e.target).attr(‘class’); //reset the other sort arrows var tableHeads = $(‘th’); for (var i = 0; i < tableHeads.length; i++) { if (thisAttr !== tableHeads[i].id){ $(tableHeads[i]).removeClass('sort-asc').removeClass('sort-desc').addClass('siftable'); } } //sorts by the chosen category and changes the class name if (thisClass === 'siftable' || thisClass === 'sort-desc') { sortResults = filteredCollection.sortBy(function(pardon){ return pardon.get(thisAttr);}); $(e.target).removeClass('siftable').removeClass('sort-desc').addClass('sort-asc'); } else if (thisClass === 'sort-asc') { sortResults.reverse(); $(e.target).removeClass('sort-asc').addClass('sort-desc'); } filteredCollection.reset(sortResults); }});var sortResults;var search_view = new SearchView();var header_view = new HeaderView();var filteredCollection = new PardonCollection();var pardonsView = new PardonsView({collection: filteredCollection});//adding in the data from all pardonsvar pardonData = _.sortBy(pardonData, function(item) { return item.SortName;});var pardonsCollection = new PardonCollection(pardonData);//create the view of all the pardonDatafilteredCollection.reset(pardonData);//create pardon type collection from datavar pardontypeCollection = new PardonTypeCollection( _.sortBy(_.uniq(pardonsCollection.pluck('Pardon_Type'))));var pardontypesView = new PardonTypesView({ collection: pardontypeCollection});//create year collection from datavar yearCollection = new YearCollection( _.sortBy(_.uniq(pardonsCollection.pluck('Year'))));var yearsView = new YearsView({ collection: yearCollection });//create county collection from datavar countyCollection = new CountyCollection( _.sortBy(_.uniq(pardonsCollection.pluck('County'))));var countiesView = new CountiesView({ collection: countyCollection });//create crime type collection from datavar crimeCollection = new CrimeCollection( _.sortBy(_.uniq(pardonsCollection.pluck('Crime_Type'))));var crimesView = new CrimesView({ collection: crimeCollection });var resetHeaders = function() { var tableHeads = $('th'); for(var i = 0; i < tableHeads.length; i++) { $(tableHeads[i]).removeClass('sort-asc').removeClass('sort-desc').addClass('siftable'); }};