summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/modules/edit/htdocs/props/props.html
diff options
context:
space:
mode:
Diffstat (limited to 'sca-cpp/trunk/modules/edit/htdocs/props/props.html')
-rw-r--r--sca-cpp/trunk/modules/edit/htdocs/props/props.html154
1 files changed, 154 insertions, 0 deletions
diff --git a/sca-cpp/trunk/modules/edit/htdocs/props/props.html b/sca-cpp/trunk/modules/edit/htdocs/props/props.html
new file mode 100644
index 0000000000..36d4e075ad
--- /dev/null
+++ b/sca-cpp/trunk/modules/edit/htdocs/props/props.html
@@ -0,0 +1,154 @@
+<!--
+ * 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.
+-->
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="/ui.css">
+<script type="text/javascript" src="/util.js"></script>
+<script type="text/javascript" src="/elemutil.js"></script>
+<script type="text/javascript" src="/xmlutil.js"></script>
+<script type="text/javascript" src="/atomutil.js"></script>
+<script type="text/javascript" src="/scdl.js"></script>
+<script type="text/javascript" src="/ui.js"></script>
+<script type="text/javascript" src="/component.js"></script>
+</head>
+<body>
+
+<div id="bodydiv" style="position: absolute; top: 0px; left: 0px; right: 0px;">
+
+<table style="width: 100%;">
+<tr>
+<th class="thl thr" style="padding-top: 4px; padding-bottom: 4px;">Settings</th>
+
+<th class="thl thr" style="padding-top: 0px; padding-bottom: 0px; padding-right: 0px; text-align: right;">
+<input type="button" id="saveButton" title="Save the app" style="font-weight: bold;" Value="Saved"/>
+</th>
+</tr>
+</table>
+<br>
+
+<div>
+<form id="appForm">
+<table style="width: 100%;">
+<tr><tr><td><b>App Title:</b></td></tr>
+<tr><td><input type="text" id="appTitle" size="80"/></td></tr>
+<tr><tr><td><b>Category:</b></td></tr>
+<tr><td><input type="text" id="appCategory" size="15"/></td></tr>
+<tr><tr><td><b>Updated:</b></td></tr>
+<tr><td><span id="appUpdated"></span></td></tr>
+<tr><tr><td><b>Description:</b></td></tr>
+<tr><td><textarea id="appDescription" cols="80" rows="5"></textarea></td></tr>
+</table>
+</form>
+</div>
+
+</div>
+
+<script type="text/javascript">
+if (ui.isIE()) $('bodydiv').style.right = -20;
+
+// Init service references
+var editWidget = sca.component("EditWidget");
+var dashboard = sca.reference(editWidget, "dashboard");
+
+/**
+ * The current app name.
+ */
+var appname = ui.queryParams()['app'];
+
+/**
+ * The current app entry and corresponding saved XML content.
+ */
+var appentry;
+var savedappentryxml = '';
+
+/**
+ * Default field values.
+ */
+var deftitle = 'Enter the title of your app here';
+var defcategory = 'Cool Apps';
+var defdate = 'Feb 4, 2011';
+var defdesc = 'Enter a short description of your app here';
+
+/**
+ * Get and display an app.
+ */
+function getapp(name) {
+ dashboard.get(name, function(doc) {
+ appentry = doc != null? car(elementsToValues(atom.readATOMEntry(mklist(doc)))) : mklist("'entry", mklist("'title", ''), mklist("'id", name));
+ var title = cadr(assoc("'title", cdr(appentry)));
+ $('appTitle').value = title != ''? title : deftitle;
+ $('appCategory').value = defcategory;
+ $('appUpdated').innerHTML = defdate;
+ $('appDescription').innerHTML = defdesc;
+ savedappentryxml = car(atom.writeATOMEntry(valuesToElements(mklist(appentry))));
+ });
+}
+
+/**
+ * Handle save button click event.
+ */
+$('saveButton').onclick = function() {
+ return save();
+};
+
+/**
+ * Save the current app.
+ */
+function save() {
+ $('saveButton').value = 'Saving';
+ var title = $('appTitle').value;
+ var appentry = mklist("'entry", mklist("'title", title != deftitle && title != ''? title : appname), mklist("'id", appname));
+ savedappentryxml = car(atom.writeATOMEntry(valuesToElements(mklist(appentry))));
+ dashboard.put(appname, savedappentryxml, function() {
+ if (savedappentryxml == car(atom.writeATOMEntry(valuesToElements(mklist(appentry)))))
+ $('saveButton').value = 'Saved';
+ return true;
+ });
+ return true;
+}
+
+/**
+ * Handle a change event
+ */
+function onappchange() {
+ var title = $('appTitle').value;
+ var appentry = mklist("'entry", mklist("'title", title != deftitle && title != ''? title : appname), mklist("'id", appname));
+ if (savedappentryxml == car(atom.writeATOMEntry(valuesToElements(mklist(appentry)))))
+ return false;
+ $('saveButton').value = 'Save now';
+
+ // Autosave after 3 seconds
+ setTimeout(function() {
+ if (savedappentryxml == car(atom.writeATOMEntry(valuesToElements(mklist(appentry)))))
+ return false;
+ return save();
+ }, 3000);
+ return true;
+}
+
+$('appTitle').onchange = onappchange;
+$('appCategory').onchange = onappchange;
+$('appDescription').onchange = onappchange;
+
+// Get the current app
+getapp(appname);
+
+</script>
+</body>
+</html>