diff options
Diffstat (limited to 'tinydns-edit-html.lsp')
-rw-r--r-- | tinydns-edit-html.lsp | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/tinydns-edit-html.lsp b/tinydns-edit-html.lsp index ddb4ae4..a4754e1 100644 --- a/tinydns-edit-html.lsp +++ b/tinydns-edit-html.lsp @@ -1,7 +1,7 @@ <% local form, viewlibrary, page_info = ... %> <% require("viewfunctions") %> -<% form = viewlibrary.dispatch_component(page_info.prefix .. page_info.controller .. "/editfile", form, true) %> +<% local domain = string.gsub(form.value.filename.value, "^.*/", "") %> <script type="text/javascript" src="/js/jquery-latest.js"></script> <script type="text/javascript"> var editEntry = '<td> \ @@ -32,8 +32,15 @@ entryTypes[11]=new Entry("%","Client location",2,"Location","IP prefix"); function finishForm(entry){ - var entrytext = entry.find("select").val() + entry.find("input").map(function(){ - return $(this).val(); + var entrytext = entry.find("select").val() + entry.find("input:not(.submit)").map(function(){ + if (this.name == "fixme") { + if ($(this).val() != "") + return $(this).val() + ".<%= domain %>"; + else + return "<%= domain %>"; + } else { + return $(this).val(); + } }).get().join(":"); entry.empty().append(entrytext); } @@ -62,15 +69,22 @@ } for (i=0; i<entryType.num; i++){ if (entries[i] === null) { entries[i] = ""; } - form = form + '<dt>' + entryType.descriptions[i] + '</dt><dd><input type="text" value="' + entries[i] + '"></dd>'; + if (entryType.descriptions[i] == "Domain" || entryType.descriptions[i] == "Alias" || entryType.descriptions[i] == "Host" ) + form = form + '<dt>' + entryType.descriptions[i] + '</dt><dd><input type="text" value="' + entries[i].replace(/\.?<%= string.gsub(domain, "[\\%[%]%.%*%?%+%{%^%$]", "\\%1") %>$/i, "") + '" name="fixme"> . <%= domain %></dd>'; + else + form = form + '<dt>' + entryType.descriptions[i] + '</dt><dd><input type="text" value="' + entries[i] + '"></dd>'; } - form = form + "</dl>"; + form = form + '\n<DT></DT><DD><input class="submit" type="submit" value="<%= form.option %>"></DD>'; + form = form + "\n</dl>"; entry.empty().append(form); entry.find("select").change(function(){ var entry = $(this).parent(); finishForm(entry); createForm(entry); }); + entry.find("input.submit").click(function() { + $("input[name='<%= form.option %>']").click(); + }); } function editLine(){ var parent = $(this).parent(); |