Merge branch 'master' of https://github.com/alchemy-fr/Phraseanet into PHRAS-3034-geoloc-video-timeout-patch
33
composer.lock
generated
@@ -8055,39 +8055,6 @@
|
|||||||
],
|
],
|
||||||
"time": "2016-11-25T06:54:22+00:00"
|
"time": "2016-11-25T06:54:22+00:00"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "phpexiftool/exiftool",
|
|
||||||
"version": "10.10",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/alchemy-fr/exiftool.git",
|
|
||||||
"reference": "0833cab894c890353192a83011428525a318bedf"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/alchemy-fr/exiftool/zipball/0833cab894c890353192a83011428525a318bedf",
|
|
||||||
"reference": "0833cab894c890353192a83011428525a318bedf",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"Perl Licensing"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Phil Harvey",
|
|
||||||
"email": "phil@owl.phy.queensu.ca",
|
|
||||||
"homepage": "http://www.sno.phy.queensu.ca/~phil/exiftool/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Exiftool is a library for reading, writing and editing meta information. This package is not PHP, but required for the main PHP driver : PHP Exiftool",
|
|
||||||
"keywords": [
|
|
||||||
"exiftool",
|
|
||||||
"metadatas"
|
|
||||||
],
|
|
||||||
"time": "2016-01-25T11:10:14+00:00"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "phpspec/prophecy",
|
"name": "phpspec/prophecy",
|
||||||
"version": "v1.6.2",
|
"version": "v1.6.2",
|
||||||
|
|||||||
@@ -181,11 +181,12 @@ class ArchiveJob extends AbstractJob
|
|||||||
|
|
||||||
$dom = new \DOMDocument();
|
$dom = new \DOMDocument();
|
||||||
$dom->formatOutput = true;
|
$dom->formatOutput = true;
|
||||||
|
/** @var \DOMElement $root */
|
||||||
$root = $dom->appendChild($dom->createElement('root'));
|
$root = $dom->appendChild($dom->createElement('root'));
|
||||||
|
|
||||||
$nnew = $this->listFilesPhase1($app, $dom, $root, $path_in, $server_coll_id, 0, $TColls);
|
$nnew = $this->listFilesPhase1($app, $dom, $root, $path_in, $server_coll_id, 0, $TColls);
|
||||||
if ($app['debug']) {
|
if ($app['debug']) {
|
||||||
$this->log('debug', "=========== listFilesPhase1 ========== (returned " . $nnew . ")\n" . $dom->saveXML());
|
$this->log('debug', "== listFilesPhase1 returned " . $nnew . ")\n" . $dom->saveXML());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$this->isStarted()) {
|
if (!$this->isStarted()) {
|
||||||
@@ -193,15 +194,16 @@ class ArchiveJob extends AbstractJob
|
|||||||
}
|
}
|
||||||
|
|
||||||
// wait for files to be cold
|
// wait for files to be cold
|
||||||
$this->pause($cold);
|
for($i=0; $i<($cold*2); $i++) {
|
||||||
|
if (!$this->isStarted()) {
|
||||||
if (!$this->isStarted()) {
|
return;
|
||||||
return;
|
}
|
||||||
|
$this->pause(0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->listFilesPhase2($app, $dom, $root, $path_in, 0);
|
$this->listFilesPhase2($app, $dom, $root, $path_in, 0);
|
||||||
if ($app['debug']) {
|
if ($app['debug']) {
|
||||||
$this->log('debug', "=========== listFilesPhase2 ========== : \n" . $dom->saveXML());
|
$this->log('debug', "== listFilesPhase2\n" . $dom->saveXML());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$this->isStarted()) {
|
if (!$this->isStarted()) {
|
||||||
@@ -210,31 +212,35 @@ class ArchiveJob extends AbstractJob
|
|||||||
|
|
||||||
$this->makePairs($dom, $root, $path_in, $path_archived, $path_error, false, 0, $tmask, $tmaskgrp);
|
$this->makePairs($dom, $root, $path_in, $path_archived, $path_error, false, 0, $tmask, $tmaskgrp);
|
||||||
if ($app['debug']) {
|
if ($app['debug']) {
|
||||||
$this->log('debug', "=========== makePairs ========== : \n" . $dom->saveXML());
|
$this->log('debug', "== makePairs\n" . $dom->saveXML());
|
||||||
}
|
|
||||||
|
|
||||||
$r = $this->removeBadGroups($app, $dom, $root, $path_in, $path_archived, $path_error, 0, $moveError);
|
|
||||||
if ($app['debug']) {
|
|
||||||
$this->log('debug', "=========== removeBadGroups ========== (returned " . ((Boolean) $r ? 'true' : 'false') . ") : \n" . $dom->saveXML());
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->archive($app, $databox, $dom, $root, $path_in, $path_archived, $path_error, 0, $moveError, $moveArchived, $stat0, $stat1);
|
|
||||||
if ($app['debug']) {
|
|
||||||
$this->log('debug', "=========== archive ========== : \n" . $dom->saveXML());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$this->isStarted()) {
|
if (!$this->isStarted()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->removeBadGroups($app, $dom, $root, $path_in, $path_archived, $path_error, 0, $moveError);
|
||||||
|
if ($app['debug']) {
|
||||||
|
$this->log('debug', "== removeBadGroups\n" . $dom->saveXML());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$this->isStarted()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->archive($app, $databox, $dom, $root, $path_in, $path_archived, $path_error, 0, $moveError, $moveArchived, $stat0, $stat1);
|
||||||
|
if ($app['debug']) {
|
||||||
|
$this->log('debug', "== archive\n" . $dom->saveXML());
|
||||||
|
}
|
||||||
|
|
||||||
$this->bubbleResults($dom, $root, $path_in, 0, \p4field::isyes($settings->copy_spe));
|
$this->bubbleResults($dom, $root, $path_in, 0, \p4field::isyes($settings->copy_spe));
|
||||||
if ($app['debug']) {
|
if ($app['debug']) {
|
||||||
$this->log('debug', "=========== bubbleResults ========== : \n" . $dom->saveXML());
|
$this->log('debug', "== bubbleResults\n" . $dom->saveXML());
|
||||||
}
|
}
|
||||||
|
|
||||||
$moved = $this->moveFiles($app, $dom, $root, $path_in, $path_archived, $path_error, 0, $moveArchived, $moveError);
|
$moved = $this->moveFiles($app, $dom, $root, $path_in, $path_archived, $path_error, 0, $moveArchived, $moveError);
|
||||||
if ($app['debug']) {
|
if ($app['debug']) {
|
||||||
$this->log('debug', "=========== moveFiles ========== (returned " . ($moved ? 'true' : 'false') . ") : \n" . $dom->saveXML());
|
$this->log('debug', "== moveFiles returned " . ($moved ? 'true' : 'false') . "\n" . $dom->saveXML());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -243,15 +249,17 @@ class ArchiveJob extends AbstractJob
|
|||||||
{
|
{
|
||||||
$nnew = 0;
|
$nnew = 0;
|
||||||
|
|
||||||
if (false !== $sxDotPhrasea = @simplexml_load_file($path . '/.phrasea.xml')) {
|
$magicfile = $magicmethod = null;
|
||||||
|
|
||||||
|
if (($sxDotPhrasea = @simplexml_load_file($path . '/.phrasea.xml')) !== false) {
|
||||||
|
|
||||||
// test for magic file
|
// test for magic file
|
||||||
if (($magicfile = trim((string) ($sxDotPhrasea->magicfile))) != '') {
|
if (($magicfile = trim((string) ($sxDotPhrasea->magicfile))) != '') {
|
||||||
$magicmethod = strtoupper($sxDotPhrasea->magicfile['method']);
|
$magicmethod = strtoupper($sxDotPhrasea->magicfile['method']);
|
||||||
if ($magicmethod == 'LOCK' && true === $app['filesystem']->exists($path . '/' . $magicfile)) {
|
if ($magicmethod == 'LOCK' && ($app['filesystem']->exists($path . '/' . $magicfile) === true)) {
|
||||||
return;
|
return 0;
|
||||||
} elseif ($magicmethod == 'UNLOCK' && false === $app['filesystem']->exists($path . '/' . $magicfile)) {
|
} elseif ($magicmethod == 'UNLOCK' && ($app['filesystem']->exists($path . '/' . $magicfile) === false)) {
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -278,6 +286,7 @@ class ArchiveJob extends AbstractJob
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @var \DOMElement $n */
|
||||||
if (is_dir($path . '/' . $file)) {
|
if (is_dir($path . '/' . $file)) {
|
||||||
$n = $node->appendChild($dom->createElement('file'));
|
$n = $node->appendChild($dom->createElement('file'));
|
||||||
$n->setAttribute('isdir', '1');
|
$n->setAttribute('isdir', '1');
|
||||||
@@ -293,6 +302,16 @@ class ArchiveJob extends AbstractJob
|
|||||||
foreach (["size", "ctime", "mtime"] as $k) {
|
foreach (["size", "ctime", "mtime"] as $k) {
|
||||||
$n->setAttribute($k, $stat[$k]);
|
$n->setAttribute($k, $stat[$k]);
|
||||||
}
|
}
|
||||||
|
// special file
|
||||||
|
if($file == '.phrasea.xml') {
|
||||||
|
$n->setAttribute('match', '*');
|
||||||
|
}
|
||||||
|
// special file
|
||||||
|
if($file === $magicfile) {
|
||||||
|
$n->setAttribute('match', '*');
|
||||||
|
$node->setAttribute('magicfile', $magicfile);
|
||||||
|
$node->setAttribute('magicmethod', $magicmethod);
|
||||||
|
}
|
||||||
$nnew++;
|
$nnew++;
|
||||||
}
|
}
|
||||||
$n->setAttribute('cid', $server_coll_id);
|
$n->setAttribute('cid', $server_coll_id);
|
||||||
@@ -335,27 +354,31 @@ class ArchiveJob extends AbstractJob
|
|||||||
$dnl = @$xp->query('./file[@name="' . $file . '"]', $node);
|
$dnl = @$xp->query('./file[@name="' . $file . '"]', $node);
|
||||||
if ($dnl && $dnl->length == 0) {
|
if ($dnl && $dnl->length == 0) {
|
||||||
if (is_dir($path . '/' . $file)) {
|
if (is_dir($path . '/' . $file)) {
|
||||||
|
/** @var \DOMElement $n */
|
||||||
$n = $node->appendChild($dom->createElement('file'));
|
$n = $node->appendChild($dom->createElement('file'));
|
||||||
$n->setAttribute('isdir', '1');
|
$n->setAttribute('isdir', '1');
|
||||||
$n->setAttribute('name', $file);
|
$n->setAttribute('name', $file);
|
||||||
|
|
||||||
$nnew += $this->listFilesPhase2($app, $dom, $n, $path . '/' . $file, $depth + 1);
|
$nnew += $this->listFilesPhase2($app, $dom, $n, $path . '/' . $file, $depth + 1);
|
||||||
} else {
|
} else {
|
||||||
|
/** @var \DOMElement $n */
|
||||||
$n = $node->appendChild($dom->createElement('file'));
|
$n = $node->appendChild($dom->createElement('file'));
|
||||||
$n->setAttribute('name', $file);
|
$n->setAttribute('name', $file);
|
||||||
$nnew++;
|
$nnew++;
|
||||||
}
|
}
|
||||||
$this->setBranchHot($dom, $n);
|
$this->setBranchHot($n);
|
||||||
} elseif ($dnl && $dnl->length == 1) {
|
} elseif ($dnl && $dnl->length == 1) {
|
||||||
$dnl->item(0)->setAttribute('temperature', 'cold');
|
/** @var \DOMElement $n */
|
||||||
|
$n = $dnl->item(0);
|
||||||
|
$n->setAttribute('temperature', 'cold');
|
||||||
|
|
||||||
if (is_dir($path . '/' . $file)) {
|
if (is_dir($path . '/' . $file)) {
|
||||||
$this->listFilesPhase2($app, $dom, $dnl->item(0), $path . '/' . $file, $depth + 1);
|
$this->listFilesPhase2($app, $dom, $n, $path . '/' . $file, $depth + 1);
|
||||||
} else {
|
} else {
|
||||||
$stat = stat($path . '/' . $file);
|
$stat = stat($path . '/' . $file);
|
||||||
foreach (["size", "ctime", "mtime"] as $k) {
|
foreach (["size", "ctime", "mtime"] as $k) {
|
||||||
if ($dnl->item(0)->getAttribute($k) != $stat[$k]) {
|
if ($n->getAttribute($k) != $stat[$k]) {
|
||||||
$this->setBranchHot($dom, $dnl->item(0));
|
$this->setBranchHot($n);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -399,13 +422,16 @@ class ArchiveJob extends AbstractJob
|
|||||||
if ($dnl->length == 1) {
|
if ($dnl->length == 1) {
|
||||||
// this group is old (don't care about any linked files), just flag it
|
// this group is old (don't care about any linked files), just flag it
|
||||||
$n->setAttribute('grp', 'tocomplete');
|
$n->setAttribute('grp', 'tocomplete');
|
||||||
$dnl->item(0)->setAttribute('match', '*');
|
/** @var \DOMElement $_n */
|
||||||
|
$_n = $dnl->item(0);
|
||||||
|
$_n->setAttribute('match', '*');
|
||||||
// recurse only if group is ok
|
// recurse only if group is ok
|
||||||
$this->makePairs($dom, $n, $path . '/' . $name, $path_archived, $path_error, true, $depth + 1, $tmask, $tmaskgrp);
|
$this->makePairs($dom, $n, $path . '/' . $name, $path_archived, $path_error, true, $depth + 1, $tmask, $tmaskgrp);
|
||||||
} else {
|
} else {
|
||||||
// this group in new (to be created)
|
// this group in new (to be created)
|
||||||
// do we need one (or both) linked file ? (caption or representation)
|
// do we need one (or both) linked file ? (caption or representation)
|
||||||
$err = false;
|
$err = false;
|
||||||
|
/** @var \DOMElement[] $flink */
|
||||||
$flink = ['caption' => null, 'representation' => null];
|
$flink = ['caption' => null, 'representation' => null];
|
||||||
|
|
||||||
foreach ($flink as $linkName => $v) {
|
foreach ($flink as $linkName => $v) {
|
||||||
@@ -473,12 +499,12 @@ class ArchiveJob extends AbstractJob
|
|||||||
// this is a file
|
// this is a file
|
||||||
if (!$n->getAttribute('match')) {
|
if (!$n->getAttribute('match')) {
|
||||||
// because match can be set before
|
// because match can be set before
|
||||||
if ($name == '.phrasea.xml') {
|
// if ($name == '.phrasea.xml') {
|
||||||
// special file(s) always ok
|
// // special file(s) always ok
|
||||||
$n->setAttribute('match', '*');
|
// $n->setAttribute('match', '*');
|
||||||
} else {
|
// } else {
|
||||||
$this->checkMatch($dom, $n, $tmask);
|
$this->checkMatch($dom, $n, $tmask);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -503,7 +529,7 @@ class ArchiveJob extends AbstractJob
|
|||||||
|
|
||||||
// if root of hotfolder if hot, die...
|
// if root of hotfolder if hot, die...
|
||||||
if ($depth == 0 && $node->getAttribute('temperature') == 'hot') {
|
if ($depth == 0 && $node->getAttribute('temperature') == 'hot') {
|
||||||
return $ret;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$nodesToDel = [];
|
$nodesToDel = [];
|
||||||
@@ -522,7 +548,7 @@ class ArchiveJob extends AbstractJob
|
|||||||
$name = $n->getAttribute('name');
|
$name = $n->getAttribute('name');
|
||||||
|
|
||||||
if ($n->getAttribute('isdir')) {
|
if ($n->getAttribute('isdir')) {
|
||||||
$ret |= $this->removeBadGroups($app, $dom, $n, $path . '/' . $name
|
$this->removeBadGroups($app, $dom, $n, $path . '/' . $name
|
||||||
, $path_archived . '/' . $name
|
, $path_archived . '/' . $name
|
||||||
, $path_error . '/' . $name
|
, $path_error . '/' . $name
|
||||||
, $depth + 1, $moveError);
|
, $depth + 1, $moveError);
|
||||||
@@ -642,7 +668,7 @@ class ArchiveJob extends AbstractJob
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($node->getAttribute('temperature') == 'hot') {
|
if ($node->getAttribute('temperature') == 'hot') {
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
$ret = 0;
|
$ret = 0;
|
||||||
@@ -758,7 +784,7 @@ class ArchiveJob extends AbstractJob
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$n->getAttribute('keep')) {
|
if (!$n->getAttribute('keep') && !$n->getAttribute('match')) {
|
||||||
$this->log('debug', sprintf('delete \'%s\'', $path . '/' . $name));
|
$this->log('debug', sprintf('delete \'%s\'', $path . '/' . $name));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -792,7 +818,9 @@ class ArchiveJob extends AbstractJob
|
|||||||
if ($dnl->length == 1) {
|
if ($dnl->length == 1) {
|
||||||
// the caption file exists
|
// the caption file exists
|
||||||
$node->setAttribute('match', $captionFileName);
|
$node->setAttribute('match', $captionFileName);
|
||||||
$dnl->item(0)->setAttribute('match', '*');
|
/** @var \DOMElement $n */
|
||||||
|
$n = $dnl->item(0);
|
||||||
|
$n->setAttribute('match', '*');
|
||||||
} else {
|
} else {
|
||||||
// the caption file is missing
|
// the caption file is missing
|
||||||
$node->setAttribute('match', '?');
|
$node->setAttribute('match', '?');
|
||||||
@@ -817,7 +845,7 @@ class ArchiveJob extends AbstractJob
|
|||||||
return ($f[0] == '.' && $f != '.phrasea.xml' && $f != '.grouping.xml') || $f == 'thumbs.db' || $f == 'par-system';
|
return ($f[0] == '.' && $f != '.phrasea.xml' && $f != '.grouping.xml') || $f == 'thumbs.db' || $f == 'par-system';
|
||||||
}
|
}
|
||||||
|
|
||||||
private function setBranchHot(\DOMDocument $dom, \DOMElement $node)
|
private function setBranchHot(\DOMElement $node)
|
||||||
{
|
{
|
||||||
for ($n = $node; $n; $n = $n->parentNode) {
|
for ($n = $node; $n; $n = $n->parentNode) {
|
||||||
if ($n->nodeType == XML_ELEMENT_NODE) {
|
if ($n->nodeType == XML_ELEMENT_NODE) {
|
||||||
@@ -847,8 +875,10 @@ class ArchiveJob extends AbstractJob
|
|||||||
|
|
||||||
if ($node->getAttribute('grp') == 'tocreate') {
|
if ($node->getAttribute('grp') == 'tocreate') {
|
||||||
$representationFileName = null;
|
$representationFileName = null;
|
||||||
|
/** @var \DOMElement $representationFileNode */
|
||||||
$representationFileNode = null;
|
$representationFileNode = null;
|
||||||
$captionFileName = null;
|
$captionFileName = null;
|
||||||
|
/** @var \DOMElement $captionFileNode */
|
||||||
$captionFileNode = null;
|
$captionFileNode = null;
|
||||||
$cid = $node->getAttribute('cid');
|
$cid = $node->getAttribute('cid');
|
||||||
$genericdoc = null;
|
$genericdoc = null;
|
||||||
@@ -903,6 +933,7 @@ class ArchiveJob extends AbstractJob
|
|||||||
}
|
}
|
||||||
|
|
||||||
file_put_contents($groupingFile, '<?xml version="1.0" encoding="ISO-8859-1" ?><record grouping="' . $rid . '" />');
|
file_put_contents($groupingFile, '<?xml version="1.0" encoding="ISO-8859-1" ?><record grouping="' . $rid . '" />');
|
||||||
|
/** @var \DOMElement $n */
|
||||||
$n = $node->appendChild($dom->createElement('file'));
|
$n = $node->appendChild($dom->createElement('file'));
|
||||||
$n->setAttribute('name', '.grouping.xml');
|
$n->setAttribute('name', '.grouping.xml');
|
||||||
$n->setAttribute('temperature', 'cold');
|
$n->setAttribute('temperature', 'cold');
|
||||||
@@ -1025,6 +1056,8 @@ class ArchiveJob extends AbstractJob
|
|||||||
}
|
}
|
||||||
|
|
||||||
$story = \record_adapter::createStory($app, $collection);
|
$story = \record_adapter::createStory($app, $collection);
|
||||||
|
|
||||||
|
$story->setStatus($status);
|
||||||
$app['subdef.substituer']->substituteDocument($story, $media);
|
$app['subdef.substituer']->substituteDocument($story, $media);
|
||||||
|
|
||||||
$story->set_metadatas($metadatas->toMetadataArray($metadatasStructure), true);
|
$story->set_metadatas($metadatas->toMetadataArray($metadatasStructure), true);
|
||||||
@@ -1080,12 +1113,14 @@ class ArchiveJob extends AbstractJob
|
|||||||
|
|
||||||
$file->addAttribute(new BorderAttribute\Status($app, $status));
|
$file->addAttribute(new BorderAttribute\Status($app, $status));
|
||||||
|
|
||||||
$file->addAttribute(new BorderAttribute\Metadata(new Metadata(new PhraseaTag\TfFilepath(), new MonoValue($media->getFile()->getRealPath()))));
|
/** @var \MediaVorus\File $mediaFile */
|
||||||
$file->addAttribute(new BorderAttribute\Metadata(new Metadata(new PhraseaTag\TfDirname(), new MonoValue(dirname($media->getFile()->getRealPath())))));
|
$mediaFile = $media->getFile();
|
||||||
|
$file->addAttribute(new BorderAttribute\Metadata(new Metadata(new PhraseaTag\TfFilepath(), new MonoValue($mediaFile->getRealPath()))));
|
||||||
|
$file->addAttribute(new BorderAttribute\Metadata(new Metadata(new PhraseaTag\TfDirname(), new MonoValue(dirname($mediaFile->getRealPath())))));
|
||||||
|
|
||||||
$file->addAttribute(new BorderAttribute\Metadata(new Metadata(new PhraseaTag\TfAtime(), new MonoValue($media->getFile()->getATime()))));
|
$file->addAttribute(new BorderAttribute\Metadata(new Metadata(new PhraseaTag\TfAtime(), new MonoValue($mediaFile->getATime()))));
|
||||||
$file->addAttribute(new BorderAttribute\Metadata(new Metadata(new PhraseaTag\TfMtime(), new MonoValue($media->getFile()->getMTime()))));
|
$file->addAttribute(new BorderAttribute\Metadata(new Metadata(new PhraseaTag\TfMtime(), new MonoValue($mediaFile->getMTime()))));
|
||||||
$file->addAttribute(new BorderAttribute\Metadata(new Metadata(new PhraseaTag\TfCtime(), new MonoValue($media->getFile()->getCTime()))));
|
$file->addAttribute(new BorderAttribute\Metadata(new Metadata(new PhraseaTag\TfCtime(), new MonoValue($mediaFile->getCTime()))));
|
||||||
|
|
||||||
foreach ($metadatas as $meta) {
|
foreach ($metadatas as $meta) {
|
||||||
$file->addAttribute(new BorderAttribute\Metadata($meta));
|
$file->addAttribute(new BorderAttribute\Metadata($meta));
|
||||||
@@ -1102,8 +1137,13 @@ class ArchiveJob extends AbstractJob
|
|||||||
$record = null;
|
$record = null;
|
||||||
|
|
||||||
$postProcess = function ($element, $visa, $code) use (&$record) {
|
$postProcess = function ($element, $visa, $code) use (&$record) {
|
||||||
$record = $element;
|
$r = isset($visa); // one way to avoid "variable not used" with phpstorm 10. ugly.
|
||||||
};
|
unset($r); //
|
||||||
|
$r = isset($code); // one way to avoid "variable not used" with phpstorm 10. ugly.
|
||||||
|
unset($r); //
|
||||||
|
|
||||||
|
$record = $element;
|
||||||
|
};
|
||||||
|
|
||||||
/** @var borderManager $borderManager */
|
/** @var borderManager $borderManager */
|
||||||
$borderManager = $app['border-manager'];
|
$borderManager = $app['border-manager'];
|
||||||
@@ -1206,12 +1246,13 @@ class ArchiveJob extends AbstractJob
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->archiveFileAndCaption($app, $databox, $dom, $node, $captionFileNode, $path, $path_archived, $path_error, $grp_rid, $nodesToDel, $stat0, $stat1, $moveError, $moveArchived);
|
$this->archiveFileAndCaption($app, $databox, $node, $captionFileNode, $path, $path_archived, $path_error, $grp_rid, $nodesToDel, $stat0, $stat1, $moveError, $moveArchived);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param \DOMDOcument $dom
|
* @param Application $app
|
||||||
|
* @param \databox $databox
|
||||||
* @param \DOMElement $node
|
* @param \DOMElement $node
|
||||||
* @param \DOMElement $captionFileNode
|
* @param \DOMElement $captionFileNode
|
||||||
* @param string $path
|
* @param string $path
|
||||||
@@ -1219,8 +1260,12 @@ class ArchiveJob extends AbstractJob
|
|||||||
* @param string $path_error
|
* @param string $path_error
|
||||||
* @param integer $grp_rid
|
* @param integer $grp_rid
|
||||||
* @param array $nodesToDel out, filled with files to delete
|
* @param array $nodesToDel out, filled with files to delete
|
||||||
|
* @param $stat0
|
||||||
|
* @param $stat1
|
||||||
|
* @param $moveError
|
||||||
|
* @param $moveArchived
|
||||||
*/
|
*/
|
||||||
private function archiveFileAndCaption(Application $app, \databox $databox, \DOMDocument $dom, \DOMElement $node, \DOMElement $captionFileNode = null, $path, $path_archived, $path_error, $grp_rid, array &$nodesToDel, $stat0, $stat1, $moveError, $moveArchived)
|
private function archiveFileAndCaption(Application $app, \databox $databox, \DOMElement $node, \DOMElement $captionFileNode = null, $path, $path_archived, $path_error, $grp_rid, array &$nodesToDel, $stat0, $stat1, $moveError, $moveArchived)
|
||||||
{
|
{
|
||||||
// quick fix to reconnect if mysql is lost
|
// quick fix to reconnect if mysql is lost
|
||||||
$app->getApplicationBox()->get_connection();
|
$app->getApplicationBox()->get_connection();
|
||||||
@@ -1422,6 +1467,7 @@ class ArchiveJob extends AbstractJob
|
|||||||
{
|
{
|
||||||
$ret = new MetadataBag();
|
$ret = new MetadataBag();
|
||||||
|
|
||||||
|
/** @var \databox_field $databox_field */
|
||||||
foreach ($metadatasStructure as $databox_field) {
|
foreach ($metadatasStructure as $databox_field) {
|
||||||
if ($bag->containsKey($databox_field->get_tag()->getTagname())) {
|
if ($bag->containsKey($databox_field->get_tag()->getTagname())) {
|
||||||
$ret->set($databox_field->get_name(), $bag->get($databox_field->get_tag()->getTagname()));
|
$ret->set($databox_field->get_name(), $bag->get($databox_field->get_tag()->getTagname()));
|
||||||
|
|||||||
@@ -14,31 +14,31 @@ class WorkerConfigurationType extends AbstractType
|
|||||||
|
|
||||||
$builder
|
$builder
|
||||||
->add(MessagePublisher::ASSETS_INGEST_TYPE, 'text', [
|
->add(MessagePublisher::ASSETS_INGEST_TYPE, 'text', [
|
||||||
'label' => 'Ingest retry delay in ms'
|
'label' => 'admin::workermanager:tab:workerconfig: Ingest retry delay in ms'
|
||||||
])
|
])
|
||||||
->add(MessagePublisher::CREATE_RECORD_TYPE, 'text', [
|
->add(MessagePublisher::CREATE_RECORD_TYPE, 'text', [
|
||||||
'label' => 'Create record retry delay in ms'
|
'label' => 'admin::workermanager:tab:workerconfig: Create record retry delay in ms'
|
||||||
])
|
])
|
||||||
->add(MessagePublisher::SUBDEF_CREATION_TYPE, 'text', [
|
->add(MessagePublisher::SUBDEF_CREATION_TYPE, 'text', [
|
||||||
'label' => 'Subdefinition retry delay in ms'
|
'label' => 'admin::workermanager:tab:workerconfig: Subdefinition retry delay in ms'
|
||||||
])
|
])
|
||||||
->add(MessagePublisher::WRITE_METADATAS_TYPE, 'text', [
|
->add(MessagePublisher::WRITE_METADATAS_TYPE, 'text', [
|
||||||
'label' => 'Metadatas retry delay in ms'
|
'label' => 'admin::workermanager:tab:workerconfig: Metadatas retry delay in ms'
|
||||||
])
|
])
|
||||||
->add(MessagePublisher::WEBHOOK_TYPE, 'text', [
|
->add(MessagePublisher::WEBHOOK_TYPE, 'text', [
|
||||||
'label' => 'Webhook retry delay in ms'
|
'label' => 'admin::workermanager:tab:workerconfig: Webhook retry delay in ms'
|
||||||
])
|
])
|
||||||
->add(MessagePublisher::EXPORT_MAIL_TYPE, 'text', [
|
->add(MessagePublisher::EXPORT_MAIL_TYPE, 'text', [
|
||||||
'label' => 'Export mail retry delay in ms'
|
'label' => 'admin::workermanager:tab:workerconfig: Export mail retry delay in ms'
|
||||||
])
|
])
|
||||||
->add(MessagePublisher::POPULATE_INDEX_TYPE, 'text', [
|
->add(MessagePublisher::POPULATE_INDEX_TYPE, 'text', [
|
||||||
'label' => 'Populate Index retry delay in ms'
|
'label' => 'admin::workermanager:tab:workerconfig: Populate Index retry delay in ms'
|
||||||
])
|
])
|
||||||
->add('delayedSubdef', 'text', [
|
->add('delayedSubdef', 'text', [
|
||||||
'label' => 'Subdef delay in ms'
|
'label' => 'admin::workermanager:tab:workerconfig: Subdef delay in ms'
|
||||||
])
|
])
|
||||||
->add('delayedWriteMeta', 'text', [
|
->add('delayedWriteMeta', 'text', [
|
||||||
'label' => 'Write meta delay in ms'
|
'label' => 'admin::workermanager:tab:workerconfig: Write meta delay in ms'
|
||||||
])
|
])
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,19 +13,19 @@ class WorkerPullAssetsType extends AbstractType
|
|||||||
|
|
||||||
$builder
|
$builder
|
||||||
->add('endpointCommit', 'text', [
|
->add('endpointCommit', 'text', [
|
||||||
'label' => 'Endpoint get commit'
|
'label' => 'admin::workermanager:tab:pullassets: Endpoint get commit'
|
||||||
])
|
])
|
||||||
->add('endpointToken', 'text', [
|
->add('endpointToken', 'text', [
|
||||||
'label' => 'Endpoint get token'
|
'label' => 'admin::workermanager:tab:pullassets: Endpoint get token'
|
||||||
])
|
])
|
||||||
->add('clientSecret', 'text', [
|
->add('clientSecret', 'text', [
|
||||||
'label' => 'Client secret'
|
'label' => 'admin::workermanager:tab:pullassets: Client secret'
|
||||||
])
|
])
|
||||||
->add('clientId', 'text', [
|
->add('clientId', 'text', [
|
||||||
'label' => 'Client ID'
|
'label' => 'admin::workermanager:tab:pullassets: Client ID'
|
||||||
])
|
])
|
||||||
->add('pullInterval', 'text', [
|
->add('pullInterval', 'text', [
|
||||||
'label' => 'Fetching interval in second'
|
'label' => 'admin::workermanager:tab:pullassets: Fetching interval in second'
|
||||||
])
|
])
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,18 +16,18 @@ class WorkerSearchengineType extends AbstractType
|
|||||||
|
|
||||||
$builder
|
$builder
|
||||||
->add('host', 'text', [
|
->add('host', 'text', [
|
||||||
'label' => 'Elasticsearch server host',
|
'label' => 'admin::workermanager:tab:searchengine: Elasticsearch server host',
|
||||||
'constraints' => new NotBlank(),
|
'constraints' => new NotBlank(),
|
||||||
])
|
])
|
||||||
->add('port', 'integer', [
|
->add('port', 'integer', [
|
||||||
'label' => 'Elasticsearch service port',
|
'label' => 'admin::workermanager:tab:searchengine: Elasticsearch service port',
|
||||||
'constraints' => [
|
'constraints' => [
|
||||||
new Range(['min' => 1, 'max' => 65535]),
|
new Range(['min' => 1, 'max' => 65535]),
|
||||||
new NotBlank()
|
new NotBlank()
|
||||||
]
|
]
|
||||||
])
|
])
|
||||||
->add('indexName', 'text', [
|
->add('indexName', 'text', [
|
||||||
'label' => 'Elasticsearch index name',
|
'label' => 'admin::workermanager:tab:searchengine: Elasticsearch index name',
|
||||||
'constraints' => new NotBlank(),
|
'constraints' => new NotBlank(),
|
||||||
'attr' =>['data-class'=>'inline']
|
'attr' =>['data-class'=>'inline']
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -157,8 +157,8 @@ class databox_status
|
|||||||
* compute ((0 M s1) M s2) where M is the "mask" operator
|
* compute ((0 M s1) M s2) where M is the "mask" operator
|
||||||
* nb : s1,s2 are binary mask strings as "01x0xx1xx0x", no other format (hex) supported
|
* nb : s1,s2 are binary mask strings as "01x0xx1xx0x", no other format (hex) supported
|
||||||
*
|
*
|
||||||
* @param $stat1 a binary mask "010x1xx0.." STRING
|
* @param string $stat1 a binary mask "010x1xx0.."
|
||||||
* @param $stat2 a binary mask "x100x1..." STRING
|
* @param string $stat2 a binary mask "x100x1..."
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
"normalize-css": "^2.1.0",
|
"normalize-css": "^2.1.0",
|
||||||
"npm": "^6.0.0",
|
"npm": "^6.0.0",
|
||||||
"npm-modernizr": "^2.8.3",
|
"npm-modernizr": "^2.8.3",
|
||||||
"phraseanet-production-client": "0.34.207-d",
|
"phraseanet-production-client": "0.34.208-d",
|
||||||
"requirejs": "^2.3.5",
|
"requirejs": "^2.3.5",
|
||||||
"tinymce": "^4.0.28",
|
"tinymce": "^4.0.28",
|
||||||
"underscore": "^1.8.3",
|
"underscore": "^1.8.3",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
||||||
<file date="2020-05-20T15:12:51Z" source-language="en" target-language="de" datatype="plaintext" original="not.available">
|
<file date="2020-05-26T10:28:28Z" source-language="en" target-language="de" datatype="plaintext" original="not.available">
|
||||||
<header>
|
<header>
|
||||||
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
||||||
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
||||||
<file date="2020-05-20T15:13:16Z" source-language="en" target-language="en" datatype="plaintext" original="not.available">
|
<file date="2020-05-26T10:28:56Z" source-language="en" target-language="en" datatype="plaintext" original="not.available">
|
||||||
<header>
|
<header>
|
||||||
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
||||||
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
||||||
<file date="2020-05-20T15:13:44Z" source-language="en" target-language="fr" datatype="plaintext" original="not.available">
|
<file date="2020-05-26T10:29:25Z" source-language="en" target-language="fr" datatype="plaintext" original="not.available">
|
||||||
<header>
|
<header>
|
||||||
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
||||||
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
|
||||||
<file date="2020-05-20T15:14:15Z" source-language="en" target-language="nl" datatype="plaintext" original="not.available">
|
<file date="2020-05-26T10:30:00Z" source-language="en" target-language="nl" datatype="plaintext" original="not.available">
|
||||||
<header>
|
<header>
|
||||||
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
|
||||||
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
|
||||||
|
|||||||
1
resources/www/admin/images/cogs-solid.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg color="#5cb85c" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="cogs" class="svg-inline--fa fa-cogs fa-w-20" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 2.6 KiB |
1
resources/www/admin/images/database-solid-blue.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg color="#3b99fc" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="database" class="svg-inline--fa fa-database fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 649 B |
1
resources/www/admin/images/database-solid.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="database" class="svg-inline--fa fa-database fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 633 B |
1
resources/www/admin/images/searchengin.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="searchengin" class="svg-inline--fa fa-searchengin fa-w-15" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 460 512"><path fill="currentColor" d="M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 919 B |
1
resources/www/admin/images/tools-solid.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="tools" class="svg-inline--fa fa-tools fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 921 B |
@@ -189,6 +189,43 @@ $mainMenuLinkBackgroundHoverColor: transparent;
|
|||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.select-all-line {
|
||||||
|
color: #afafaf;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.users_check_line_wrap {
|
||||||
|
position: absolute;
|
||||||
|
div {
|
||||||
|
padding: 5px 10px;
|
||||||
|
background-color: #cccccc;
|
||||||
|
color: #000000;
|
||||||
|
cursor: pointer;
|
||||||
|
line-height: 1.7;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
padding: 5px 10px;
|
||||||
|
background-color: #4d4d4d;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa-right {
|
||||||
|
color: #2475b5;
|
||||||
|
font-size: 16px;
|
||||||
|
.select-all-line-btn & {
|
||||||
|
padding-left: 6px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.without-border {
|
||||||
|
margin-left: 15px;
|
||||||
|
outline: none;
|
||||||
|
&:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/******* EDIT USERS ***********************************************************/
|
/******* EDIT USERS ***********************************************************/
|
||||||
div.no_switch {
|
div.no_switch {
|
||||||
width: 12px;
|
width: 12px;
|
||||||
@@ -211,7 +248,7 @@ div.switch_quota.mixed,
|
|||||||
div.switch_masks.mixed,
|
div.switch_masks.mixed,
|
||||||
div.switch_time.mixed,
|
div.switch_time.mixed,
|
||||||
div.switch_right.mixed {
|
div.switch_right.mixed {
|
||||||
background-image: url('#{$iconsPath}ccoch2.gif');
|
background-image: url('#{$iconsPath}square-duotone.svg');
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center center;
|
background-position: center center;
|
||||||
}
|
}
|
||||||
@@ -219,7 +256,7 @@ div.switch_quota.checked,
|
|||||||
div.switch_masks.checked,
|
div.switch_masks.checked,
|
||||||
div.switch_time.checked,
|
div.switch_time.checked,
|
||||||
div.switch_right.checked {
|
div.switch_right.checked {
|
||||||
background-image: url('#{$iconsPath}ccoch1.gif');
|
background-image: url('#{$iconsPath}check-square-regular.svg');
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center center;
|
background-position: center center;
|
||||||
}
|
}
|
||||||
@@ -227,7 +264,7 @@ div.switch_quota.unchecked,
|
|||||||
div.switch_masks.unchecked,
|
div.switch_masks.unchecked,
|
||||||
div.switch_time.unchecked,
|
div.switch_time.unchecked,
|
||||||
div.switch_right.unchecked {
|
div.switch_right.unchecked {
|
||||||
background-image: url('#{$iconsPath}ccoch0.gif');
|
background-image: url('#{$iconsPath}square-regular.svg');
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center center;
|
background-position: center center;
|
||||||
}
|
}
|
||||||
@@ -912,6 +949,12 @@ span.simplecolorpicker.picker {
|
|||||||
.ui-dialog-titlebar-close {
|
.ui-dialog-titlebar-close {
|
||||||
text-indent: -9999999px;
|
text-indent: -9999999px;
|
||||||
}
|
}
|
||||||
|
.worker-info-block {
|
||||||
|
.btn-primary {
|
||||||
|
min-width: 161px;
|
||||||
|
margin-right: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
@import './databases';
|
@import './databases';
|
||||||
@import './fields';
|
@import './fields';
|
||||||
@import './tables';
|
@import './tables';
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
<svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="check-square" class="svg-inline--fa fa-check-square fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 664 B |
1
resources/www/common/images/icons/square-duotone.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg color="#aaa8a5" aria-hidden="true" focusable="false" data-prefix="fa" data-icon="square" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class="svg-inline--fa fa-square fa-w-14 fa-2x"><g class="fa-group"><path fill="currentColor" d="M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16 368a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16V112a16 16 0 0 1 16-16h288a16 16 0 0 1 16 16z" class="fa-secondary"></path><path fill="currentColor" d="M64 400V112a16 16 0 0 1 16-16h288a16 16 0 0 1 16 16v288a16 16 0 0 1-16 16H80a16 16 0 0 1-16-16z" class="fa-primary"></path></g></svg>
|
||||||
|
After Width: | Height: | Size: 635 B |
1
resources/www/common/images/icons/square-regular.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg aria-hidden="true" focusable="false" data-prefix="far" data-icon="square" class="svg-inline--fa fa-square fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"></path></svg>
|
||||||
|
After Width: | Height: | Size: 424 B |
@@ -61,24 +61,6 @@
|
|||||||
div.no_switch{
|
div.no_switch{
|
||||||
background-image:url(/assets/common/images/icons/ccoch5.gif);
|
background-image:url(/assets/common/images/icons/ccoch5.gif);
|
||||||
}
|
}
|
||||||
div.switch_quota.mixed,
|
|
||||||
div.switch_masks.mixed,
|
|
||||||
div.switch_time.mixed,
|
|
||||||
div.switch_right.mixed{
|
|
||||||
background-image:url(/assets/common/images/icons/ccoch2.gif);
|
|
||||||
}
|
|
||||||
div.switch_quota.checked,
|
|
||||||
div.switch_masks.checked,
|
|
||||||
div.switch_time.checked,
|
|
||||||
div.switch_right.checked{
|
|
||||||
background-image:url(/assets/common/images/icons/ccoch1.gif);
|
|
||||||
}
|
|
||||||
div.switch_quota.unchecked,
|
|
||||||
div.switch_masks.unchecked,
|
|
||||||
div.switch_time.unchecked,
|
|
||||||
div.switch_right.unchecked{
|
|
||||||
background-image:url(/assets/common/images/icons/ccoch0.gif);
|
|
||||||
}
|
|
||||||
td.users_col{
|
td.users_col{
|
||||||
vertical-align:middle;
|
vertical-align:middle;
|
||||||
text-align:center;
|
text-align:center;
|
||||||
@@ -137,40 +119,20 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<table cellspacing="0" cellpadding="0" border="0" style="table-layout: auto;width:820px;height:67px;bottom:auto;top:50px;" class="">
|
<table cellspacing="0" cellpadding="0" border="0" style="table-layout: auto;width:850px;height:67px;bottom:auto;top:50px;" class="">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th style="width:122px;">
|
<th style="width:168px;">
|
||||||
|
|
||||||
</th>
|
</th>
|
||||||
<th colspan="26">
|
<th colspan="25">
|
||||||
<img src="/assets/common/images/lng/inclin-{{app['locale']}}.png" style="width:698px"/>
|
<img src="/assets/common/images/lng/inclin-{{app['locale']}}.png" style="width:682px"/>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td colspan="26">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
</table>
|
||||||
<div class="" style="bottom:40px;top:127px;overflow-y:auto;overflow-x:hidden;width:850px;max-height: 450px;">
|
<div class="" style="bottom:40px;top:127px;overflow-y:auto;overflow-x:hidden;width:870px;max-height: 450px;">
|
||||||
<table class="hoverable" cellspacing="0" cellpadding="0" border="0" style="table-layout: fixed;width:820px;">
|
<table class="hoverable" cellspacing="0" cellpadding="0" border="0" style="table-layout: fixed;width:840px;">
|
||||||
<!-- <thead>
|
|
||||||
<tr>
|
|
||||||
<th style="width:122px;">
|
|
||||||
|
|
||||||
</th>
|
|
||||||
<th colspan="26">
|
|
||||||
<img src="/assets/common/images/lng/inclin-{{app['locale']}}.gif" >
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
</thead>-->
|
|
||||||
<tbody>
|
<tbody>
|
||||||
{% set sbas = '' %}
|
{% set sbas = '' %}
|
||||||
{% for rights in datas %}
|
{% for rights in datas %}
|
||||||
@@ -183,54 +145,55 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width:122px;overflow:hidden;white-space:nowrap;">
|
<td style="width:140px;overflow:hidden;white-space:nowrap;">
|
||||||
{{rights['sbas_id']|sbas_labels(app)}}
|
{{rights['sbas_id']|sbas_labels(app)}}
|
||||||
</td>
|
</td>
|
||||||
|
<td style="width:25px"></td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_access"/>
|
<input type="hidden" name="right" value="right_access"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_actif"/>
|
<input type="hidden" name="right" value="right_actif"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_canputinalbum"/>
|
<input type="hidden" name="right" value="right_canputinalbum"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_candwnldpreview"/>
|
<input type="hidden" name="right" value="right_candwnldpreview"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_nowatermark"/>
|
<input type="hidden" name="right" value="right_nowatermark"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_candwnldhd"/>
|
<input type="hidden" name="right" value="right_candwnldhd"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_cancmd"/>
|
<input type="hidden" name="right" value="right_cancmd"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
@@ -247,117 +210,127 @@
|
|||||||
<td class="users_col">
|
<td class="users_col">
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td width="97" style="width: 97px;">
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_canaddrecord"/>
|
<input type="hidden" name="right" value="right_canaddrecord"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_canmodifrecord"/>
|
<input type="hidden" name="right" value="right_canmodifrecord"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_chgstatus"/>
|
<input type="hidden" name="right" value="right_chgstatus"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_candeleterecord"/>
|
<input type="hidden" name="right" value="right_candeleterecord"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_imgtools"/>
|
<input type="hidden" name="right" value="right_imgtools"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_canadmin"/>
|
<input type="hidden" name="right" value="right_canadmin"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_canreport"/>
|
<input type="hidden" name="right" value="right_canreport"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_canpush"/>
|
<input type="hidden" name="right" value="right_canpush"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_manage"/>
|
<input type="hidden" name="right" value="right_manage"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col options">
|
<td class="users_col options">
|
||||||
<div>
|
<div>
|
||||||
▼
|
<i class="fa fa-caret-down fa-right"></i>
|
||||||
<input type="hidden" name="right" value="right_modify_struct"/>
|
<input type="hidden" name="right" value="right_modify_struct"/>
|
||||||
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
<input type="hidden" name="sbas_id" value="{{rights['sbas_id']}}"/>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:center;width:19px;" title="{{ 'Allowed to publish' | trans }}">
|
<td class="main-right-item" style="text-align:center;width:19px;" title="{{ 'Allowed to publish' | trans }}">
|
||||||
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::BAS_CHUPUB'), users, 'sbas')}}
|
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::BAS_CHUPUB'), users, 'sbas')}}
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:center;width:19px;" title="{{ 'Manage Thesaurus' | trans }}">
|
<td class="main-right-item" style="text-align:center;width:19px;" title="{{ 'Manage Thesaurus' | trans }}">
|
||||||
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::BAS_MODIF_TH'), users, 'sbas')}}
|
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::BAS_MODIF_TH'), users, 'sbas')}}
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:center;width:19px;" title="{{ 'Manage Database' | trans }}">
|
<td class="main-right-item" style="text-align:center;width:19px;" title="{{ 'Manage Database' | trans }}">
|
||||||
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::BAS_MANAGE'), users, 'sbas')}}
|
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::BAS_MANAGE'), users, 'sbas')}}
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:center;width:19px;" title="{{ 'Manage DB fields' | trans }}">
|
<td class="main-right-item" style="text-align:center;width:19px;" title="{{ 'Manage DB fields' | trans }}">
|
||||||
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::BAS_MODIFY_STRUCT'), users, 'sbas')}}
|
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::BAS_MODIFY_STRUCT'), users, 'sbas')}}
|
||||||
</td>
|
</td>
|
||||||
<td style="text-align:center;width:48px;"></td>
|
<td style="text-align:center;width:48px;">
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<tr>
|
<tr class="right-items">
|
||||||
<td style="overflow:hidden;white-space:nowrap;">
|
<td style="width: 140px;overflow:hidden;white-space:nowrap;" title="{{rights['base_id']|bas_labels(app)}}">
|
||||||
{{rights['base_id']|bas_labels(app)}}
|
{{rights['base_id']|bas_labels(app)}}
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col case_right_access" title="{{ 'Access' | trans }}">
|
<td class="select-all-line" title="{{'admin::users:edit: Manage inline selection' | trans }}" style="width: 25px">
|
||||||
|
<div class="select-all-line-btn">
|
||||||
|
<i class="fa fa-caret-right fa-right"></i>
|
||||||
|
</div>
|
||||||
|
<div class="users_check_line_wrap hide">
|
||||||
|
<div class="checker check_left_right">{{'admin::users:edit: check read right' | trans }}</div>
|
||||||
|
<div class="unchecker check-all_right">{{'admin::users:edit: check all right' | trans }}</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="users_col case_right_access left-right" title="{{ 'Access' | trans }}">
|
||||||
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::ACCESS'), users, 'base')}}
|
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::ACCESS'), users, 'base')}}
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col case_right_actif" title="{{ 'Active' | trans }}">
|
<td class="users_col case_right_actif left-right" title="{{ 'Active' | trans }}">
|
||||||
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::ACTIF'), users, 'base')}}
|
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::ACTIF'), users, 'base')}}
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col case_right_canputinalbum" title="{{ 'Allowed to add in basket' | trans }}">
|
<td class="users_col case_right_canputinalbum left-right" title="{{ 'Allowed to add in basket' | trans }}">
|
||||||
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::CANPUTINALBUM'), users, 'base')}}
|
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::CANPUTINALBUM'), users, 'base')}}
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col case_right_candwnldpreview" title="{{ 'Access to preview' | trans }}">
|
<td class="users_col case_right_candwnldpreview left-right" title="{{ 'Access to preview' | trans }}">
|
||||||
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::CANDWNLDPREVIEW'), users, 'base')}}
|
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::CANDWNLDPREVIEW'), users, 'base')}}
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col case_right_nowatermark" title="{{ 'Remove watermark' | trans }}">
|
<td class="users_col case_right_nowatermark left-right" title="{{ 'Remove watermark' | trans }}">
|
||||||
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::NOWATERMARK'), users, 'base')}}
|
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::NOWATERMARK'), users, 'base')}}
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col case_right_candwnldhd" title="{{ 'Access to HD' | trans }}">
|
<td class="users_col case_right_candwnldhd left-right" title="{{ 'Access to HD' | trans }}">
|
||||||
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::CANDWNLDHD'), users, 'base')}}
|
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::CANDWNLDHD'), users, 'base')}}
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col case_right_cancmd" title="{{ 'Allowed to order' | trans }}">
|
<td class="users_col case_right_cancmd left-right" title="{{ 'Allowed to order' | trans }}">
|
||||||
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::CANCMD'), users, 'base')}}
|
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::CANCMD'), users, 'base')}}
|
||||||
</td>
|
</td>
|
||||||
<td class="users_col case_right_quota" title="{{ 'Set download quotas' | trans }}">
|
<td class="users_col case_right_quota" title="{{ 'Set download quotas' | trans }}">
|
||||||
@@ -391,7 +364,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td style="text-align:center;width:100px;"></td>
|
<td style="text-align:center;width:97px;"></td>
|
||||||
|
|
||||||
<td class="users_col case_right_canaddrecord" title="{{ 'Allowed to add' | trans }}">
|
<td class="users_col case_right_canaddrecord" title="{{ 'Allowed to add' | trans }}">
|
||||||
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::CANADDRECORD'), users, 'base')}}
|
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::CANADDRECORD'), users, 'base')}}
|
||||||
@@ -423,8 +396,8 @@
|
|||||||
<td class="users_col case_right_modify" title="{{ 'Manage values lists' | trans }}">
|
<td class="users_col case_right_modify" title="{{ 'Manage values lists' | trans }}">
|
||||||
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::COLL_MODIFY_STRUCT'), users, 'base')}}
|
{{_self.format_checkbox(app.getAuthenticatedUser(), rights, constant('\\ACL::COLL_MODIFY_STRUCT'), users, 'base')}}
|
||||||
</td>
|
</td>
|
||||||
<td colspan="5">
|
|
||||||
|
|
||||||
|
<td colspan="5">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -1099,6 +1072,31 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$('body').click(function() {
|
||||||
|
$('.users_check_line_wrap').addClass('hide');
|
||||||
|
});
|
||||||
|
$('.select-all-line-btn').click(function (event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
var top = $(this).offset().top - 50;
|
||||||
|
var left = $(this).offset().left + 60;
|
||||||
|
$('.users_check_line_wrap').addClass('hide');
|
||||||
|
$(this).closest('.select-all-line').find('.users_check_line_wrap').removeClass('hide').css('top', +top+'px');
|
||||||
|
|
||||||
|
});
|
||||||
|
$('.check_left_right').click(function () {
|
||||||
|
$(this).closest('.right-items').find('.left-right div').show().removeClass('unchecked').addClass('checked');
|
||||||
|
$(this).closest('.right-items').find('.left-right input').val(1);
|
||||||
|
$('.users_check_line_wrap').addClass('hide');
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.check-all_right').click(function () {
|
||||||
|
$(this).closest('.right-items').find('div').show().removeClass('unchecked').addClass('checked');
|
||||||
|
$(this).closest('.right-items').find('input').val(1);
|
||||||
|
$('.users_check_line_wrap').addClass('hide');
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
require([
|
require([
|
||||||
|
|||||||
@@ -42,6 +42,8 @@
|
|||||||
serverDisconnected: '{{ 'phraseanet::erreur: Votre session est fermee, veuillez vous re-authentifier' | trans | e('js') }}',
|
serverDisconnected: '{{ 'phraseanet::erreur: Votre session est fermee, veuillez vous re-authentifier' | trans | e('js') }}',
|
||||||
check_all : '{{ 'Cocher toute la colonne' | trans | e('js') }}',
|
check_all : '{{ 'Cocher toute la colonne' | trans | e('js') }}',
|
||||||
uncheck_all : '{{ 'Decocher toute la colonne' | trans | e('js') }}',
|
uncheck_all : '{{ 'Decocher toute la colonne' | trans | e('js') }}',
|
||||||
|
check_left_right : '{{ 'admin::users:edit: check left right' | trans | e('js') }}',
|
||||||
|
check_all_right : '{{ 'admin::users:edit: check all right' | trans | e('js') }}',
|
||||||
create_template : '{{ 'Creer un model' | trans | e('js') }}',
|
create_template : '{{ 'Creer un model' | trans | e('js') }}',
|
||||||
create_user : '{{ 'Creer un utilisateur' | trans | e('js') }}',
|
create_user : '{{ 'Creer un utilisateur' | trans | e('js') }}',
|
||||||
annuler : '{{ 'boutton::annuler' | trans | e('js') }}',
|
annuler : '{{ 'boutton::annuler' | trans | e('js') }}',
|
||||||
|
|||||||
@@ -18,12 +18,13 @@
|
|||||||
{% if app.getAclForUser(app.getAuthenticatedUser()).is_admin() %}
|
{% if app.getAclForUser(app.getAuthenticatedUser()).is_admin() %}
|
||||||
<li>
|
<li>
|
||||||
<a target="right" href="{{ path('setup_display_globals') }}" class="ajax">
|
<a target="right" href="{{ path('setup_display_globals') }}" class="ajax">
|
||||||
<img src="/assets/admin/images/Setup.png" />
|
<img width="16" src="/assets/admin/images/tools-solid.svg" />
|
||||||
<span>{% trans %}Setup{% endtrans %}</span>
|
<span>{% trans %}Setup{% endtrans %}</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a target="right" href="{{ path('admin_searchengine_form') }}">
|
<a target="right" href="{{ path('admin_searchengine_form') }}">
|
||||||
|
<img width="16" src="/assets/admin/images/searchengin.svg" />
|
||||||
<span>{{ 'SearchEngine settings' | trans }}</span>
|
<span>{{ 'SearchEngine settings' | trans }}</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -79,7 +80,7 @@
|
|||||||
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right(constant('\\ACL::TASKMANAGER')) %}
|
{% if app.getAclForUser(app.getAuthenticatedUser()).has_right(constant('\\ACL::TASKMANAGER')) %}
|
||||||
<li class="{% if feature == 'workermanager' %}selected{% endif %}">
|
<li class="{% if feature == 'workermanager' %}selected{% endif %}">
|
||||||
<a target="right" href="{{ path('worker_admin') }}" class="ajax">
|
<a target="right" href="{{ path('worker_admin') }}" class="ajax">
|
||||||
<img src="/assets/admin/images/TaskManager.png" />
|
<img width="16" src="/assets/admin/images/cogs-solid.svg" />
|
||||||
<span>{{ 'Worker Manager' | trans }}</span>
|
<span>{{ 'Worker Manager' | trans }}</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@@ -88,7 +89,7 @@
|
|||||||
<li class="open">
|
<li class="open">
|
||||||
<div class="{% if feature == 'bases' %}selected{% endif %}" style="padding:0 0 2px 0;">
|
<div class="{% if feature == 'bases' %}selected{% endif %}" style="padding:0 0 2px 0;">
|
||||||
<a id="TREE_DATABASES" target="right" href="{{ path('admin_databases') }}" class="ajax">
|
<a id="TREE_DATABASES" target="right" href="{{ path('admin_databases') }}" class="ajax">
|
||||||
<img src="/assets/admin/images/DatabasesAvailable.png" />
|
<img width="16" src="/assets/admin/images/database-solid-blue.svg" />
|
||||||
<span>{{ 'admin::utilisateurs: bases de donnees' | trans }}</span>
|
<span>{{ 'admin::utilisateurs: bases de donnees' | trans }}</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -113,7 +114,7 @@
|
|||||||
<li class="{% if this_is_open %}open{% endif %}">
|
<li class="{% if this_is_open %}open{% endif %}">
|
||||||
<div style="padding:0 0 2px 0;" class="{% if this_is_selected %}selected{% endif %}">
|
<div style="padding:0 0 2px 0;" class="{% if this_is_selected %}selected{% endif %}">
|
||||||
<a target="right" href="{{ path('admin_database', { 'databox_id' : sbas_id }) }}" class="ajax">
|
<a target="right" href="{{ path('admin_database', { 'databox_id' : sbas_id }) }}" class="ajax">
|
||||||
<img src="/assets/admin/images/Database.png"/>
|
<img width="16" src="/assets/admin/images/database-solid.svg"/>
|
||||||
<span>{{ databox.get_label(app['locale']) }}</span>
|
<span>{{ databox.get_label(app['locale']) }}</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -46,7 +46,10 @@
|
|||||||
<option {% if parm['like_field'] == "company" %}selected="selected"{% endif %} value="company">{{ 'Push::filter on companies' | trans }}</option>
|
<option {% if parm['like_field'] == "company" %}selected="selected"{% endif %} value="company">{{ 'Push::filter on companies' | trans }}</option>
|
||||||
<option {% if parm['like_field'] == "email" %}selected="selected"{% endif %} value="email">{{ 'Push::filter on emails' | trans }}</option>
|
<option {% if parm['like_field'] == "email" %}selected="selected"{% endif %} value="email">{{ 'Push::filter on emails' | trans }}</option>
|
||||||
</select>
|
</select>
|
||||||
<span>{{ 'Push::filter starts' | trans }}</span>
|
<select name="like_type" class="input-medium without-border">
|
||||||
|
<option selected="selected" value="content">{{ 'admin::users:filter: content' | trans }}</option>
|
||||||
|
<option value="start_with">{{ 'admin::users:filter: start with' | trans }}</option>
|
||||||
|
</select>
|
||||||
<input type="text" value="{{parm['like_value']}}" name="like_value" class="input-medium">
|
<input type="text" value="{{parm['like_value']}}" name="like_value" class="input-medium">
|
||||||
<span>{{ 'Last applied template' | trans }}</span>
|
<span>{{ 'Last applied template' | trans }}</span>
|
||||||
<select name="last_model" class="input-medium">
|
<select name="last_model" class="input-medium">
|
||||||
|
|||||||
@@ -7,32 +7,32 @@
|
|||||||
|
|
||||||
<li class="worker-configuration" role="presentation">
|
<li class="worker-configuration" role="presentation">
|
||||||
<a href="#worker-configuration" aria-controls="worker-configuration" role="tab" data-toggle="tab" data-url="/admin/worker-manager/configuration">
|
<a href="#worker-configuration" aria-controls="worker-configuration" role="tab" data-toggle="tab" data-url="/admin/worker-manager/configuration">
|
||||||
{{ "Configuration" | trans }}
|
{{ "admin::workermanager:tab:configuration: title" | trans }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="worker-info active" role="presentation">
|
<li class="worker-info active" role="presentation">
|
||||||
<a href="#worker-info" aria-controls="worker-info" role="tab" data-toggle="tab" data-url="/admin/worker-manager/info">
|
<a href="#worker-info" aria-controls="worker-info" role="tab" data-toggle="tab" data-url="/admin/worker-manager/info">
|
||||||
{{ "Working info" | trans }}
|
{{ 'admin::workermanager:tab:workerinfo: title' |trans }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="worker-searchengine" role="presentation">
|
<li class="worker-searchengine" role="presentation">
|
||||||
<a href="#worker-searchengine" aria-controls="worker-searchengine" role="tab" data-toggle="tab" data-url="/admin/worker-manager/searchengine">
|
<a href="#worker-searchengine" aria-controls="worker-searchengine" role="tab" data-toggle="tab" data-url="/admin/worker-manager/searchengine">
|
||||||
{{ "Searchengine" | trans }}
|
{{ 'admin::workermanager:tab:searchengine: title' |trans }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="worker-pull-assets" role="presentation">
|
<li class="worker-pull-assets" role="presentation">
|
||||||
<a href="#worker-pull-assets" aria-controls="worker-pull-assets" role="tab" data-toggle="tab" data-url="/admin/worker-manager/pull-assets">
|
<a href="#worker-pull-assets" aria-controls="worker-pull-assets" role="tab" data-toggle="tab" data-url="/admin/worker-manager/pull-assets">
|
||||||
{{ "Pull Assets" | trans }}
|
{{ 'admin::workermanager:tab:pullassets: title' |trans }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="worker-subview" role="presentation">
|
<li class="worker-subview" role="presentation">
|
||||||
<a href="#worker-subview" aria-controls="worker-subview" role="tab" data-toggle="tab" data-url="/admin/worker-manager/subview">
|
<a href="#worker-subview" aria-controls="worker-subview" role="tab" data-toggle="tab" data-url="/admin/worker-manager/subview">
|
||||||
{{ "Subview" | trans }}
|
{{ 'admin::workermanager:tab:subview: title' |trans }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="worker-metadata" role="presentation">
|
<li class="worker-metadata" role="presentation">
|
||||||
<a href="#worker-metadata" aria-controls="worker-metadata" role="tab" data-toggle="tab" data-url="/admin/worker-manager/metadata">
|
<a href="#worker-metadata" aria-controls="worker-metadata" role="tab" data-toggle="tab" data-url="/admin/worker-manager/metadata">
|
||||||
{{ "Metadata" | trans }}
|
{{ 'admin::workermanager:tab:metadata: title' |trans }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@@ -86,6 +86,6 @@
|
|||||||
</script>
|
</script>
|
||||||
{% else %}
|
{% else %}
|
||||||
<h1 class="alert alert-danger">
|
<h1 class="alert alert-danger">
|
||||||
Error! can't load rabbit config. Check rabbit config to use worker.
|
{{ 'admin::workermanager: Rabbit config error' |trans }}
|
||||||
</h1>
|
</h1>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<h3> Config Worker queue retry</h3>
|
<h1>{{ 'admin::workermanager:tab:workerconfig: title' |trans }}</h1>
|
||||||
<p class="alert alert-danger">
|
<p class="alert alert-danger">
|
||||||
<strong>Warning!</strong>
|
{{ 'admin::workermanager:tab:workerconfig: warning' |trans }}
|
||||||
When applied, it's re-initialize and purge "retry" and "delayed" queue!
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>Set up the delay between two attempts per queue! (if not set, default 10000 millisecond)</p>
|
<p>Set up the delay between two attempts per queue! (if not set, default 10000 millisecond)</p>
|
||||||
@@ -48,7 +47,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<input type="submit" class="btn btn-primary" value={{ "Apply in queue"|trans }} />
|
<input type="submit" class="btn btn-primary" value={{ "admin::workermanager:tab:workerconfig:Apply in queue"|trans }} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,56 +1,60 @@
|
|||||||
{% if not reload %}
|
{% if not reload %}
|
||||||
|
|
||||||
<h1> worker information</h1>
|
<h1>{{ 'admin::workermanager:tab:workerinfo: description' |trans }}</h1>
|
||||||
|
<div class="worker-info-block">
|
||||||
<form action="{{ path("worker_admin_truncate") }}" method="POST">
|
<form action="{{ path("worker_admin_truncate") }}" method="POST">
|
||||||
<p class="alert alert-danger">
|
<p>
|
||||||
<strong>Warning!</strong>
|
<button class="btn btn-primary">
|
||||||
{{ "It's delete all work information !" |trans }}
|
{{ 'admin::workermanager:tab:workerinfo: Erase all information' |trans }}
|
||||||
</p>
|
</button>
|
||||||
<button class="btn btn-primary">
|
<span class="alert alert-danger">
|
||||||
{{ 'Erase all information' |trans }}
|
{{ "admin::workermanager:tab:workerinfo: Warning! Erase all information" |trans }}
|
||||||
</button>
|
</span>
|
||||||
|
</p>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<form action="{{ path("worker_admin_delete_finished") }}" method="POST">
|
<form action="{{ path("worker_admin_delete_finished") }}" method="POST">
|
||||||
<p class="alert alert-danger">
|
<p>
|
||||||
<strong>Warning!</strong>
|
<button class="btn btn-primary">
|
||||||
{{ "It's delete all finished works !"|trans }}
|
{{ 'admin::workermanager:tab:workerinfo: Erase all finished' | trans }}
|
||||||
</p>
|
</button>
|
||||||
<button class="btn btn-primary">
|
<span class="alert alert-danger">
|
||||||
{{ 'Erase all finished' | trans }}
|
{{ "admin::workermanager:tab:workerinfo: Warning! Erase all finished"|trans }}
|
||||||
</button>
|
</span>
|
||||||
</form>
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</form>
|
||||||
|
<br><br>
|
||||||
<button id="refresh-list" class="btn btn-success">
|
<button id="refresh-list" class="btn btn-success">
|
||||||
{{ 'Refresh list' |trans }}
|
{{ 'admin::workermanager:tab:workerinfo: Refresh list' |trans }}
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<label class="checkbox inline">
|
<label class="checkbox inline">
|
||||||
<input class="running-work" type="checkbox" value="1" checked> {{ 'Display running work' | trans }}
|
<input class="running-work" type="checkbox" value="1" checked> {{ 'admin::workermanager:tab:workerinfo: Display running work' | trans }}
|
||||||
</label>
|
</label>
|
||||||
<label class="checkbox inline">
|
<label class="checkbox inline">
|
||||||
<input class="finished-work" type="checkbox" value="1" checked> {{ 'Display finished work' | trans }}
|
<input class="finished-work" type="checkbox" value="1" checked> {{ 'admin::workermanager:tab:workerinfo: Display finished work' | trans }}
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
<table class="admintable">
|
<table class="admintable">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="sortable">databox_id</th>
|
<th class="sortable">{{ 'admin::workermanager:tab:workerinfo: databox_id' | trans }}</th>
|
||||||
<th class="sortable">record_id</th>
|
<th class="sortable">{{ 'admin::workermanager:tab:workerinfo: record_id' | trans }}</th>
|
||||||
<th class="sortable">work</th>
|
<th class="sortable">{{ 'admin::workermanager:tab:workerinfo: work' | trans }}</th>
|
||||||
<th class="sortable">work_on</th>
|
<th class="sortable">{{ 'admin::workermanager:tab:workerinfo: work_on' | trans }}</th>
|
||||||
<th class="sortable">created</th>
|
<th class="sortable">{{ 'admin::workermanager:tab:workerinfo: created' | trans }}</th>
|
||||||
<th class="sortable">published</th>
|
<th class="sortable">{{ 'admin::workermanager:tab:workerinfo: published' | trans }}</th>
|
||||||
<th class="sortable">status</th>
|
<th class="sortable">{{ 'admin::workermanager:tab:workerinfo: status' | trans }}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="work-list">
|
<tbody class="work-list">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% for workerRow in workerRunningJob %}
|
{% for workerRow in workerRunningJob | sort | reverse %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{ workerRow.databoxId }}</td>
|
<td>{{ workerRow.databoxId }}</td>
|
||||||
<td>{{ workerRow.recordId }}</td>
|
<td>{{ workerRow.recordId }}</td>
|
||||||
@@ -59,9 +63,8 @@
|
|||||||
<td>{{ workerRow.created|date('Y-m-d H:i:s') }}</td>
|
<td>{{ workerRow.created|date('Y-m-d H:i:s') }}</td>
|
||||||
<td>{{ workerRow.published|date('Y-m-d H:i:s') }}</td>
|
<td>{{ workerRow.published|date('Y-m-d H:i:s') }}</td>
|
||||||
<td>{{ workerRow.status }}</td>
|
<td>{{ workerRow.status }}</td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{% if not reload %}
|
{% if not reload %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
<h1>Write metadata setting</h1>
|
<h1>{{ 'admin::workermanager:tab:metadata: description' |trans }}</h1>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<h1>Pull Assets from uploader setting</h1>
|
<h1>{{ 'admin::workermanager:tab:pullassets: description' |trans }}</h1>
|
||||||
|
|
||||||
{{ form_start(form, {'action': path('worker_admin_pullAssets')}) }}
|
{{ form_start(form, {'action': path('worker_admin_pullAssets')}) }}
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<input type="submit" class="btn btn-primary" value={{ "Initialize pull assets"|trans }} />
|
<input type="submit" class="btn btn-primary" value={{ "admin::workermanager:tab:pullassets: Initialize pull assets"|trans }} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ form_end(form) }}
|
{{ form_end(form) }}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<h1>Populate elasticsearch index</h1>
|
<h1>{{ 'admin::workermanager:tab:searchengine: description' |trans }}</h1>
|
||||||
|
|
||||||
{{ form_start(form, {'action': path('worker_admin_searchengine')}) }}
|
{{ form_start(form, {'action': path('worker_admin_searchengine')}) }}
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label"> {{ 'Databox to populate' | trans }}</label>
|
<label class="control-label"> {{ 'admin::workermanager:tab:searchengine: Databox to populate' | trans }}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<label class="checkbox inline">
|
<label class="checkbox inline">
|
||||||
<input class="subdef_sbas" type="checkbox" value="0"> {{ 'All' | trans }}
|
<input class="subdef_sbas" type="checkbox" value="0"> {{ 'All' | trans }}
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<button type="submit" class="btn btn-primary btn-trigger " id="populateButton" form="worker_searchengine">
|
<button type="submit" class="btn btn-primary btn-trigger " id="populateButton" form="worker_searchengine">
|
||||||
{{ "Populate" |trans }}
|
{{ "admin::workermanager:tab:searchengine: Populate" |trans }}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
alert("Worker is in process to indexing one of the selected databox!!");
|
alert({{ "admin::workermanager:tab:searchengine: Warning Worker is in process to indexing one of the selected databox" |trans }});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
<h1>Subview setting</h1>
|
<h1>{{ 'admin::workermanager:tab:subview: description' |trans }}</h1>
|
||||||
|
|||||||
@@ -7578,10 +7578,10 @@ phraseanet-common@^0.4.5-d:
|
|||||||
js-cookie "^2.1.0"
|
js-cookie "^2.1.0"
|
||||||
pym.js "^1.3.1"
|
pym.js "^1.3.1"
|
||||||
|
|
||||||
phraseanet-production-client@0.34.207-d:
|
phraseanet-production-client@0.34.208-d:
|
||||||
version "0.34.207-d"
|
version "0.34.208-d"
|
||||||
resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.34.207-d.tgz#ab5e3798972a4d6e341762eb3a5bdb855f671ef2"
|
resolved "https://registry.yarnpkg.com/phraseanet-production-client/-/phraseanet-production-client-0.34.208-d.tgz#6e1c204c1706cdc2e3c9ad2fdc217dfe96f05688"
|
||||||
integrity sha512-BPX77nV9Bd5+7rwXQwiYz0y8vp+UrsBFTlb7E9xLgd6t20NagZx480+tfDwGrKQ4SMVf+DUJXAKBVVcIO8bfHw==
|
integrity sha512-1uubAM0L0BeEeyCP0kiECnTt90EAO/u9hitWjkkqGxSiB+kJ3wTZHaM1T7+l676Ryg/wRIZBF/eu1vhGtoVAeQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@mapbox/mapbox-gl-language" "^0.9.2"
|
"@mapbox/mapbox-gl-language" "^0.9.2"
|
||||||
"@turf/turf" "^5.1.6"
|
"@turf/turf" "^5.1.6"
|
||||||
|
|||||||