Use JavaScript to improve the UI.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 15 Oct 2010 15:25:36 +0000 (17:25 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Fri, 15 Oct 2010 15:25:36 +0000 (17:25 +0200)
src/main/resources/static/css/sone.css
src/main/resources/static/javascript/sone.js [new file with mode: 0644]
src/main/resources/templates/index.html

index 35fd2e7..4b9928d 100644 (file)
@@ -19,3 +19,7 @@
 #sone .post .text {
        display: inline;
 }
+
+#sone input.createpost.default {
+       color: #888;
+}
diff --git a/src/main/resources/static/javascript/sone.js b/src/main/resources/static/javascript/sone.js
new file mode 100644 (file)
index 0000000..44cff7c
--- /dev/null
@@ -0,0 +1,18 @@
+/* Sone JavaScript functions. */
+
+function registerInputTextareaSwap(inputSelector, defaultText) {
+       $(inputSelector).focus(function() {
+               if ($(this).val() == defaultText) {
+                       $(this).val("").removeClass("default");
+               }
+       }).blur(function() {
+               if ($(this).val() == "") {
+                       $(this).val(defaultText).addClass("default");
+               }
+       }).addClass("default").val(defaultText);
+       $($(inputSelector).get(0).form).submit(function() {
+               if ($(inputSelector).hasClass("default")) {
+                       $(inputSelector).val("");
+               }
+       });
+}
index f72ceb0..9046406 100644 (file)
@@ -1,12 +1,22 @@
 <div id="sone">
 
+       <script src="javascript/jquery-1.4.2.js" language="javascript"></script>
+       <script src="javascript/sone.js" language="javascript"></script>
+
+       <script language="javascript">
+               /* register input field/textarea swap. */
+               $(document).ready(function() {
+                       registerInputTextareaSwap("#sone input.createpost", "What are you doing?");
+               });
+       </script>
+
        <h1><%= Page.Index.Page.Title|l10n|insert needle="{sone}" key=currentSone.name|html></h1>
 
        <div>
                <form action="createPost.html" method="post">
                        <div>
                                <label for="text"><%= Page.Index.Label.Text|l10n|html></label>
-                               <textarea name="text"></textarea>
+                               <input class="createpost" name="text" />
                        </div>
                        <div>
                                <button type="submit"><%= Page.Index.Button.Post|l10n|html></button>