Commit 0a329cdf authored by Marius Burkard's avatar Marius Burkard

- added dns bulk editor, contributed by Timme Hosting

parent 336b8380
This diff is collapsed.
......@@ -19,4 +19,4 @@ $wb['Add DNS Zone'] = 'DNS Zone hinzufügen';
$wb['Templates'] = 'Vorlagen';
$wb['Secondary Zones'] = 'Slave DNS-Zonen';
$wb['Import Zone File'] = 'Zonen-Datei-Import';
?>
$wb['Bulk Editor'] = 'Bulk-Editor';
<?php
$wb['list_head_txt'] = 'Bulk-Editor';
$wb['list_desc_txt'] = 'DNS-Einträge per Suchen und Ersetzen ändern';
$wb['error_txt'] = 'Fehler';
$wb['error_no_client_txt'] = 'Bitte einen Kunden auswählen';
$wb['error_no_action_txt'] = 'Bitte eine Aktion auswählen';
$wb['error_no_zone_txt'] = 'Bitte mindestens eine Zone auswählen';
$wb['error_invalid_zone_txt'] = 'Ungültige Zone';
$wb['error_no_search_replace_txt'] = 'Bitte Werte für Suchen und Ersetzen eingeben';
$wb['error_no_ttl_txt'] = 'Bitte gültigen TTL-Wert eingeben';
$wb['error_invalid_ip_txt'] = 'Bitte eine gültige IP-Adresse eingeben';
$wb['error_invalid_dns_zone_txt'] = 'Bitte einen gültigen Zonennamen eingeben';
$wb['error_ip_type_mismatch_txt'] = 'Bitte entweder IPv4- oder IPv6-Adressen eingeben';
$wb['legend_client_txt'] = 'Kunde auswählen';
$wb['legend_action_txt'] = 'Aktion auswählen';
$wb['legend_zones_txt'] = 'Zonen auswählen';
$wb['legend_result_txt'] = 'Folgendes wurde geändert:';
$wb['select_client_txt'] = 'Bitte einen Kunden auswählen';
$wb['client_txt'] = 'Kunde';
$wb['search_txt'] = 'Suchen';
$wb['replace_txt'] = 'Ersetzen';
$wb['a_records_txt'] = 'A-Records';
$wb['mx_records_txt'] = 'MX-Records';
$wb['ttl_txt'] = 'TTL';
$wb['ttl_desc_txt'] = 'von A-, AAAA- und MX-Records';
$wb['check_uncheck_all_txt'] = 'Alle/keine auswählen';
$wb['zone_txt'] = 'Zone';
$wb['btn_ok_txt'] = 'Ändern';
$wb['no_matches_txt'] = 'Keine Treffer.';
$wb['ttip_a_records_txt'] = 'Bitte geben Sie entweder eine vollständige IPv4-Adresse oder eine vollständige IPv6-Adresse in die Felder ein.';
$wb['ttip_mx_records_txt'] = 'Wenn Sie einen kompletten Hostnamen angeben, vergessen Sie bitte auf keinen Fall, einen Punkt am Ende hinzuzufügen, z.B.: www.meinedomain.de<b><u>.</u></b><br><br>Wenn Sie eine Subdomain Ihrer Domain angeben und und die Domain weglassen (z.B. <i>www</i> statt <i>www.meinedomain.de</i>), dann geben Sie bitte <b>keinen</b> Punkt am Ende an.';
$wb['ttip_ttl_txt'] = 'Bitte geben Sie den gewünschten TTL-Wert als Ganzzahl in Sekunden ein.';
?>
......@@ -20,4 +20,4 @@ $wb['Add DNS Zone'] = 'Add DNS-Zone';
$wb['Templates'] = 'Templates';
$wb['Secondary Zones'] = 'Secondary DNS-Zones';
$wb['Import Zone File'] = 'Zone-File Import';
?>
\ No newline at end of file
$wb['Bulk Editor'] = 'Bulk Editor';
\ No newline at end of file
<?php
$wb['list_head_txt'] = 'Bulk Editor';
$wb['list_desc_txt'] = 'Change DNS records using search and replace';
$wb['error_txt'] = 'Error';
$wb['error_no_client_txt'] = 'Please select a client';
$wb['error_no_action_txt'] = 'Please select an action';
$wb['error_no_zone_txt'] = 'Please select at least one zone';
$wb['error_invalid_zone_txt'] = 'Invalid zone';
$wb['error_no_search_replace_txt'] = 'Please enter values for search and replace';
$wb['error_no_ttl_txt'] = 'Please enter valid TTL value';
$wb['error_invalid_ip_txt'] = 'Please enter a valid IP address';
$wb['error_invalid_dns_zone_txt'] = 'Please enter a valid zone name';
$wb['error_ip_type_mismatch_txt'] = 'Please enter either IPv4 or IPv6 addresses';
$wb['legend_client_txt'] = 'Select customer';
$wb['legend_action_txt'] = 'Select action';
$wb['legend_zones_txt'] = 'Select zones';
$wb['legend_result_txt'] = 'The following changes were made:';
$wb['select_client_txt'] = 'Please select a customer';
$wb['client_txt'] = 'Client';
$wb['search_txt'] = 'Search';
$wb['replace_txt'] = 'Replace';
$wb['a_records_txt'] = 'A Records';
$wb['mx_records_txt'] = 'MX Records';
$wb['ttl_txt'] = 'TTL';
$wb['ttl_desc_txt'] = 'of A, AAAA and MX records';
$wb['check_uncheck_all_txt'] = 'Check/uncheck all';
$wb['zone_txt'] = 'Zone';
$wb['btn_ok_txt'] = 'Update';
$wb['no_matches_txt'] = 'No matches.';
$wb['ttip_a_records_txt'] = 'Please enter either a valid IPv4 or a valid IPv6 address into the fields.';
$wb['ttip_mx_records_txt'] = 'If you enter a fully qualified domain name, do not forget to enter a dot at the end, for example: www.example.com<b><u>.</u></b><br><br>If you enter a subdomain of your domain, please enter only the subdomain and no dot at the end, for example <i>www</i>.';
$wb['ttip_ttl_txt'] = 'Please enter the desired TTL value in seconds.';
?>
......@@ -25,6 +25,10 @@ if($_SESSION["s"]["user"]["typ"] == 'admin') {
'html_id' => 'dns_template_list');
}
$items[] = array( 'title' => "Bulk Editor",
'target' => 'content',
'link' => 'dns/dns_bulk_editor.php',
'html_id' => 'dns_bulk_editor');
$module["nav"][] = array( 'title' => 'DNS Wizard',
'open' => 1,
......
<tmpl_if name="list_head_txt">
<div class='page-header'>
<h1><tmpl_var name="list_head_txt"></h1>
</div>
</tmpl_if>
<tmpl_if name="list_desc_txt"><p><tmpl_var name="list_desc_txt"></p></tmpl_if>
<tmpl_if name="error">
<div class='alert alert-danger clear'>
<div class='alert-label'><strong><tmpl_var name="error_txt"></strong></div>
<div class='alert-content'>
<ol>
<li><tmpl_var name="error"></li>
</ol>
</div>
</div>
</tmpl_if>
<div class="content-tab-wrapper">
<div id="tabbox_content" class="tab-content">
<div class="tab-pane active fade in">
<tmpl_if name='is_admin'>
<legend><tmpl_var name="legend_client_txt"></legend>
<div class="form-group">
<label for="client_group_id" class="col-sm-2 control-label">{tmpl_var name='client_txt'}</label>
<div class="col-sm-10">
<select name="client_group_id" id="client_group_id" class="form-control" onchange="ISPConfig.submitForm('pageForm','dns/dns_bulk_editor.php');">
{tmpl_var name='clients_select_options'}
</select>
</div>
</div>
</tmpl_if>
<legend><tmpl_var name="legend_action_txt"></legend>
<div class="form-group">
<div class="col-sm-1 text-center">
<div class="ttip" title="{tmpl_var name='ttip_a_records_txt'}"></div>
<input type="radio" name="action" value="a_records" id="action_a_records"{tmpl_if name='action_a_records'} checked="true"{/tmpl_if}>
</div>
<label class="col-sm-1 control-label">{tmpl_var name='a_records_txt'}</label>
<label class="col-sm-1 control-label">{tmpl_var name='search_txt'}</label>
<div class="col-sm-4">
<input type="text" name="a_records_search" id="a_records_search" value="{tmpl_var name='a_records_search'}" class="form-control" {tmpl_if name='action_a_records' op='!=' value='true'} disabled="true"{/tmpl_if}/>
</div>
<label class="col-sm-1 control-label">{tmpl_var name='replace_txt'}</label>
<div class="col-sm-4">
<input type="text" name="a_records_replace" id="a_records_replace" value="{tmpl_var name='a_records_replace'}" class="form-control" {tmpl_if name='action_a_records' op='!=' value='true'} disabled="true"{/tmpl_if}//>
</div>
</div>
<div class="form-group">
<div class="col-sm-1 text-center">
<div class="ttip" title="{tmpl_var name='ttip_mx_records_txt'}"></div>
<input type="radio" name="action" value="mx_records" id="action_mx_records"{tmpl_if name='action_mx_records'} checked="true"{/tmpl_if}>
</div>
<label class="col-sm-1 control-label">{tmpl_var name='mx_records_txt'}</label>
<label class="col-sm-1 control-label">{tmpl_var name='search_txt'}</label>
<div class="col-sm-4">
<input type="text" name="mx_records_search" id="mx_records_search" value="{tmpl_var name='mx_records_search'}" class="form-control" {tmpl_if name='action_mx_records' op='!=' value='true'} disabled="true"{/tmpl_if}/>
</div>
<label class="col-sm-1 control-label">{tmpl_var name='replace_txt'}</label>
<div class="col-sm-4">
<input type="text" name="mx_records_replace" id="mx_records_replace" value="{tmpl_var name='mx_records_replace'}" class="form-control" {tmpl_if name='action_mx_records' op='!=' value='true'} disabled="true"{/tmpl_if}/>
</div>
</div>
<div class="form-group">
<div class="col-sm-1 text-center">
<div class="ttip" title="{tmpl_var name='ttip_ttl_txt'}"></div>
<input type="radio" name="action" value="ttl" id="action_ttl"{tmpl_if name='action_ttl'} checked="true"{/tmpl_if} />
</div>
<label class="col-sm-1 control-label">{tmpl_var name='ttl_txt'}</label>
<div class="col-sm-1"></div>
<div class="col-sm-1">
<input type="text" name="ttl" id="ttl" value="{tmpl_var name='ttl'}" class="form-control" {tmpl_if name='action_ttl' op='!=' value='true'} disabled="true"{/tmpl_if}/>
</div>
<div class="col-sm-8">{tmpl_var name='ttl_desc_txt'}</div>
</div>
<legend><tmpl_var name="legend_zones_txt"></legend>
<div class="table-wrapper marginTop15">
<table class="table">
<thead class="dark form-group-sm">
<th width="10%"><input type="checkbox" class="check_uncheck_all"></th>
<th>{tmpl_var name='zone_txt'}</th>
</thead>
<tmpl_if name='zones_rows_count' op='>' value='0'>
<tbody>
<tmpl_loop name='zones_rows'>
<tr>
<td><input type="checkbox" value="y" name="zone_{tmpl_var name='zone_id'}" id="zone_{tmpl_var name='zone_id'}" {tmpl_if name='zone_selected'}checked="true"{/tmpl_if}></td>
<td>{tmpl_var name='zone_name'}</td>
</tr>
</tmpl_loop>
</tbody>
<tfoot>
<tr>
<td colspan=2><input type="checkbox" class="check_uncheck_all"> {tmpl_var name='check_uncheck_all_txt'}</td>
</tr>
</tfoot>
</tmpl_if>
</table>
</div>
<div class="clear"><div class="right">
<button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_ok_txt'}" name="btn_ok" onclick=";ISPConfig.submitForm('pageForm','dns/dns_bulk_editor.php?submitted=y');">{tmpl_var name='btn_ok_txt'}</button>
</div></div>
</div>
</div>
</div>
<script language="JavaScript" type="text/javascript">
jQuery('#action_a_records').click(function() {
jQuery('#a_records_search').prop('disabled', false);
jQuery('#a_records_replace').prop('disabled', false);
jQuery('#mx_records_search').prop('disabled', true);
jQuery('#mx_records_replace').prop('disabled', true);
jQuery('#ttl').prop('disabled', true);
});
jQuery('#action_mx_records').click(function() {
jQuery('#a_records_search').prop('disabled', true);
jQuery('#a_records_replace').prop('disabled', true);
jQuery('#mx_records_search').prop('disabled', false);
jQuery('#mx_records_replace').prop('disabled', false);
jQuery('#ttl').prop('disabled', true);
});
jQuery('#action_ttl').click(function() {
jQuery('#a_records_search').prop('disabled', true);
jQuery('#a_records_replace').prop('disabled', true);
jQuery('#mx_records_search').prop('disabled', true);
jQuery('#mx_records_replace').prop('disabled', true);
jQuery('#ttl').prop('disabled', false);
});
jQuery('.check_uncheck_all').click(function() {
jQuery('input[type=checkbox]').prop('checked', this.checked);
});
</script>
<tmpl_if name="list_head_txt">
<div class='page-header'>
<h1><tmpl_var name="list_head_txt"></h1>
</div>
</tmpl_if>
<tmpl_if name="list_desc_txt"><p><tmpl_var name="list_desc_txt"></p></tmpl_if>
<tmpl_if name="error">
<div class='alert alert-danger clear'>
<div class='alert-label'><strong><tmpl_var name="error_txt"></strong></div>
<div class='alert-content'>
<ol>
<li><tmpl_var name="error"></li>
</ol>
</div>
</div>
</tmpl_if>
<div class="content-tab-wrapper">
<div id="tabbox_content" class="tab-content">
<div class="tab-pane active fade in">
<legend><tmpl_var name="legend_result_txt"></legend>
<tmpl_var name="result">
</div>
</div>
</div>
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment