mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-24 02:13:15 +00:00
Merge pull request #1369 from bburnichon/feature/highlight-full-text
PHRAS-229 highlight full text
This commit is contained in:
@@ -11,9 +11,8 @@
|
|||||||
|
|
||||||
namespace Alchemy\Phrasea\Model\Entities;
|
namespace Alchemy\Phrasea\Model\Entities;
|
||||||
|
|
||||||
use Doctrine\Common\Collections\ArrayCollection;
|
|
||||||
use Alchemy\Phrasea\Model\RecordInterface;
|
|
||||||
use Alchemy\Phrasea\Model\MutableRecordInterface;
|
use Alchemy\Phrasea\Model\MutableRecordInterface;
|
||||||
|
use Alchemy\Phrasea\Model\RecordInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Record entity from elastic search
|
* Record entity from elastic search
|
||||||
@@ -26,7 +25,7 @@ class ElasticsearchRecord implements RecordInterface, MutableRecordInterface
|
|||||||
private $baseId;
|
private $baseId;
|
||||||
private $collectionName;
|
private $collectionName;
|
||||||
private $mimeType;
|
private $mimeType;
|
||||||
private $title;
|
private $title = [];
|
||||||
private $originalName;
|
private $originalName;
|
||||||
private $updated;
|
private $updated;
|
||||||
private $created;
|
private $created;
|
||||||
@@ -36,14 +35,11 @@ class ElasticsearchRecord implements RecordInterface, MutableRecordInterface
|
|||||||
private $type;
|
private $type;
|
||||||
private $status;
|
private $status;
|
||||||
private $isStory;
|
private $isStory;
|
||||||
/** @var ArrayCollection */
|
private $caption = [];
|
||||||
private $caption;
|
private $exif = [];
|
||||||
/** @var ArrayCollection */
|
private $subdefs = [];
|
||||||
private $exif;
|
private $flags = [];
|
||||||
/** @var ArrayCollection */
|
private $highlight = [];
|
||||||
private $subdefs;
|
|
||||||
/** @var ArrayCollection */
|
|
||||||
private $flags;
|
|
||||||
|
|
||||||
/** {@inheritdoc} */
|
/** {@inheritdoc} */
|
||||||
public function getId()
|
public function getId()
|
||||||
@@ -108,7 +104,7 @@ class ElasticsearchRecord implements RecordInterface, MutableRecordInterface
|
|||||||
/** {@inheritdoc} */
|
/** {@inheritdoc} */
|
||||||
public function setIsStory($isStory)
|
public function setIsStory($isStory)
|
||||||
{
|
{
|
||||||
$this->isStory = (bool) $isStory;
|
$this->isStory = (bool)$isStory;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** {@inheritdoc} */
|
/** {@inheritdoc} */
|
||||||
@@ -185,12 +181,12 @@ class ElasticsearchRecord implements RecordInterface, MutableRecordInterface
|
|||||||
*/
|
*/
|
||||||
public function getTitle($locale = null)
|
public function getTitle($locale = null)
|
||||||
{
|
{
|
||||||
if ($locale && $this->title->containsKey($locale)) {
|
if ($locale && isset($this->title[$locale])) {
|
||||||
return $this->title->get($locale);
|
return $this->title[$locale];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->title->containsKey('default')) {
|
if (isset($this->title['default'])) {
|
||||||
return $this->title->get('default');
|
return $this->title['default'];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->getOriginalName();
|
return $this->getOriginalName();
|
||||||
@@ -199,9 +195,9 @@ class ElasticsearchRecord implements RecordInterface, MutableRecordInterface
|
|||||||
/**
|
/**
|
||||||
* Sets a collection of titles
|
* Sets a collection of titles
|
||||||
*
|
*
|
||||||
* @param ArrayCollection $titles
|
* @param string[] $titles
|
||||||
*/
|
*/
|
||||||
public function setTitles(ArrayCollection $titles)
|
public function setTitles(array $titles)
|
||||||
{
|
{
|
||||||
$this->title = $titles;
|
$this->title = $titles;
|
||||||
}
|
}
|
||||||
@@ -240,45 +236,41 @@ class ElasticsearchRecord implements RecordInterface, MutableRecordInterface
|
|||||||
$this->uuid = $uuid;
|
$this->uuid = $uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return ArrayCollection */
|
/** @return array */
|
||||||
public function getCaption()
|
public function getCaption()
|
||||||
{
|
{
|
||||||
return $this->caption;
|
return $this->caption;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setCaption(ArrayCollection $caption)
|
public function setCaption(array $caption)
|
||||||
{
|
{
|
||||||
$this->caption = $caption;
|
$this->caption = $caption;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return ArrayCollection */
|
/** @return array */
|
||||||
public function getExif()
|
public function getExif()
|
||||||
{
|
{
|
||||||
return $this->exif;
|
return $this->exif;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public function setExif(array $exif)
|
||||||
* @param mixed $exif
|
|
||||||
*/
|
|
||||||
public function setExif(ArrayCollection $exif)
|
|
||||||
{
|
{
|
||||||
$this->exif = $exif;
|
$this->exif = $exif;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return ArrayCollection */
|
/** @return array */
|
||||||
public function getSubdefs()
|
public function getSubdefs()
|
||||||
{
|
{
|
||||||
return $this->subdefs;
|
return $this->subdefs;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return ArrayCollection */
|
public function setSubdefs(array $subdefs)
|
||||||
public function setSubdefs(ArrayCollection $subdefs)
|
|
||||||
{
|
{
|
||||||
$this->subdefs = $subdefs;
|
$this->subdefs = $subdefs;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return ArrayCollection
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getFlags()
|
public function getFlags()
|
||||||
{
|
{
|
||||||
@@ -286,9 +278,9 @@ class ElasticsearchRecord implements RecordInterface, MutableRecordInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param ArrayCollection $flags
|
* @param array $flags
|
||||||
*/
|
*/
|
||||||
public function setFlags(ArrayCollection $flags)
|
public function setFlags(array $flags)
|
||||||
{
|
{
|
||||||
$this->flags = $flags;
|
$this->flags = $flags;
|
||||||
}
|
}
|
||||||
@@ -319,4 +311,20 @@ class ElasticsearchRecord implements RecordInterface, MutableRecordInterface
|
|||||||
{
|
{
|
||||||
$this->position = $position;
|
$this->position = $position;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getHighlight()
|
||||||
|
{
|
||||||
|
return $this->highlight;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $highlight
|
||||||
|
*/
|
||||||
|
public function setHighlight(array $highlight)
|
||||||
|
{
|
||||||
|
$this->highlight = $highlight;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,9 @@ interface RecordInterface
|
|||||||
/** @return integer */
|
/** @return integer */
|
||||||
public function getStatusBitField();
|
public function getStatusBitField();
|
||||||
|
|
||||||
/** @return ArrayCollection */
|
/** @return array */
|
||||||
public function getExif();
|
public function getExif();
|
||||||
|
|
||||||
|
/** @return array */
|
||||||
|
public function getCaption();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -268,6 +268,12 @@ class ElasticSearchEngine implements SearchEngineInterface
|
|||||||
|
|
||||||
$params['body']['from'] = $offset;
|
$params['body']['from'] = $offset;
|
||||||
$params['body']['size'] = $perPage;
|
$params['body']['size'] = $perPage;
|
||||||
|
$params['body']['highlight'] = [
|
||||||
|
'pre_tags' => ['[[em]]'],
|
||||||
|
'post_tags' => ['[[/em]]'],
|
||||||
|
'order' => 'score',
|
||||||
|
'fields' => ['caption.*' => new \stdClass()]
|
||||||
|
];
|
||||||
|
|
||||||
if ($aggs = $this->getAggregationQueryParams($options)) {
|
if ($aggs = $this->getAggregationQueryParams($options)) {
|
||||||
$params['body']['aggs'] = $aggs;
|
$params['body']['aggs'] = $aggs;
|
||||||
@@ -280,7 +286,7 @@ class ElasticSearchEngine implements SearchEngineInterface
|
|||||||
|
|
||||||
$n = 0;
|
$n = 0;
|
||||||
foreach ($res['hits']['hits'] as $hit) {
|
foreach ($res['hits']['hits'] as $hit) {
|
||||||
$results[] = ElasticsearchRecordHydrator::hydrate($hit['_source'], $n++);
|
$results[] = ElasticsearchRecordHydrator::hydrate($hit, $n++);
|
||||||
}
|
}
|
||||||
|
|
||||||
$facets = $this->facetsResponseFactory->__invoke($res);
|
$facets = $this->facetsResponseFactory->__invoke($res);
|
||||||
|
|||||||
@@ -17,8 +17,11 @@ use igorw;
|
|||||||
|
|
||||||
class ElasticsearchRecordHydrator
|
class ElasticsearchRecordHydrator
|
||||||
{
|
{
|
||||||
public static function hydrate(array $data, $position)
|
public static function hydrate(array $hit, $position)
|
||||||
{
|
{
|
||||||
|
$data = $hit['_source'];
|
||||||
|
$highlight = isset($hit['highlight']) ? $hit['highlight'] : [];
|
||||||
|
|
||||||
$record = new ElasticsearchRecord();
|
$record = new ElasticsearchRecord();
|
||||||
|
|
||||||
$record->setPosition($position);
|
$record->setPosition($position);
|
||||||
@@ -38,11 +41,12 @@ class ElasticsearchRecordHydrator
|
|||||||
$record->setUpdated($updatedOn ? new \DateTime($updatedOn) : $updatedOn);
|
$record->setUpdated($updatedOn ? new \DateTime($updatedOn) : $updatedOn);
|
||||||
$record->setUuid(igorw\get_in($data, ['uuid'], ''));
|
$record->setUuid(igorw\get_in($data, ['uuid'], ''));
|
||||||
$record->setStatusBitField(igorw\get_in($data, ['flags_bitfield'], 0));
|
$record->setStatusBitField(igorw\get_in($data, ['flags_bitfield'], 0));
|
||||||
$record->setTitles(new ArrayCollection((array) igorw\get_in($data, ['title'], [])));
|
$record->setTitles((array) igorw\get_in($data, ['title'], []));
|
||||||
$record->setCaption(new ArrayCollection((array) igorw\get_in($data, ['caption'], [])));
|
$record->setCaption((array) igorw\get_in($data, ['caption'], []));
|
||||||
$record->setExif(new ArrayCollection((array) igorw\get_in($data, ['exif'], [])));
|
$record->setExif((array) igorw\get_in($data, ['exif'], []));
|
||||||
$record->setSubdefs(new ArrayCollection((array) igorw\get_in($data, ['subdefs'], [])));
|
$record->setSubdefs((array) igorw\get_in($data, ['subdefs'], []));
|
||||||
$record->setFlags(new ArrayCollection((array) igorw\get_in($data, ['flags'], [])));
|
$record->setFlags((array) igorw\get_in($data, ['flags'], []));
|
||||||
|
$record->setHighlight((array) $highlight);
|
||||||
|
|
||||||
return $record;
|
return $record;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -232,6 +232,7 @@ class RecordIndexer
|
|||||||
} else {
|
} else {
|
||||||
$m->addRawVersion();
|
$m->addRawVersion();
|
||||||
$m->addAnalyzedVersion($this->locales);
|
$m->addAnalyzedVersion($this->locales);
|
||||||
|
$m->highlight();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -210,6 +210,15 @@ class Mapping
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function highlight()
|
||||||
|
{
|
||||||
|
$field = &$this->currentField();
|
||||||
|
|
||||||
|
$field['term_vector'] = 'with_positions_offsets';
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
public function has($name)
|
public function has($name)
|
||||||
{
|
{
|
||||||
return isset($this->fields[$name]);
|
return isset($this->fields[$name]);
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
namespace Alchemy\Phrasea\Twig;
|
namespace Alchemy\Phrasea\Twig;
|
||||||
|
|
||||||
|
use Alchemy\Phrasea\Application;
|
||||||
use Alchemy\Phrasea\Model\Entities\ElasticsearchRecord;
|
use Alchemy\Phrasea\Model\Entities\ElasticsearchRecord;
|
||||||
use Alchemy\Phrasea\Model\Entities\User;
|
use Alchemy\Phrasea\Model\Entities\User;
|
||||||
use Alchemy\Phrasea\Model\RecordInterface;
|
use Alchemy\Phrasea\Model\RecordInterface;
|
||||||
use Silex\Application;
|
|
||||||
|
|
||||||
class PhraseanetExtension extends \Twig_Extension
|
class PhraseanetExtension extends \Twig_Extension
|
||||||
{
|
{
|
||||||
@@ -40,13 +40,41 @@ class PhraseanetExtension extends \Twig_Extension
|
|||||||
)),
|
)),
|
||||||
new \Twig_SimpleFunction('record_flags', array($this, 'getRecordFlags')),
|
new \Twig_SimpleFunction('record_flags', array($this, 'getRecordFlags')),
|
||||||
new \Twig_SimpleFunction('border_checker_from_fqcn', array($this, 'getCheckerFromFQCN')),
|
new \Twig_SimpleFunction('border_checker_from_fqcn', array($this, 'getCheckerFromFQCN')),
|
||||||
|
new \Twig_SimpleFunction('caption_field', array($this, 'getCaptionField')),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getCaptionField(RecordInterface $record, $field, $value)
|
||||||
|
{
|
||||||
|
if ($record instanceof ElasticsearchRecord) {
|
||||||
|
$highlightKey = sprintf('caption.%s', $field);
|
||||||
|
|
||||||
|
$highlights = $record->getHighlight();
|
||||||
|
if (false === isset($highlights[$highlightKey])) {
|
||||||
|
return implode('; ', (array) $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
$highlightValue = $highlights[$highlightKey];
|
||||||
|
|
||||||
|
// if field is multivalued, merge highlighted values with captions ones
|
||||||
|
if (is_array($value)) {
|
||||||
|
$highlightValue = array_merge($highlightValue, array_diff($value, array_map(function($value) {
|
||||||
|
return str_replace(array('[[em]]', '[[/em]]'), array('', ''), $value);
|
||||||
|
}, $highlightValue)));
|
||||||
|
}
|
||||||
|
|
||||||
|
return implode('; ', (array) $highlightValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
return implode('; ', (array) $value);
|
||||||
|
}
|
||||||
|
|
||||||
public function getRecordFlags(RecordInterface $record)
|
public function getRecordFlags(RecordInterface $record)
|
||||||
{
|
{
|
||||||
$recordStatuses = [];
|
$recordStatuses = [];
|
||||||
$databox = $this->app['phraseanet.appbox']->get_databox($record->getDataboxId());
|
/** @var \appbox $appbox */
|
||||||
|
$appbox = $this->app['phraseanet.appbox'];
|
||||||
|
$databox = $appbox->get_databox($record->getDataboxId());
|
||||||
|
|
||||||
$structure = $databox->getStatusStructure()->toArray();
|
$structure = $databox->getStatusStructure()->toArray();
|
||||||
|
|
||||||
@@ -182,8 +210,9 @@ class PhraseanetExtension extends \Twig_Extension
|
|||||||
public function getSubdefUrl(RecordInterface $record, $subdefName)
|
public function getSubdefUrl(RecordInterface $record, $subdefName)
|
||||||
{
|
{
|
||||||
if ($record instanceof ElasticsearchRecord) {
|
if ($record instanceof ElasticsearchRecord) {
|
||||||
if ($record->getSubdefs()->containsKey($subdefName)) {
|
$subdefs = $record->getSubdefs();
|
||||||
$thumbnail = $record->getSubdefs()->get($subdefName);
|
if (isset($subdefs[$subdefName])) {
|
||||||
|
$thumbnail = $subdefs[$subdefName];
|
||||||
if (null !== $path = $thumbnail['path']) {
|
if (null !== $path = $thumbnail['path']) {
|
||||||
if (is_string($path) && '' !== $path) {
|
if (is_string($path) && '' !== $path) {
|
||||||
return $this->app['phraseanet.static-file']->getUrl($path);
|
return $this->app['phraseanet.static-file']->getUrl($path);
|
||||||
|
|||||||
@@ -763,6 +763,22 @@ class record_adapter implements RecordInterface, cache_cacheableInterface
|
|||||||
return new caption_record($this->app, $this, $this->get_databox());
|
return new caption_record($this->app, $this, $this->get_databox());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getCaption()
|
||||||
|
{
|
||||||
|
$collection = [];
|
||||||
|
|
||||||
|
/** @var caption_field $field */
|
||||||
|
foreach ($this->get_caption()->get_fields() as $field) {
|
||||||
|
$values = array_map(function(caption_Field_Value $fieldValue) {
|
||||||
|
return $fieldValue->getValue();
|
||||||
|
}, $field->get_values());
|
||||||
|
|
||||||
|
$collection[$field->get_name()] = $values;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $collection;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
@@ -2020,7 +2036,7 @@ class record_adapter implements RecordInterface, cache_cacheableInterface
|
|||||||
/** {@inheritdoc} */
|
/** {@inheritdoc} */
|
||||||
public function getExif()
|
public function getExif()
|
||||||
{
|
{
|
||||||
return new ArrayCollection($this->get_technical_infos());
|
return $this->get_technical_infos();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getStatusStructure()
|
public function getStatusStructure()
|
||||||
|
|||||||
@@ -1,20 +1,21 @@
|
|||||||
{% import 'common/macros.html.twig' as macro %}
|
{% import 'common/macros.html.twig' as macro %}
|
||||||
|
|
||||||
{% set business = false %}
|
{% set business = granted_on_collection(record.baseId, 'canmodifrecord') %}
|
||||||
{% if app['authentication'].getUser() is not none %}
|
{% set display_exif = true %}
|
||||||
{% set business = app['acl'].get(app['authentication'].getUser()).has_right_on_base(record.get_base_id(), 'canmodifrecord') %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if view == 'answer' %}
|
{% if view == 'answer' %}
|
||||||
{{ macro.format_caption(record, highlight|default(''), searchEngine|default(null), business, false, true) }}
|
{{ macro.caption(record, business, display_exif) }}
|
||||||
{% elseif view == 'lazaret' %}
|
{% elseif view == 'lazaret' %}
|
||||||
{{ macro.format_caption(record, highlight|default(''), searchEngine|default(null), business, true, true) }}
|
{{ macro.caption(record, business, display_exif) }}
|
||||||
{% elseif view == 'preview' %}
|
{% elseif view == 'preview' %}
|
||||||
{{ macro.format_caption(record, highlight|default(''), searchEngine|default(null), business, true, false) }}
|
{% set display_exif = false %}
|
||||||
|
{{ macro.caption(record, business, display_exif) }}
|
||||||
{% elseif view == 'basket' %}
|
{% elseif view == 'basket' %}
|
||||||
{{ macro.format_caption(record, highlight|default(''), searchEngine|default(null), business, true, false) }}
|
{% set display_exif = false %}
|
||||||
|
{{ macro.caption(record, business, display_exif) }}
|
||||||
{% elseif view == 'overview' %}
|
{% elseif view == 'overview' %}
|
||||||
{{ macro.format_caption(record, highlight|default(''), searchEngine|default(null), business, false, false) }}
|
{% set display_exif = false %}
|
||||||
|
{{ macro.caption(record, business, display_exif) }}
|
||||||
{% elseif view == 'publi' %}
|
{% elseif view == 'publi' %}
|
||||||
{{ macro.format_caption(record, '', null, business, true, true) }}
|
{{ macro.caption(record, business, display_exif) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -116,19 +116,15 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
{% macro caption(record, business, technical) %}
|
{% macro caption(record, can_see_business, display_exif) %}
|
||||||
{# @todo handle business fields #}
|
{# @todo handle business fields #}
|
||||||
{% for name, value in record.caption %}
|
{% for name, value in record.caption %}
|
||||||
<div class="desc {{ loop.index is odd ? 'impair' : 'pair' }}">
|
<div class="desc">
|
||||||
<b>{{ name }}</b> :
|
<b>{{ name }}</b> :
|
||||||
{% if value is iterable %}
|
{{ caption_field(record, name, value)|e|highlight }}
|
||||||
{{ value | join(' ; ') }}
|
|
||||||
{% else %}
|
|
||||||
{{ value }}
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if technical|default(true) and app['authentication'].user is not none and user_setting('technical_display') == 'group' %}
|
{% if display_exif|default(true) and app['authentication'].user is not none and user_setting('technical_display') == 'group' %}
|
||||||
<hr/>
|
<hr/>
|
||||||
{% include 'common/technical_datas.html.twig' %}
|
{% include 'common/technical_datas.html.twig' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -19,52 +19,52 @@
|
|||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
{% block td_size %}
|
{% block td_size %}
|
||||||
{% set width = record.exif.get(constant('media_subdef::TC_DATA_WIDTH')) %}
|
{% set width = record.exif[constant('media_subdef::TC_DATA_WIDTH')]|default(null) %}
|
||||||
{% set height = record.exif.get(constant('media_subdef::TC_DATA_HEIGHT')) %}
|
{% set height = record.exif[constant('media_subdef::TC_DATA_HEIGHT')]|default(null) %}
|
||||||
{% if width is not none and height is not none %}
|
{% if width is not none and height is not none %}
|
||||||
{{ width ~ " x " ~ height }}
|
{{ width ~ " x " ~ height }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
<hr/>
|
<hr/>
|
||||||
{% block td_camera_model %}
|
{% block td_camera_model %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_CAMERAMODEL')) is not none %}
|
{% if record.exif[constant('media_subdef::TC_DATA_CAMERAMODEL')] is defined %}
|
||||||
{{ 'Camera Model' | trans }} :
|
{{ 'Camera Model' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_CAMERAMODEL')) }}
|
{{ record.exif[constant('media_subdef::TC_DATA_CAMERAMODEL')] }}
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_color_space %}
|
{% block td_color_space %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_COLORSPACE')) is not none %}
|
{% if record.exif[constant('media_subdef::TC_DATA_COLORSPACE')] is defined %}
|
||||||
{{ 'Color space' | trans }} :
|
{{ 'Color space' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_COLORSPACE')) }}
|
{{ record.exif[constant('media_subdef::TC_DATA_COLORSPACE')] }}
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_channels %}
|
{% block td_channels %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_CHANNELS')) is not none %}
|
{% if record.exif[constant('media_subdef::TC_DATA_CHANNELS')] is defined %}
|
||||||
{{ 'Channels' | trans }} :
|
{{ 'Channels' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_CHANNELS')) }}
|
{{ record.exif[constant('media_subdef::TC_DATA_CHANNELS')] }}
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_color_depth %}
|
{% block td_color_depth %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_COLORDEPTH')) is not none %}
|
{% if record.exif[constant('media_subdef::TC_DATA_COLORDEPTH')] is defined %}
|
||||||
{{ 'Color Depth' | trans }} :
|
{{ 'Color Depth' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_COLORDEPTH')) }} bits
|
{{ record.exif[constant('media_subdef::TC_DATA_COLORDEPTH')] }} bits
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_iso_sensibility %}
|
{% block td_iso_sensibility %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_ISO')) is not none %}
|
{% if record.exif[constant('media_subdef::TC_DATA_ISO')] is defined %}
|
||||||
{{ 'ISO sensibility' | trans }} :
|
{{ 'ISO sensibility' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_ISO')) }}
|
{{ record.exif[constant('media_subdef::TC_DATA_ISO')] }}
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_flash %}
|
{% block td_flash %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_FLASHFIRED')) is not none %}
|
{% if record.exif[constant('media_subdef::TC_DATA_FLASHFIRED')] is defined %}
|
||||||
{{ 'Flash' | trans }} :
|
{{ 'Flash' | trans }} :
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_FLASHFIRED')) %}
|
{% if record.exif[constant('media_subdef::TC_DATA_FLASHFIRED')] %}
|
||||||
{{ 'yes' | trans }}
|
{{ 'yes' | trans }}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ 'no' | trans }}
|
{{ 'no' | trans }}
|
||||||
@@ -73,72 +73,72 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_shutter_speed %}
|
{% block td_shutter_speed %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_SHUTTERSPEED')) is not none %}
|
{% if record.exif[constant('media_subdef::TC_DATA_SHUTTERSPEED')] is defined %}
|
||||||
{{ 'Shutter speed' | trans }} :
|
{{ 'Shutter speed' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_SHUTTERSPEED')) }} s.
|
{{ record.exif[constant('media_subdef::TC_DATA_SHUTTERSPEED')] }} s.
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_apeture %}
|
{% block td_apeture %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_APERTURE')) is not none %}
|
{% if record.exif[constant('media_subdef::TC_DATA_APERTURE')] is defined %}
|
||||||
{{ 'Aperture' | trans }} :
|
{{ 'Aperture' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_APERTURE')) | round(2) }}
|
{{ record.exif[constant('media_subdef::TC_DATA_APERTURE')] | round(2) }}
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_focal_length %}
|
{% block td_focal_length %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_FOCALLENGTH')) is not none %}
|
{% if record.exif[constant('media_subdef::TC_DATA_FOCALLENGTH')] is defined %}
|
||||||
{{ 'Focal length' | trans }} :
|
{{ 'Focal length' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_FOCALLENGTH')) }} mm
|
{{ record.exif[constant('media_subdef::TC_DATA_FOCALLENGTH')] }} mm
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_hyperfocal_distance %}
|
{% block td_hyperfocal_distance %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_HYPERFOCALDISTANCE')) is not none %}
|
{% if record.exif[constant('media_subdef::TC_DATA_HYPERFOCALDISTANCE')] is defined %}
|
||||||
{{ 'Hyperfocal distance' | trans }} :
|
{{ 'Hyperfocal distance' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_HYPERFOCALDISTANCE')) | round(2) }} mm
|
{{ record.exif[constant('media_subdef::TC_DATA_HYPERFOCALDISTANCE')] | round(2) }} mm
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_light_value %}
|
{% block td_light_value %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_LIGHTVALUE')) is not none %}
|
{% if record.exif[constant('media_subdef::TC_DATA_LIGHTVALUE')] is defined %}
|
||||||
{{ 'Light Value' | trans }} :
|
{{ 'Light Value' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_LIGHTVALUE')) | round(2) }}
|
{{ record.exif[constant('media_subdef::TC_DATA_LIGHTVALUE')] | round(2) }}
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_duration %}
|
{% block td_duration %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_DURATION')) is not none %}
|
{% if record.exif[constant('media_subdef::TC_DATA_DURATION')] is defined %}
|
||||||
{{ 'Duree' | trans }} :
|
{{ 'Duree' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_DURATION')) }}
|
{{ record.exif[constant('media_subdef::TC_DATA_DURATION')] }}
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_framerate %}
|
{% block td_framerate %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_FRAMERATE')) is not none %}
|
{% if record.exif[constant('media_subdef::TC_DATA_FRAMERATE')] is defined %}
|
||||||
{{ 'Images par secondes' | trans }} :
|
{{ 'Images par secondes' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_FRAMERATE')) | round(2) }} ips
|
{{ record.exif[constant('media_subdef::TC_DATA_FRAMERATE')] | round(2) }} ips
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_codec_audio %}
|
{% block td_codec_audio %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_AUDIOCODEC')) %}
|
{% if record.exif[constant('media_subdef::TC_DATA_AUDIOCODEC')] is defined %}
|
||||||
{{ 'Codec Audio' | trans }} :
|
{{ 'Codec Audio' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_AUDIOCODEC')) }}
|
{{ record.exif[constant('media_subdef::TC_DATA_AUDIOCODEC')] }}
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_codec_video %}
|
{% block td_codec_video %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_VIDEOCODEC')) %}
|
{% if record.exif[constant('media_subdef::TC_DATA_VIDEOCODEC')] is defined %}
|
||||||
{{ 'Codec Video' | trans }} :
|
{{ 'Codec Video' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_VIDEOCODEC')) }}
|
{{ record.exif[constant('media_subdef::TC_DATA_VIDEOCODEC')] }}
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block td_audio_rate %}
|
{% block td_audio_rate %}
|
||||||
{% if record.exif.get(constant('media_subdef::TC_DATA_AUDIOSAMPLERATE')) %}
|
{% if record.exif[constant('media_subdef::TC_DATA_AUDIOSAMPLERATE')] is defined %}
|
||||||
{{ 'Frequence d\'echantillonage' | trans }} :
|
{{ 'Frequence d\'echantillonage' | trans }} :
|
||||||
{{ record.exif.get(constant('media_subdef::TC_DATA_AUDIOSAMPLERATE')) | round(2) }} kHz
|
{{ record.exif[constant('media_subdef::TC_DATA_AUDIOSAMPLERATE')] | round(2) }} kHz
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -83,7 +83,7 @@
|
|||||||
<div class="lightbox_container">
|
<div class="lightbox_container">
|
||||||
{% set business = app['acl'].get(app['authentication'].getUser()).has_right_on_base(first_item.getRecord(app).get_base_id(), 'canmodifrecord') %}
|
{% set business = app['acl'].get(app['authentication'].getUser()).has_right_on_base(first_item.getRecord(app).get_base_id(), 'canmodifrecord') %}
|
||||||
{% if first_item %}
|
{% if first_item %}
|
||||||
{{macro.format_caption(first_item.getRecord(app), '', null, business, false, false)}}
|
{{macro.caption(first_item.getRecord(app), business, false)}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -94,7 +94,7 @@
|
|||||||
<div class="lightbox_container">
|
<div class="lightbox_container">
|
||||||
{% if basket_element %}
|
{% if basket_element %}
|
||||||
{% set business = app['acl'].get(app['authentication'].getUser()).has_right_on_base(basket_element.getRecord(app).get_base_id(), 'canmodifrecord') %}
|
{% set business = app['acl'].get(app['authentication'].getUser()).has_right_on_base(basket_element.getRecord(app).get_base_id(), 'canmodifrecord') %}
|
||||||
{{macro.format_caption(basket_element.getRecord(app), '', null, business, false, false)}}
|
{{macro.caption(basket_element.getRecord(app), business, false)}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
<div class="lightbox_container PNB">
|
<div class="lightbox_container PNB">
|
||||||
{% set business = app['acl'].get(app['authentication'].getUser()).has_right_on_base(first_item.getRecord(app).get_base_id(), 'canmodifrecord') %}
|
{% set business = app['acl'].get(app['authentication'].getUser()).has_right_on_base(first_item.getRecord(app).get_base_id(), 'canmodifrecord') %}
|
||||||
{% if first_item %}
|
{% if first_item %}
|
||||||
{{macro.format_caption(first_item.getRecord(app), '', null, business, false, false)}}
|
{{macro.caption(first_item.getRecord(app), business, false)}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -95,7 +95,7 @@
|
|||||||
<div class="lightbox_container PNB">
|
<div class="lightbox_container PNB">
|
||||||
{% if basket_element %}
|
{% if basket_element %}
|
||||||
{% set business = app['acl'].get(app['authentication'].getUser()).has_right_on_base(basket_element.getRecord(app).get_base_id(), 'canmodifrecord') %}
|
{% set business = app['acl'].get(app['authentication'].getUser()).has_right_on_base(basket_element.getRecord(app).get_base_id(), 'canmodifrecord') %}
|
||||||
{{macro.format_caption(basket_element.getRecord(app), '', null, business, false, false)}}
|
{{macro.caption(basket_element.getRecord(app), business, false)}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
{% import 'common/macros.html.twig' as macro %}
|
{% import 'common/macros.html.twig' as macro %}
|
||||||
|
|
||||||
{% if app['acl'].get(app['authentication'].getUser()).has_right_on_base(record.get_base_id, 'canmodifrecord') %}
|
{% set can_edit = granted_on_collection(record.baseId, 'canmodifrecord') %}
|
||||||
|
{% set can_see_business = can_edit %}
|
||||||
|
|
||||||
|
{% if can_edit %}
|
||||||
<div class="edit_button" style="text-align:right">
|
<div class="edit_button" style="text-align:right">
|
||||||
<a href="#" onclick="editThis('IMGT','{{record.get_serialize_key()}}');">
|
<a href="#" onclick="editThis('IMGT','{{ record.get_serialize_key }}');">
|
||||||
<img style="vertical-align:middle" src="/skins/prod/000000/images/ppen_history.png" width="16"/>
|
<img style="vertical-align:middle" src="/skins/prod/000000/images/ppen_history.png" width="16"/>
|
||||||
{{ 'action : editer' | trans }}
|
{{ 'action : editer' | trans }}
|
||||||
</a>
|
</a>
|
||||||
@@ -13,9 +16,9 @@
|
|||||||
<img src="{{ flag.path }}" title="{{ attribute(flag.labels, app.locale) }}" />
|
<img src="{{ flag.path }}" title="{{ attribute(flag.labels, app.locale) }}" />
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
{% set business = app['acl'].get(app['authentication'].getUser()).has_right_on_base(record.get_base_id(), 'canmodifrecord') %}
|
|
||||||
{% if record.is_from_reg() %}
|
{% if record.is_from_reg() %}
|
||||||
{{macro.format_caption(record, '', null, null, business, false, true)}}
|
{{macro.caption(record, can_see_business)}}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{macro.format_caption(record, null, null, business, false, true)}}
|
{{macro.caption(record, can_see_business)}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
{% set thumb_w = 70 %}
|
{% set thumb_w = 70 %}
|
||||||
{% set thumb_h = 70 %}
|
{% set thumb_h = 70 %}
|
||||||
|
|
||||||
{% set thumbnail = record.subdefs.get('thumbnail') %}
|
{% set thumbnail = record.subdefs.thumbnail|default(null) %}
|
||||||
|
|
||||||
{% if thumbnail is not none %}
|
{% if thumbnail is not none %}
|
||||||
{% set thumb_w = thumbnail.width %}
|
{% set thumb_w = thumbnail.width %}
|
||||||
@@ -50,4 +50,3 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="PREVIEWTOOL"></div>
|
<div id="PREVIEWTOOL"></div>
|
||||||
|
|
||||||
@@ -13,8 +13,8 @@
|
|||||||
<td valign="middle">
|
<td valign="middle">
|
||||||
<div class='desc' style='max-height:{{ settings.images_size + 70 }}px;overflow-y:auto;'>
|
<div class='desc' style='max-height:{{ settings.images_size + 70 }}px;overflow-y:auto;'>
|
||||||
<div class="fixeddesc">
|
<div class="fixeddesc">
|
||||||
{% set business = granted_on_collection(record.baseId, 'canmodifrecord') %}
|
{% set can_see_business = granted_on_collection(record.baseId, 'canmodifrecord') %}
|
||||||
{{ macro.caption(record, business) }}
|
{{ macro.caption(record, can_see_business) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
{% set thumb_w = 256 %}
|
{% set thumb_w = 256 %}
|
||||||
{% set thumb_h = 256 %}
|
{% set thumb_h = 256 %}
|
||||||
|
|
||||||
{% set thumbnail = record.subdefs.get('thumbnail') %}
|
{% set thumbnail = record.subdefs.thumbnail|default(null) %}
|
||||||
{% if thumbnail is not none %}
|
{% if thumbnail is not none %}
|
||||||
{% set thumb_w = thumbnail.width %}
|
{% set thumb_w = thumbnail.width %}
|
||||||
{% set thumb_h = thumbnail.height %}
|
{% set thumb_h = thumbnail.height %}
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{% set thumb_w = 256 %}
|
{% set thumb_w = 256 %}
|
||||||
{% set thumb_h = 256 %}
|
{% set thumb_h = 256 %}
|
||||||
|
|
||||||
{% set thumbnail = record.subdefs.get('thumbnailgif') %}
|
{% set thumbnail = record.subdefs.thumbnailgif|default(null) %}
|
||||||
{% if thumbnail is not none %}
|
{% if thumbnail is not none %}
|
||||||
{% set thumb_w = thumbnail.width %}
|
{% set thumb_w = thumbnail.width %}
|
||||||
{% set thumb_h = thumbnail.height %}
|
{% set thumb_h = thumbnail.height %}
|
||||||
@@ -66,4 +66,4 @@
|
|||||||
<input type="hidden" name="width" value="{{original_w}}"/>
|
<input type="hidden" name="width" value="{{original_w}}"/>
|
||||||
<input type="hidden" name="height" value="{{original_h}}"/>
|
<input type="hidden" name="height" value="{{original_h}}"/>
|
||||||
</div>
|
</div>
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% import 'prod/results/macro.html.twig' as result_macro %}
|
{% import 'prod/results/macro.html.twig' as result_macro %}
|
||||||
|
{% import 'common/macros.html.twig' as macro %}
|
||||||
|
|
||||||
<div style="width:{{ settings.images_size + 30}}px;"
|
<div style="width:{{ settings.images_size + 30}}px;"
|
||||||
sbas="{{ record.databoxId }}"
|
sbas="{{ record.databoxId }}"
|
||||||
@@ -7,9 +8,8 @@
|
|||||||
onDblClick="openPreview('{{ record.story ? 'REG' : 'RESULT' }}', '{{ record.position|default(0) }}', '{{ record.id }}');">
|
onDblClick="openPreview('{{ record.story ? 'REG' : 'RESULT' }}', '{{ record.position|default(0) }}', '{{ record.id }}');">
|
||||||
<div style="padding: 4px;">
|
<div style="padding: 4px;">
|
||||||
<div style="height:40px; position: relative; z-index: 95;margin-bottom:0;border-bottom:none;">
|
<div style="height:40px; position: relative; z-index: 95;margin-bottom:0;border-bottom:none;">
|
||||||
{# @todo title should be localized #}
|
<div class="title" style="max-height:100%" title="{{ record.title(app.locale) }}">
|
||||||
<div class="title" style="max-height:100%" title="{{ record.title }}">
|
{{ record.title(app.locale)|highlight }}
|
||||||
{{ record.title }}
|
|
||||||
</div>
|
</div>
|
||||||
<div class="status">
|
<div class="status">
|
||||||
{% for flag in record_flags(record) %}
|
{% for flag in record_flags(record) %}
|
||||||
@@ -18,13 +18,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if settings.rollover_thumbnail == 'caption' %}
|
{% set can_see_business = granted_on_collection(record.baseId, 'canmodifrecord') %}
|
||||||
{% set tooltip = path('prod_tooltip_caption', { 'sbas_id' : record.databoxId, 'record_id' : record.recordId, 'context' : 'answer', 'number' : record.position|default(0) }) %}
|
|
||||||
{% elseif settings.rollover_thumbnail == 'preview' %}
|
|
||||||
{% set tooltip = path('prod_tooltip_preview', { 'sbas_id' : record.databoxId, 'record_id' : record.recordId }) %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div class="thumb captionTips" tooltipsrc="{{ tooltip }}" style="height:{{ settings.images_size }}px; z-index:90;">
|
<div class="thumb captionTips"
|
||||||
|
{% if settings.rollover_thumbnail == 'caption' %}title="{{ macro.caption(record, can_see_business, false) | e }}"{% endif %}
|
||||||
|
{% if settings.rollover_thumbnail == 'preview' %}tooltipsrc="{{ path('prod_tooltip_preview', { 'sbas_id' : record.databoxId, 'record_id' : record.recordId }) }}"{% endif %}
|
||||||
|
style="height:{{ settings.images_size }}px; z-index:90;">
|
||||||
<div class="doc_infos">
|
<div class="doc_infos">
|
||||||
{% if settings.doctype_display == '1' %}
|
{% if settings.doctype_display == '1' %}
|
||||||
{{ record_doctype_icon(record) }}
|
{{ record_doctype_icon(record) }}
|
||||||
@@ -35,7 +34,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{% set rollover = record.subdefs.containsKey('thumbnailgif') %}
|
{% set rollover = record.subdefs.thumbnailgif is defined %}
|
||||||
{% set extraclass = '' %}
|
{% set extraclass = '' %}
|
||||||
<div class="{% if rollover %}rollovable{% endif %}">
|
<div class="{% if rollover %}rollovable{% endif %}">
|
||||||
{% if rollover %}
|
{% if rollover %}
|
||||||
@@ -117,7 +116,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
{% if record.subdefs.containsKey('preview') and has_access_subdef(record, 'preview') %}
|
{% if record.subdefs.preview is defined and has_access_subdef(record, 'preview') %}
|
||||||
<div tooltipsrc="{{ path('prod_tooltip_preview', { 'sbas_id' : record.databoxId, 'record_id' : record.recordId }) }}" class="previewTips"></div>
|
<div tooltipsrc="{{ path('prod_tooltip_preview', { 'sbas_id' : record.databoxId, 'record_id' : record.recordId }) }}" class="previewTips"></div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|||||||
@@ -3005,7 +3005,6 @@ function set_up_feed_box(data) {
|
|||||||
var $form = $('form.main_form', dialog.getDomElement());
|
var $form = $('form.main_form', dialog.getDomElement());
|
||||||
|
|
||||||
$feeds_item.bind('click',function () {
|
$feeds_item.bind('click',function () {
|
||||||
console.log("clcik");
|
|
||||||
$feeds_item.removeClass('selected');
|
$feeds_item.removeClass('selected');
|
||||||
$(this).addClass('selected');
|
$(this).addClass('selected');
|
||||||
$('input[name="feed_id"]', $form).val($('input', this).val());
|
$('input[name="feed_id"]', $form).val($('input', this).val());
|
||||||
|
|||||||
Reference in New Issue
Block a user