Merge remote-tracking branch 'upstream/master'
Conflicts: include/datetime.php include/text.php mod/events.php version.inc view/css/mod_events.css view/theme/redbasic/css/style.css view/tpl/event_head.tpl view/tpl/events-js.tpl view/tpl/jot.tpl
This commit is contained in:
commit
17907f11a3
@ -28,3 +28,4 @@ AddType audio/ogg .oga
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^(.*)$ index.php?q=$1 [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
|
||||
</IfModule>
|
||||
|
||||
|
@ -154,6 +154,8 @@ This document assumes you're an administrator.
|
||||
Needed in some Windows installations to locate the openssl configuration file on the system.
|
||||
[b]system > hide_help[/b]
|
||||
Don't display help documentation link in nav bar
|
||||
[b]system > expire_delivery_reports[/b]
|
||||
Expiration in days for delivery reports - default 30
|
||||
|
||||
[b]Directory config[/b]
|
||||
[b]Directory search defaults[/b]
|
||||
|
@ -235,7 +235,11 @@ function datetimesel($format, $min, $max, $default, $label, $id = 'datetimepicke
|
||||
$o .= replace_macros($tpl,array(
|
||||
'$field' => array($id, $label, $input_text, (($required) ? t('Required') : ''), (($required) ? '*' : ''), 'placeholder="' . $readable_format . '"'),
|
||||
));
|
||||
<<<<<<< HEAD
|
||||
$o .= "<script>\$(function () {var picker = \$('#id_$id').datetimepicker({step:5,format:'$dateformat' $minjs $maxjs $pickers $defaultdatejs,dayOfWeekStart:$first_day}); $extra_js})</script>";
|
||||
=======
|
||||
$o .= "<script>\$(function () {var picker = \$('#id_$id').datetimepicker({step:15,format:'$dateformat' $minjs $maxjs $pickers $defaultdatejs,dayOfWeekStart:$first_day}); $extra_js})</script>";
|
||||
>>>>>>> upstream/master
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ function find_upstream_directory($dirmode) {
|
||||
$r = q("select * from site where site_url = '%s' limit 1",
|
||||
dbesc($preferred)
|
||||
);
|
||||
if(($r) && ($r[0]['site_flags'] & DIRECTORY_MODE_STADALONE)) {
|
||||
if(($r) && ($r[0]['site_flags'] & DIRECTORY_MODE_STANDALONE)) {
|
||||
$preferred = '';
|
||||
}
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ function js_strings() {
|
||||
'$submit' => t('Submit'),
|
||||
'$linkurl' => t('Please enter a link URL'),
|
||||
'$leavethispage' => t('Unsaved changes. Are you sure you wish to leave this page?'),
|
||||
'$location' => t('Location'),
|
||||
|
||||
'$t01' => ((t('timeago.prefixAgo') != 'timeago.prefixAgo') ? t('timeago.prefixAgo') : ''),
|
||||
'$t02' => ((t('timeago.prefixFromNow') != 'timeago.prefixFromNow') ? t('timeago.prefixFromNow') : ''),
|
||||
|
@ -117,6 +117,8 @@ function tagadelic($uid, $count = 0, $authors = '', $owner = '', $flags = 0, $re
|
||||
if(! perm_is_allowed($uid,get_observer_hash(),'view_stream'))
|
||||
return array();
|
||||
|
||||
|
||||
$item_normal = item_normal();
|
||||
$sql_options = item_permissions_sql($uid);
|
||||
$count = intval($count);
|
||||
|
||||
@ -142,7 +144,7 @@ function tagadelic($uid, $count = 0, $authors = '', $owner = '', $flags = 0, $re
|
||||
$r = q("select term, count(term) as total from term left join item on term.oid = item.id
|
||||
where term.uid = %d and term.type = %d
|
||||
and otype = %d and item_type = %d and item_private = 0
|
||||
$sql_options
|
||||
$sql_options $item_normal
|
||||
group by term order by total desc %s",
|
||||
intval($uid),
|
||||
intval($type),
|
||||
|
@ -1381,7 +1381,37 @@ function generate_named_map($location) {
|
||||
return (($arr['html']) ? $arr['html'] : $location);
|
||||
}
|
||||
|
||||
function format_event($jobject) {
|
||||
$event = array();
|
||||
|
||||
$object = json_decode($jobject,true);
|
||||
|
||||
//ensure compatibility with older items - this check can be removed at a later point
|
||||
if(array_key_exists('description', $object)) {
|
||||
|
||||
$bd_format = t('l F d, Y \@ g:i A'); // Friday January 18, 2011 @ 8:01 AM
|
||||
|
||||
$event['header'] = replace_macros(get_markup_template('event_item_header.tpl'),array(
|
||||
'$title' => bbcode($object['title']),
|
||||
'$dtstart_label' => t('Starts:'),
|
||||
'$dtstart_title' => datetime_convert('UTC', 'UTC', $object['start'], (($object['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' )),
|
||||
'$dtstart_dt' => (($object['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(), $object['start'] , $bd_format )) : day_translate(datetime_convert('UTC', 'UTC', $object['start'] , $bd_format))),
|
||||
'$finish' => (($object['nofinish']) ? false : true),
|
||||
'$dtend_label' => t('Finishes:'),
|
||||
'$dtend_title' => datetime_convert('UTC','UTC',$object['finish'], (($object['adjust']) ? ATOM_TIME : 'Y-m-d\TH:i:s' )),
|
||||
'$dtend_dt' => (($object['adjust']) ? day_translate(datetime_convert('UTC', date_default_timezone_get(), $object['finish'] , $bd_format )) : day_translate(datetime_convert('UTC', 'UTC', $object['finish'] , $bd_format )))
|
||||
));
|
||||
|
||||
$event['content'] = replace_macros(get_markup_template('event_item_content.tpl'),array(
|
||||
'$description' => bbcode($object['description']),
|
||||
'$location_label' => t('Location:'),
|
||||
'$location' => bbcode($object['location'])
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
return $event;
|
||||
}
|
||||
|
||||
function prepare_body(&$item,$attach = false) {
|
||||
require_once('include/identity.php');
|
||||
@ -1414,6 +1444,7 @@ function prepare_body(&$item,$attach = false) {
|
||||
}
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
$event = array();
|
||||
$is_event = (($item['obj_type'] === ACTIVITY_OBJ_EVENT) ? true : false);
|
||||
|
||||
@ -1462,6 +1493,13 @@ function prepare_body(&$item,$attach = false) {
|
||||
$prep_arr = array(
|
||||
'item' => $item,
|
||||
'html' => $is_event ? $event['content'] : $s,
|
||||
=======
|
||||
$event = (($item['obj_type'] === ACTIVITY_OBJ_EVENT) ? format_event($item['object']) : false);
|
||||
|
||||
$prep_arr = array(
|
||||
'item' => $item,
|
||||
'html' => $event ? $event['content'] : $s,
|
||||
>>>>>>> upstream/master
|
||||
'event' => $event['header'],
|
||||
'photo' => $photo
|
||||
);
|
||||
|
@ -666,7 +666,7 @@ function widget_eventsmenu($arr) {
|
||||
if (! local_channel())
|
||||
return;
|
||||
|
||||
return replace_macros(get_markup_template('events_side.tpl'), array(
|
||||
return replace_macros(get_markup_template('events_menu_side.tpl'), array(
|
||||
'$title' => t('Events Menu'),
|
||||
'$day' => t('Day View'),
|
||||
'$week' => t('Week View'),
|
||||
@ -677,6 +677,18 @@ function widget_eventsmenu($arr) {
|
||||
));
|
||||
}
|
||||
|
||||
function widget_eventstools($arr) {
|
||||
if (! local_channel())
|
||||
return;
|
||||
|
||||
return replace_macros(get_markup_template('events_tools_side.tpl'), array(
|
||||
'$title' => t('Events Tools'),
|
||||
'$export' => t('Export Calendar'),
|
||||
'$import' => t('Import Calendar'),
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
}
|
||||
|
||||
function widget_design_tools($arr) {
|
||||
$a = get_app();
|
||||
|
||||
@ -1147,6 +1159,8 @@ function widget_forums($arr) {
|
||||
|
||||
function widget_tasklist($arr) {
|
||||
|
||||
if (! local_channel())
|
||||
return;
|
||||
|
||||
require_once('include/event.php');
|
||||
$o .= '<script>var tasksShowAll = 0; $(document).ready(function() { tasksFetch(); $("#tasklist-new-form").submit(function(event) { event.preventDefault(); $.post( "tasks/new", $("#tasklist-new-form").serialize(), function(data) { tasksFetch(); $("#tasklist-new-summary").val(""); } ); return false; } )});</script>';
|
||||
|
@ -3951,9 +3951,6 @@ function delivery_report_is_storable($dr) {
|
||||
return false;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// is the recipient one of our connections, or do we want to store every report?
|
||||
|
||||
$r = explode(' ', $dr['recipient']);
|
||||
|
@ -341,3 +341,44 @@ This is obvious as soon as you notice that the cron uses proc_open to
|
||||
execute php-scripts that also use proc_open, but it took me quite some time to
|
||||
find that out. I hope this saves some time for other people using suhosin with
|
||||
function blacklists.
|
||||
|
||||
#####################################################################
|
||||
- Apache processes hanging, using as much CPU as they can
|
||||
#####################################################################
|
||||
|
||||
This seems to happen sometimes if you use mpm_prefork and the PHP process
|
||||
started by Apache cannot get database access.
|
||||
|
||||
Consider the following settings:
|
||||
|
||||
In /etc/apache2/mods-enabled/mpm_prefork.conf (Debian, path and file name
|
||||
may vary depending on your OS and distribution), set
|
||||
|
||||
GracefulShutdownTimeout 300
|
||||
|
||||
This makes sure that Apache processes that are running wild will not do so
|
||||
forever, but will be killed if they didn't stop five minutes after a
|
||||
shutdown command was sent to the process.
|
||||
|
||||
If you expect high load on your server (public servers, e.g.), also make
|
||||
sure that Apache will not spawn more processes than MySQL will accept
|
||||
connections.
|
||||
|
||||
In the default Debian configuration, in
|
||||
/etc/apache2/mods-enabled/mpm_prefork.conf the maximum number of workers
|
||||
is set to 150:
|
||||
|
||||
MaxRequestWorkers 150
|
||||
|
||||
However, in /etc/mysql/my.cnf the maximum number of connection is set to
|
||||
100:
|
||||
|
||||
max_connections = 100
|
||||
|
||||
150 workers are a lot and probably too much for small servers. However you
|
||||
set those values, make sure that the number of Apache workers is smaller
|
||||
than the number of connections MySQL accepts, leaving some room for other
|
||||
stuff on your server that might access MySQL, and Hubzilla's poller which
|
||||
needs MySQL access, too. A good setting for a medium-sized hub might be to
|
||||
keep MySQL's max_connections at 100 and set mpm_prefork's
|
||||
MaxRequestWorkers to 70.
|
||||
|
@ -90,7 +90,11 @@ function events_post(&$a) {
|
||||
linkify_tags($a, $desc, local_channel());
|
||||
linkify_tags($a, $location, local_channel());
|
||||
|
||||
<<<<<<< HEAD
|
||||
$action = ($event_hash == '') ? 'new' : "event/" . $event_hash;
|
||||
=======
|
||||
//$action = ($event_hash == '') ? 'new' : "event/" . $event_hash;
|
||||
>>>>>>> upstream/master
|
||||
|
||||
//fixme: this url gives a wsod if there is a linebreak detected in one of the variables ($desc or $location)
|
||||
//$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";
|
||||
@ -322,6 +326,7 @@ function events_content(&$a) {
|
||||
}
|
||||
|
||||
if($mode == 'view') {
|
||||
<<<<<<< HEAD
|
||||
|
||||
/* edit/create form */
|
||||
if($event_id) {
|
||||
@ -339,6 +344,25 @@ function events_content(&$a) {
|
||||
if(!x($orig_event))
|
||||
$orig_event = array();
|
||||
|
||||
=======
|
||||
|
||||
/* edit/create form */
|
||||
if($event_id) {
|
||||
$r = q("SELECT * FROM `event` WHERE event_hash = '%s' AND `uid` = %d LIMIT 1",
|
||||
dbesc($event_id),
|
||||
intval(local_channel())
|
||||
);
|
||||
if(count($r))
|
||||
$orig_event = $r[0];
|
||||
}
|
||||
|
||||
$channel = $a->get_channel();
|
||||
|
||||
// Passed parameters overrides anything found in the DB
|
||||
if(!x($orig_event))
|
||||
$orig_event = array();
|
||||
|
||||
>>>>>>> upstream/master
|
||||
// In case of an error the browser is redirected back here, with these parameters filled in with the previous values
|
||||
/*
|
||||
if(x($_REQUEST,'nofinish')) $orig_event['nofinish'] = $_REQUEST['nofinish'];
|
||||
@ -376,6 +400,7 @@ function events_content(&$a) {
|
||||
if(x($orig_event))
|
||||
$tz = (($orig_event['adjust']) ? date_default_timezone_get() : 'UTC');
|
||||
|
||||
<<<<<<< HEAD
|
||||
// $syear = ((x($orig_event)) ? datetime_convert('UTC', $tz, $sdt, 'Y') : '0000');
|
||||
// $smonth = ((x($orig_event)) ? datetime_convert('UTC', $tz, $sdt, 'm') : '00');
|
||||
// $sday = ((x($orig_event)) ? datetime_convert('UTC', $tz, $sdt, 'd') : '00');
|
||||
@ -387,12 +412,18 @@ function events_content(&$a) {
|
||||
// $shour = ((x($orig_event)) ? datetime_convert('UTC', $tz, $sdt, 'H') : '00');
|
||||
// $sminute = ((x($orig_event)) ? datetime_convert('UTC', $tz, $sdt, 'i') : '00');
|
||||
|
||||
=======
|
||||
$syear = datetime_convert('UTC', $tz, $sdt, 'Y');
|
||||
$smonth = datetime_convert('UTC', $tz, $sdt, 'm');
|
||||
$sday = datetime_convert('UTC', $tz, $sdt, 'd');
|
||||
>>>>>>> upstream/master
|
||||
$shour = datetime_convert('UTC', $tz, $sdt, 'H');
|
||||
$sminute = datetime_convert('UTC', $tz, $sdt, 'i');
|
||||
|
||||
$stext = datetime_convert('UTC',$tz,$sdt);
|
||||
$stext = substr($stext,0,14) . "00:00";
|
||||
|
||||
<<<<<<< HEAD
|
||||
// $fyear = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'Y') : '0000');
|
||||
// $fmonth = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'm') : '00');
|
||||
// $fday = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'd') : '00');
|
||||
@ -404,11 +435,20 @@ function events_content(&$a) {
|
||||
// $fhour = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'H') : '00');
|
||||
// $fminute = ((x($orig_event)) ? datetime_convert('UTC', $tz, $fdt, 'i') : '00');
|
||||
|
||||
=======
|
||||
$fyear = datetime_convert('UTC', $tz, $fdt, 'Y');
|
||||
$fmonth = datetime_convert('UTC', $tz, $fdt, 'm');
|
||||
$fday = datetime_convert('UTC', $tz, $fdt, 'd');
|
||||
>>>>>>> upstream/master
|
||||
$fhour = datetime_convert('UTC', $tz, $fdt, 'H');
|
||||
$fminute = datetime_convert('UTC', $tz, $fdt, 'i');
|
||||
|
||||
$ftext = datetime_convert('UTC',$tz,$fdt);
|
||||
$ftext = substr($ftext,0,14) . "00:00";
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
>>>>>>> upstream/master
|
||||
$type = ((x($orig_event)) ? $orig_event['type'] : 'event');
|
||||
|
||||
$f = get_config('system','event_input_format');
|
||||
@ -608,7 +648,11 @@ function events_content(&$a) {
|
||||
|
||||
$last_date = $d;
|
||||
|
||||
<<<<<<< HEAD
|
||||
$edit = array($a->get_baseurl().'/events/'.$rr['event_hash'].'?expandform=1',t('Edit event'),'','');
|
||||
=======
|
||||
$edit = ((local_channel() && $rr['author_xchan'] == get_observer_hash()) ? array($a->get_baseurl().'/events/'.$rr['event_hash'].'?expandform=1',t('Edit event'),'','') : false);
|
||||
>>>>>>> upstream/master
|
||||
|
||||
$drop = array($a->get_baseurl().'/events/drop/'.$rr['event_hash'],t('Delete event'),'','');
|
||||
|
||||
|
11989
util/hmessages.po
11989
util/hmessages.po
File diff suppressed because it is too large
Load Diff
@ -1 +1,5 @@
|
||||
<<<<<<< HEAD
|
||||
2015-11-25.1227
|
||||
=======
|
||||
2015-11-27.1229
|
||||
>>>>>>> upstream/master
|
||||
|
3
view/css/bootstrap-red.css
vendored
3
view/css/bootstrap-red.css
vendored
@ -57,7 +57,8 @@ nav .navbar-toggle {
|
||||
/* nav overrides end */
|
||||
|
||||
|
||||
aside .nav-pills > li > a {
|
||||
aside .nav-pills > li > a,
|
||||
.response-list .nav-pills > li > a {
|
||||
padding: 6px 10px;
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,55 @@
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
.fc-unthemed th,
|
||||
.fc-unthemed td,
|
||||
.fc-unthemed thead,
|
||||
.fc-unthemed tbody,
|
||||
.fc-unthemed .fc-divider,
|
||||
.fc-unthemed .fc-row,
|
||||
.fc-unthemed .fc-popover {
|
||||
border-color: #ccc !important;
|
||||
}
|
||||
|
||||
#events-spinner .spinner {
|
||||
margin-top: 9px;
|
||||
margin-bottom: -9px;
|
||||
}
|
||||
|
||||
>>>>>>> upstream/master
|
||||
.bootstrap-tagsinput {
|
||||
width: 100%;
|
||||
padding: 6px 12px;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
.event-wrapper {
|
||||
max-width: 700px;
|
||||
height: auto;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.event-owner {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.event-owner img {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.event-buttons,
|
||||
.event-description {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#event-upload-form {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#event-upload-choose {
|
||||
width: 100%;
|
||||
}
|
||||
>>>>>>> upstream/master
|
||||
|
@ -1,4 +1,5 @@
|
||||
[region=aside]
|
||||
[widget=eventsmenu][/widget]
|
||||
[widget=eventstools][/widget]
|
||||
[widget=tasklist][/widget]
|
||||
[/region]
|
||||
|
@ -241,7 +241,8 @@ footer {
|
||||
padding-right: 3em;
|
||||
}
|
||||
|
||||
.birthday-today, .event-today {
|
||||
.birthday-today,
|
||||
.event-today {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@ -847,6 +848,7 @@ nav .acpopup {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
.fc-unthemed th,
|
||||
.fc-unthemed td,
|
||||
.fc-unthemed thead,
|
||||
@ -909,6 +911,8 @@ nav .acpopup {
|
||||
}
|
||||
|
||||
|
||||
=======
|
||||
>>>>>>> upstream/master
|
||||
#cboxOverlay {
|
||||
z-index: 1050;
|
||||
}
|
||||
@ -1562,8 +1566,12 @@ img.mail-conv-sender-photo {
|
||||
padding: 0.5em 10px;
|
||||
}
|
||||
|
||||
.wall-photo-item {
|
||||
/*padding: 0.5em 10px;*/
|
||||
.wall-event-item {
|
||||
padding: 10px;
|
||||
color: #fff;
|
||||
background-color: #3A87AD; /* should reflect calendar color */
|
||||
border-top-left-radius: $radiuspx;
|
||||
border-top-right-radius: $radiuspx;
|
||||
}
|
||||
|
||||
.wall-photo-item img {
|
||||
@ -2252,8 +2260,11 @@ nav .badge.mail-update:hover {
|
||||
.help-searchlist a {
|
||||
font-size: 130%;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
|
||||
.response-list ul {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
=======
|
||||
>>>>>>> upstream/master
|
||||
|
@ -183,7 +183,7 @@
|
||||
<h4 class="modal-title">{{$response.title}}</h4>
|
||||
</div>
|
||||
<div class="modal-body response-list">
|
||||
<ul>{{foreach $response.list as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul>
|
||||
<ul class="nav nav-pills nav-stacked">{{foreach $response.list as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul>
|
||||
</div>
|
||||
<div class="modal-footer clear">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{$item.modal_dismiss}}</button>
|
||||
|
@ -55,7 +55,14 @@
|
||||
showEvent(calEvent.id);
|
||||
},
|
||||
loading: function(isLoading, view) {
|
||||
$('#events-spinner').spin('tiny');
|
||||
$('#events-spinner > i').css('color', 'transparent');
|
||||
if(!isLoading) {
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
$('#events-spinner').spin(false);
|
||||
$('#events-spinner > i').css('color', '');
|
||||
>>>>>>> upstream/master
|
||||
$('td.fc-day').dblclick(function() {
|
||||
openMenu('form');
|
||||
//window.location.href='/events/new?start='+$(this).data('date');
|
||||
@ -71,30 +78,54 @@
|
||||
switch(view.name){
|
||||
case "month":
|
||||
element.find(".fc-title").html(
|
||||
<<<<<<< HEAD
|
||||
"<img src='{0}' style='height:10px;width:10px'> {1}: {2}".format(
|
||||
=======
|
||||
"<img src='{0}' style='height:12px;width:12px;' title='{1}'> <span title='{3}{4}'>{2}</span>".format(
|
||||
>>>>>>> upstream/master
|
||||
event.item['author']['xchan_photo_s'],
|
||||
event.item['author']['xchan_name'],
|
||||
event.title
|
||||
event.title,
|
||||
event.item.description ? event.item.description + "\r\n\r\n" : '',
|
||||
event.item.location ? aStr['location'] + ': ' + event.item.location.replace(/(<([^>]+)>)/ig,"") : ''
|
||||
));
|
||||
break;
|
||||
case "agendaWeek":
|
||||
element.find(".fc-title").html(
|
||||
<<<<<<< HEAD
|
||||
"<img src='{0}' style='height:10px; width:10px'> {1}: {2}<p>{3}</p><p>{4}</p>".format(
|
||||
event.item['author']['xchan_photo_s'],
|
||||
event.item['author']['xchan_name'],
|
||||
event.title,
|
||||
event.item.description,
|
||||
event.item.location
|
||||
=======
|
||||
"<img src='{0}' style='height:12px;width:12px;'> {1}: <span title='{3}{4}'>{2}</span>".format(
|
||||
event.item['author']['xchan_photo_s'],
|
||||
event.item['author']['xchan_name'],
|
||||
event.title,
|
||||
event.item.description ? event.item.description + "\r\n\r\n" : '',
|
||||
event.item.location ? aStr['location'] + ': ' + event.item.location.replace(/(<([^>]+)>)/ig,"") : ''
|
||||
>>>>>>> upstream/master
|
||||
));
|
||||
break;
|
||||
case "agendaDay":
|
||||
element.find(".fc-title").html(
|
||||
<<<<<<< HEAD
|
||||
"<img src='{0}' style='height:10px;width:10px'> {1}: {2}<p>{3}</p><p>{4}</p>".format(
|
||||
event.item['author']['xchan_photo_s'],
|
||||
event.item['author']['xchan_name'],
|
||||
event.title,
|
||||
event.item.description,
|
||||
event.item.location
|
||||
=======
|
||||
"<img src='{0}' style='height:12px;width:12px;'> {1}: <span title='{3}{4}'>{2}</span>".format(
|
||||
event.item['author']['xchan_photo_s'],
|
||||
event.item['author']['xchan_name'],
|
||||
event.title,
|
||||
event.item.description ? event.item.description + "\r\n\r\n" : '',
|
||||
event.item.location ? aStr['location'] + ': ' + event.item.location.replace(/(<([^>]+)>)/ig,"") : ''
|
||||
>>>>>>> upstream/master
|
||||
));
|
||||
break;
|
||||
}
|
||||
|
10
view/tpl/event_item_content.tpl
Normal file
10
view/tpl/event_item_content.tpl
Normal file
@ -0,0 +1,10 @@
|
||||
{{if $description}}
|
||||
<div class="event-description">
|
||||
{{$description}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $location}}
|
||||
<div class="event-location">
|
||||
<span class="event-label">{{$location_label}}</span> <span class="event_location">{{$location}}</span>
|
||||
</div>
|
||||
{{/if}}
|
11
view/tpl/event_item_header.tpl
Executable file
11
view/tpl/event_item_header.tpl
Executable file
@ -0,0 +1,11 @@
|
||||
<div class="event-title">
|
||||
<h3><i class="icon-calendar"></i> {{$title}}</h3>
|
||||
</div>
|
||||
<div class="event-start">
|
||||
<span class="event-label">{{$dtstart_label}}</span> <span class="dtstart" title="{{$dtstart_title}}">{{$dtstart_dt}}</span>
|
||||
</div>
|
||||
{{if $finish}}
|
||||
<div class="event-start">
|
||||
<span class="event-label">{{$dtend_label}}</span> <span class="dtend" title="{{$dtend_title}}">{{$dtend_dt}}</span>
|
||||
</div>
|
||||
{{/if}}
|
@ -1,12 +1,16 @@
|
||||
<div class="generic-content-wrapper">
|
||||
<div class="section-title-wrapper">
|
||||
<div class="pull-right">
|
||||
<<<<<<< HEAD
|
||||
<button class="btn btn-default btn-xs" onclick="openClose('event-tools'); closeMenu('form');"><i class="icon-cog"></i></button>
|
||||
<button class="btn btn-success btn-xs" onclick="openClose('form'); closeMenu('event-tools');">{{$new_event.1}}</button>
|
||||
|
||||
=======
|
||||
<button class="btn btn-success btn-xs" onclick="openClose('form'); closeMenu('event-tools');">{{$new_event.1}}</button>
|
||||
>>>>>>> upstream/master
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-default btn-xs" onclick="changeView('prev', false);" title="{{$prev}}"><i class="icon-backward"></i></button>
|
||||
<button class="btn btn-default btn-xs" onclick="changeView('today', false);" title="{{$today}}"><i class="icon-bullseye"></i></button>
|
||||
<button id="events-spinner" class="btn btn-default btn-xs" onclick="changeView('today', false);" title="{{$today}}"><i class="icon-bullseye"></i></button>
|
||||
<button class="btn btn-default btn-xs" onclick="changeView('next', false);" title="{{$next}}"><i class="icon-forward"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
@ -15,6 +19,7 @@
|
||||
</div>
|
||||
<div id="form" class="section-content-tools-wrapper"{{if !$expandform}} style="display:none;"{{/if}}>
|
||||
{{$form}}
|
||||
<<<<<<< HEAD
|
||||
</div>
|
||||
<div id="event-tools" class="section-content-tools-wrapper" style="display:none;">
|
||||
<div class="form-group">
|
||||
@ -28,6 +33,8 @@
|
||||
|
||||
</form>
|
||||
</div>
|
||||
=======
|
||||
>>>>>>> upstream/master
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
<div class="section-content-wrapper-np">
|
||||
|
15
view/tpl/events_tools_side.tpl
Executable file
15
view/tpl/events_tools_side.tpl
Executable file
@ -0,0 +1,15 @@
|
||||
<div class="widget">
|
||||
<h3>{{$title}}</h3>
|
||||
<ul class="nav nav-pills nav-stacked">
|
||||
<li><a href="#" onclick="exportDate(); return false;"><i class="icon-download"></i> {{$export}}</a></li>
|
||||
<li><a href="#" onclick="openClose('event-upload-form'); return false;"><i class="icon-upload"></i> {{$import}}</a></li>
|
||||
</ul>
|
||||
<div id="event-upload-form" style="display: none;">
|
||||
<form action="events" enctype="multipart/form-data" method="post" name="event-upload-form" id="event-upload-form">
|
||||
<div class="form-group">
|
||||
<input id="event-upload-choose" type="file" name="userfile" />
|
||||
</div>
|
||||
<button id="dbtn-submit" class="btn btn-primary btn-xs" type="submit" name="submit" >{{$submit}}</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
213
view/tpl/jot.tpl
Executable file
213
view/tpl/jot.tpl
Executable file
@ -0,0 +1,213 @@
|
||||
<div id="profile-jot-wrapper">
|
||||
<form id="profile-jot-form" action="{{$action}}" method="post">
|
||||
{{if $parent}}
|
||||
<input type="hidden" name="parent" value="{{$parent}}" />
|
||||
{{/if}}
|
||||
<input type="hidden" name="obj_type" value="{{$ptyp}}" />
|
||||
<input type="hidden" name="profile_uid" value="{{$profile_uid}}" />
|
||||
<input type="hidden" name="return" value="{{$return_path}}" />
|
||||
<input type="hidden" name="location" id="jot-location" value="{{$defloc}}" />
|
||||
<input type="hidden" name="expire" id="jot-expire" value="{{$defexpire}}" />
|
||||
<input type="hidden" name="created" id="jot-created" value="{{$defpublish}}" />
|
||||
<input type="hidden" name="media_str" id="jot-media" value="" />
|
||||
<input type="hidden" name="source" id="jot-source" value="{{$source}}" />
|
||||
<input type="hidden" name="coord" id="jot-coord" value="" />
|
||||
<input type="hidden" name="post_id" value="{{$post_id}}" />
|
||||
<input type="hidden" name="webpage" value="{{$webpage}}" />
|
||||
<input type="hidden" name="preview" id="jot-preview" value="0" />
|
||||
<input type="hidden" id="jot-consensus" name="consensus" value="{{if $consensus}}{{$consensus}}{{else}}0{{/if}}" />
|
||||
{{if $showacl}}{{$acl}}{{/if}}
|
||||
{{$mimeselect}}
|
||||
{{$layoutselect}}
|
||||
{{if $id_select}}
|
||||
<div class="channel-id-select-div">
|
||||
<span class="channel-id-select-desc">{{$id_seltext}}</span> {{$id_select}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if $webpage}}
|
||||
<div id="jot-pagetitle-wrap" class="jothidden">
|
||||
<input name="pagetitle" id="jot-pagetitle" type="text" placeholder="{{$placeholdpagetitle}}" value="{{$pagetitle}}">
|
||||
</div>
|
||||
{{/if}}
|
||||
<div id="jot-title-wrap" class="jothidden">
|
||||
<input name="title" id="jot-title" type="text" placeholder="{{$placeholdertitle}}" tabindex=1 value="{{$title}}">
|
||||
</div>
|
||||
{{if $catsenabled}}
|
||||
<div id="jot-category-wrap" class="jothidden">
|
||||
<input name="category" id="jot-category" type="text" placeholder="{{$placeholdercategory}}" value="{{$category}}" data-role="cat-tagsinput">
|
||||
</div>
|
||||
{{/if}}
|
||||
<div id="jot-text-wrap">
|
||||
<textarea class="profile-jot-text" id="profile-jot-text" name="body" tabindex=2 placeholder="{{$share}}">{{$content}}</textarea>
|
||||
</div>
|
||||
{{if $attachment}}
|
||||
<div id="jot-attachment-wrap">
|
||||
<input class="jot-attachment" name="attachment" id="jot-attachment" type="text" value="{{$attachment}}" readonly="readonly" onclick="this.select();">
|
||||
</div>
|
||||
{{/if}}
|
||||
<div id="profile-jot-submit-wrapper" class="jothidden">
|
||||
<div id="profile-jot-submit-left" class="btn-toolbar pull-left">
|
||||
<div class="btn-group">
|
||||
<button id="main-editor-bold" class="btn btn-default btn-sm" title="{{$bold}}" onclick="inserteditortag('b', 'profile-jot-text'); return false;">
|
||||
<i class="icon-bold jot-icons"></i>
|
||||
</button>
|
||||
<button id="main-editor-italic" class="btn btn-default btn-sm" title="{{$italic}}" onclick="inserteditortag('i', 'profile-jot-text'); return false;">
|
||||
<i class="icon-italic jot-icons"></i>
|
||||
</button>
|
||||
<button id="main-editor-underline" class="btn btn-default btn-sm" title="{{$underline}}" onclick="inserteditortag('u', 'profile-jot-text'); return false;">
|
||||
<i class="icon-underline jot-icons"></i>
|
||||
</button>
|
||||
<button id="main-editor-quote" class="btn btn-default btn-sm" title="{{$quote}}" onclick="inserteditortag('quote', 'profile-jot-text'); return false;">
|
||||
<i class="icon-quote-left jot-icons"></i>
|
||||
</button>
|
||||
<button id="main-editor-code" class="btn btn-default btn-sm" title="{{$code}}" onclick="inserteditortag('code', 'profile-jot-text'); return false;">
|
||||
<i class="icon-terminal jot-icons"></i>
|
||||
</button>
|
||||
</div>
|
||||
{{if $visitor}}
|
||||
<div class="btn-group hidden-xs">
|
||||
{{if $writefiles}}
|
||||
<button id="wall-file-upload" class="btn btn-default btn-sm" title="{{$attach}}" >
|
||||
<i id="wall-file-upload-icon" class="icon-paper-clip jot-icons"></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
<button id="profile-link-wrapper" class="btn btn-default btn-sm" title="{{$weblink}}" ondragenter="linkdropper(event);" ondragover="linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink(); return false;">
|
||||
<i id="profile-link" class="icon-link jot-icons"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="btn-group hidden-xs hidden-sm">
|
||||
<button id="profile-location-wrapper" class="btn btn-default btn-sm" title="{{$setloc}}" onclick="jotGetLocation();return false;">
|
||||
<i id="profile-location" class="icon-globe jot-icons"></i>
|
||||
</button>
|
||||
{{if $noloc}}
|
||||
<button id="profile-nolocation-wrapper" class="btn btn-default btn-sm" title="{{$noloc}}" onclick="jotClearLocation();return false;" disabled="disabled">
|
||||
<i id="profile-nolocation" class="icon-circle-blank jot-icons"></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
<div class="btn-group hidden-xs">
|
||||
{{/if}}
|
||||
{{if $feature_expire}}
|
||||
<button id="profile-expire-wrapper" class="btn btn-default btn-sm" title="{{$expires}}" onclick="jotGetExpiry();return false;">
|
||||
<i id="profile-expires" class="icon-eraser jot-icons"></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if $feature_future}}
|
||||
<button id="profile-future-wrapper" class="btn btn-default btn-sm" title="{{$future_txt}}" onclick="jotGetPubDate();return false;">
|
||||
<i id="profile-future" class="icon-time jot-icons"></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if $feature_encrypt}}
|
||||
<button id="profile-encrypt-wrapper" class="btn btn-default btn-sm" title="{{$encrypt}}" onclick="red_encrypt('{{$cipher}}','#profile-jot-text',$('#profile-jot-text').val());return false;">
|
||||
<i id="profile-encrypt" class="icon-key jot-icons"></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if $feature_voting}}
|
||||
<button id="profile-voting-wrapper" class="btn btn-default btn-sm" title="{{$voting}}" onclick="toggleVoting();return false;">
|
||||
<i id="profile-voting" class="icon-check-empty jot-icons"></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="btn-group visible-xs visible-sm">
|
||||
<button type="button" id="more-tools" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
|
||||
<i id="more-tools-icon" class="icon-caret-down jot-icons"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-right" role="menu">
|
||||
<li class="visible-xs"><a href="#" onclick="preview_post();return false;"><i class="icon-eye-open"></i> {{$preview}}</a></li>
|
||||
{{if $visitor}}
|
||||
<li class="divider visible-xs"></li>
|
||||
{{if $writefiles}}<li class="visible-xs"><a id="wall-file-upload-sub" href="#" ><i class="icon-paper-clip"></i> {{$attach}}</a></li>{{/if}}
|
||||
<li class="visible-xs"><a href="#" onclick="jotGetLink(); return false;"><i class="icon-link"></i> {{$weblink}}</a></li>
|
||||
<!--li class="visible-xs"><a href="#" onclick="jotVideoURL(); return false;"><i class="icon-facetime-video"></i> {{$video}}</a></li-->
|
||||
<!--li class="visible-xs"><a href="#" onclick="jotAudioURL(); return false;"><i class="icon-volume-up"></i> {{$audio}}</a></li-->
|
||||
{{/if}}
|
||||
<li class="divider visible-xs"></li>
|
||||
<li class="visible-xs visible-sm"><a href="#" onclick="jotGetLocation(); return false;"><i class="icon-globe"></i> {{$setloc}}</a></li>
|
||||
{{if $noloc}}
|
||||
<li class="visible-xs visible-sm"><a href="#" onclick="jotClearLocation(); return false;"><i class="icon-circle-blank"></i> {{$noloc}}</a></li>
|
||||
{{/if}}
|
||||
{{if $feature_expire}}
|
||||
<li class="visible-xs visible-sm"><a href="#" onclick="jotGetExpiry(); return false;"><i class="icon-eraser"></i> {{$expires}}</a></li>
|
||||
{{/if}}
|
||||
{{if $feature_encrypt}}
|
||||
<li class="visible-xs visible-sm"><a href="#" onclick="red_encrypt('{{$cipher}}','#profile-jot-text',$('#profile-jot-text').val());return false;"><i class="icon-key"></i> {{$encrypt}}</a></li>
|
||||
{{/if}}
|
||||
{{if $feature_voting}}
|
||||
<li class="visible-xs visible-sm"><a href="#" onclick="toggleVoting(); return false;"><i id="profile-voting-sub" class="icon-check-empty"></i> {{$voting}}</a></li>
|
||||
{{/if}}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="profile-rotator-wrapper">
|
||||
<div id="profile-rotator"></div>
|
||||
</div>
|
||||
<div id="profile-jot-submit-right" class="btn-group pull-right">
|
||||
{{if $preview}}
|
||||
<button class="btn btn-default btn-sm hidden-xs" onclick="preview_post();return false;" title="{{$preview}}">
|
||||
<i class="icon-eye-open jot-icons" ></i>
|
||||
</button>
|
||||
{{/if}}
|
||||
{{if $showacl}}
|
||||
<button id="dbtn-acl" class="btn btn-default btn-sm" data-toggle="modal" data-target="#aclModal" title="{{$permset}}" onclick="return false;">
|
||||
<i id="jot-perms-icon" class="icon-{{$lockstate}} jot-icons"></i>{{if $bang}} <i class="icon-exclamation jot-icons"></i>{{/if}}
|
||||
</button>
|
||||
{{/if}}
|
||||
<button id="dbtn-submit" class="btn btn-primary btn-sm" type="submit" tabindex=3 name="button-submit" >{{$share}}</button>
|
||||
</div>
|
||||
<div id="profile-jot-perms-end"></div>
|
||||
<div id="profile-jot-plugin-wrapper">
|
||||
{{$jotplugins}}
|
||||
</div>
|
||||
</div>
|
||||
<div id="profile-jot-text-loading"></div>
|
||||
<div id="profile-jot-end" class="clear"></div>
|
||||
<div id="jot-preview-content" style="display:none;"></div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- Modal for item expiry-->
|
||||
<div class="modal" id="expiryModal" tabindex="-1" role="dialog" aria-labelledby="expiryModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="expiryModalLabel">{{$expires}}</h4>
|
||||
</div>
|
||||
<!-- <div class="modal-body"> -->
|
||||
<div class="modal-body form-group" style="width:90%">
|
||||
<div class='date'><input type='text' placeholder='yyyy-mm-dd HH:MM' name='start_text' id='expiration-date' class="form-control" /></div><script type='text/javascript'>$(function () {var picker = $('#expiration-date').datetimepicker({format:'Y-m-d H:i', minDate: 0 }); })</script>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{$expiryModalCANCEL}}</button>
|
||||
<button id="expiry-modal-OKButton" type="button" class="btn btn-primary">{{$expiryModalOK}}</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
<!-- Modal for item created-->
|
||||
<div class="modal" id="createdModal" tabindex="-1" role="dialog" aria-labelledby="createdModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="createdModalLabel">{{$future_txt}}</h4>
|
||||
</div>
|
||||
<!-- <div class="modal-body"> -->
|
||||
<div class="modal-body form-group" style="width:90%">
|
||||
<div class='date'><input type='text' placeholder='yyyy-mm-dd HH:MM' name='created_text' id='created-date' class="form-control" /></div><script type='text/javascript'>$(function () {var picker = $('#created-date').datetimepicker({format:'Y-m-d H:i', minDate: 0 }); })</script>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{$expiryModalCANCEL}}</button>
|
||||
<button id="created-modal-OKButton" type="button" class="btn btn-primary">{{$expiryModalOK}}</button>
|
||||
</div>
|
||||
</div><!-- /.modal-content -->
|
||||
</div><!-- /.modal-dialog -->
|
||||
</div><!-- /.modal -->
|
||||
|
||||
|
||||
{{if $content || $attachment || $expanded}}
|
||||
<script>initEditor();</script>
|
||||
{{/if}}
|
@ -22,6 +22,7 @@
|
||||
'submit' : "{{$submit}}",
|
||||
'linkurl' : "{{$linkurl}}",
|
||||
'leavethispage' : "{{$leavethispage}}",
|
||||
'location' : "{{$location}}",
|
||||
|
||||
't01' : "{{$t01}}",
|
||||
't02' : "{{$t02}}",
|
||||
|
@ -159,12 +159,12 @@
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{include file="field_checkbox.tpl" field=$cal_first_day}}
|
||||
<div class="settings-submit-wrapper" >
|
||||
<button type="submit" name="submit" class="btn btn-primary">{{$submit}}</button>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user