* Sat May 10 2025 Brian Read <brianr@koozali.org> 11.0.0-3.sme
- Get javascript working and password visible icon [SME: 13001] - Fix missing cmd in panel - Delete out of date list of protocols/device/services etc from controller source
This commit is contained in:
parent
6b207dec6b
commit
2727d948c6
@ -19,74 +19,6 @@ package SrvMngr::Controller::Ddclient;
|
|||||||
#
|
#
|
||||||
# Documentation: https://wiki.contribs.org/Ddclient
|
# Documentation: https://wiki.contribs.org/Ddclient
|
||||||
#
|
#
|
||||||
#----------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# ddclient 3.9.1 Supportted services
|
|
||||||
#
|
|
||||||
#DynDNS.com - See http://www.dyndns.com for details on obtaining a free account.
|
|
||||||
#Hammernode - See http://www.hn.org for details on obtaining a free account.
|
|
||||||
#Zoneedit - See http://www.zoneedit.com for details.
|
|
||||||
#EasyDNS - See http://www.easydns.com for details.
|
|
||||||
#NameCheap - See http://www.namecheap.com for details
|
|
||||||
#DslReports - See http://www.dslreports.com for details
|
|
||||||
#Sitelutions - See http://www.sitelutions.com for details
|
|
||||||
#Loopia - See http://www.loopia.se for details
|
|
||||||
#Noip - See http://www.noip.com/ for details
|
|
||||||
#Freedns - See http://freedns.afraid.org/ for details
|
|
||||||
#ChangeIP - See http://www.changeip.com/ for details
|
|
||||||
#dtdns - See http://www.dtdns.com/ for details
|
|
||||||
#nsupdate - See nsupdate(1) and ddns-confgen(8) for details
|
|
||||||
#CloudFlare - See https://www.cloudflare.com/ for details
|
|
||||||
#Google - See http://www.google.com/domains for details
|
|
||||||
#Duckdns - See https://duckdns.org/ for details
|
|
||||||
#Freemyip - See https://freemyip.com for details
|
|
||||||
#woima.fi - See https://woima.fi/ for details
|
|
||||||
#Yandex - See https://domain.yandex.com/ for details
|
|
||||||
#DNS Made Easy - See https://dnsmadeeasy.com/ for details
|
|
||||||
#DonDominio - See https://www.dondominio.com for details
|
|
||||||
#NearlyFreeSpeech.net - See https://www.nearlyfreespeech.net/services/dns for details
|
|
||||||
#OVH - See https://www.ovh.com for details
|
|
||||||
#ClouDNS - See https://www.cloudns.net
|
|
||||||
|
|
||||||
# ddclient 3.11.1 Supported Services
|
|
||||||
# 1984:https://kb.1984hosting.com/doku.php?id=freedns
|
|
||||||
# changeip: https://changeip.com
|
|
||||||
# cloudflare: https://cloudflare.com
|
|
||||||
# cloudns: https://cloudns.com
|
|
||||||
# digitalocean: https://digitalocean.com
|
|
||||||
# dinahosting: https://dinahosting.com
|
|
||||||
# dnsexit: https://dnsexit.com/
|
|
||||||
# dnsmadeeasy: https://dnsmadeeasy.com
|
|
||||||
# domeneshop: https://domeneshop.com
|
|
||||||
# dondominio: https://dondominio.com
|
|
||||||
# dslreports: https://www.dslreports.com/
|
|
||||||
# duckdns: https://duckdns.com
|
|
||||||
# dyndns1:https://account.dyn.com/
|
|
||||||
# dyndns2: https://account.dyn.com/
|
|
||||||
# easydns: https://easydns.com
|
|
||||||
# enom: https://enom.com
|
|
||||||
# freedns: http://freedns.com
|
|
||||||
# freemyip: https://freemyip.com
|
|
||||||
# gandi: https://gandi.com
|
|
||||||
# godaddy: https://godaddy.com
|
|
||||||
# googledomains: https://googledomains.com
|
|
||||||
# hetzner: https://hetzner.com
|
|
||||||
# infomaniak: https://infomaniak.com
|
|
||||||
# keysystems: https://keysystems.com
|
|
||||||
# mythicdyn: https://www.mythic-beasts.com/support/api/dnsv2/dynamic-dns
|
|
||||||
# namecheap: https://namecheap.com
|
|
||||||
# nfsn: http://nfsn.com
|
|
||||||
# njalla: https://njalla.com
|
|
||||||
# noip: https://noip.com
|
|
||||||
# nsupdate: http://nsupdate.com
|
|
||||||
# ovh: https://ovh.com
|
|
||||||
# porkbun: https://porkbun.com
|
|
||||||
# regfishde: Cannot find link for this one
|
|
||||||
# sitelutions: https://sitelutions.com
|
|
||||||
# woima: http://woima.com
|
|
||||||
# yandex: https://yandex.com
|
|
||||||
# zoneedit: https://www.zoneedit.com/dynamic-dns/
|
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use Mojo::Base 'Mojolicious::Controller';
|
use Mojo::Base 'Mojolicious::Controller';
|
||||||
@ -311,7 +243,7 @@ sub do_display {
|
|||||||
[ $c->l('Router/Firewall') => 'router' ],
|
[ $c->l('Router/Firewall') => 'router' ],
|
||||||
[ $c->l('Interface') => 'if' ],
|
[ $c->l('Interface') => 'if' ],
|
||||||
[ $c->l('IP') => 'ip' ],
|
[ $c->l('IP') => 'ip' ],
|
||||||
[ $c->l('Command') => 'cmdv4' ]
|
[ $c->l('Command') => 'cmd' ]
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -656,7 +588,7 @@ sub get_params {
|
|||||||
my $ssl = $ddretrieve->prop('SSL') || 'yes';
|
my $ssl = $ddretrieve->prop('SSL') || 'yes';
|
||||||
my $method = $ddretrieve->prop('method') || 'web';
|
my $method = $ddretrieve->prop('method') || 'web';
|
||||||
my $Extinterface = $ddretrieve->prop('Extinterface') || '';
|
my $Extinterface = $ddretrieve->prop('Extinterface') || '';
|
||||||
my $cmd = $ddretrieve->prop('cmd') || '';
|
my $cmd = $ddretrieve->prop('cmd') || '/usr/sbin/e-smith/getmyip';
|
||||||
my $forceIP = $ddretrieve->prop('ForceIP') || '';
|
my $forceIP = $ddretrieve->prop('ForceIP') || '';
|
||||||
my $fwlogin = $ddretrieve->prop('fwlogin') || '';
|
my $fwlogin = $ddretrieve->prop('fwlogin') || '';
|
||||||
my $fwpassword = $ddretrieve->prop('fwpassword') || '';
|
my $fwpassword = $ddretrieve->prop('fwpassword') || '';
|
||||||
|
62
root/usr/share/smanager/themes/default/public/js/ddclient.js
Normal file
62
root/usr/share/smanager/themes/default/public/js/ddclient.js
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
function showPass() {
|
||||||
|
var x = document.getElementById("ddcPass");
|
||||||
|
if (x.type === "password") {
|
||||||
|
x.type = "text";
|
||||||
|
} else {
|
||||||
|
x.type = "password";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
// Run on page load
|
||||||
|
SelectInput_custom();
|
||||||
|
|
||||||
|
// Attach onchange event to the select element
|
||||||
|
var dnsSelect = document.getElementById('dns');
|
||||||
|
if (dnsSelect) {
|
||||||
|
dnsSelect.addEventListener('change', SelectInput_custom);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function SelectInput_custom() {
|
||||||
|
var method = document.querySelector("#dns");
|
||||||
|
const types=['custom'];
|
||||||
|
types.forEach((type)=>{
|
||||||
|
var service = document.querySelector(`.${type}`);
|
||||||
|
if (service != null) {
|
||||||
|
if (method.value == type) {
|
||||||
|
service.style.display = 'block';
|
||||||
|
} else {
|
||||||
|
service.style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
// Run on page load (replaces onload)
|
||||||
|
SelectInput_params();
|
||||||
|
|
||||||
|
// Attach onchange event (replaces inline onchange)
|
||||||
|
var dnsSelect = document.getElementById('retrievemethod');
|
||||||
|
if (dnsSelect) {
|
||||||
|
dnsSelect.addEventListener('change', SelectInput_params);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
function SelectInput_params() {
|
||||||
|
var method = document.querySelector("#retrievemethod");
|
||||||
|
const types=['smeIF','smeCMD','web','router','if','ip','cmd','custom'];
|
||||||
|
types.forEach((type)=>{
|
||||||
|
var service = document.querySelector(`.${type}`);
|
||||||
|
if (service != null) {
|
||||||
|
if (method.value == type) {
|
||||||
|
service.style.display = 'block';
|
||||||
|
} else {
|
||||||
|
service.style.display = 'none';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
% layout 'default', title => "Sme server 2 - Dynamic Clients", share_dir => './';
|
% layout 'default', title => "Sme server 2 - Dynamic Clients", share_dir => './';
|
||||||
|
|
||||||
% content_for 'module' => begin
|
% content_for 'module' => begin
|
||||||
|
%= javascript '/js/ddclient.js'
|
||||||
<div id="module" class="module ddclient-panel">
|
<div id="module" class="module ddclient-panel">
|
||||||
|
|
||||||
% if (config->{debug} == 1) {
|
% if (config->{debug} == 1) {
|
||||||
|
@ -39,19 +39,7 @@
|
|||||||
<span class=label>
|
<span class=label>
|
||||||
%=l 'PASSWORD_LABEL'
|
%=l 'PASSWORD_LABEL'
|
||||||
</span><span class=data>
|
</span><span class=data>
|
||||||
%=password_field 'password',id=>"ddcPass"
|
%=password_field 'password',id=>"ddcPass", class=>'sme-password'
|
||||||
%=label_for show=>"Show"
|
|
||||||
%=check_box show=>1,onclick=>"showPass()",style=>"vertical-align:middle;"
|
|
||||||
%= javascript begin
|
|
||||||
function showPass() {
|
|
||||||
var x = document.getElementById("ddcPass");
|
|
||||||
if (x.type === "password") {
|
|
||||||
x.type = "text";
|
|
||||||
} else {
|
|
||||||
x.type = "password";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
% end
|
|
||||||
</span><br>
|
</span><br>
|
||||||
<span class=label>
|
<span class=label>
|
||||||
%=l 'MX'
|
%=l 'MX'
|
||||||
@ -60,6 +48,4 @@
|
|||||||
</span><br>
|
</span><br>
|
||||||
%= submit_button "$btn", class => 'action'
|
%= submit_button "$btn", class => 'action'
|
||||||
% end
|
% end
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -1,9 +1,4 @@
|
|||||||
<div id='modifydomain'>
|
<div id='modifydomain'>
|
||||||
<script>
|
|
||||||
window.onload = function() {
|
|
||||||
SelectInput();
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
<h2>
|
<h2>
|
||||||
%= l 'MODIFY_DESCRIPTION'
|
%= l 'MODIFY_DESCRIPTION'
|
||||||
</h2><br>
|
</h2><br>
|
||||||
@ -34,23 +29,7 @@
|
|||||||
%=l 'SERVERS_LABEL'
|
%=l 'SERVERS_LABEL'
|
||||||
</span><span class=data>
|
</span><span class=data>
|
||||||
% param dns=>$ddc_datas->{"Domain_details"}->{"dns"};
|
% param dns=>$ddc_datas->{"Domain_details"}->{"dns"};
|
||||||
%=select_field dns=>$dnslabels,id=>"dns",onchange=>"SelectInput()",onload=>"SelectInput()"
|
%=select_field dns=>$dnslabels,id=>"dns",class=>'selectinputcustom'
|
||||||
%= javascript begin
|
|
||||||
function SelectInput() {
|
|
||||||
var method = document.querySelector("#dns");
|
|
||||||
const types=['custom'];
|
|
||||||
types.forEach((type)=>{
|
|
||||||
var service = document.querySelector(`.${type}`);
|
|
||||||
if (service != null) {
|
|
||||||
if (method.value == type) {
|
|
||||||
service.style.display = 'block';
|
|
||||||
} else {
|
|
||||||
service.style.display = 'none';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
</span><br>
|
</span><br>
|
||||||
|
|
||||||
%# Dependant on the custom choice from above
|
%# Dependant on the custom choice from above
|
||||||
@ -79,19 +58,7 @@
|
|||||||
%=l 'PASSWORD_LABEL'
|
%=l 'PASSWORD_LABEL'
|
||||||
</span><span class=data>
|
</span><span class=data>
|
||||||
% param password=>$ddc_datas->{"Domain_details"}->{"password"};
|
% param password=>$ddc_datas->{"Domain_details"}->{"password"};
|
||||||
%=password_field 'password',id=>"ddcPass",value=>$ddc_datas->{"Domain_details"}->{"password"}
|
%=password_field 'password',id=>"ddcPass",value=>$ddc_datas->{"Domain_details"}->{"password"}, class=>'sme-password'
|
||||||
%=label_for show=>"Show"
|
|
||||||
%=check_box show=>1,onclick=>"showPass()",style=>"vertical-align:middle;"
|
|
||||||
%= javascript begin
|
|
||||||
function showPass() {
|
|
||||||
var x = document.getElementById("ddcPass");
|
|
||||||
if (x.type === "password") {
|
|
||||||
x.type = "text";
|
|
||||||
} else {
|
|
||||||
x.type = "password";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
% end
|
|
||||||
</span><br>
|
</span><br>
|
||||||
<span class=label>
|
<span class=label>
|
||||||
%=l 'MX'
|
%=l 'MX'
|
||||||
@ -103,6 +70,4 @@
|
|||||||
%= hidden_field Route=>$c->current_route
|
%= hidden_field Route=>$c->current_route
|
||||||
%= submit_button "$btn", class => 'action'
|
%= submit_button "$btn", class => 'action'
|
||||||
% end
|
% end
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -1,9 +1,4 @@
|
|||||||
<div id='paramlist'>
|
<div id='paramlist'>
|
||||||
<script>
|
|
||||||
window.onload = function() {
|
|
||||||
SelectInput();
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
<h2>
|
<h2>
|
||||||
%= l 'Params_for_IP_Retrieval'
|
%= l 'Params_for_IP_Retrieval'
|
||||||
</h2>
|
</h2>
|
||||||
@ -25,23 +20,7 @@
|
|||||||
%=l 'RETRIEVE_METHOD'
|
%=l 'RETRIEVE_METHOD'
|
||||||
</span><span class=data>
|
</span><span class=data>
|
||||||
% param retrievemethod=>$ddc_datas->{"params"}->{"method"} unless param 'retrievemethod';
|
% param retrievemethod=>$ddc_datas->{"params"}->{"method"} unless param 'retrievemethod';
|
||||||
%=select_field retrievemethod=>$methodlabels,id=>"retrievemethod",onchange=>"SelectInput()"
|
%=select_field retrievemethod=>$methodlabels,id=>"retrievemethod"
|
||||||
%= javascript begin
|
|
||||||
function SelectInput() {
|
|
||||||
var method = document.querySelector("#retrievemethod");
|
|
||||||
const types=['smeIF','smeCMD','web','router','if','ip','cmdv4','custom'];
|
|
||||||
types.forEach((type)=>{
|
|
||||||
var service = document.querySelector(`.${type}`);
|
|
||||||
if (service != null) {
|
|
||||||
if (method.value == type) {
|
|
||||||
service.style.display = 'block';
|
|
||||||
} else {
|
|
||||||
service.style.display = 'none';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
% end
|
|
||||||
</span><br>
|
</span><br>
|
||||||
%#
|
%#
|
||||||
%# From here the one that is shown depends on the choice above
|
%# From here the one that is shown depends on the choice above
|
||||||
@ -65,19 +44,7 @@
|
|||||||
%=l 'Router password'
|
%=l 'Router password'
|
||||||
</span><span class=data>
|
</span><span class=data>
|
||||||
% param retrieverouterpassword=>$ddc_datas->{"params"}->{"FWPassword"} unless param 'retrieverouterpassword';
|
% param retrieverouterpassword=>$ddc_datas->{"params"}->{"FWPassword"} unless param 'retrieverouterpassword';
|
||||||
%=password_field 'retrieverouterpassword', id=>'ddcPass'
|
%=password_field 'retrieverouterpassword', id=>'ddcPass', class=>'sme-password'
|
||||||
%=label_for show=>"Show"
|
|
||||||
%=check_box show=>1,onclick=>"showPass()",style=>"vertical-align:middle;"
|
|
||||||
%= javascript begin
|
|
||||||
function showPass() {
|
|
||||||
var x = document.getElementById("ddcPass");
|
|
||||||
if (x.type === "password") {
|
|
||||||
x.type = "text";
|
|
||||||
} else {
|
|
||||||
x.type = "password";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
% end
|
|
||||||
</span><br>
|
</span><br>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -102,11 +69,11 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
%# Only if "cmd" is chosen
|
%# Only if "cmd" is chosen
|
||||||
<div class=cmdv4>
|
<div class=cmd>
|
||||||
<span class=label cmd>
|
<span class=label cmd>
|
||||||
%=l 'RETRIEVE_CMD'
|
%=l 'RETRIEVE_CMD'
|
||||||
</span><span class=data cmd>
|
</span><span class=data cmd>
|
||||||
% param retrievecmd=>$ddc_datas->{"params"}->{"cmdv4"} unless param 'retrievecmd';
|
% param retrievecmd=>$ddc_datas->{"params"}->{"cmd"} unless param 'retrievecmd';
|
||||||
%=text_field 'retrievecmd'
|
%=text_field 'retrievecmd'
|
||||||
</span><br>
|
</span><br>
|
||||||
</div>
|
</div>
|
||||||
@ -133,4 +100,4 @@
|
|||||||
|
|
||||||
%= submit_button "$btn", class => 'action'
|
%= submit_button "$btn", class => 'action'
|
||||||
% end
|
% end
|
||||||
</div>
|
</div>
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
%define name smeserver-ddclient
|
%define name smeserver-ddclient
|
||||||
%define version 11.0.0
|
%define version 11.0.0
|
||||||
%define release 2
|
%define release 3
|
||||||
|
|
||||||
Summary: ddclient panel for SME Server
|
Summary: ddclient panel for SME Server
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
@ -25,6 +25,11 @@ Requires: smeserver-formmagick
|
|||||||
AutoReqProv: no
|
AutoReqProv: no
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat May 10 2025 Brian Read <brianr@koozali.org> 11.0.0-3.sme
|
||||||
|
- Get javascript working and password visible icon [SME: 13001]
|
||||||
|
- Fix missing cmd in panel
|
||||||
|
- Delete out of date list of protocols/device/services etc from controller source
|
||||||
|
|
||||||
* Sat May 10 2025 Brian Read <brianr@koozali.org> 11.0.0-2.sme
|
* Sat May 10 2025 Brian Read <brianr@koozali.org> 11.0.0-2.sme
|
||||||
- correct $config (remove $) and get protocols, services and devices by interrogating ddclient [SME: 13001]
|
- correct $config (remove $) and get protocols, services and devices by interrogating ddclient [SME: 13001]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user