Commits from @MartB and more ...

- Commit: 1d9165f403
- New default QT capture implementation
- UploadHandler added to Effects Configurator to allow uploading GIF files
- Docker compile script and instruction
- Travis Fix
This commit is contained in:
Paulchen-Panther
2019-01-06 19:49:56 +01:00
parent 7352ff4d42
commit 2dca1c93e6
57 changed files with 1134 additions and 341 deletions

View File

@@ -2,6 +2,7 @@ $(document).ready( function() {
performTranslation();
var oldDelList = [];
var effectName = "";
var imageData = "";
var effects_editor = null;
var effectPy = "";
var testrun;
@@ -31,9 +32,30 @@ $(document).ready( function() {
function triggerTestEffect() {
testrun = true;
var args = effects_editor.getEditor('root.args');
requestTestEffect(effectName, ":/effects/" + effectPy.slice(1), JSON.stringify(args.getValue()));
requestTestEffect(effectName, ":/effects/" + effectPy.slice(1), JSON.stringify(args.getValue()), imageData);
};
// Specify upload handler for image files
JSONEditor.defaults.options.upload = function(type, file, cbs) {
var fileReader = new FileReader();
//check file
if (!file.type.startsWith('image')) {
imageData = "";
cbs.failure('File upload error');
// TODO clear file dialog.
showInfoDialog('error', "", $.i18n('infoDialog_writeimage_error_text', file.name));
return;
}
fileReader.onload = function () {
imageData = this.result.split(',')[1];
console.log(imageData);
cbs.success(file.name);
};
fileReader.readAsDataURL(file);
};
$("#effectslist").off().on("change", function(event) {
if(effects_editor != null)
@@ -48,6 +70,7 @@ $(document).ready( function() {
effectPy = ':';
effectPy += effects[idx].schemaContent.script;
imageData = "";
$("#name-input").trigger("change");
$("#eff_desc").html(createEffHint($.i18n(effects[idx].schemaContent.title),$.i18n(effects[idx].schemaContent.title+'_desc')));
@@ -84,7 +107,7 @@ $(document).ready( function() {
// Save Effect
$('#btn_write').off().on('click',function() {
requestWriteEffect(effectName,effectPy,JSON.stringify(effects_editor.getValue()));
requestWriteEffect(effectName,effectPy,JSON.stringify(effects_editor.getValue()),imageData);
$(hyperion).one("cmd-create-effect", function(event) {
if (event.response.success)
showInfoDialog('success', "", $.i18n('infoDialog_effconf_created_text', effectName));
@@ -163,9 +186,9 @@ $(document).ready( function() {
//create basic effect list
var effects = serverSchema.properties.effectSchemas.internal
for(var idx=0; idx<effects.length; idx++)
{
$("#effectslist").append(createSelOpt(effects[idx].schemaContent.script, $.i18n(effects[idx].schemaContent.title)));
}
{
$("#effectslist").append(createSelOpt(effects[idx].schemaContent.script, $.i18n(effects[idx].schemaContent.title)));
}
$("#effectslist").trigger("change");
updateDelEffectlist();

View File

@@ -41,7 +41,7 @@ $(document).ready( function() {
currentVersion = sysInfo.hyperion.version;
});
$(hyperion).on("cmd-config-getschema", function(event) {
$(hyperion).one("cmd-config-getschema", function(event) {
serverSchema = event.response.info;
requestServerConfig();
@@ -63,7 +63,7 @@ $(document).ready( function() {
requestServerConfigSchema();
});
$(hyperion).on("ready", function(event) {
$(hyperion).one("ready", function(event) {
loadContent();
});

View File

@@ -270,15 +270,15 @@ function requestWriteConfig(config, full)
sendToHyperion("config","setconfig", '"config":'+JSON.stringify(serverConfig));
}
function requestWriteEffect(effectName,effectPy,effectArgs)
function requestWriteEffect(effectName,effectPy,effectArgs,data)
{
var cutArgs = effectArgs.slice(1, -1);
sendToHyperion("create-effect", "", '"name":"'+effectName+'", "script":"'+effectPy+'", '+cutArgs);
sendToHyperion("create-effect", "", '"name":"'+effectName+'", "script":"'+effectPy+'", '+cutArgs+',"imageData":"'+data+'"');
}
function requestTestEffect(effectName,effectPy,effectArgs)
function requestTestEffect(effectName,effectPy,effectArgs,data)
{
sendToHyperion("effect", "", '"effect":{"name":"'+effectName+'", "args":'+effectArgs+'}, "priority":'+webPrio+', "origin":"'+webOrigin+'", "pythonScript":"'+effectPy+'"');
sendToHyperion("effect", "", '"effect":{"name":"'+effectName+'", "args":'+effectArgs+'}, "priority":'+webPrio+', "origin":"'+webOrigin+'", "pythonScript":"'+effectPy+'", "imageData":"'+data+'"');
}
function requestDeleteEffect(effectName)

View File

@@ -10,7 +10,7 @@ $(document).ready(function() {
var canvas_height;
var canvas_width;
var twoDPaths = [];
var toggleLeds = false;
var toggleLeds, toggleLedsNum = false;
/// add prototype for simple canvas clear() method
CanvasRenderingContext2D.prototype.clear = function(){
@@ -148,9 +148,17 @@ $(document).ready(function() {
// can be used as fallback when Path2D is not available
//roundRect(ledsCanvasNodeCtx, led.hscan.minimum * canvas_width, led.vscan.minimum * canvas_height, (led.hscan.maximum-led.hscan.minimum) * canvas_width, (led.vscan.maximum-led.vscan.minimum) * canvas_height, 4, true, colors[idx])
//ledsCanvasNodeCtx.fillRect(led.hscan.minimum * canvas_width, led.vscan.minimum * canvas_height, (led.hscan.maximum-led.hscan.minimum) * canvas_width, (led.vscan.maximum-led.vscan.minimum) * canvas_height);
ledsCanvasNodeCtx.fillStyle = (useColor) ? "rgba("+colors[idx].red+","+colors[idx].green+","+colors[idx].blue+",0.9)" : "hsl("+(idx*360/leds.length)+",100%,50%)";
ledsCanvasNodeCtx.fill(twoDPaths[idx]);
ledsCanvasNodeCtx.stroke(twoDPaths[idx]);
if(toggleLedsNum)
{
ledsCanvasNodeCtx.fillStyle = "blue";
ledsCanvasNodeCtx.textAlign = "center";
ledsCanvasNodeCtx.fillText(idx, (led.hscan.minimum * canvas_width) + ( ((led.hscan.maximum-led.hscan.minimum) * canvas_width) / 2), (led.vscan.minimum * canvas_height) + ( ((led.vscan.maximum-led.vscan.minimum) * canvas_height) / 2));
}
}
}
@@ -173,12 +181,11 @@ $(document).ready(function() {
resetImage()
}
// -----------------------FIX THIS-------------------------
// ------------------------------------------------------------------
// $('#leds_toggle_num').off().on("click", function() {
// $('.led_num').toggle();
// toggleClass('#leds_toggle_num', "btn-danger", "btn-success");
//});
$('#leds_toggle_num').off().on("click", function() {
toggleLedsNum = !toggleLedsNum
toggleClass('#leds_toggle_num', "btn-danger", "btn-success");
});
// ------------------------------------------------------------------
$('#leds_toggle').off().on("click", function() {

View File

@@ -5982,24 +5982,8 @@ JSONEditor.defaults.editors.upload = JSONEditor.AbstractEditor.extend({
if(!this.preview_value) return;
var self = this;
var mime = this.preview_value.match(/^data:([^;,]+)[;,]/);
if(mime) mime = mime[1];
if(!mime) mime = 'unknown';
var file = this.uploader.files[0];
this.preview.innerHTML = '<strong>Type:</strong> '+mime+', <strong>Size:</strong> '+file.size+' bytes';
if(mime.substr(0,5)==="image") {
this.preview.innerHTML += '<br>';
var img = document.createElement('img');
img.style.maxWidth = '100%';
img.style.maxHeight = '100px';
img.src = this.preview_value;
this.preview.appendChild(img);
}
this.preview.innerHTML += '<br>';
var uploadButton = this.getButton('Upload', 'upload', 'Upload');
this.preview.appendChild(uploadButton);
uploadButton.addEventListener('click',function(event) {
@@ -6036,6 +6020,11 @@ JSONEditor.defaults.editors.upload = JSONEditor.AbstractEditor.extend({
}
});
});
if(this.jsoneditor.options.auto_upload || this.schema.options.auto_upload) {
uploadButton.dispatchEvent(new MouseEvent('click'));
this.preview.removeChild(uploadButton);
}
},
enable: function() {
if(this.uploader) this.uploader.disabled = false;
@@ -6825,10 +6814,7 @@ JSONEditor.defaults.themes.bootstrap3 = JSONEditor.AbstractTheme.extend({
},
getButton: function(text, icon, title) {
var el = this._super(text, icon, title);
if(icon.className.includes("fa-times"))
el.className += 'btn btn-sm btn-danger';
else
el.className += 'btn btn-sm btn-primary';
el.className += 'btn btn-default';
return el;
},
getTable: function() {

View File

@@ -316,8 +316,6 @@ function createJsonEditor(container,schema,setconfig,usePanel,arrayre)
$('#'+container).off();
$('#'+container).html("");
//JSONEditor.plugins.selectize.enable = true;
if (typeof arrayre === 'undefined')
arrayre = true;