update share modal with new embed code, added embed bundle installation task

This commit is contained in:
Florian BLOUET
2015-11-04 14:57:14 +01:00
parent 1d8fe957c2
commit 6b48fb8462
2 changed files with 117 additions and 29 deletions

View File

@@ -23,14 +23,62 @@ class ShareController extends Controller
*/ */
public function shareRecord($base_id, $record_id) public function shareRecord($base_id, $record_id)
{ {
$outputVars = [
'isAvailable' => false,
'preview' => [
'permalinkUrl' => '',
'permaviewUrl' => '',
'embedUrl' => '',
'width' => '',
'height' => ''
]
];
$record = new \record_adapter($this->app, \phrasea::sbasFromBas($this->app, $base_id), $record_id); $record = new \record_adapter($this->app, \phrasea::sbasFromBas($this->app, $base_id), $record_id);
if (!$this->getAclForUser()->has_access_to_subdef($record, 'preview')) { if (!$this->getAclForUser()->has_access_to_subdef($record, 'preview')) {
$this->app->abort(403); $this->app->abort(403);
} }
return $this->renderResponse('prod/Share/record.html.twig', [ $preview = $record->get_preview();
'record' => $record,
]); if ($preview->get_permalink() !== null) {
$subdefName = $preview->get_name();
$subdef = $record->get_subdef($subdefName);
switch ($record->getType()) {
case 'flexpaper':
case 'document':
case 'audio':
case 'video':
default:
$token = $preview->get_permalink()->get_token();
$permalinkUrl = $preview->get_permalink()->get_url();
$permaviewUrl = $preview->get_permalink()->get_page();
$previewWidth = $preview->get_width();
$previewHeight = $preview->get_height();
break;
}
$sbas_id = $record->getDataboxId();
$baseUrl = $this->app['request']->getSchemeAndHttpHost().$this->app['request']->getBaseUrl();
$embedUrl = $baseUrl.'/embed/'.$sbas_id.'/'.$record_id.'/'.$subdefName.'/?token='.$token;
$outputVars = [
'isAvailable' => true,
'preview' => [
'permalinkUrl' => $permalinkUrl,
'permaviewUrl' => $permaviewUrl,
'embedUrl' => $embedUrl,
'width' => $previewWidth,
'height' => $previewHeight
]
];
}
return $this->renderResponse('prod/Share/record.html.twig', $outputVars);
} }
} }

View File

