Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions app/build/unical.js

Large diffs are not rendered by default.

Empty file modified app/controllers/eventarchive.controller.js
100644 → 100755
Empty file.
4 changes: 4 additions & 0 deletions app/controllers/eventdetail.controller.js
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@
vm.getEvent = function(id) {
eventService.getEvent(id)
.success(function(events) {
var currentStartDate = window.location.href.split("evnt=")[1];
events.data[0].date = events.data[0].date.filter(function(d){
return currentStartDate == d.start_unix;
});
vm.events = events.data;
});
};
Expand Down
10 changes: 6 additions & 4 deletions app/services/archive.service.js
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,10 @@

angular.forEach(results, function(result, index) {
var excludeCount = 0;
if(result.date[0].start_unix > moment().unix()) { //Removes future events
excludeCount++;
if(result.date[0]) {
if(result.date[0].start_unix > moment().unix()) { //Removes future events
excludeCount++;
}
}
if(siteService.settings.main_calendar_site) { //Removes excluded events (if this is the main calendar)
if(result.exclude_from_main_calendar == 1) {
Expand Down Expand Up @@ -165,7 +167,7 @@

//Default params
var defaultParams = {
fields: 'id,label,date,image,uri,address,body_trimmed,clndrDate,timezone,venue_name',
fields: 'id,label,date.start_month,date.start_day,image.image_styles.large,image.alt,uri,body_trimmed,summary,clndrDate,timezone,venue_name',
sort: '-date',
range: siteService.settings.number_results_per_page
};
Expand Down Expand Up @@ -247,7 +249,7 @@
//Run the search
return $http.get(utilityService.getBaseUrl() + 'eventsearch/' + searchStr).then(function(response) {
//Filter search results
var results = filterSearchResults(response.data.data);
var results = filterSearchResults(response.data.data[0]);

//Update service vars
service.eventsList = results;
Expand Down
228 changes: 213 additions & 15 deletions app/services/event.service.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@
newEventDataRaw: {},
newEventProgress: {},
processEventResults: processEventResults,
replicate:false,
reserve:[],
resetFilterOptions: resetFilterOptions,
searchTerm: '',
setFiltersFromUrl: setFiltersFromUrl
Expand Down Expand Up @@ -144,7 +146,7 @@

//Hide loading screen
utilityService.hideLoading();

}

/*
Expand Down Expand Up @@ -189,10 +191,28 @@
//Set filter string
var filterString = '?filter[date][value][0]='+ service.clndrFilters.startDate +'&filter[date][operator][0]=">="';
filterString += '&filter[date][value][1]='+ service.clndrFilters.endDate +'&filter[date][operator][1]="<="';
filterString += '&fields=id,clndrDate,date';
// filterString += '&fields=id,clndrDate,date'; // breaking the date array
filterString += '&range=1000&sort=-date';

return $http.get(utilityService.getBaseUrl() + 'events' + filterString).then(function(response) {
return $http.get(utilityService.getBaseUrl() + 'events' + filterString).then(function(response) {
// if module to split repeated events into separate nodes is turned on
if(!service.replicate){
// if more dates in the array add them as objects at the end of the response.data.data
// this get the repeating dates out of nodes
for(var x in response.data.data){
if(response.data.data[x].date.length > 1){
for(var y in response.data.data[x].date){
var d = new Date(response.data.data[x].date[y].start_unix * 1000);
response.data.data.push({id:response.data.data[x].id , date:[d] , clndrDate:d});
}
}
// if clndrEvent is null add one
if( !response.data.data[x].clndrDate ){
var d = new Date(response.data.data[x].date[0].start_unix * 1000);
response.data.data[x].clndrDate = d;
}
}
}
service.clndrList = response.data.data;
return response.data;
});
Expand All @@ -208,7 +228,6 @@
service.clndrFilters.endDate = moment(new Date(month + ' 1,' + year)).endOf('month').format('YYYY-MM-DD HH:mm:ss');
}


/*
* Get event by id
*
Expand All @@ -232,27 +251,202 @@
} else { //Reset page and empty the list
service.page = 1;
service.eventsList = [];
service.reserve = "";
}

//Add pagination query
filterString = filterString + '&page=' + service.page;

/** DEBUG **/ window.console.log(filterString);

//Reset next page var for next call
service.nextPage = false;

//Get the events
return $http.get(utilityService.getBaseUrl() + 'events' + filterString).then(function(response) {
service.eventsCount = response.data.count;
var events = service.processEventResults(response.data.data);
var r;
var unix = dateService.dateNowUnix();
var data = response.data.data;
for(var x in data){
data[x].taxonomyClass = [];
// flip through all the taxonomies. Change here for number
for(var y = 1; y < 12; y++){
if(data[x]['taxonomy_' + y]){
// add taxonomy number to the taxonomy
for(var z in data[x]['taxonomy_' + y]){
data[x]['taxonomy_' + y][z] = 'taxonomy_' + y + "_" + data[x]['taxonomy_' + y][z];
};
data[x]['taxonomy_' + y].push('taxonomy_' + y);

// join all the taxonomies under that number
data[x].taxonomyClass.push(data[x]['taxonomy_' + y].join(" "));
}
}
}
// join all the taxonomies for each event
for(var x in data){
data[x].taxonomyClass = data[x].taxonomyClass.join(" ");
}
// if module to split repeated events into separate nodes is turned on
if(!service.replicate){
r = splitNode(response,unix,filterString,true);
}else{
r = replicateEnabled(response,unix);
}

var events = service.processEventResults(r);
service.eventsList = service.eventsList.concat(events);

// controls first number in the Showing # of # events
service.eventsCount = parseInt(service.eventsList.length) + parseInt(service.reserve.length);
response.data.data = r;
//Hide loading screen
utilityService.hideLoading();
return response.data;
});
}

/*
* Extract dates within nodes and create new nodes and check if they are all day events
*
*/
function splitNode(response,unix,filterString,push){
// Check Start Date and End Date. Only needed for All filter
var start = new Date(filterString.split('filter[date][value][0]=')[1].split('&')[0].split(' ')[0]).getTime() / 1000;

if(push){
start = unix;
}

if( filterString.indexOf('filter[date][value][1]=') > -1 ){
var end = new Date(filterString.split('filter[date][value][1]=')[1].split('&')[0].split(' ')[0]).getTime() / 1000;
}

// will contain all the events data
var allEventData = {};
var z = 0; //used to find the date index in the array
var filteredList = response.data;
// loop though events
for(var x in filteredList.data){
z = 0;
// if is or is not a repeating event
if(filteredList.data[x].date.length > 1){
// loop through the dates of the repeating events and pull out the object for it to loop of it with the index
filteredList.data[x].date.forEach(function(n){
if(!n.start_unix){
var d = new Date(n.value);
n.start_unix = d.getTime() / 1000
n.start_month = moment().month(d.getMonth()).format('MMM');
n.start_day = d.getDate();
n.start_addto = n.value;
n.end_addto = n.value2;
}

if(!allEventData[n.start_unix]){
allEventData[n.start_unix] = [];
}

// if there is an end date and started and hasn't ended
if( ( (filterString.indexOf('filter[date][value][1]=') > -1 )&& n.start_unix > start && n.end_unix < end) ||
n.start_unix > start
){
var copy = {};
jQuery.extend( true, copy ,filteredList.data[x] );
copy.item = z; //give the index for the calendar
allEventData[n.start_unix].push(copy);
// if has started
}
z++;
});
}else if(filteredList.data[x].date.length){
filteredList.data[x].item = 0;
allEventData[filteredList.data[x].date[0].start_unix] = [filteredList.data[x]]; // for dates that aren't repeating
}
}

var obj = {};
for(var x in allEventData){
for(var y in allEventData[x]){
if(allEventData[x][y].item){
// sort the responses based on start_unix. Push in object array
if( !obj[allEventData[x][y].date[ allEventData[x][y].item ].start_unix] ){
obj[allEventData[x][y].date[ allEventData[x][y].item ].start_unix] = [];
}
if( allEventData[x][y].date[allEventData[x][y].item].start_unix > unix || ( (allEventData[x][y].date[allEventData[x][y].item].start_addto.indexOf("12:00 AM") > -1 ) && ( allEventData[x][y].date[allEventData[x][y].item].end_addto.indexOf("11:59 PM") > -1 ) ) ){ // removed times that have passed. Dont exclude All Day events that have that time
obj[allEventData[x][y].date[ allEventData[x][y].item ].start_unix].push(allEventData[x][y]);
}
}else{
// sort the responses based on start_unix. Push in object array
if( !obj[allEventData[x][y].date[0].start_unix] ){
obj[allEventData[x][y].date[0].start_unix] = [];
}
if( allEventData[x][y].date[0].start_unix > unix || ( (allEventData[x][y].date[0].start_addto.indexOf("12:00 AM") > -1 ) && ( allEventData[x][y].date[0].end_addto.indexOf("11:59 PM") > -1 ) ) ){ // removed times that have passed. Dont exclude All Day events that have that time
obj[allEventData[x][y].date[0].start_unix].push(allEventData[x][y]);
}
}
}
}

var n = 0;
var temp = [];
var r = [];

if(push){
// put reserved events into the show queue. Only put up to the number per page
for(var x in service.reserve){
// limit results and push into the current shown or reserve
if(n < siteService.settings.number_results_per_page ){
r.push(service.reserve[x]);
}else{
temp.push(service.reserve[x]);
}
n++;
}
}

// update reserve array
service.reserve = temp;

// put new results into queue if amount put in is less than the number per page
for(var x in obj){
for(var y in obj[x]){
// limit results
if(n < siteService.settings.number_results_per_page ){
r.push(obj[x][y]);
}else{
service.reserve.push(obj[x][y]);
}
n++;
}
}
return r;
}

/*
* Return array of events check if they are all day events
*
*/
function replicateEnabled(response,unix){
var r = [];
var obj = {};
for(var x in response.data.data){
if( response.data.data[x].date[0].start_unix > unix || ( (response.data.data[x].date[0].start_addto.indexOf("12:00 AM") > -1 ) && ( response.data.data[x].date[0].end_addto.indexOf("11:59 PM") > -1 ) ) ){ // removed times that have passed. Dont exclude All Day events that have that time
// sort the responses based on start_unix. Push in object array
if( !obj[response.data.data[x].date[0].start_unix] ){
obj[response.data.data[x].date[0].start_unix] = [];
}
obj[response.data.data[x].date[0].start_unix].push(response.data.data[x]);
}
}

// put result into normal array
for(var x in obj){
for(var y in obj[x]){
r.push(obj[x][y]);
}
}

return r;
}

/*
* Get events by month
*
Expand Down Expand Up @@ -306,7 +500,7 @@
function getFeaturedEvents() {
return $http.get(utilityService.getBaseUrl() + 'events/' + this.getFeaturedFilterString({
fields: 'id,label,date,image,uri'
}));
}));
}

/*
Expand All @@ -320,7 +514,7 @@

//Default params
var defaultParams = {
fields: 'id,label,date,image,uri,address,body_trimmed,summary,clndrDate,timezone,venue_name',
//fields: 'id,label,date.start_month,date.start_day,date.start_time,date.end_time,image.image_styles.large,image.alt,uri,body_trimmed,summary,clndrDate,timezone,venue_name',
sort: 'date',
range: siteService.settings.number_results_per_page
};
Expand Down Expand Up @@ -354,7 +548,7 @@

//Date range
if(service.filters.range === 'all') { //ALL
var start = dateService.dateNow(),
var start = dateService.dateTodayStart(),
end = null;
} else if (service.filters.range === 'today') { //TODAY
var start = dateService.dateTodayStart(),
Expand Down Expand Up @@ -395,7 +589,7 @@
range = 3;

//Fields
filters.push('fields=id,label,venue_name,date,uri,image');
filters.push('fields=id,label,venue_name,date.start_month,date.start_day,date.start_time,date.end_time,uri,image.image_styles.large,image.alt');

//Range
filters.push('range='+range);
Expand All @@ -421,10 +615,14 @@
var searchStr = sanitizedStr.replace(' ', '%20');

//Run the search
return $http.get(utilityService.getBaseUrl() + 'eventsearch/' + searchStr + '?sort=date').then(function(response) {
//Filter search results
var results = filterSearchResults(response.data.data);
return $http.get(utilityService.getBaseUrl() + 'eventsearch/' + searchStr).then(function(response) {

var results;
if(service.replicate){
results = replicateEnabled({data:{data:response.data.data[0]}},dateService.dateNowUnix());
}else{
results = splitNode({data:{data:response.data.data}},dateService.dateNowUnix(),service.getFilterString(),false);
}
//Update service vars
service.eventsList = results;
service.eventsCount = results.length;
Expand Down
Empty file modified app/services/utility.service.js
100644 → 100755
Empty file.
Loading