some event related fixes and some base work for implementing native tasks (to-do lists); which should already be importable and exportable.
This commit is contained in:
parent
a322254f2a
commit
6590ca02de
@ -89,14 +89,14 @@ function events_post(&$a) {
|
|||||||
$summary = escape_tags(trim($_POST['summary']));
|
$summary = escape_tags(trim($_POST['summary']));
|
||||||
$desc = escape_tags(trim($_POST['desc']));
|
$desc = escape_tags(trim($_POST['desc']));
|
||||||
$location = escape_tags(trim($_POST['location']));
|
$location = escape_tags(trim($_POST['location']));
|
||||||
$type = 'event';
|
$type = escape_tags(trim($_POST['type']));
|
||||||
|
|
||||||
require_once('include/text.php');
|
require_once('include/text.php');
|
||||||
linkify_tags($a, $desc, local_channel());
|
linkify_tags($a, $desc, local_channel());
|
||||||
linkify_tags($a, $location, local_channel());
|
linkify_tags($a, $location, local_channel());
|
||||||
|
|
||||||
$action = ($event_hash == '') ? 'new' : "event/" . $event_hash;
|
$action = ($event_hash == '') ? 'new' : "event/" . $event_hash;
|
||||||
$onerror_url = $a->get_baseurl() . "/events/" . $action . "?summary=$summary&description=$desc&location=$location&start=$start_text&finish=$finish_text&adjust=$adjust&nofinish=$nofinish";
|
$onerror_url = $a->get_baseurl() . "/events/" . $action . "?summary=$summary&description=$desc&location=$location&start=$start_text&finish=$finish_text&adjust=$adjust&nofinish=$nofinish&type=$type";
|
||||||
if(strcmp($finish,$start) < 0 && !$nofinish) {
|
if(strcmp($finish,$start) < 0 && !$nofinish) {
|
||||||
notice( t('Event can not end before it has started.') . EOL);
|
notice( t('Event can not end before it has started.') . EOL);
|
||||||
if(intval($_REQUEST['preview'])) {
|
if(intval($_REQUEST['preview'])) {
|
||||||
@ -400,7 +400,7 @@ function events_content(&$a) {
|
|||||||
|
|
||||||
$r = q("SELECT event.*, item.plink, item.item_flags, item.author_xchan, item.owner_xchan
|
$r = q("SELECT event.*, item.plink, item.item_flags, item.author_xchan, item.owner_xchan
|
||||||
from event left join item on event_hash = resource_id
|
from event left join item on event_hash = resource_id
|
||||||
where resource_type = 'event' and event.uid = %d $ignored
|
where resource_type in ( 'event', 'birthday' ) and event.uid = %d $ignored
|
||||||
AND (( `adjust` = 0 AND ( `finish` >= '%s' or nofinish = 1 ) AND `start` <= '%s' )
|
AND (( `adjust` = 0 AND ( `finish` >= '%s' or nofinish = 1 ) AND `start` <= '%s' )
|
||||||
OR ( `adjust` = 1 AND ( `finish` >= '%s' or nofinish = 1 ) AND `start` <= '%s' )) ",
|
OR ( `adjust` = 1 AND ( `finish` >= '%s' or nofinish = 1 ) AND `start` <= '%s' )) ",
|
||||||
intval(local_channel()),
|
intval(local_channel()),
|
||||||
@ -409,7 +409,6 @@ function events_content(&$a) {
|
|||||||
dbesc($adjust_start),
|
dbesc($adjust_start),
|
||||||
dbesc($adjust_finish)
|
dbesc($adjust_finish)
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$links = array();
|
$links = array();
|
||||||
@ -572,9 +571,7 @@ function events_content(&$a) {
|
|||||||
if(x($_REQUEST,'location')) $orig_event['location'] = $_REQUEST['location'];
|
if(x($_REQUEST,'location')) $orig_event['location'] = $_REQUEST['location'];
|
||||||
if(x($_REQUEST,'start')) $orig_event['start'] = $_REQUEST['start'];
|
if(x($_REQUEST,'start')) $orig_event['start'] = $_REQUEST['start'];
|
||||||
if(x($_REQUEST,'finish')) $orig_event['finish'] = $_REQUEST['finish'];
|
if(x($_REQUEST,'finish')) $orig_event['finish'] = $_REQUEST['finish'];
|
||||||
}
|
if(x($_REQUEST,'type')) $orig_event['type'] = $_REQUEST['type'];
|
||||||
|
|
||||||
if($mode === 'edit' || $mode === 'new') {
|
|
||||||
|
|
||||||
$n_checked = ((x($orig_event) && $orig_event['nofinish']) ? ' checked="checked" ' : '');
|
$n_checked = ((x($orig_event) && $orig_event['nofinish']) ? ' checked="checked" ' : '');
|
||||||
$a_checked = ((x($orig_event) && $orig_event['adjust']) ? ' checked="checked" ' : '');
|
$a_checked = ((x($orig_event) && $orig_event['adjust']) ? ' checked="checked" ' : '');
|
||||||
@ -593,9 +590,6 @@ function events_content(&$a) {
|
|||||||
if($orig_event['event_xchan'])
|
if($orig_event['event_xchan'])
|
||||||
$sh_checked .= ' disabled="disabled" ';
|
$sh_checked .= ' disabled="disabled" ';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$sdt = ((x($orig_event)) ? $orig_event['start'] : 'now');
|
$sdt = ((x($orig_event)) ? $orig_event['start'] : 'now');
|
||||||
$fdt = ((x($orig_event)) ? $orig_event['finish'] : 'now');
|
$fdt = ((x($orig_event)) ? $orig_event['finish'] : 'now');
|
||||||
|
|
||||||
@ -621,6 +615,7 @@ function events_content(&$a) {
|
|||||||
$fminute = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'i') : 0);
|
$fminute = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'i') : 0);
|
||||||
$ftext = datetime_convert('UTC',$tz,$fdt);
|
$ftext = datetime_convert('UTC',$tz,$fdt);
|
||||||
$ftext = substr($ftext,0,14) . "00:00";
|
$ftext = substr($ftext,0,14) . "00:00";
|
||||||
|
$type = ((x($orig_event)) ? $orig_event['type'] : 'event');
|
||||||
|
|
||||||
$f = get_config('system','event_input_format');
|
$f = get_config('system','event_input_format');
|
||||||
if(! $f)
|
if(! $f)
|
||||||
@ -660,6 +655,7 @@ function events_content(&$a) {
|
|||||||
$o .= replace_macros($tpl,array(
|
$o .= replace_macros($tpl,array(
|
||||||
'$post' => $a->get_baseurl() . '/events',
|
'$post' => $a->get_baseurl() . '/events',
|
||||||
'$eid' => $eid,
|
'$eid' => $eid,
|
||||||
|
'$type' => $type,
|
||||||
'$xchan' => $event_xchan,
|
'$xchan' => $event_xchan,
|
||||||
'$mid' => $mid,
|
'$mid' => $mid,
|
||||||
'$event_hash' => $event_id,
|
'$event_hash' => $event_id,
|
||||||
|
93
mod/tasks.php
Normal file
93
mod/tasks.php
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
function tasks_post(&$a) {
|
||||||
|
|
||||||
|
if(! local_channel())
|
||||||
|
return;
|
||||||
|
|
||||||
|
$channel = $a->get_channel();
|
||||||
|
|
||||||
|
if((argc() > 2) && (argv(1) === 'complete') && intval(argv(2))) {
|
||||||
|
$ret = array('success' => false);
|
||||||
|
$r = q("select * from event where `type` = 'task' and uid = %d and id = %d limit 1",
|
||||||
|
intval(local_channel()),
|
||||||
|
intval(argv(2))
|
||||||
|
);
|
||||||
|
if($r) {
|
||||||
|
$event = $r[0];
|
||||||
|
if($event['event_status'] === 'COMPLETED') {
|
||||||
|
$event['event_status'] = 'IN-PROCESS';
|
||||||
|
$event['event_status_date'] = NULL_DATE;
|
||||||
|
$event['event_percent'] = 0;
|
||||||
|
$event['event_sequence'] = $event['event_sequence'] + 1;
|
||||||
|
$event['edited'] = datetime_convert();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$event['event_status'] = 'COMPLETED';
|
||||||
|
$event['event_status_date'] = datetime_convert();
|
||||||
|
$event['event_percent'] = 100;
|
||||||
|
$event['event_sequence'] = $event['event_sequence'] + 1;
|
||||||
|
$event['edited'] = datetime_convert();
|
||||||
|
}
|
||||||
|
$x = event_store_event($event);
|
||||||
|
if($x)
|
||||||
|
$ret['success'] = true;
|
||||||
|
}
|
||||||
|
json_return_and_die($ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(argc() == 2 && argv(1) === 'new') {
|
||||||
|
$text = escape_tags(trim($_REQUEST['summary']));
|
||||||
|
if(! $text)
|
||||||
|
return array('success' => false);
|
||||||
|
$event = array();
|
||||||
|
$event['aid'] = $channel['channel_account_id'];
|
||||||
|
$event['uid'] = $channel['channel_id'];
|
||||||
|
$event['event_xchan'] = $channel['channel_hash'];
|
||||||
|
$event['type'] = 'task';
|
||||||
|
$event['nofinish'] = true;
|
||||||
|
$event['created'] = $event['edited'] = $event['start'] = datetime_convert();
|
||||||
|
$event['adjust'] = 1;
|
||||||
|
$event['allow_cid'] = '<' . $channel['channel_hash'] . '>';
|
||||||
|
$event['summary'] = escape_tags($_REQUEST['summary']);
|
||||||
|
$x = event_store_event($event);
|
||||||
|
if($x)
|
||||||
|
$x['success'] = true;
|
||||||
|
else
|
||||||
|
$x = array('success' => false);
|
||||||
|
json_return_and_die($x);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function tasks_content(&$a) {
|
||||||
|
|
||||||
|
if(! local_channel())
|
||||||
|
return;
|
||||||
|
|
||||||
|
$ret = array();
|
||||||
|
$sql_extra = " and event_status != 'COMPLETED' ";
|
||||||
|
if(argc() > 1 && argv(1) === 'all')
|
||||||
|
$sql_extra = '';
|
||||||
|
|
||||||
|
|
||||||
|
$r = q("select * from event where type = 'task' and uid = %d $sql_extra ",
|
||||||
|
intval(local_channel())
|
||||||
|
);
|
||||||
|
|
||||||
|
$ret['success'] = (($r) ? true : false);
|
||||||
|
if($r) {
|
||||||
|
$ret['tasks'] = $r;
|
||||||
|
}
|
||||||
|
|
||||||
|
json_return_and_die($r);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -12,6 +12,7 @@
|
|||||||
<input type="hidden" name="event_hash" value="{{$event_hash}}" />
|
<input type="hidden" name="event_hash" value="{{$event_hash}}" />
|
||||||
<input type="hidden" name="xchan" value="{{$xchan}}" />
|
<input type="hidden" name="xchan" value="{{$xchan}}" />
|
||||||
<input type="hidden" name="mid" value="{{$mid}}" />
|
<input type="hidden" name="mid" value="{{$mid}}" />
|
||||||
|
<input type="hidden" name="type" value="{{$type}}" />
|
||||||
<input type="hidden" name="preview" id="event-edit-preview" value="0" />
|
<input type="hidden" name="preview" id="event-edit-preview" value="0" />
|
||||||
|
|
||||||
<div id="event-summary-text">{{$t_text}}</div>
|
<div id="event-summary-text">{{$t_text}}</div>
|
||||||
@ -92,14 +93,6 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <div class="btn-group pull-right" id="comment-edit-submit-wrapper-desc">
|
|
||||||
{{if $preview}}
|
|
||||||
<button id="comment-edit-submit-desc" class="btn btn-default btn-xs" onclick="preview_comment(desc); return false;" title="{{$preview}}">
|
|
||||||
<i class="icon-eye-open comment-icon" ></i>
|
|
||||||
</button>
|
|
||||||
{{/if}}
|
|
||||||
-->
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
|
Reference in New Issue
Block a user