aboutsummaryrefslogtreecommitdiff
path: root/mod/embed
diff options
context:
space:
mode:
authorcash <cash.costello@gmail.com>2011-10-01 16:30:04 -0400
committercash <cash.costello@gmail.com>2011-10-01 16:30:04 -0400
commit418078a8d4c157c1c88d196d3b24ff0f0893b764 (patch)
tree615483fc56236324cf58e7ce1b0319a1c5efeefb /mod/embed
parentf352b05780a1896302d5a25936477b371c0f4dfd (diff)
downloadelgg-418078a8d4c157c1c88d196d3b24ff0f0893b764.tar.gz
elgg-418078a8d4c157c1c88d196d3b24ff0f0893b764.tar.bz2
cleaned up the embed item view and removed the inline js
Diffstat (limited to 'mod/embed')
-rw-r--r--mod/embed/start.php1
-rw-r--r--mod/embed/views/default/embed/css.php6
-rw-r--r--mod/embed/views/default/embed/item.php44
-rw-r--r--mod/embed/views/default/js/embed/embed.php27
4 files changed, 52 insertions, 26 deletions
diff --git a/mod/embed/start.php b/mod/embed/start.php
index a87776c7e..015c0c0e4 100644
--- a/mod/embed/start.php
+++ b/mod/embed/start.php
@@ -129,6 +129,7 @@ function embed_get_list_options($options = array()) {
$defaults = array(
'limit' => 6,
'container_guid' => $container_guid,
+ 'item_class' => 'embed-item',
);
$options = array_merge($defaults, $options);
diff --git a/mod/embed/views/default/embed/css.php b/mod/embed/views/default/embed/css.php
index f654a208a..324ed1038 100644
--- a/mod/embed/views/default/embed/css.php
+++ b/mod/embed/views/default/embed/css.php
@@ -28,6 +28,10 @@
.embed-wrapper p {
color: #333;
}
-.embed-wrapper .elgg-image-block:hover {
+.embed-item {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+.embed-item:hover {
background-color: #eee;
}
diff --git a/mod/embed/views/default/embed/item.php b/mod/embed/views/default/embed/item.php
index c6faa450b..4087b7408 100644
--- a/mod/embed/views/default/embed/item.php
+++ b/mod/embed/views/default/embed/item.php
@@ -7,25 +7,33 @@
$entity = $vars['entity'];
-$image = elgg_view_entity_icon($entity, 'small');
-
-$body = "<h4>" . $entity->title . "</h4>";
-
-$icon = "<img src=\"{$entity->getIconURL('small')}\" />";
-
-$embed_code = elgg_view('output/url', array(
- 'href' => $entity->getURL(),
+$title = $entity->title;
+if (!$title) {
+ $title = $entity->name;
+}
+
+// different entity types have different title attribute names.
+$title = isset($entity->name) ? $entity->name : $entity->title;
+// don't let it be too long
+$title = elgg_get_excerpt($title);
+
+$owner = $entity->getOwnerEntity();
+if ($owner) {
+ $author_text = elgg_echo('byline', array($owner->name));
+ $date = elgg_view_friendly_time($entity->time_created);
+ $subtitle = "$author_text $date";
+} else {
+ $subtitle = '';
+}
+
+$params = array(
'title' => $title,
- 'text' => $icon,
- 'encode_text' => FALSE
-));
+ 'entity' => $entity,
+ 'subtitle' => $subtitle,
+ 'tags' => FALSE,
+);
+$body = elgg_view('object/elements/summary', $params);
+$image = elgg_view_entity_icon($entity, 'small');
-echo "<div class=\"embed_data\" id=\"embed_{$entity->getGUID()}\">";
echo elgg_view_image_block($image, $body);
-echo '</div>';
-
-// @todo JS 1.8: is this approach better than inline js?
-echo "<script type=\"text/javascript\">
- $('#embed_{$entity->getGUID()}').data('embed_code', " . json_encode($embed_code) . ");
-</script>";
diff --git a/mod/embed/views/default/js/embed/embed.php b/mod/embed/views/default/js/embed/embed.php
index e60c6b367..37246ee8a 100644
--- a/mod/embed/views/default/js/embed/embed.php
+++ b/mod/embed/views/default/js/embed/embed.php
@@ -3,7 +3,7 @@ elgg.provide('elgg.embed');
elgg.embed.init = function() {
// inserts the embed content into the textarea
- $(".embed_data").live('click', elgg.embed.insert);
+ $(".embed-item").live('click', elgg.embed.insert);
// caches the current textarea id
$(".embed-control").live('click', function() {
@@ -24,7 +24,7 @@ elgg.embed.init = function() {
/**
* Inserts data attached to an embed list item in textarea
*
- * @todo generalize lightbox closing and wysiwyg refreshing
+ * @todo generalize lightbox closing
*
* @param {Object} event
* @return void
@@ -32,10 +32,23 @@ elgg.embed.init = function() {
elgg.embed.insert = function(event) {
var textAreaId = elgg.embed.textAreaId;
- var content = $(this).data('embed_code');
- $('#' + textAreaId).val($('#' + textAreaId).val() + ' ' + content + ' ');
-
- <?php echo elgg_view('embed/custom_insert_js'); ?>
+ // generalize this based on a css class attached to what should be inserted
+ var content = ' ' + $(this).find(".elgg-image").html() + ' ';
+
+<?php
+// If a wysiwyg editor has been registered, it handles the insertion by
+// overriding the embed/custom_insert_js view. See the TinyMCE plugin for an
+// example of this.
+$custom_insert_code = elgg_view('embed/custom_insert_js');
+if ($custom_insert_code) {
+ echo $custom_insert_code;
+} else {
+?>
+ $('#' + textAreaId).val($('#' + textAreaId).val() + content);
+ $('#' + textAreaId).focus();
+<?php
+}
+?>
$.fancybox.close();
@@ -68,7 +81,7 @@ elgg.embed.submit = function(event) {
if (response.status >= 0) {
// @todo - really this should forward to what the registered defined
// For example, forward to images tab if an image was uploaded
- var url = elgg.config.wwwroot + 'embed/embed?active_section=file';
+ var url = elgg.config.wwwroot + 'embed/embed';
$('.embed-wrapper').parent().load(url);
}
}