| <!DOCTYPE html> |
| <!-- |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| --> |
| <div id="bodydiv" class="body"> |
| |
| <div id="viewform" class="viewform"> |
| |
| <form id="deleteAppForm"> |
| <table style="width: 100%;"> |
| <tr><tr><td class="label">URL:</td></tr> |
| <tr><td><input type="text" id="appURL" class="readentry" size="30" readonly="readonly" placeholder="App URL" style="width: 300px;"/></td></tr> |
| <tr><tr><td class="label">Icon:</td></tr> |
| <tr><td><img id="appIcon" style="width: 50px; height: 50px; vertical-align: top;"></td></tr> |
| <tr><tr><td class="label">Author:</td></tr> |
| <tr><td><img id="authorPhoto" style="width: 50px; height: 50px; vertical-align: middle;"><input type="text" id="appAuthor" class="readentry" size="30" readonly="readonly" placeholder="Author of the app" style="width: 248px;"/></td></tr> |
| <tr><tr><td class="label">Updated:</td></tr> |
| <tr><td><input type="text" id="appUpdated" class="readentry" size="30" readonly="readonly" placeholder="App update date" style="width: 300px;"/></td></tr> |
| <tr><tr><td class="label">Description:</td></tr> |
| <tr><td><textarea id="appDescription" class="readentry" cols="40" rows="3" readonly="readonly" placeholder="No description for this app" style="width: 300px;"></textarea></td></tr> |
| <tr><td> |
| <input id="deleteAppOKButton" type="submit" class="bluebutton" style="font-weight: bold;" value="Delete" title="Delete the app"/> |
| <input id="deleteAppCancelButton" type="button" class="graybutton" value="Cancel"/> |
| </td></tr> |
| </table> |
| </form> |
| <br/> |
| |
| </div> |
| |
| <script type="text/javascript"> |
| (function deletebody() { |
| |
| /** |
| * Get the app name. |
| */ |
| var appname = ui.fragmentParams(location)['app']; |
| |
| /** |
| * Setup page layout. |
| */ |
| (function layout() { |
| document.title = config.windowtitle() + ' - ' + 'Delete' + ' - ' + appname; |
| $('viewhead').innerHTML = '<span class="smenu">Delete ' + appname + '</span>'; |
| if (!ui.isMobile()) |
| $('viewform').className = 'viewform flatscrollbars'; |
| $('appURL').value = window.location.hostname + '/' + appname + '/'; |
| })(); |
| |
| /** |
| * Set images. |
| */ |
| $('appIcon').src = ui.b64png(appcache.get('/public/app.b64')); |
| $('authorPhoto').src = ui.b64png(appcache.get('/public/user.b64')); |
| |
| /** |
| * Initialize service references. |
| */ |
| var editorComp = sca.component("Editor"); |
| var apps = sca.reference(editorComp, "apps"); |
| |
| /** |
| * The current app entry and corresponding saved XML content. |
| */ |
| var appentry; |
| |
| /** |
| * Get and display the requested app. |
| */ |
| (function getapp() { |
| if (isNull(appname)) |
| return false; |
| workingstatus(true); |
| showstatus('Loading'); |
| |
| return apps.get(appname, function(doc) { |
| |
| // Stop now if we didn't get the app |
| if (doc == null) { |
| errorstatus('Couldn\'t get the app info'); |
| workingstatus(false); |
| return false; |
| } |
| |
| appentry = doc != null? car(elementsToValues(atom.readATOMEntry(mklist(doc)))) : mklist("'entry", mklist("'title", ''), mklist("'id", appname)); |
| var author = cadr(assoc("'author", appentry)); |
| $('appAuthor').value = author.split('@')[0]; |
| $('appUpdated').value = xmldatetime(cadr(assoc("'updated", appentry))).toLocaleDateString(); |
| var content = cadr(assoc("'content", appentry)); |
| var description = assoc("'description", content); |
| $('appDescription').value = isNull(description) || isNull(cadr(description))? '' : cadr(description); |
| |
| onlinestatus(); |
| workingstatus(false); |
| return true; |
| }); |
| })(); |
| |
| /** |
| * Delete the app. |
| */ |
| $('deleteAppForm').onsubmit = function() { |
| workingstatus(true); |
| showstatus('Deleting'); |
| |
| // Delete the app |
| apps.del(appname, function(e) { |
| if (e) { |
| showstatus('Local copy'); |
| workingstatus(false); |
| return false; |
| } |
| onlinestatus(); |
| workingstatus(false); |
| |
| // Return to the app store |
| ui.navigate('/#view=store&category=myapps&idx=5', '_view'); |
| return false; |
| }); |
| return false; |
| }; |
| |
| /** |
| * Cancel cloning an app. |
| */ |
| ui.onclick($('deleteAppCancelButton'), function(e) { |
| history.back(); |
| }); |
| |
| })(); |
| </script> |
| |
| </div> |