Skip to content

Commit 7ad2a2a

Browse files
techjoomla#34 feat create activities list view in backend
1 parent 44ebd26 commit 7ad2a2a

File tree

4 files changed

+57
-4
lines changed

4 files changed

+57
-4
lines changed

src/admin/language/en-GB/en-GB.com_activitystream.ini

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ COM_ACTIVITYSTREAM_ACTIVITY_TARGET_ID="Target Id"
1717
COM_ACTIVITYSTREAM_ACTIVITY_TYPE="Activity Type"
1818
COM_ACTIVITYSTREAM_ACTIVITY_TEMPLATE="Template To Use"
1919
COM_ACTIVITYSTREAM_ACTIVITY_ACCESS="Access"
20+
COM_ACTIVITYSTREAM_ACTIVITY="Activity"
2021
COM_ACTIVITYSTREAM_ACTIVITY_STATE="State"
2122
COM_ACTIVITYSTREAM_ACTIVITY_LOCATION="Location"
2223
COM_ACTIVITYSTREAM_ACTIVITY_LATITUDE="Latitude"

src/admin/models/forms/filter_activities.xml

-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
onchange="this.form.submit();"
1818
>
1919
<option value="">JOPTION_SELECT_PUBLISHED</option>
20-
21-
2220
</field>
2321
<field
2422
name="activitytype"

src/admin/views/activities/tmpl/default.php

+23-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,21 @@
1313
$sortFields = $this->getSortFields();
1414
$listOrder = $this->escape($this->state->get('list.ordering'));
1515
$listDirn = $this->escape($this->state->get('list.direction'));
16+
17+
$document = JFactory::getDocument();
18+
$document->addScript(JUri::root() . 'media/com_activitystream/scripts/mustache.min.js');
19+
$document->addScript(JUri::root() . 'media/com_activitystream/scripts/activities.jQuery.js');
20+
21+
$languageTag = JFactory::getLanguage()->get('tag', 'en-GB');
22+
23+
// Load theme related CSS
24+
if (!empty($this->items))
25+
{
26+
foreach ($this->items as $item)
27+
{
28+
$document->addStyleSheet(JUri::root() . 'media/com_jgive/themes/' . $item->default_theme . '/css/theme.css');
29+
}
30+
}
1631
?>
1732
<form action="<?php echo JRoute::_('index.php?option=com_activitystream&view=activities&client=' . $this->input->get('client', '', 'STRING')); ?>" method="post" id="adminForm" name="adminForm">
1833
<div class="row-fluid">
@@ -33,6 +48,9 @@
3348
<th width="5%">
3449
<?php echo JHtml::_('searchtools.sort', JText::_('COM_ACTIVITYSTREAM_ACTIVITY_STATE'), 'state', $listDirn, $listOrder); ?>
3550
</th>
51+
<th width="5%">
52+
<?php echo JText::_('COM_ACTIVITYSTREAM_ACTIVITY'); ?>
53+
</th>
3654
<th width="5%">
3755
<?php echo JHtml::_('searchtools.sort', JText::_('COM_ACTIVITYSTREAM_ACTIVITY_TYPE'), 'type', $listDirn, $listOrder);?>
3856
</th>
@@ -60,14 +78,18 @@
6078
<?php if (!empty($this->items) && empty($this->items['error'])) : ?>
6179
<?php foreach ($this->items as $i => $row) :
6280
$link = JRoute::_('index.php?option=com_activitystream&task=activity.edit&id=' . $row->id);
63-
?>
81+
?>
6482
<tr>
6583
<td>
6684
<?php echo JHtml::_('grid.id', $i, $row->id); ?>
6785
</td>
6886
<td align="center">
6987
<?php echo JHtml::_('jgrid.published', $row->state, $i, 'activities.', true, 'cb'); ?>
7088
</td>
89+
<td align="center">
90+
<div tj-activitystream-single-activity-widget tj-activitystream-theme="<?php echo $row->default_theme;?>" tj-activitystream-bs="bs3" tj-activitystream-language="<?php echo $languageTag;?>" tj-activitystream-single-activity-data='<?php echo json_encode($row);?>'>
91+
</div>
92+
</td>
7193
<td>
7294
<?php echo $row->type; ?>
7395
</td>

src/media/scripts/activities.jQuery.js

+33-1
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,46 @@
1616
getActivities = function(){
1717
let widgetNumber = 0;
1818

19+
/* To load list of activities*/
1920
techjoomla.jQuery('[tj-activitystream-widget]').each(function(){
2021
widgetNumber++;
2122
techjoomla.jQuery(this).attr('id',"tj-activitystream" + widgetNumber);
2223
techjoomla.jQuery(this).attr('activityNumber',0);
2324
techjoomla.jQuery(this).attr('start',0);
2425
techjoomla.jQuery(this).html("<a id='load-more-activity-button"+techjoomla.jQuery(this).attr('id')+"'></a>");
2526

26-
initActivities(this);
27+
var activity = initActivities(this);
28+
});
29+
30+
/* To load single activity*/
31+
jQuery('[tj-activitystream-single-activity-widget]').each(function(){
32+
let ele = this;
33+
let activityData = techjoomla.jQuery(ele).attr("tj-activitystream-single-activity-data");
34+
let view = techjoomla.jQuery(ele).attr("tj-activitystream-bs");
35+
activityData = jQuery.parseJSON(activityData);
36+
let templatePath = Joomla.getOptions('system.paths').root+"/media/"+activityData.client+"/themes/"+activityData.default_theme+"/templates/"+view+"/"+activityData.template;
37+
var html = "";
38+
39+
jQuery.ajax({
40+
method: 'GET',
41+
url: templatePath,
42+
async:false,
43+
success: function(res,stat,xhr)
44+
{
45+
if (!activityData.template)
46+
{
47+
var formatted_text = Mustache.render(activityData.formatted_text, {actor : activityData.actor, object: activityData.object, target: activityData.target});
48+
activityData.formatted_text = formatted_text;
49+
html = Mustache.render(res, activityData);
50+
}
51+
else
52+
{
53+
html = Mustache.render(res, activityData);
54+
}
55+
}
56+
}).done( function(){
57+
jQuery(ele).after(html);
58+
});
2759
});
2860
}
2961

0 commit comments

Comments
 (0)