diff options
Diffstat (limited to 'mod/embed/views/default')
| -rw-r--r-- | mod/embed/views/default/embed/css.php | 2 | ||||
| -rw-r--r-- | mod/embed/views/default/embed/item.php | 2 | ||||
| -rw-r--r-- | mod/embed/views/default/embed/layout.php | 35 | ||||
| -rw-r--r-- | mod/embed/views/default/js/embed/embed.php | 66 | ||||
| -rw-r--r-- | mod/embed/views/default/navigation/menu/embed.php | 19 |
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)); |
