You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by st...@apache.org on 2013/10/25 23:33:50 UTC

[02/12] git commit: first (blind) try

first (blind) try


Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs/commit/cd576b9b
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs/tree/cd576b9b
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs/diff/cd576b9b

Branch: refs/heads/dev
Commit: cd576b9b4d2ce6bd71c00b3873c7f8e9d0187917
Parents: 8eab453
Author: Piotr Zalewa <pi...@zalewa.info>
Authored: Wed Sep 18 16:42:19 2013 +0200
Committer: Piotr Zalewa <pi...@zalewa.info>
Committed: Wed Sep 18 16:42:19 2013 +0200

----------------------------------------------------------------------
 plugin.xml               | 13 ++++++++
 src/firefoxos/dialogs.js | 76 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 89 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs/blob/cd576b9b/plugin.xml
----------------------------------------------------------------------
diff --git a/plugin.xml b/plugin.xml
index 3d47847..0253a35 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -13,6 +13,19 @@
         <merges target="navigator.notification" />
     </js-module>
 
+    <!-- firefoxos -->
+    <platform name="firefoxos">
+        <config-file target="config.xml" parent="/*">
+            <feature name="Dialogs">
+                <param name="firefoxos-package" value="Dialogs" />
+            </feature>
+        </config-file>                                         
+        
+        <js-module src="src/firefoxos/dialogs.js" name="dialogs-impl">
+          <runs />
+        </js-module>
+    </platform>
+
     <!-- android -->
     <platform name="android">
         <config-file target="res/xml/config.xml" parent="/*">

http://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs/blob/cd576b9b/src/firefoxos/dialogs.js
----------------------------------------------------------------------
diff --git a/src/firefoxos/dialogs.js b/src/firefoxos/dialogs.js
new file mode 100644
index 0000000..3a16ed2
--- /dev/null
+++ b/src/firefoxos/dialogs.js
@@ -0,0 +1,76 @@
+
+var firefoxos = require('cordova/platform');
+
+function modal(message, callback, tittle, buttonLabels, cancelButton) {
+    // create a modal window
+    var box = document.createElement('div');
+    box.classList.add('fxos-modal-window');
+    // add title
+    if (tittle) {
+        var boxTittle = document.createElement('h3');
+        boxTittle.appendChild(document.createTextNode(tittle));
+        box.appendChild(boxTittle);
+    }
+    // add message
+    var boxMessage = document.createElement('p');
+    boxMessage.appendChild(document.createTextNode(message));
+    box.appendChild(boxMessage);
+    // add buttons and assign callbackButton on click
+    // TODO: find a way handle different languages
+    if (cancelButton) {
+        addButton('Cancel', -1, true);
+        // TODO: listen escape key
+    }
+    if (buttonLabels.length == 0) {
+        // only OK button
+        addButton('OK');
+        // TODO: listen to Enter Key
+    } else {
+        for (var index = 0; index < buttonLabels.length; index++) {
+            // TODO: first button is the default one (listens to Enter
+            // key)
+            addButton(buttonLabels[index], index);
+        }
+    }
+    document.body.appendChild(box);
+
+    function addButton(label, index, cancelButton) {
+        var button = document.createElement('button');
+        button.appendChild(document.createTextNode(label));
+        if (cancelButton) {
+            button.classList.add('cancel');
+        }
+        if (!index) {
+            index = 0;
+        }
+        if (cancelButton) {
+            index = -1;
+        }
+        button.labelIndex = index;
+        button.addEventListener('click', callbackButton, false);
+        box.appendChild(button);
+    }
+
+    // call callback and destroy modal
+    function callbackButton() {
+        callback(this.labelIndex);
+        // destroy window
+        box.parentNode.removeChild(box);
+    }
+}
+
+var Dialogs = {
+    vibrate: function(milliseconds) {
+        navigator.vibrate(milliseconds);
+    },
+    alert: function(message, alertCallback, tittle, buttonName) {
+        // TODO: display tittle and buttonName
+        modal(message, alertCallback, tittle, [buttonName]);
+    },
+    confirm: function(message, confirmCallback, tittle, buttonLabels) {
+        // TODO: display tittle and multiple buttons
+        modal(message, confirmCallback, tittle, buttonLabels, true);
+    }
+};
+
+firefoxos.registerPlugin('Dialogs', Dialogs);