Skip to content

Commit c6fdeaf

Browse files
authored
Merge pull request #138 from OpenDataSTL/develop
Merge develop to master for 1.1.0 release
2 parents cb6b916 + b7c5063 commit c6fdeaf

31 files changed

Lines changed: 265 additions & 223 deletions

.bowerrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
{
2-
"directory": "bower_components"
2+
"directory": "bower_components",
3+
"strict-ssl": false
34
}

app/data/questionAnswers.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"ticket-faq":[
33
{"q":"I know I got a ticket but I can't find it in YourSTLCourts.",
4-
"a":"Currently the municipalities listed below have opted to participate in YourSTLCourts. If you can't locate your ticket information, it may be that the court where you received your ticket is not participating in YourSTLCourts. We encourage you to call City Hall and/or court to ask that they participate in YourSTLCours. You can find contact information for any court in St. Louis County by clicking <a href=\"\\\">here</a>.",
4+
"a":"Currently the municipalities listed below have opted to participate in YourSTLCourts. If you can't locate your ticket information, it may be that the court where you received your ticket is not participating in YourSTLCourts. We encourage you to call City Hall and/or court to ask that they participate in YourSTLCourts. You can find contact information for any court in St. Louis County by clicking <a href=\"\\\">here</a>.",
55
"keywords":[],
66
"fill-in":"supportedMunicipalities"},
77
{"q":"I know I need to appear in court soon. I lost my ticket but remember where I was pulled over. How can I find my court date and location?",

app/index.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
<title>Your STL Courts</title>
66
<base href="/">
77
<meta name="description" content="">
8+
<meta name="fragment" content="!">
9+
<meta charset="utf-8">
810
<meta name="viewport" content="width=device-width, initial-scale = 1.0">
911
<!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
1012
<link rel="shortcut icon" href="images/favicon.ico">
@@ -91,14 +93,14 @@
9193
<script src="bower_components/angular-touch/angular-touch.js"></script>
9294
<script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>
9395
<script src="bower_components/angularjs-toaster/toaster.js"></script>
94-
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
9596
<script src="bower_components/angular-ui-select/dist/select.js"></script>
9697
<script src="bower_components/moment/moment.js"></script>
9798
<script src="bower_components/leaflet/dist/leaflet-src.js"></script>
9899
<script src="bower_components/angular-simple-logger/dist/angular-simple-logger.js"></script>
99100
<script src="bower_components/angular-moment/angular-moment.js"></script>
100101
<script src="bower_components/lodash/lodash.js"></script>
101102
<script src="bower_components/Autolinker.js/dist/Autolinker.js"></script>
103+
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
102104
<!-- endbower -->
103105
<!-- endbuild -->
104106

@@ -155,6 +157,7 @@
155157
<script src="scripts/directives/scrollable.dir.js"></script>
156158
<script src="scripts/directives/navBarMenuCloseable.dir.js"></script>
157159
<script src="scripts/directives/loading.dir.js"></script>
160+
<script src="scripts/directives/stlCourtsFocus.dir.js"></script>
158161

159162
<script src="scripts/components/stlCourtsHeader.comp.js"></script>
160163
<script src="scripts/components/stlCourtsFooter.comp.js"></script>

app/scripts/app.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ angular.module('yourStlCourts').config(function ($stateProvider, $urlRouterProvi
136136
}
137137
})
138138
.state('citations', {
139-
url: '/citations/{citationId}',
139+
url: '/tickets/{citationId}/info',
140140
templateUrl: 'views/citations.html',
141141
controller: 'CitationsCtrl as ctrl',
142142
resolve: {
@@ -146,7 +146,7 @@ angular.module('yourStlCourts').config(function ($stateProvider, $urlRouterProvi
146146
}
147147
})
148148
.state('noCitationsFound',{
149-
url: '/citations/error/notFound',
149+
url: '/tickets/error/notFound',
150150
templateUrl: 'views/citationsNotFound.html',
151151
controller: 'NoCitationsFoundCtrl as ctrl',
152152
resolve: {

app/scripts/controllers/citationInfo.ctrl.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,39 @@
22

33
angular.module('yourStlCourts').controller('CitationInfoCtrl', function (faqData,$state, $window, citations,municipalities,courts,Courts,Session,moment,$anchorScroll) {
44
var ctrl = this;
5+
var PLACEHOLDER_DL_NUM = "NO_DL_NUM";
6+
57
ctrl.faqData = faqData;
68
ctrl.selectedCitation = null;
79
ctrl.paymentUrl = "";
810
ctrl.citationCourtLocations = {};
11+
ctrl.groupedCitations = {};
12+
13+
ctrl.groupCitationsByDL = function(){
14+
var dlNum = "";
15+
var dlState = "";
16+
var groupedCitations = {};
17+
18+
citations.forEach(function(citation){
19+
dlNum = citation.drivers_license_number;
20+
dlState = citation.drivers_license_state;
21+
if (dlNum === ""){
22+
//in the event the defendant does not have a DL Num assign one so the object has a key
23+
dlNum = PLACEHOLDER_DL_NUM;
24+
}
25+
if (!groupedCitations[dlNum+dlState]){
26+
groupedCitations[dlNum+dlState] = [];
27+
}
28+
groupedCitations[dlNum+dlState].push(citation);
29+
});
30+
31+
return groupedCitations;
32+
};
33+
34+
ctrl.issueMultiplePeopleWarning = function(){
35+
36+
return (_.size(ctrl.groupedCitations) > 1);
37+
};
938

1039
ctrl.selectCitation = function(citation,idToScrollTo){
1140
ctrl.selectedCitation = citation;
@@ -44,6 +73,7 @@ angular.module('yourStlCourts').controller('CitationInfoCtrl', function (faqData
4473
$state.go('home');
4574
} else {
4675
ctrl.citations = citations;
76+
ctrl.groupedCitations = ctrl.groupCitationsByDL();
4777
for(var citationCount = 0; citationCount < citations.length; citationCount++){
4878
var courtId = citations[citationCount].court_id;
4979
var foundCourt = _.find(courts, {id: courtId});

app/scripts/controllers/locationPickerMap.ctrl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ angular.module('yourStlCourts').controller('LocationPickerMapCtrl', function ($s
9797
function getMunicipalityFromMapName(muniMapName){
9898
function getName(nameString){
9999
if (nameString.toLowerCase() == "unincorporated"){
100-
nameString = "St. Louis County - Unincorporated";
100+
nameString = "St. Louis County Municipal";
101101
}
102102

103103
return nameString.replace("&", "and");

app/scripts/controllers/ticketFinder.ctrl.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ angular.module('yourStlCourts').controller('TicketFinderCtrl', function (TicketF
4444
ctrl.getDOB = function(){
4545
if(ctrl.ticketForm.$valid) {
4646
var modalInstance = $uibModal.open({
47+
animation:false, //allows focus cursor to stay in input box on edge & IE browsers
4748
templateUrl: 'views/dobPicker.html',
4849
controller: 'dobPickerCtrl as ctrl',
4950
size: 'sm'

app/scripts/directives/stlCourtsDatepicker.dir.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ angular.module('yourStlCourts').directive('stlCourtsDatepicker', function($timeo
1212
dateObject:'=?', //returns javascript Date
1313
dateField:'=?', //returns date String formatted to "MM/dd/yyyy"
1414
dateValid:'=?',
15-
dateOver18:'=?'
15+
dateOver18:'=?',
16+
okButtonId:'@'
1617
},
1718
templateUrl: 'views/stlCourtsDatepicker.html',
1819
controller: 'StlCourtsDatepicker as ctrl',
1920
link: function($scope,element,attrs){
21+
var scope = $scope;
2022
var keys = {
2123
backspace:8,
2224
delete:46,
@@ -56,9 +58,14 @@ angular.module('yourStlCourts').directive('stlCourtsDatepicker', function($timeo
5658
updateDateString();
5759
if (numberOfExistingDigits === Number(maxLength)){
5860
//tab to the next field
59-
if ($(event.target).next("span") !== $()){
61+
if ($(event.target).next("span").length !== 0){
6062
clearInputElement($(event.target).next().next());
6163
$(event.target).next().next().focus();
64+
}else{
65+
if (scope.okButtonId) {
66+
//last date field is filled in go to OK button
67+
$("#" + scope.okButtonId).focus();
68+
}
6269
}
6370
}
6471
}else{
@@ -152,6 +159,10 @@ angular.module('yourStlCourts').directive('stlCourtsDatepicker', function($timeo
152159
uibDatePickerDateJustChangedDateString = true;
153160
$scope.ctrl.dateString = formatDateObjToDateFormat();
154161
loadDateStringToElement();
162+
if (scope.okButtonId) {
163+
//user just selected a date from the datePicker and it filled in the whole date
164+
$("#" + scope.okButtonId).focus();
165+
}
155166
}else{
156167
initialDTSet = false;
157168
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
'use strict';
2+
3+
angular.module('yourStlCourts').directive('stlCourtsFocus', function ($timeout) {
4+
return {
5+
restrict: 'A',
6+
7+
link: function ($scope, element, attr) {
8+
var scope = $scope;
9+
$timeout(function(){
10+
$(element).get(0).focus();
11+
});
12+
}
13+
};
14+
});

app/scripts/services/Session.svc.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ angular.module('yourStlCourts').factory('Session', function () {
99

1010
function setLatestCitations(citations){
1111
latestCitations = citations;
12+
clearLastSelectedCitation();
1213
}
1314

1415
function getLastSelectedCitation(){
@@ -19,6 +20,10 @@ angular.module('yourStlCourts').factory('Session', function () {
1920
lastSelectedCitation = citation;
2021
}
2122

23+
function clearLastSelectedCitation(){
24+
lastSelectedCitation = null;
25+
}
26+
2227
var svc = {
2328
getLatestCitations: getLatestCitations,
2429
setLatestCitations: setLatestCitations,

0 commit comments

Comments
 (0)