@パパリウス さま
取り急ぎ、02-netのform.htmlにサブネットマスクのチェックを対応させてみました。
<!-- Copyright © 2020 symphonic-mpd Research and Development Club -->
<datalist id="sshd_idle_list">
<option value="yes">
<option value="no">
</datalist>
<datalist id="process_cut_list">
<option value="none">
<option value="default">
<option value="extreme">
</datalist>
<div class="form-horizontal" style="padding:20px 20px 5px 20px;">
<div class="form-group">
<label class="control-label col-sm-4">DHCP</label>
<div class="col-sm-2">
<button id="dhcp-btn" type="button" class="btn btn-default">off</button>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-4">Address</label>
<div class="col-sm-8">
<input type="text" id="sipaddr" class="config" uri="/etc/systemd/network/eth0.network.static" key="Address" readonly />
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-4">Gateway</label>
<div class="col-sm-8">
<input type="text" class="config" uri="/etc/systemd/network/eth0.network.static" key="Gateway" readonly />
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-4">DNS</label>
<div class="col-sm-8">
<input type="text" class="config" uri="/etc/systemd/network/eth0.network.static" key="DNS" readonly />
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-4">Process cut-down</label>
<div class="col-sm-8">
<input type="text" class="config" uri="/etc/environment" key="PROCESS_CUT" list="process_cut_list" />
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-4">MPD Port (6600)</label>
<div class="col-sm-2">
<button id="mpdport-btn" type="button" class="btn btn-default">off</button>
</div>
</div>
<input id="net-setting" class="run hidden" value="static" />
<input id="mpd-setting" class="run hidden" value="unix" />
</div>
<script>
$(function() {
$.get("/r/readlink/etc/systemd/network/eth0.network", function(data){
if (data == "eth0.network.dhcp") {
$("#dhcp-btn").toggleClass("btn-default");
$("#dhcp-btn").toggleClass("btn-success");
$("#dhcp-btn").text("on");
$("#net-setting").val("dhcp");
} else {
$("input.config:not([list])").attr('readonly', false);
}
},"html");
$.get("/r/readlink/etc/systemd/system/mpd.socket", function(data){
if (data == "/lib/systemd/system/mpd-tcp.socket") {
$("#mpdport-btn").toggleClass("btn-default");
$("#mpdport-btn").toggleClass("btn-success");
$("#mpdport-btn").text("on");
$("#mpd-setting").val("tcp");
}
},"html");
$('#sipaddr').on('change', function() {
if ($(this).val().match(/\/[0-9]{1,2}/) === null) {
alert("subnet mask empty");
}
});
/* onclick */
$('#dhcp-btn').on('click', function() {
$(this).toggleClass("btn-default");
$(this).toggleClass("btn-success");
if ($(this).hasClass('btn-default')) {
$(this).text('off');
$("input.config:not([list])").attr('readonly', false);
$("#net-setting").val("static");
} else {
$(this).text('on');
$("input.config:not([list])").attr('readonly', true);
$("#net-setting").val("dhcp");
}
});
$('#mpdport-btn').on('click', function() {
$(this).toggleClass("btn-default");
$(this).toggleClass("btn-success");
if ($(this).hasClass('btn-default')) {
$(this).text('off');
$("#mpd-setting").val("unix");
} else {
$(this).text('on');
$("#mpd-setting").val("tcp");
}
});
});
</script>
Static IPアドレスを入れるテキストボックスにsipaddrというidを付与し、
当該テキストボックスの内容が変更された際に末尾に"/**"という形でサブネットマスクが付与されているかチェックするというスクリプトを追加しています。
(付与されていない場合、利用者に警告ダイアログを表示)