diff --git a/www/js/controllers.js b/www/js/controllers.js index 2f0b53ec8e28bdb83f4121928972ea4c77c45b5b..d95694d43705c9df59cc154e62c13788c41158cd 100644 --- a/www/js/controllers.js +++ b/www/js/controllers.js @@ -8,50 +8,93 @@ angular.module('app.controllers', []) $scope.events = EventsService.getEvents(); $scope.$broadcast('scroll.refreshComplete'); $scope.$apply(); - }; + }; }) .controller('novoEventoCtrl', function($scope, EventsService) { $scope.formData = {}; + checkEmpty = function(string){ + if (!string || string.length === 0 || !string.trim()) + return true; + return false; + }; $scope.addNewEvent = function() { // insere um novo evento no banco - if ((!$scope.formData.eventName || $scope.formData.eventName.length === 0 || !$scope.formData.eventName.trim()) || - (!$scope.formData.eventDesc || $scope.formData.eventDesc.length === 0 || !$scope.formData.eventDesc.trim()) || - (!$scope.formData.eventDate || $scope.formData.eventDate.length === 0 || !$scope.formData.eventDate.trim()) || - (!$scope.formData.eventPlace || $scope.formData.eventPlace.length === 0 || !$scope.formData.eventPlace.trim()) || - (!$scope.formData.eventHours || $scope.formData.eventHours.length === 0 || !$scope.formData.eventHours.trim())) + if (checkEmpty($scope.formData.eventName) || + checkEmpty($scope.formData.eventDesc) || + checkEmpty($scope.formData.eventDate) || + checkEmpty($scope.formData.eventPlace) || + checkEmpty($scope.formData.eventHours)) alert("WTF?"); // se deixou algum campo em branco, leva um alert na cara else // se tá tudo certo, manda inserir o novo evento no banco - EventsService.addNewEvent({eventName: $scope.formData.eventName, eventDesc: $scope.formData.eventDesc, eventDate: $scope.formData.eventDate, eventPlace: $scope.formData.eventPlace, eventHours: $scope.formData.eventHours}); + EventsService.addNewEvent({ + eventName: $scope.formData.eventName, + eventDesc: $scope.formData.eventDesc, + eventDate: $scope.formData.eventDate, + eventPlace: $scope.formData.eventPlace, + eventHours: $scope.formData.eventHours + }); }; $scope.showCertText = function() { // mostra o texto final (ou quase) que ficará no certificado - alert("Certificamos que !NOME! participou " + $scope.formData.eventDesc + " " + $scope.formData.eventName + ", realizada " + $scope.formData.eventDate + " na Universidade Federal do Paraná, " + $scope.formData.eventPlace + ", em Curitiba – PR, com a carga horária total de " + $scope.formData.eventHours + "."); + alert("Certificamos que !NOME! participou " + + $scope.formData.eventDesc + " " + $scope.formData.eventName + + ", realizada " + $scope.formData.eventDate + + " na Universidade Federal do Paraná, " + + $scope.formData.eventPlace + + ", em Curitiba – PR, com a carga horária total de " + + $scope.formData.eventHours + "."); }; }) -.controller('listaDePresenAEventoXCtrl', function($scope, PeopleService, eventX) { - $scope.eventX = eventX; +.controller('listaDePresenAEventoXCtrl', function($scope, $cordovaFile, PeopleService, eventX) { + $scope.eventX = eventX; $scope.people = PeopleService.getPeople(eventX.id); $scope.scan = function() { // faz o scan do qr code e marca a presença da pessoa cordova.plugins.barcodeScanner.scan( - function (result) { + function(result) { if (result && result.text.split(',').length == 3) { // pega o que veio do scanner, separa nos devidos campos e insere no banco - PeopleService.addPersonInEvent({name: result.text.split(',')[0].trim(), grr: result.text.split(',')[1].trim(), email: result.text.split(',')[2].trim()}, eventX.id) + PeopleService.addPersonInEvent({ + name: result.text.split(',')[0].trim(), + grr: result.text.split(',')[1].trim(), + email: result.text.split(',')[2].trim() + }, eventX.id) .then(function(result) { // atualiza a view $scope.people = PeopleService.getPeople(eventX.id); - }, function(err){ - // se deu erro, não precisa atualizar a view + }, function(err) { + // se deu erro, não precisa atualizar a view console.log(err); }); } }, - function (error) { + function(error) { alert("Scanning failed: " + error); } ); }; + $scope.storeData = function() { + var string = $scope.eventX.desc + "\n" + + $scope.eventX.name + "\n" + + $scope.eventX.date + "\n" + + $scope.eventX.place + "\n" + + $scope.eventX.hours + "\n"; + + for (var i = 0; i < $scope.people.length; i++){ + string += $scope.people[i].name + "#" + + $scope.people[i].email + "\n"; + } + $cordovaFile.writeFile( cordova.file.externalDataDirectory, + $scope.eventX.name.replace(" ", "_") + ".txt", + string, true) + .then(function (success) { + // success + console.log("Salvou"); + }, function (error) { + // error + console.log("Não salvou"); + }); + }; }); diff --git a/www/js/services.js b/www/js/services.js index 002bd8f45f48dce5c3db91e2debe58ba98d26fd5..634471fdc8cb440e1481500674b5502a5b297df0 100644 --- a/www/js/services.js +++ b/www/js/services.js @@ -13,7 +13,8 @@ angular.module('app.services', []) getEvents: function() { // pega no banco todos os eventos e retorna var events = []; - var db = $cordovaSQLite.openDB({name: 'ceitificator.db', iosDatabaseLocation: 'default'}); + var db = $cordovaSQLite.openDB({name: 'ceitificator.db', + iosDatabaseLocation: 'default'}); $cordovaSQLite.execute(db, "SELECT * FROM events") .then(function(res) { for(var i = 0; i < res.rows.length; i++) { @@ -26,19 +27,25 @@ angular.module('app.services', []) }, addNewEvent: function(event) { // adiciona um novo evento no banco - var db = $cordovaSQLite.openDB({name: 'ceitificator.db', iosDatabaseLocation: 'default'}); + var db = $cordovaSQLite.openDB({name: 'ceitificator.db', + iosDatabaseLocation: 'default'}); var query = "INSERT INTO events (name, desc, date, place, hours) VALUES (?,?,?,?,?)"; - $cordovaSQLite.execute(db, query, [event.eventName, event.eventDesc, event.eventDate, event.eventPlace, event.eventHours]) + $cordovaSQLite.execute(db, query, [event.eventName, + event.eventDesc, + event.eventDate, + event.eventPlace, + event.eventHours]) .then(function(res) { console.log("res: " + res); }, function(err) { - console.error(err); + console.error(err); }); }, getEventById: function(eventId) { // dado um id, retorna a palestra com o mesmo id var dfd = $q.defer(); - var db = $cordovaSQLite.openDB({name: 'ceitificator.db', iosDatabaseLocation: 'default'}); + var db = $cordovaSQLite.openDB({name: 'ceitificator.db', + iosDatabaseLocation: 'default'}); var query = "SELECT * FROM events WHERE id=\"" + eventId + "\""; $cordovaSQLite.execute(db, query) .then(function(res) { @@ -57,7 +64,8 @@ angular.module('app.services', []) getPeople: function(eventId) { // pega no banco todas as pessoas var people = []; - var db = $cordovaSQLite.openDB({name: 'ceitificator.db', iosDatabaseLocation: 'default'}); + var db = $cordovaSQLite.openDB({name: 'ceitificator.db', + iosDatabaseLocation: 'default'}); $cordovaSQLite.execute(db, "SELECT people.* FROM people, people_events WHERE people.id=people_events.person_id AND people_events.event_id=" + eventId) .then(function(res) { for(var i = 0; i < res.rows.length; i++) { @@ -71,14 +79,19 @@ angular.module('app.services', []) addPersonInEvent: function(person, eventId) { // procura a pessoa, se existir, insere direto na tabela people_events, se não existir, cria a pessoa primeiro var dfd = $q.defer(); - var db = $cordovaSQLite.openDB({name: 'ceitificator.db', iosDatabaseLocation: 'default'}); - var query = "SELECT * FROM people WHERE name=\"" + person.name + "\"AND grr=\"" + person.grr + "\"AND email=\"" + person.email + "\""; + var db = $cordovaSQLite.openDB({name: 'ceitificator.db', + iosDatabaseLocation: 'default'}); + var query = "SELECT * FROM people WHERE name=\"" + person.name + + "\"AND grr=\"" + person.grr + "\"AND email=\"" + + person.email + "\""; $cordovaSQLite.execute(db, query) .then(function(res) { if (res.rows.length == 0) { console.log("pessoa não existe"); query = "INSERT INTO people (name, grr, email) VALUES (?,?,?)"; - $cordovaSQLite.execute(db, query, [person.name, person.grr, person.email]) + $cordovaSQLite.execute(db, query, [person.name, + person.grr, + person.email]) .then(function(res) { console.log("id: " + res.insertId); query = "INSERT INTO people_events (event_id, person_id) VALUES (?,?)"; diff --git a/www/templates/listaDePresenAEventoX.html b/www/templates/listaDePresenAEventoX.html index cf7c5e1355e7461b3c2c886d4b6fd0c3f9adb7b2..e9537fd5b3a37e3b5c4bf2d13b6d233cb6839f63 100644 --- a/www/templates/listaDePresenAEventoX.html +++ b/www/templates/listaDePresenAEventoX.html @@ -9,6 +9,7 @@ <p><strong>Horas:</strong> {{eventX.hours}}</p> </div> <div class="item item-body"> + <button id="listaDePresenAEventoX-button2" class="button button-positive button-block icon-right ion-ios-download" on-touch="storeData()">Salvar para arquivo</button> <button id="listaDePresenAEventoX-button1" class="button button-positive button-block icon-right ion-qr-scanner" on-touch="scan()">Adicionar</button> <ion-list> <ion-item ng-repeat="person in people">{{person.name}} - {{person.grr}} - {{person.email}}</ion-item>