include plugin worker in phraseanet core

This commit is contained in:
aynsix
2020-05-12 18:06:45 +03:00
parent e4a872dfeb
commit bb2123df5a
77 changed files with 5185 additions and 68 deletions

View File

@@ -0,0 +1,77 @@
<h1>Worker</h1>
<div>
<!-- Nav tabs -->
<ul class="nav nav-tabs" id="configurationTabs">
<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">
{{ "Configuration" | trans }}
</a>
</li>
<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">
{{ "Searchengine" | trans }}
</a>
</li>
<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">
{{ "Pull Assets" | trans }}
</a>
</li>
<li class="worker-subview active" role="presentation">
<a href="#worker-subview" aria-controls="worker-subview" role="tab" data-toggle="tab" data-url="/admin/worker-manager/subview">
{{ "Subview" | trans }}
</a>
</li>
<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">
{{ "Metadata" | trans }}
</a>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane fade" id="worker-configuration"></div>
<div role="tabpanel" class="tab-pane fade" id="worker-searchengine"></div>
<div role="tabpanel" class="tab-pane fade" id="worker-pull-assets"></div>
<div role="tabpanel" class="tab-pane fade in active" id="worker-subview"></div>
<div role="tabpanel" class="tab-pane fade" id="worker-metadata"></div>
</div>
</div>
<script type="text/javascript">
var contentsDownloaded = {};
var remoteContent = function(url) {
return $.get(url);
};
var tabs = $('#configurationTabs a[data-toggle="tab"]');
tabs.on('click', function(){
$(this).tab('show');
});
$('.nav-tabs li').on('show.bs.tab', function (e) {
if (contentsDownloaded[e.target.hash] === undefined) {
$(e.target.hash).empty().html('<img src="/assets/common/images/icons/main-loader.gif" alt="loading"/>');
}
});
$('.nav-tabs').on('shown.bs.tab', function (e) {
if (contentsDownloaded[e.target.hash] === undefined) {
var targetDiv = $(e.target.hash);
remoteContent($(e.target).attr('data-url')).then(function(response) {
targetDiv.empty().html(response);
contentsDownloaded[e.target.hash] = true;
}, function(error) {
console.log(error);
targetDiv.empty().html('<i class="icon-fire">{{ 'admin:worker Retrieve configuration error'|trans }}</i>');
});
}
});
</script>

View File

@@ -0,0 +1,39 @@
<h3> Config Worker queue retry</h3>
<p>Set up the delay between two attempts per queue!</p>
{{ form_start(form, {'action': path('worker_admin_configuration')}) }}
<div class="control-group">
{{ form_row(form.assetsIngest) }}
</div>
<div class="control-group">
{{ form_row(form.createRecord) }}
</div>
<div class="control-group">
{{ form_row(form.subdefCreation) }}
</div>
<div class="control-group">
{{ form_row(form.writeMetadatas) }}
</div>
<div class="control-group">
{{ form_row(form.webhook) }}
</div>
<div class="control-group">
{{ form_row(form.exportMail) }}
</div>
<div class="control-group">
{{ form_row(form.populateIndex) }}
</div>
<div class="control-group">
<input type="submit" class="btn btn-primary" value={{ "Apply retry delay"|trans }} />
</div>
{{ form_end(form) }}

View File

@@ -0,0 +1 @@
<h1>Write metadata setting</h1>

View File

@@ -0,0 +1,29 @@
<h1>Pull Assets from uploader setting</h1>
{{ form_start(form, {'action': path('worker_admin_pullAssets')}) }}
<div class="control-group">
{{ form_row(form.endpointCommit) }}
</div>
<div class="control-group">
{{ form_row(form.endpointToken) }}
</div>
<div class="control-group">
{{ form_row(form.clientSecret) }}
</div>
<div class="control-group">
{{ form_row(form.clientId) }}
</div>
<div class="control-group">
{{ form_row(form.pullInterval) }}
</div>
<div class="control-group">
<input type="submit" class="btn btn-primary" value={{ "Initialize pull assets"|trans }} />
</div>
{{ form_end(form) }}

View File

@@ -0,0 +1,98 @@
<h1>Populate elasticsearch index</h1>
{{ form_start(form, {'action': path('worker_admin_searchengine')}) }}
<div class="control-group">
{{ form_row(form.host) }}
</div>
<div class="control-group">
{{ form_row(form.port) }}
</div>
<div class="control-group">
{{ form_row(form.indexName) }}
</div>
<div class="control-group">
<label class="control-label"> {{ 'Databox to populate' | trans }}</label>
<div class="controls">
<label class="checkbox inline">
<input class="subdef_sbas" type="checkbox" value="0"> {{ 'All' | trans }}
</label>
{% for databox in app.getApplicationBox().get_databoxes() %}
<label class="checkbox inline">
<input class="subdef_sbas" type="checkbox" name="worker_searchengine[sbas][]" value="{{ databox.get_sbas_id() }}"> {{ databox.get_viewname() }}
({{ databox.get_sbas_id() }})
</label>
{% endfor %}
</div>
</div>
<div class="control-group">
<button type="submit" class="btn btn-primary btn-trigger " id="populateButton" form="worker_searchengine">
{{ "Populate" |trans }}
</button>
</div>
{{ form_end(form) }}
<script type="text/javascript">
$(document).ready(function () {
$(".subdef_sbas").change(function (e) {
var alldb = $(".subdef_sbas[value=0]").prop('checked');
if (alldb) {
$(".subdef_sbas[value!=0]").prop('checked', true);
} else {
$(".subdef_sbas[value!=0]").attr('disabled', false);
}
});
$('#populateButton').on('click', function () {
checked = $('input[name="worker_searchengine[sbas][]"]:checked').length;
if(!checked) {
alert("You must check at least one databox to populate.");
return false;
}
$("form[name='worker_searchengine']").submit();
});
$("form[name='worker_searchengine']").on('submit', function () {
var form = $(this);
var sbasIds = [];
$.each($('input[name="worker_searchengine[sbas][]"]:checked'), function() {
sbasIds.push($(this).val());
});
$.ajax({
type: 'GET',
url: '/admin/worker-manager/populate-status',
data: {
sbasIds: sbasIds
},
success: function (data) {
if (data == 0) {
$('#right-ajax').empty().addClass('loading');
$.ajax({
url: form.attr('action'),
type: 'POST',
data: form.serialize(),
success: function (data) {
$('#right-ajax').removeClass('loading').html(data);
}
});
} else {
alert("Worker is in process to indexing one of the selected databox!!");
}
}
});
return false;
});
});
</script>

View File

@@ -0,0 +1 @@
<h1>Subview setting</h1>