@@ -1,43 +1,56 @@
{% set preview = record.get_preview()%} {% if not isAvailable %}
<p>{{ 'No permalink available.' | trans }}</p>{#
{% if preview is iterable %} <p>{{ 'No preview available.' | trans }}</p>#}
<p>{{ 'No preview available.' | trans }}</p>
{% elseif preview.get_permalink() is none %}
<p>{{ 'No permalink available.' | trans }}</p>
{% else %} {% else %}
{% set type = record.get_type() %} {% if preview.permalinkUrl is not empty %}
{% set url = preview.get_permalink().get_url() %}
{% set pageurl = preview.get_permalink().get_page() %}
{% if url is not empty %}
<div id="share"> <div id="share">
<div class="well-large"> <div id="tweet" class="well-large">
<p> <div>
<a href="http://www.twitter.com/home/?status={{ pageurl }}" target="_blank"> <a href="http://www.twitter.com/home/?status={{ preview.permaviewUrl }}" target="_blank">
<img src="/assets/common/images/icons/twitter.ico" title="share this on twitter" style="vertical-align:middle;padding:0 5px;"/> <img src="/assets/common/images/icons/twitter.ico" title="share this on twitter" style="vertical-align:middle;padding:0 5px;"/>
{% trans %}Send to Twitter{% endtrans %} {% trans %}Send to Twitter{% endtrans %}
</a> </a>
</p> </div>
<p> <div>
<a href="http://www.facebook.com/sharer.php?u={{ pageurl }}" target="_blank"> <a href="http://www.facebook.com/sharer.php?u={{ preview.permaviewUrl }}" target="_blank">
<img src="/assets/common/images/icons/facebook.ico" title="share on facebook" style="vertical-align:middle;padding:0 5px;"/> <img src="/assets/common/images/icons/facebook.ico" title="share on facebook" style="vertical-align:middle;padding:0 5px;"/>
{% trans %}Send to Facebook{% endtrans %} {% trans %}Send to Facebook{% endtrans %}
</a> </a>
</p> </p>
<form action="#"> <form action="#">
<div class="form-group clearfix">
<label>{% trans %}Resource URL{% endtrans %}</label> <label>{% trans %}Resource URL{% endtrans %}</label>
<input class="input-block-level" readonly="readonly" type="text" value="{{ url }}" /> <input class="input-block-level" readonly="readonly" type="text" value="{{ preview.permalinkUrl }}"
id="permalinkUrl"/>
<p class="pull-right">
<a href="{{ preview.permalinkUrl }}" target="_blank">previewLabel</a> &nbsp;&nbsp;
<a href="#" class="" id="permalinkUrlCopy">copyClipboardLabel</a>
</p>
</div>
<div class="form-group clearfix">
<label>{% trans %}Detailed view URL{% endtrans %}</label> <label>{% trans %}Detailed view URL{% endtrans %}</label>
<input class="input-block-level" readonly="readonly" type="text" value="{{ pageurl }}" /> <input class="input-block-level" readonly="readonly" type="text" value="{{ preview.permaviewUrl }}" id="permaviewUrl"/>
{% if type == 'image' %} <p class="pull-right">
<a href="{{ preview.permaviewUrl }}" target="_blank">previewLabel</a> &nbsp;&nbsp;
<a href="#" class="" id="permaviewUrlCopy">copyClipboardLabel</a>
</p>
</div>
<div class="form-group clearfix">
{#{% if type == 'image' %}#}
<label>{% trans %}Embed code{% endtrans %}</label> <label>{% trans %}Embed code{% endtrans %}</label>
{% spaceless %} {% spaceless %}
<textarea class="input-block-level" rows="4" readonly="true"> <textarea class="input-block-level" rows="4" readonly="true" id="embedRecordUrl">
<a href="{{ pageurl }}"><img src="{{ url|url_encode }}" title="" /></a> <iframe width="{{ preview.width }}" height="{{ preview.height }}" src="{{ preview.embedUrl|url_encode }}" frameborder="0" allowfullscreen></iframe>
</textarea> </textarea>
{% endspaceless %} {% endspaceless %}
{% endif %} <p class="pull-right">
<a href="{{ preview.embedUrl }}" target="_blank">previewLabel</a> &nbsp;&nbsp;
<a href="#" class="" id="embedCopy">copyClipboardLabel</a>
</p>
</div>
{#{% endif %}#}
</form> </form>
</div> </div>
</div> </div>
@@ -48,10 +61,37 @@
function(){$(this).addClass('ui-state-hover');}, function(){$(this).addClass('ui-state-hover');},
function(){$(this).removeClass('ui-state-hover');} function(){$(this).removeClass('ui-state-hover');}
); );
$('#permalinkUrlCopy').on('click', function(event) {
event.preventDefault();
return copyElContentClipboard('permalinkUrl');
});
$('#permaviewUrlCopy').on('click', function(event) {
event.preventDefault();
return copyElContentClipboard('permaviewUrl');
});
$('#embedCopy').on('click', function(event) {
event.preventDefault();
return copyElContentClipboard('embedRecordUrl');
});
var copyElContentClipboard = function(elId) {
var copyEl = document.getElementById(elId);
copyEl.select();
try {
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying text command was ' + msg);
} catch (err) {
console.log('unable to copy');
}
}
}); });
</script> </script>
{% else %} {% else %}
<div><{{ 'No URL available' | trans }}</div> <div>{{ 'No URL available' | trans }}</div>
{% endif %} {% endif %}
{% endif %} {% endif %}