Skip to content
This repository has been archived by the owner on Aug 28, 2023. It is now read-only.

Commit

Permalink
Almost complete rewrite of the code, done about a year ago. Now the F…
Browse files Browse the repository at this point in the history
…acebook API might have changed a bit again.

An almost complete implementation of the iCalendar Recurring Events (RRULE) specification, which can be used standalone, can be found in classes/modules/recurringEventsModule/recurrenceRuleParser.php. The corresponding unit tests are in tests/classes/modules/recurringEventsModule/recurrenceRuleParserTest.php
  • Loading branch information
mb21 authored and mb21 committed Jan 1, 2013
1 parent e9f3c4c commit e9df70d
Show file tree
Hide file tree
Showing 256 changed files with 63,711 additions and 10,798 deletions.
661 changes: 0 additions & 661 deletions COPYING.txt

This file was deleted.

88 changes: 0 additions & 88 deletions Docs.php

This file was deleted.

4 changes: 4 additions & 0 deletions INSTALL
@@ -0,0 +1,4 @@
1) fill in your configuration and rename configTEMPLATE.inc.php to config.inc.php
2) run setup.sql on your SQL Database
3) set permissions to write for your web server for the directories 'tmp' and 'tmp/images'
4) make sure you're running PHP 5.3 or later on both the php command and in the web server
2 changes: 1 addition & 1 deletion README
@@ -1,5 +1,5 @@
This is a Facebook Application you can use to subscribe to an iCalendar file which then gets regularly checked for updates. When new events in the calendar become available, it will create a facebook event in your name.

currently the app is online at http://www.facebook.com/apps/application.php?id=164414672850
currently the app is online at https://www.facebook.com/pages/Calendar-to-Event/158110800961417

For any questions, please contact Mauro Bieg over facebook.
5 changes: 0 additions & 5 deletions TODO.txt

This file was deleted.

38 changes: 0 additions & 38 deletions app_removed.php

This file was deleted.

32 changes: 32 additions & 0 deletions assets/scripts.js
@@ -0,0 +1,32 @@
function activate(subId, subName) {
$('<p>The subscription <i>'+subName+'</i> is currently deactivated. Do you want to reactivate it?</p>'
+ '<p>It might have been deactivated because there was an error for an extended period of time.</p>'
+ '<input type="button" onclick="hideHoverDialog()" value="Cancel">'
+ '<input type="button" onclick="location.href=\'index.php?action=doActivate&subId='+subId+'\'" value="Activate">'
).appendTo('.hoverDialog');
showHoverDialog();
}

function deactivate(subId, subName) {
$('<p>The subscription <i>'+subName+'</i> is currently active. Do you want to deactivate it?</p>'
+ '<p>Existing events will remain on facebook but no new events will be created.</p>'
+ '<input type="button" onclick="hideHoverDialog()" value="Cancel">'
+ '<input type="button" onclick="location.href=\'index.php?action=doDeactivate&subId='+subId+'\'" value="Deactivate">'
).appendTo('.hoverDialog');
showHoverDialog();
}

function unsubscribe(subId, subName) {
$('<p>Are you sure you want to delete the subscription <i>'+subName+'</i> and all its events from facebook?</p>'
+ '<input type="button" onclick="hideHoverDialog()" value="Cancel">'
+ '<input type="button" onclick="location.href=\'index.php?action=doUnsubscribe&subId='+subId+'\'" value="Delete all Events">'
).appendTo('.hoverDialog');
showHoverDialog();
}

function showHoverDialog() {
$('.hoverDialog, .background').css('display', 'block');
}
function hideHoverDialog() {
$('.hoverDialog, .background').empty().css('display', 'none');
}
161 changes: 161 additions & 0 deletions assets/styles.css
@@ -0,0 +1,161 @@
html, body {
margin: 0;
padding: 0;
font-family: Helvetica, Arial, sans-serif;
}

a, a:visited {
color: #3B5998;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}

.container {
width: 760px;
margin: 1em auto;
}

.successBox{
border: 1px green solid;
padding: 1em;
margin: 1em 0;
}

.red{
color: red;

}
.errorBox {
border: 1px red solid;
padding: 1em;
margin: 1em 0;
}
.successBox p, .errorBox p{
margin-top: 0;
}

.topBar {
background-color: #3B5998;
min-height: 50px;
margin-bottom: 20px;
}
.topBar a {
color: white;
}
.titleBar {
width: 770px;
margin: 0 auto;
}
#uberTitle {
float: right;
padding: 15px 0 0 0;
font-size: 20px;
font-weight: bold;
}
.topMenu {
float: left;
padding: 18px 8px 5px 0;
margin: 0;
}
.topMenu li {
list-style: none;
padding-right: 25px;
float: left;
}

.donateBox {
float: right;
position: relative;
top: -20px;
}

/* TABLES */

table {
width: 100%;
border-collapse: collapse;
text-align: left;
}
table th{
padding-bottom: .5em;
}
table td{
border-top: 1px solid lightgrey;
padding: .5em;
}

/* ERROR LOG */

table .thLogId {
width: 100px;
}
table .thTime {
width: 100px;
}


h3 {
margin-top: 2.2em;
}

/* SUB LIST */

.subTable {
margin-bottom: 2em;
}
.subTable .thName{
width: 200px;
}
.subTable .thPage{
width: 200px;
}



.hoverDialog {
position: fixed;
top: 3em;
left: 30%;
width: 500px;
padding: 1em;
border: 1px solid black;
background-color: white;
z-index: 1000;
}
.background {
width: 100%;
height: 100%;
background-color: rgba(0,0,0,.75);
background-color: rgb(.1,.1,.1);
position: fixed;
top: 0;
left: 0;
}

/* SUBSCRIBE PAGE */

.property {
border: 1px solid lightgrey;
padding: 1em;
margin: 1em 0;
}
.property .label {
}
.property input {
width: 50%;
}
.property input.checkbox {
width: 1em;
}
.property div.floatdiv input{
float: left;
margin: 0.5em 1em 1em 0;
}
#iCalendarUrlInput {
width: 100%;
}
.submitButton {
margin-top: 1.5em;
}

0 comments on commit e9df70d

Please sign in to comment.