mirror of https://github.com/sipwise/www_admin.git
parent
5b42e557b5
commit
03fa1f136b
@ -0,0 +1,104 @@
|
||||
|
||||
<h2> Domain [% domain %] </h2>
|
||||
|
||||
<!-- <a href="/domain"><span class="button-back">Back</span></a> -->
|
||||
|
||||
<div class="topsubmenu">
|
||||
<ul>
|
||||
[% IF Catalyst.config.domain.rewrite_features %]
|
||||
<li><a href="rewrite?domain=[% domain %]"><span>Rewrite Rules</span></a></li>
|
||||
[% END %]
|
||||
[% IF Catalyst.config.domain.audiofile_features %]
|
||||
<li class="selected"><a href="audio?domain=[% domain %]"><span>Announcements</span></a></li>
|
||||
[% END %]
|
||||
[% IF Catalyst.config.domain.vsc_features %]
|
||||
<li><a href="vsc?domain=[% domain %]"><span>VSCs</span></a></li>
|
||||
[% END %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="topsubmenudivider"> </div>
|
||||
|
||||
<h3 id="audio">Audio Files</h3>
|
||||
|
||||
[% IF messages.audiomsg %]<div class="success">[% messages.audiomsg %]</div>[% END %]
|
||||
[% IF messages.audioerr %]<div class="error">[% messages.audioerr %]</div>[% END %]
|
||||
|
||||
<ul class="cleanlist">
|
||||
<li class="ui-state-default">
|
||||
<div class="span-4">Handle</div>
|
||||
<div class="span-4">Description</div>
|
||||
<div class="span-4 append-3 last">Audio</div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul id="audiofilelist" class="cleanlist">
|
||||
[% id = 0 %]
|
||||
[% FOREACH audio = audio_files %]
|
||||
[% id = id + 1 %]
|
||||
<li class="ui-state-default" id="af_[% id %]">
|
||||
[% IF audio.handle == edit_audio %]
|
||||
<form action="/domain/do_update_audio" enctype="multipart/form-data" method="post">
|
||||
<input type="hidden" name="domain" value="[% domain %]" />
|
||||
<input type="hidden" name="handle" value="[% audio.handle %]" />
|
||||
<div class="span-4">[% audio.handle %]</div>
|
||||
<div class="span-4">
|
||||
<input type="text" class="iaudiodesc" title="free-form description string"
|
||||
name="description" value="[% aerefill.description %]" />
|
||||
</div>
|
||||
<div class="span-5">
|
||||
<input type="file" size="10" class="file" id="eupload_audio" name="eupload_audio"
|
||||
title="audio file in wave format" />
|
||||
</div>
|
||||
<div class="prepend-1 span-1">
|
||||
<button class="button-save" id="esave">Save</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="prepend-1 span-1 last">
|
||||
<a href="/domain/audio?domain=[% domain %]"><span class="button-cancel">Cancel</span></a>
|
||||
</div>
|
||||
[% IF aerefill && prov_error %]<div class="error">[% prov_error %]</div>[% END %]
|
||||
[% ELSE %]
|
||||
<div class="span-4">[% audio.handle %]</div>
|
||||
<div class="span-4">[% audio.description %]</div>
|
||||
<div class="span-5"><a href="/domain/listen_audio?domain=[% domain %]&handle=[% audio.handle %]">listen</a></div>
|
||||
<div class="prepend-1 span-1">
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<a href="/domain/audio?domain=[% domain %]&edit_audio=[% audio.handle %]#audio"><span class="button-edit">Edit</span></a>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="prepend-1 span-1 last">
|
||||
<form action="/domain/do_delete_audio" method="post">
|
||||
<input type="hidden" name="domain" value="[% domain %]" />
|
||||
<input type="hidden" name="handle" value="[% audio.handle %]" />
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<button class="button-delete" id="audiodel[% id %]" />
|
||||
[% END %]
|
||||
</form>
|
||||
</div>
|
||||
[% IF audio.handle == delete_audio && prov_error %]
|
||||
<div class="error">[% prov_error %]</div>
|
||||
[% END %]
|
||||
[% END %]
|
||||
</li>
|
||||
[% END %]
|
||||
<li class="ui-state-default" id="af_new">
|
||||
<form action="/domain/do_create_audio" enctype="multipart/form-data" method="post">
|
||||
<input type="hidden" name="domain" value="[% domain %]" />
|
||||
<div class="span-4">
|
||||
<input type="text" title="unique identifier string" size="15"
|
||||
name="handle" value="[% acrefill.handle %]" />
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<input type="text" title="free-form description string" size="15"
|
||||
name="description" value="[% acrefill.data.description %]" />
|
||||
</div>
|
||||
<div class="span-5">
|
||||
<input type="file" size="10" class="file" id="cupload_audio" name="cupload_audio"
|
||||
title="audio file in wave format" />
|
||||
</div>
|
||||
<div class="prepend-1 span-1 last">
|
||||
<button class="button-add" id="audioadd" />
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
[% IF acrefill && prov_error %]<div class="error">[% prov_error %]</div>[% END %]
|
||||
@ -1,404 +0,0 @@
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
|
||||
[% ids = ['icaller', 'icallee', 'ocaller'] %]
|
||||
[% FOREACH id = ids %]
|
||||
$("#[% id %]list").sortable({
|
||||
placeholder: 'ui-state-highlight',
|
||||
forcePlaceholderSize: true,
|
||||
stop: function(i) {
|
||||
placeholder: 'ui-state-highlight'
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "update_rewrite_priority",
|
||||
data: $("#[% id %]list").sortable("serialize")
|
||||
});
|
||||
},
|
||||
});
|
||||
//$("#[% id %]").disableSelection();
|
||||
[% END %]
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
<h2> Domain
|
||||
<a class="noarrow" href="detail?domain=[% domain.domain.domain %]">[% domain.domain.domain %]</a>
|
||||
</h2>
|
||||
|
||||
<a href="/domain"><span class="button-back">Back</span></a>
|
||||
|
||||
[% IF Catalyst.config.domain.rewrite_features %]
|
||||
|
||||
[%
|
||||
rewrites = [
|
||||
{
|
||||
header = 'Inbound Rewrite Rules for Caller',
|
||||
id = 'icaller',
|
||||
tag = 'if',
|
||||
dir = 'in',
|
||||
field = 'caller',
|
||||
msg = messages.icallermsg,
|
||||
err = messages.icallererr,
|
||||
rules = domain.rewrite_in_caller,
|
||||
},
|
||||
{
|
||||
header = 'Inbound Rewrite Rules for Callee',
|
||||
id = 'icallee',
|
||||
tag = 'it',
|
||||
dir = 'in',
|
||||
field = 'callee',
|
||||
msg = messages.icalleemsg,
|
||||
err = messages.icalleeerr,
|
||||
rules = domain.rewrite_in_callee,
|
||||
},
|
||||
{
|
||||
header = 'Outbound Rewrite Rules for Caller',
|
||||
id = 'ocaller',
|
||||
tag = 'of',
|
||||
dir = 'out',
|
||||
field = 'caller',
|
||||
msg = messages.ocallermsg,
|
||||
err = messages.ocallererr,
|
||||
rules = domain.rewrite_out_caller,
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% FOREACH rw = rewrites %]
|
||||
|
||||
<h3 id="[% rw.id %]">[% rw.header %]</h3>
|
||||
|
||||
[% IF rw.msg %]<div class="success">[% rw.msg %]</div>[% END %]
|
||||
[% IF rw.err %]<div class="error">[% rw.err %]</div>[% END %]
|
||||
|
||||
<ul class="cleanlist">
|
||||
<li class="ui-state-default">
|
||||
<div class="span-1"> </div>
|
||||
<div class="span-4">Match Pattern</div>
|
||||
<div class="span-4">Replacement Pattern</div>
|
||||
<div class="span-4 append-3 last">Description</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul id="[% rw.id %]list" class="cleanlist">
|
||||
[% id = 0 %]
|
||||
[% priority = 999 %]
|
||||
[% FOREACH rule = rw.rules %]
|
||||
[% priority = rule.priority %]
|
||||
<li class="ui-state-default" id="rule_[% rule.id %]">
|
||||
<div class="span-1"><span class='ui-icon ui-icon-arrowthick-2-n-s'></span></div>
|
||||
[% IF rule.id == editid && !Catalyst.session.admin.read_only %]
|
||||
<form action="/domain/edit_rewrite" method="post">
|
||||
<input type="hidden" name="direction" value="[% rule.direction %]" />
|
||||
<input type="hidden" name="field" value="[% rule.field %]" />
|
||||
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
|
||||
<input type="hidden" name="rewriteid" value="[% rule.id %]" />
|
||||
<input type="hidden" name="priority" value="[% rule.priority %]" />
|
||||
<div class="span-4">
|
||||
<input type="text" size="15 id="addtxt" title="string, match pattern"
|
||||
name="match_pattern" value="[% rule.match_pattern %]" />
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<input type="text" size="15" id="addtxt" title="string, replacement pattern"
|
||||
name="replace_pattern" value="[% rule.replace_pattern %]" />
|
||||
</div>
|
||||
<div class="span-4 append-1">
|
||||
<input type="text" size="15" id="addtxt" title="string, rewrite rule description"
|
||||
name="description" value="[% rule.description %]" />
|
||||
</div>
|
||||
<div class="span-1">
|
||||
<button class="button-save" id="[% rw.tag %]save[% id %]">Save</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="prepend-1 span-1 last">
|
||||
<a href="/domain/detail?domain=[% domain.domain.domain %]#[% rw.id %]"><span class="button-cancel">Cancel</span></a>
|
||||
</div>
|
||||
[% ELSE %]
|
||||
<div class="span-4">[% rule.match_pattern %]</div>
|
||||
<div class="span-4">[% rule.replace_pattern %]</div>
|
||||
<div class="span-4 append-1">[% rule.description %]</div>
|
||||
<div class="span-1">
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<a href="/domain/detail?domain=[% domain.domain.domain %]&editid=[% rule.id %]#[% rw.id %]"><span class="button-edit">Edit</span></a>
|
||||
[% END %]
|
||||
</div>
|
||||
<form action="/domain/delete_rewrite" method="post">
|
||||
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
|
||||
<input type="hidden" name="rewriteid" value="[% rule.id %]" />
|
||||
<input type="hidden" name="direction" value="[% rule.direction %]" />
|
||||
<input type="hidden" name="field" value="[% rule.field %]" />
|
||||
<div class="prepend-1 span-1 last">
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<button id="[% rw.tag %]del[% id %]" class="button-delete">Delete</button>
|
||||
[% END %]
|
||||
</div>
|
||||
[% END %]
|
||||
</form>
|
||||
</li>
|
||||
[% id = id + 1 %]
|
||||
[% END %]
|
||||
</ul>
|
||||
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<ul class="cleanlist">
|
||||
<li class="ui-state-default">
|
||||
<form action="/domain/create_rewrite" method="post">
|
||||
<input type="hidden" name="direction" value="[% rw.dir %]" />
|
||||
<input type="hidden" name="field" value="[% rw.field%]" />
|
||||
<input type="hidden" name="priority" value="[% priority - 1 %]" />
|
||||
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
|
||||
<div class="span-1"> </div>
|
||||
<div class="span-4">
|
||||
<input type="text" size="15" id="addtxt" title="string, match pattern"
|
||||
name="match_pattern" value="" />
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<input type="text" size="15" id="addtxt" title="string, replacement pattern"
|
||||
name="replace_pattern" value="" />
|
||||
</div>
|
||||
<div class="span-4 append-1">
|
||||
<input type="text" size="15" id="addtxt" title="string, rule description"
|
||||
name="description" value="" />
|
||||
</div>
|
||||
<div class="span-1 append-2 last">
|
||||
<button class="button-add" id="[% rw.tag %]add">Add</button>
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="hspace-20"></div>
|
||||
[% END %]
|
||||
|
||||
[% END %]
|
||||
[% END %]
|
||||
|
||||
[% IF Catalyst.config.domain.audiofile_features %]
|
||||
|
||||
<h3 id="audio">Audio Files</h3>
|
||||
|
||||
<div class="p1">
|
||||
[% IF messages.audiomsg %]<div class="success">[% messages.audiomsg %]</div>[% END %]
|
||||
[% IF messages.audioerr %]<div class="error">[% messages.audioerr %]</div>[% END %]
|
||||
|
||||
<table class="audiofiles">
|
||||
<tr class="table_header">
|
||||
<td style="width:100px;">Handle</td>
|
||||
<td style="width:250px;">Description</td>
|
||||
<td style="width:180px;">Audio</td>
|
||||
<td style="width:40px;" />
|
||||
<td style="width:60px;" />
|
||||
</tr>
|
||||
[% id = 0 %]
|
||||
[% FOREACH audio = audio_files %]
|
||||
[% id = id + 1 %]
|
||||
[% IF audio.handle == edit_audio %]
|
||||
<tr>
|
||||
<form action="/domain/do_update_audio" enctype="multipart/form-data" method="post">
|
||||
<td>[% audio.handle %]</td>
|
||||
<td>
|
||||
<input type="text" class="iaudiodesc" title="free-form description string"
|
||||
name="description" value="[% aerefill.description %]" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="file" size="10" class="file" id="eupload_audio" name="eupload_audio"
|
||||
title="audio file in wave format" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
|
||||
<input type="hidden" name="handle" value="[% audio.handle %]" />
|
||||
<div class="postlink ui-corner-all">
|
||||
<label for="audiosave">Save</label>
|
||||
<input type="image" class="hidden" src="/static/images/dot_trans.gif" alt="" id="audiosave" />
|
||||
</div>
|
||||
</td>
|
||||
</form>
|
||||
<td>
|
||||
<div class="postlink ui-corner-all">
|
||||
<a href="/domain/detail?domain=[% domain.domain.domain %]#audio">Cancel</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
[% IF aerefill && prov_error %]<tr><td colspan="5"><div class="error">[% prov_error %]</div></td></tr>[% END %]
|
||||
[% ELSE %]
|
||||
<tr>
|
||||
<td>[% audio.handle %]</td>
|
||||
<td>[% audio.description %]</td>
|
||||
<td><a href="/domain/listen_audio?domain=[% domain.domain.domain %]&handle=[% audio.handle %]">listen</a></td>
|
||||
<td>
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<a href="/domain/detail?domain=[% domain.domain.domain %]&edit_audio=[% audio.handle %]#audio"><span class="button-edit">Edit</span></a>
|
||||
[% END %]
|
||||
</td>
|
||||
<td>
|
||||
<form action="/domain/do_delete_audio" method="post">
|
||||
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
|
||||
<input type="hidden" name="handle" value="[% audio.handle %]" />
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<button class="button-delete" id="audiodel[% id %]" />
|
||||
[% END %]
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
[% IF audio.handle == delete_audio && prov_error %]
|
||||
<tr><td colspan="5"><div class="error">[% prov_error %]</div></td></tr>
|
||||
[% END %]
|
||||
[% END %]
|
||||
[% END %]
|
||||
<tr>
|
||||
<form action="/domain/do_create_audio" enctype="multipart/form-data" method="post">
|
||||
<td>
|
||||
<input type="text" class="ihandle" title="unique identifier string"
|
||||
name="handle" value="[% acrefill.handle %]" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" class="iaudiodesc" title="free-form description string"
|
||||
name="description" value="[% acrefill.data.description %]" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="file" size="10" class="file" id="cupload_audio" name="cupload_audio"
|
||||
title="audio file in wave format" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
|
||||
<button class="button-add" id="audioadd" />
|
||||
</td>
|
||||
</form>
|
||||
<td />
|
||||
</tr>
|
||||
</table>
|
||||
[% IF acrefill && prov_error %]<div class="error">[% prov_error %]</div>[% END %]
|
||||
</div>
|
||||
|
||||
[% END %]
|
||||
|
||||
[% IF Catalyst.config.domain.vsc_features %]
|
||||
|
||||
<h3 id="vsc">Vertical Service Codes</h3>
|
||||
|
||||
<div class="p1">
|
||||
[% IF messages.vscmsg %]<div class="success">[% messages.vscmsg %]</div>[% END %]
|
||||
[% IF messages.vscerr %]<div class="error">[% messages.vscerr %]</div>[% END %]
|
||||
|
||||
<table class="vscs">
|
||||
<tr class="table_header">
|
||||
<td style="width:120px;">Action</td>
|
||||
<td style="width:40;">Digits</td>
|
||||
<td style="width:120px;">Audio</td>
|
||||
<td style="width:250px;">Description</td>
|
||||
<td style="width:40px;" />
|
||||
<td style="width:60px;" />
|
||||
</tr>
|
||||
[% id = 0 %]
|
||||
[% FOREACH vsc = vscs %]
|
||||
[% id = id + 1 %]
|
||||
[% IF vsc.action == edit_vsc %]
|
||||
<tr>
|
||||
<form action="/domain/do_update_vsc" method="post">
|
||||
<td>[% vsc.action %]</td>
|
||||
<td>
|
||||
<input type="text" maxlength="2" class="irealshort" title="two-digit dialcode for VoIP devices"
|
||||
name="digits" value="[% verefill.digits %]" />
|
||||
</td>
|
||||
<td>
|
||||
<select size="1" name="audio_file_handle"
|
||||
title="the audio which will be played after execution">
|
||||
[% FOREACH audio = audio_files %]
|
||||
<option value="[% audio.handle %]"
|
||||
[% IF verefill.audio_file_handle == audio.handle %]selected="selected"[% END %]
|
||||
>[% audio.handle %]</option>
|
||||
[% END %]
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" class="iaudiodesc" title="free-form description string"
|
||||
name="description" value="[% verefill.description %]" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
|
||||
<input type="hidden" name="action" value="[% vsc.action %]" />
|
||||
<div class="postlink ui-corner-all">
|
||||
<label for="vscsave">Save</label>
|
||||
<input type="image" class="hidden" src="/static/images/dot_trans.gif" alt="" id="vscsave" />
|
||||
</div>
|
||||
</td>
|
||||
</form>
|
||||
<td>
|
||||
<div class="postlink ui-corner-all">
|
||||
<a href="/domain/detail?domain=[% domain.domain.domain %]#vsc">Cancel</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
[% IF verefill && prov_error %]<tr><td colspan="5"><div class="error">[% prov_error %]</div></td></tr>[% END %]
|
||||
[% ELSE %]
|
||||
<tr>
|
||||
<td>[% vsc.action %]</td>
|
||||
<td>[% vsc.digits %]</td>
|
||||
<td>[% vsc.audio_file_handle %]</td>
|
||||
<td>[% vsc.description %]</td>
|
||||
<td>
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<div class="postlink ui-corner-all">
|
||||
<a href="/domain/detail?domain=[% domain.domain.domain %]&edit_vsc=[% vsc.action %]#vsc"><span class="button-edit">Edit</span></a>
|
||||
</div>
|
||||
[% END %]
|
||||
</td>
|
||||
<td>
|
||||
<form action="/domain/do_delete_vsc" method="post">
|
||||
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
|
||||
<input type="hidden" name="action" value="[% vsc.action %]" />
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<button class="button-delete" id="vscdel[% id %]" />
|
||||
[% END %]
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
[% END %]
|
||||
[% END %]
|
||||
[% IF vsc_actions %]
|
||||
<tr>
|
||||
<form action="/domain/do_create_vsc" method="post">
|
||||
<td>
|
||||
<select size="1" name="action"
|
||||
title="the VSC action that should be triggered">
|
||||
[% FOREACH action = vsc_actions %]
|
||||
<option value="[% action %]"
|
||||
[% IF vcrefill.action == action %]selected="selected"[% END %]
|
||||
>[% action %]</option>
|
||||
[% END %]
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" maxlength="2" class="irealshort" title="two-digit dialcode for VoIP devices"
|
||||
name="digits" value="[% vcrefill.data.digits %]" />
|
||||
</td>
|
||||
<td>
|
||||
<select size="1" name="audio_file_handle"
|
||||
title="the audio which will be played after execution">
|
||||
[% FOREACH audio = audio_files %]
|
||||
<option value="[% audio.handle %]"
|
||||
[% IF vcrefill.data.audio_file_handle == audio.handle %]selected="selected"[% END %]
|
||||
>[% audio.handle %]</option>
|
||||
[% END %]
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" class="iaudiodesc" title="free-form description string"
|
||||
name="description" value="[% vcrefill.data.description %]" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
|
||||
<button class="button-add" id="vscadd" />
|
||||
</td>
|
||||
</form>
|
||||
<td />
|
||||
</tr>
|
||||
[% ELSE %]
|
||||
<tr><td colspan="6" class="tdcenter">No undefined VSC actions found.</td></tr>
|
||||
[% END %]
|
||||
</table>
|
||||
[% IF vcrefill && prov_error %]<div class="error">[% prov_error %]</div>[% END %]
|
||||
</div>
|
||||
|
||||
[% END %]
|
||||
|
||||
@ -0,0 +1,187 @@
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
|
||||
[% ids = ['icaller', 'icallee', 'ocaller'] %]
|
||||
[% FOREACH id = ids %]
|
||||
$("#[% id %]list").sortable({
|
||||
placeholder: 'ui-state-highlight',
|
||||
forcePlaceholderSize: true,
|
||||
stop: function(i) {
|
||||
placeholder: 'ui-state-highlight'
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "update_rewrite_priority",
|
||||
data: $("#[% id %]list").sortable("serialize")
|
||||
});
|
||||
},
|
||||
});
|
||||
//$("#[% id %]").disableSelection();
|
||||
[% END %]
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
<h2> Domain [% domain %] </h2>
|
||||
|
||||
<!-- <a href="/domain"><span class="button-back">Back</span></a> -->
|
||||
|
||||
<div class="topsubmenu">
|
||||
<ul>
|
||||
[% IF Catalyst.config.domain.rewrite_features %]
|
||||
<li class="selected"><a href="rewrite?domain=[% domain.domain.domain %]"><span>Rewrite Rules</span></a></li>
|
||||
[% END %]
|
||||
[% IF Catalyst.config.domain.audiofile_features %]
|
||||
<li><a href="audio?domain=[% domain.domain.domain %]"><span>Announcements</span></a></li>
|
||||
[% END %]
|
||||
[% IF Catalyst.config.domain.vsc_features %]
|
||||
<li><a href="vsc?domain=[% domain.domain.domain %]"><span>VSCs</span></a></li>
|
||||
[% END %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="topsubmenudivider"> </div>
|
||||
|
||||
[%
|
||||
rewrites = [
|
||||
{
|
||||
header = 'Inbound Rewrite Rules for Caller',
|
||||
id = 'icaller',
|
||||
tag = 'if',
|
||||
dir = 'in',
|
||||
field = 'caller',
|
||||
msg = messages.icallermsg,
|
||||
err = messages.icallererr,
|
||||
rules = domain.rewrite_in_caller,
|
||||
},
|
||||
{
|
||||
header = 'Inbound Rewrite Rules for Callee',
|
||||
id = 'icallee',
|
||||
tag = 'it',
|
||||
dir = 'in',
|
||||
field = 'callee',
|
||||
msg = messages.icalleemsg,
|
||||
err = messages.icalleeerr,
|
||||
rules = domain.rewrite_in_callee,
|
||||
},
|
||||
{
|
||||
header = 'Outbound Rewrite Rules for Caller',
|
||||
id = 'ocaller',
|
||||
tag = 'of',
|
||||
dir = 'out',
|
||||
field = 'caller',
|
||||
msg = messages.ocallermsg,
|
||||
err = messages.ocallererr,
|
||||
rules = domain.rewrite_out_caller,
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% FOREACH rw = rewrites %]
|
||||
|
||||
<h3 id="[% rw.id %]">[% rw.header %]</h3>
|
||||
|
||||
[% IF rw.msg %]<div class="success">[% rw.msg %]</div>[% END %]
|
||||
[% IF rw.err %]<div class="error">[% rw.err %]</div>[% END %]
|
||||
|
||||
<ul class="cleanlist">
|
||||
<li class="ui-state-default">
|
||||
<div class="span-1"> </div>
|
||||
<div class="span-4">Match Pattern</div>
|
||||
<div class="span-4">Replacement Pattern</div>
|
||||
<div class="span-4 append-3 last">Description</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul id="[% rw.id %]list" class="cleanlist">
|
||||
[% id = 0 %]
|
||||
[% priority = 999 %]
|
||||
[% FOREACH rule = rw.rules %]
|
||||
[% priority = rule.priority %]
|
||||
<li class="ui-state-default" id="rule_[% rule.id %]">
|
||||
<div class="span-1"><span class='ui-icon ui-icon-arrowthick-2-n-s'></span></div>
|
||||
[% IF rule.id == editid && !Catalyst.session.admin.read_only %]
|
||||
<form action="/domain/edit_rewrite" method="post">
|
||||
<input type="hidden" name="direction" value="[% rule.direction %]" />
|
||||
<input type="hidden" name="field" value="[% rule.field %]" />
|
||||
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
|
||||
<input type="hidden" name="rewriteid" value="[% rule.id %]" />
|
||||
<input type="hidden" name="priority" value="[% rule.priority %]" />
|
||||
<div class="span-4">
|
||||
<input type="text" size="15 id="addtxt" title="string, match pattern"
|
||||
name="match_pattern" value="[% rule.match_pattern %]" />
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<input type="text" size="15" id="addtxt" title="string, replacement pattern"
|
||||
name="replace_pattern" value="[% rule.replace_pattern %]" />
|
||||
</div>
|
||||
<div class="span-4 append-1">
|
||||
<input type="text" size="15" id="addtxt" title="string, rewrite rule description"
|
||||
name="description" value="[% rule.description %]" />
|
||||
</div>
|
||||
<div class="span-1">
|
||||
<button class="button-save" id="[% rw.tag %]save[% id %]">Save</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="prepend-1 span-1 last">
|
||||
<a href="/domain/rewrite?domain=[% domain.domain.domain %]#[% rw.id %]"><span class="button-cancel">Cancel</span></a>
|
||||
</div>
|
||||
[% ELSE %]
|
||||
<div class="span-4">[% rule.match_pattern %]</div>
|
||||
<div class="span-4">[% rule.replace_pattern %]</div>
|
||||
<div class="span-4 append-1">[% rule.description %]</div>
|
||||
<div class="span-1">
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<a href="/domain/rewrite?domain=[% domain.domain.domain %]&editid=[% rule.id %]#[% rw.id %]"><span class="button-edit">Edit</span></a>
|
||||
[% END %]
|
||||
</div>
|
||||
<form action="/domain/delete_rewrite" method="post">
|
||||
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
|
||||
<input type="hidden" name="rewriteid" value="[% rule.id %]" />
|
||||
<input type="hidden" name="direction" value="[% rule.direction %]" />
|
||||
<input type="hidden" name="field" value="[% rule.field %]" />
|
||||
<div class="prepend-1 span-1 last">
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<button id="[% rw.tag %]del[% id %]" class="button-delete">Delete</button>
|
||||
[% END %]
|
||||
</div>
|
||||
[% END %]
|
||||
</form>
|
||||
</li>
|
||||
[% id = id + 1 %]
|
||||
[% END %]
|
||||
</ul>
|
||||
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<ul class="cleanlist">
|
||||
<li class="ui-state-default">
|
||||
<form action="/domain/create_rewrite" method="post">
|
||||
<input type="hidden" name="direction" value="[% rw.dir %]" />
|
||||
<input type="hidden" name="field" value="[% rw.field%]" />
|
||||
<input type="hidden" name="priority" value="[% priority - 1 %]" />
|
||||
<input type="hidden" name="domain" value="[% domain.domain.domain %]" />
|
||||
<div class="span-1"> </div>
|
||||
<div class="span-4">
|
||||
<input type="text" size="15" id="addtxt" title="string, match pattern"
|
||||
name="match_pattern" value="" />
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<input type="text" size="15" id="addtxt" title="string, replacement pattern"
|
||||
name="replace_pattern" value="" />
|
||||
</div>
|
||||
<div class="span-4 append-1">
|
||||
<input type="text" size="15" id="addtxt" title="string, rule description"
|
||||
name="description" value="" />
|
||||
</div>
|
||||
<div class="span-1 append-2 last">
|
||||
<button class="button-add" id="[% rw.tag %]add">Add</button>
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="hspace-20"></div>
|
||||
[% END %]
|
||||
|
||||
[% END %]
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,134 @@
|
||||
|
||||
<h2> Domain [% domain %] </h2>
|
||||
|
||||
<!-- <a href="/domain"><span class="button-back">Back</span></a> -->
|
||||
|
||||
<div class="topsubmenu">
|
||||
<ul>
|
||||
[% IF Catalyst.config.domain.rewrite_features %]
|
||||
<li><a href="rewrite?domain=[% domain %]"><span>Rewrite Rules</span></a></li>
|
||||
[% END %]
|
||||
[% IF Catalyst.config.domain.audiofile_features %]
|
||||
<li><a href="audio?domain=[% domain %]"><span>Announcements</span></a></li>
|
||||
[% END %]
|
||||
[% IF Catalyst.config.domain.vsc_features %]
|
||||
<li class="selected"><a href="vsc?domain=[% domain %]"><span>VSCs</span></a></li>
|
||||
[% END %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="topsubmenudivider"> </div>
|
||||
|
||||
<h3 id="vsc">Vertical Service Codes</h3>
|
||||
|
||||
[% IF messages.vscmsg %]<div class="success">[% messages.vscmsg %]</div>[% END %]
|
||||
[% IF messages.vscerr %]<div class="error">[% messages.vscerr %]</div>[% END %]
|
||||
|
||||
<ul class="cleanlist"
|
||||
<li class="ui-state-default">
|
||||
<div class="span-3">Action</div>
|
||||
<div class="span-2">Digits</div>
|
||||
<div class="span-4">Audio</div>
|
||||
<div class="span-4">Description</div>
|
||||
</li>
|
||||
</ul>
|
||||
<ul id="vsclist" class="cleanlist">
|
||||
[% id = 0 %]
|
||||
[% FOREACH vsc = vscs %]
|
||||
[% id = id + 1 %]
|
||||
<li class="ui-state-default" id="vsc_[% id %]">
|
||||
[% IF vsc.action == edit_vsc %]
|
||||
<form action="/domain/do_update_vsc" method="post">
|
||||
<input type="hidden" name="domain" value="[% domain %]" />
|
||||
<input type="hidden" name="action" value="[% vsc.action %]" />
|
||||
<div class="span-3">[% vsc.action %]</div>
|
||||
<div class="span-2">
|
||||
<input type="text" maxlength="2" size="2" title="two-digit dialcode for VoIP devices"
|
||||
name="digits" value="[% verefill.digits %]" />
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<select size="1" name="audio_file_handle"
|
||||
title="the audio which will be played after execution">
|
||||
[% FOREACH audio = audio_files %]
|
||||
<option value="[% audio.handle %]"
|
||||
[% IF verefill.audio_file_handle == audio.handle %]selected="selected"[% END %]
|
||||
>[% audio.handle %]</option>
|
||||
[% END %]
|
||||
</select>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<input type="text" size="15" title="free-form description string"
|
||||
name="description" value="[% verefill.description %]" />
|
||||
</div>
|
||||
<div class="prepend-1 span-1">
|
||||
<button class="button-save" id="esave">Save</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="prepend-1 span-1 last">
|
||||
<a href="/domain/vsc?domain=[% domain %]#vsc"><span class="button-cancel">Cancel</span></a>
|
||||
</div>
|
||||
[% IF verefill && prov_error %]<div class="error">[% prov_error %]</div>[% END %]
|
||||
[% ELSE %]
|
||||
<div class="span-3">[% vsc.action %]</div>
|
||||
<div class="span-2">[% vsc.digits %]</div>
|
||||
<div class="span-4">[% vsc.audio_file_handle %]</div>
|
||||
<div class="span-4">[% vsc.description %]</div>
|
||||
<div class="prepend-1 span-1">
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<a href="/domain/vsc?domain=[% domain %]&edit_vsc=[% vsc.action %]#vsc"><span class="button-edit">Edit</span></a>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="prepend-1 span-1 last">
|
||||
<form action="/domain/do_delete_vsc" method="post">
|
||||
<input type="hidden" name="domain" value="[% domain %]" />
|
||||
<input type="hidden" name="action" value="[% vsc.action %]" />
|
||||
[% UNLESS Catalyst.session.admin.read_only %]
|
||||
<button class="button-delete" id="vscdel[% id %]" />
|
||||
[% END %]
|
||||
</form>
|
||||
</div>
|
||||
[% END %]
|
||||
</li>
|
||||
[% END %]
|
||||
|
||||
<li class="ui-state-default" id="vsc_new">
|
||||
[% IF vsc_actions %]
|
||||
<form action="/domain/do_create_vsc" method="post">
|
||||
<input type="hidden" name="domain" value="[% domain %]" />
|
||||
<div class="span-3">
|
||||
<select size="1" name="action"
|
||||
title="the VSC action that should be triggered">
|
||||
[% FOREACH action = vsc_actions %]
|
||||
<option value="[% action %]"
|
||||
[% IF vcrefill.action == action %]selected="selected"[% END %]
|
||||
>[% action %]</option>
|
||||
[% END %]
|
||||
</select>
|
||||
</div>
|
||||
<div class="span-2">
|
||||
<input type="text" maxlength="2" size="2" title="two-digit dialcode for VoIP devices"
|
||||
name="digits" value="[% vcrefill.data.digits %]" />
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<select size="1" name="audio_file_handle"
|
||||
title="the audio which will be played after execution">
|
||||
[% FOREACH audio = audio_files %]
|
||||
<option value="[% audio.handle %]"
|
||||
[% IF vcrefill.data.audio_file_handle == audio.handle %]selected="selected"[% END %]
|
||||
>[% audio.handle %]</option>
|
||||
[% END %]
|
||||
</select>
|
||||
</div>
|
||||
<div class="span-4">
|
||||
<input type="text" size="15" title="free-form description string"
|
||||
name="description" value="[% vcrefill.data.description %]" />
|
||||
</div>
|
||||
<div class="prepend-1 span-1 last">
|
||||
<button class="button-add" id="vscadd" />
|
||||
</div>
|
||||
</form>
|
||||
[% ELSE %]
|
||||
<div class="span-16">No undefined VSC actions found.</div>
|
||||
[% END %]
|
||||
</li>
|
||||
</ul>
|
||||
[% IF vcrefill && prov_error %]<div class="error">[% prov_error %]</div>[% END %]
|
||||
Loading…
Reference in new issue