aboutsummaryrefslogtreecommitdiff
path: root/mod/embed/views/default
diff options
context:
space:
mode:
Diffstat (limited to 'mod/embed/views/default')
-rw-r--r--mod/embed/views/default/embed/css.php2
-rw-r--r--mod/embed/views/default/embed/item.php2
-rw-r--r--mod/embed/views/default/embed/layout.php35
-rw-r--r--mod/embed/views/default/js/embed/embed.php66
-rw-r--r--mod/embed/views/default/navigation/menu/embed.php19
5 files changed, 87 insertions, 37 deletions
diff --git a/mod/embed/views/default/embed/css.php b/mod/embed/views/default/embed/css.php
index 324ed1038..034c0fcfe 100644
--- a/mod/embed/views/default/embed/css.php
+++ b/mod/embed/views/default/embed/css.php
@@ -8,7 +8,7 @@
.embed-wrapper {
width: 730px;
min-height: 400px;
- margin: 15px;
+ margin: 20px 15px;
}
.embed-wrapper h2 {
color: #333333;
diff --git a/mod/embed/views/default/embed/item.php b/mod/embed/views/default/embed/item.php
index 4087b7408..3060de879 100644
--- a/mod/embed/views/default/embed/item.php
+++ b/mod/embed/views/default/embed/item.php
@@ -34,6 +34,6 @@ $params = array(
);
$body = elgg_view('object/elements/summary', $params);
-$image = elgg_view_entity_icon($entity, 'small');
+$image = elgg_view_entity_icon($entity, 'small', array('link_class' => 'embed-insert'));
echo elgg_view_image_block($image, $body);
diff --git a/mod/embed/views/default/embed/layout.php b/mod/embed/views/default/embed/layout.php
index 73c26810d..1ca263037 100644
--- a/mod/embed/views/default/embed/layout.php
+++ b/mod/embed/views/default/embed/layout.php
@@ -8,26 +8,33 @@ $title = elgg_view_title(elgg_echo('embed:media'));
$menu = elgg_view_menu('embed');
$selected = elgg_get_config('embed_tab');
-switch ($selected->getData('tab_type')) {
- case 'select':
- $tab = elgg_list_entities(
- embed_get_list_options($selected->getData('options')),
- 'elgg_get_entities',
- 'embed_list_items'
- );
- if (!$tab) {
- $tab = elgg_echo('embed:no_section_content');
- }
- break;
- case 'upload':
- $tab = elgg_view($selected->getData('view'), $vars);
- break;
+if ($selected->getData('view')) {
+ $tab = elgg_view($selected->getData('view'), $vars);
+} else {
+ $tab = elgg_list_entities(
+ embed_get_list_options($selected->getData('options')),
+ 'elgg_get_entities',
+ 'embed_list_items'
+ );
+ if (!$tab) {
+ $tab = elgg_echo('embed:no_section_content');
+ }
}
+$tab .= elgg_view('graphics/ajax_loader', array(
+ 'class' => 'embed-throbber mtl',
+));
+
+$container_info = elgg_view('input/hidden', array(
+ 'name' => 'embed_container_guid',
+ 'value' => elgg_get_page_owner_guid(),
+));
+
echo <<<HTML
<div class="embed-wrapper">
$title
$menu
$tab
+ $container_info
</div>
HTML;
diff --git a/mod/embed/views/default/js/embed/embed.php b/mod/embed/views/default/js/embed/embed.php
index 840d8f89c..e84427f24 100644
--- a/mod/embed/views/default/js/embed/embed.php
+++ b/mod/embed/views/default/js/embed/embed.php
@@ -1,3 +1,4 @@
+//<script>
elgg.provide('elgg.embed');
elgg.embed.init = function() {
@@ -18,8 +19,8 @@ elgg.embed.init = function() {
$('.embed-section').live('click', elgg.embed.forward);
- $('.embed-upload .elgg-form').live('submit', elgg.embed.submit);
-}
+ $('.elgg-form-embed').live('submit', elgg.embed.submit);
+};
/**
* Inserts data attached to an embed list item in textarea
@@ -34,21 +35,25 @@ elgg.embed.insert = function(event) {
var textArea = $('#' + textAreaId);
// generalize this based on a css class attached to what should be inserted
- var content = ' ' + $(this).find(".elgg-image").html() + ' ';
-
+ var content = ' ' + $(this).find(".embed-insert").parent().html() + ' ';
+
+ // this is a temporary work-around for #3971
+ if (content.indexOf('thumbnail.php') != -1) {
+ content = content.replace('size=small', 'size=medium');
+ }
+
textArea.val(textArea.val() + content);
textArea.focus();
<?php
// See the TinyMCE plugin for an example of this view
- echo elgg_view('embed/custom_insert_js');
+echo elgg_view('embed/custom_insert_js');
?>
-
$.fancybox.close();
event.preventDefault();
-}
+};
/**
* Submit an upload form through Ajax
@@ -63,6 +68,8 @@ elgg.embed.insert = function(event) {
* @return bool
*/
elgg.embed.submit = function(event) {
+ $('.embed-wrapper .elgg-form-file-upload').hide();
+ $('.embed-throbber').show();
$(this).ajaxSubmit({
dataType : 'json',
@@ -76,16 +83,36 @@ elgg.embed.submit = function(event) {
if (response.status >= 0) {
var forward = $('input[name=embed_forward]').val();
var url = elgg.normalize_url('embed/tab/' + forward);
+ url = elgg.embed.addContainerGUID(url);
$('.embed-wrapper').parent().load(url);
+ } else {
+ // incorrect response, presumably an error has been displayed
+ $('.embed-throbber').hide();
+ $('.embed-wrapper .elgg-form-file-upload').show();
}
}
+
+ // ie 7 and 8 have a null response because of the use of an iFrame
+ // so just show the list after upload.
+ // http://jquery.malsup.com/form/#file-upload claims you can wrap JSON
+ // in a textarea, but a quick test didn't work, and that is fairly
+ // intrusive to the rest of the ajax system.
+ else if (response === undefined && $.browser.msie) {
+ var forward = $('input[name=embed_forward]').val();
+ var url = elgg.normalize_url('embed/tab/' + forward);
+ url = elgg.embed.addContainerGUID(url);
+ $('.embed-wrapper').parent().load(url);
+ }
+ },
+ error : function(xhr, status) {
+ // @todo nothing for now
}
});
// this was bubbling up the DOM causing a submission
event.preventDefault();
event.stopPropagation();
-}
+};
/**
* Loads content within the lightbox
@@ -94,8 +121,27 @@ elgg.embed.submit = function(event) {
* @return void
*/
elgg.embed.forward = function(event) {
- $('.embed-wrapper').parent().load($(this).attr('href'));
+ // make sure container guid is passed
+ var url = $(this).attr('href');
+ url = elgg.embed.addContainerGUID(url);
+
+ $('.embed-wrapper').parent().load(url);
event.preventDefault();
-}
+};
+
+/**
+ * Adds the container guid to a URL
+ *
+ * @param {string} url
+ * @return string
+ */
+elgg.embed.addContainerGUID = function(url) {
+ if (url.indexOf('container_guid=') == -1) {
+ var guid = $('input[name=embed_container_guid]').val();
+ return url + '?container_guid=' + guid;
+ } else {
+ return url;
+ }
+};
elgg.register_hook_handler('init', 'system', elgg.embed.init);
diff --git a/mod/embed/views/default/navigation/menu/embed.php b/mod/embed/views/default/navigation/menu/embed.php
index 36cedc47e..bca673f59 100644
--- a/mod/embed/views/default/navigation/menu/embed.php
+++ b/mod/embed/views/default/navigation/menu/embed.php
@@ -2,20 +2,17 @@
/**
* Embed tabs
*
- * @uses $vars['menu']['select']
- * @uses $vars['menu']['upload']
+ * @uses $vars['menu']['default']
*/
$tabs = array();
-foreach (array('select', 'upload') as $type) {
- foreach ($vars['menu'][$type] as $menu_item) {
- $tabs[] = array(
- 'title' => $menu_item->getText(),
- 'url' => 'embed/tab/' . $menu_item->getName(),
- 'url_class' => 'embed-section',
- 'selected' => $menu_item->getSelected(),
- );
- }
+foreach ($vars['menu']['default'] as $menu_item) {
+ $tabs[] = array(
+ 'title' => $menu_item->getText(),
+ 'url' => 'embed/tab/' . $menu_item->getName(),
+ 'link_class' => 'embed-section',
+ 'selected' => $menu_item->getSelected(),
+ );
}
echo elgg_view('navigation/tabs', array('tabs' => $tabs));