diff options
| author | PliablePixels <pliablepixels@gmail.com> | 2015-09-15 09:32:35 -0400 |
|---|---|---|
| committer | PliablePixels <pliablepixels@gmail.com> | 2015-09-15 09:32:35 -0400 |
| commit | 606d3b95e941f48c8963d3996920472145da1200 (patch) | |
| tree | 1a966266ada12285a4e2082607da844d52d900bf | |
| parent | 566510313bd07eeb64dcafdc85a0f8e08e528c64 (diff) | |
Added pindialog plugin
| -rw-r--r-- | config.xml | 2 | ||||
| -rw-r--r-- | package.json | 4 | ||||
| -rw-r--r-- | plugins/android.json | 7 | ||||
| -rw-r--r-- | plugins/fetch.json | 9 | ||||
| -rw-r--r-- | plugins/hu.dpal.phonegap.plugins.PinDialog/LICENSE | 20 | ||||
| -rw-r--r-- | plugins/hu.dpal.phonegap.plugins.PinDialog/README.md | 43 | ||||
| -rw-r--r-- | plugins/hu.dpal.phonegap.plugins.PinDialog/plugin.xml | 44 | ||||
| -rw-r--r-- | plugins/hu.dpal.phonegap.plugins.PinDialog/src/android/PinDialog.java | 124 | ||||
| -rw-r--r-- | plugins/hu.dpal.phonegap.plugins.PinDialog/src/ios/CDVPinDialog.h | 19 | ||||
| -rw-r--r-- | plugins/hu.dpal.phonegap.plugins.PinDialog/src/ios/CDVPinDialog.m | 61 | ||||
| -rw-r--r-- | plugins/hu.dpal.phonegap.plugins.PinDialog/www/pin.js | 13 | ||||
| -rw-r--r-- | plugins/ios.json | 7 | ||||
| -rw-r--r-- | www/js/LoginCtrl.js | 5 |
13 files changed, 353 insertions, 5 deletions
@@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<widget id="com.pliablepixels.zmninja" version="0.74" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> +<widget id="com.pliablepixels.zmninja" version="0.76" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <name>zmNinja</name> <description> High performance ZoneMinder client diff --git a/package.json b/package.json index 8c71f8ef..5f511cf8 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "org.apache.cordova.inappbrowser" ], "cordovaPlatforms": [ - "ios", - "android" + "android", + "ios" ] }
\ No newline at end of file diff --git a/plugins/android.json b/plugins/android.json index 14796dcc..c51ce331 100644 --- a/plugins/android.json +++ b/plugins/android.json @@ -41,6 +41,10 @@ "count": 1 }, { + "xml": "<feature name=\"PinDialog\"><param name=\"android-package\" value=\"hu.dpal.phonegap.plugins.PinDialog\" /></feature>", + "count": 1 + }, + { "xml": "<feature name=\"Insomnia\"><param name=\"android-package\" value=\"nl.xservices.plugins.Insomnia\" /></feature>", "count": 1 }, @@ -100,6 +104,9 @@ "de.appplant.cordova.plugin.email-composer": { "PACKAGE_NAME": "com.pliablepixels.zmninja" }, + "hu.dpal.phonegap.plugins.PinDialog": { + "PACKAGE_NAME": "com.pliablepixels.zmninja" + }, "nl.x-services.plugins.insomnia": { "PACKAGE_NAME": "com.pliablepixels.zmninja" }, diff --git a/plugins/fetch.json b/plugins/fetch.json index c3ce7777..748a4c08 100644 --- a/plugins/fetch.json +++ b/plugins/fetch.json @@ -120,5 +120,14 @@ }, "is_top_level": true, "variables": {} + }, + "hu.dpal.phonegap.plugins.PinDialog": { + "source": { + "type": "git", + "url": "https://github.com/Paldom/PinDialog.git", + "subdir": "." + }, + "is_top_level": true, + "variables": {} } }
\ No newline at end of file diff --git a/plugins/hu.dpal.phonegap.plugins.PinDialog/LICENSE b/plugins/hu.dpal.phonegap.plugins.PinDialog/LICENSE new file mode 100644 index 00000000..3b489884 --- /dev/null +++ b/plugins/hu.dpal.phonegap.plugins.PinDialog/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2014 Paldom + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/plugins/hu.dpal.phonegap.plugins.PinDialog/README.md b/plugins/hu.dpal.phonegap.plugins.PinDialog/README.md new file mode 100644 index 00000000..0f5ba3b3 --- /dev/null +++ b/plugins/hu.dpal.phonegap.plugins.PinDialog/README.md @@ -0,0 +1,43 @@ +PinDialog +========= + +PhoneGap numeric password dialog plugin for Android and iOS. Forked from https://github.com/apache/cordova-plugin-dialogs.git + +## Installation + +Latest stable release: ```phonegap local plugin add hu.dpal.phonegap.plugins.pindialog``` +or ```cordova plugin add hu.dpal.phonegap.plugins.pindialog``` + +Current state from git: ```phonegap local plugin add https://github.com/Paldom/PinDialog.git``` +or ```cordova plugin add https://github.com/Paldom/PinDialog.git``` + +## Installation - PhoneGap Build + +Add following to config.xml: ```<gap:plugin name="hu.dpal.phonegap.plugins.pindialog" />``` +or ```<gap:plugin name="hu.dpal.phonegap.plugins.pindialog" source="plugins.cordova.io" />``` + +## Supported Platforms + +- Android +- iOS + +## Usage: + + // Show pin dialog + window.plugins.pinDialog.prompt("message", callback, "title", ["OK","Cancel"]); + +Callback: + + function callback(results) + { + if(results.buttonIndex == 1) + { + // OK clicked, show input value + alert(results.input1); + } + if(results.buttonIndex == 2) + { + // Cancel clicked + alert("Cancel"); + } + }; diff --git a/plugins/hu.dpal.phonegap.plugins.PinDialog/plugin.xml b/plugins/hu.dpal.phonegap.plugins.PinDialog/plugin.xml new file mode 100644 index 00000000..95c37524 --- /dev/null +++ b/plugins/hu.dpal.phonegap.plugins.PinDialog/plugin.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<plugin xmlns="http://cordova.apache.org/ns/plugins/1.0" + id="hu.dpal.phonegap.plugins.PinDialog" + version="0.1.3"> + + <name>PinDialog</name> + + <description> + PhoneGap numeric password dialog plugin for Android and iOS. Forked from https://github.com/apache/cordova-plugin-dialogs.git + </description> + <license>MIT</license> + <keywords>phonegap,android,ios,numeric,password,pin,dialog</keywords> + + <js-module src="www/pin.js" name="PinDialog"> + <merges target="window.plugins.pinDialog" /> + </js-module> + + <!-- android --> + <platform name="android"> + <config-file target="res/xml/config.xml" parent="/*"> + <feature name="PinDialog"> + <param name="android-package" value="hu.dpal.phonegap.plugins.PinDialog"/> + </feature> + </config-file> + + <source-file src="src/android/PinDialog.java" target-dir="src/hu/dpal/phonegap/plugins" /> + + </platform> + + <!-- ios --> + <platform name="ios"> + <config-file target="config.xml" parent="/*"> + <feature name="PinDialog"> + <param name="ios-package" value="CDVPinDialog"/> + </feature> + </config-file> + + <header-file src="src/ios/CDVPinDialog.h" /> + <source-file src="src/ios/CDVPinDialog.m" /> + </platform> + +</plugin> + diff --git a/plugins/hu.dpal.phonegap.plugins.PinDialog/src/android/PinDialog.java b/plugins/hu.dpal.phonegap.plugins.PinDialog/src/android/PinDialog.java new file mode 100644 index 00000000..6be1d6e3 --- /dev/null +++ b/plugins/hu.dpal.phonegap.plugins.PinDialog/src/android/PinDialog.java @@ -0,0 +1,124 @@ +package hu.dpal.phonegap.plugins; + +import org.apache.cordova.CallbackContext; +import org.apache.cordova.CordovaInterface; +import org.apache.cordova.CordovaPlugin; +import org.apache.cordova.PluginResult; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import android.app.AlertDialog; +import android.app.ProgressDialog; +import android.content.DialogInterface; +import android.text.InputType; +import android.text.method.PasswordTransformationMethod; +import android.widget.EditText; + + +public class PinDialog extends CordovaPlugin { + + public ProgressDialog spinnerDialog = null; + + public PinDialog() { + } + + public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException { + if (action.equals("prompt")) { + + final String message = args.getString(0); + final String title = args.getString(1); + final JSONArray buttonLabels = args.getJSONArray(2); + + final CordovaInterface cordova = this.cordova; + final EditText promptInput = new EditText(cordova.getActivity()); + promptInput.setInputType(InputType.TYPE_CLASS_NUMBER); + promptInput.setTransformationMethod(PasswordTransformationMethod.getInstance()); + + Runnable runnable = new Runnable() { + public void run() { + AlertDialog.Builder dlg = new AlertDialog.Builder(cordova.getActivity()); + dlg.setMessage(message); + dlg.setTitle(title); + dlg.setCancelable(true); + + dlg.setView(promptInput); + + final JSONObject result = new JSONObject(); + + // First button + if (buttonLabels.length() > 0) { + try { + dlg.setNegativeButton(buttonLabels.getString(0), + new AlertDialog.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + try { + result.put("buttonIndex",1); + result.put("input1", promptInput.getText().toString().trim().length()==0 ? "" : promptInput.getText()); + } catch (JSONException e) { e.printStackTrace(); } + callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, result)); + } + }); + } catch (JSONException e) { } + } + + // Second button + if (buttonLabels.length() > 1) { + try { + dlg.setNeutralButton(buttonLabels.getString(1), + new AlertDialog.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + try { + result.put("buttonIndex",2); + result.put("input1", promptInput.getText().toString().trim().length()==0 ? "" : promptInput.getText()); + } catch (JSONException e) { e.printStackTrace(); } + callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, result)); + } + }); + } catch (JSONException e) { } + } + + // Third button + if (buttonLabels.length() > 2) { + try { + dlg.setPositiveButton(buttonLabels.getString(2), + new AlertDialog.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + try { + result.put("buttonIndex",3); + result.put("input1", promptInput.getText().toString().trim().length()==0 ? "" : promptInput.getText()); + } catch (JSONException e) { e.printStackTrace(); } + callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, result)); + } + }); + } catch (JSONException e) { } + } + + dlg.setOnCancelListener(new AlertDialog.OnCancelListener() { + public void onCancel(DialogInterface dialog){ + dialog.dismiss(); + try { + result.put("buttonIndex",0); + result.put("input1", promptInput.getText().toString().trim().length()==0 ? "" : promptInput.getText()); + } catch (JSONException e) { e.printStackTrace(); } + callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, result)); + } + }); + + dlg.create(); + dlg.show(); + + }; + }; + this.cordova.getActivity().runOnUiThread(runnable); + + + } + + return true; + } + +}
\ No newline at end of file diff --git a/plugins/hu.dpal.phonegap.plugins.PinDialog/src/ios/CDVPinDialog.h b/plugins/hu.dpal.phonegap.plugins.PinDialog/src/ios/CDVPinDialog.h new file mode 100644 index 00000000..415195d5 --- /dev/null +++ b/plugins/hu.dpal.phonegap.plugins.PinDialog/src/ios/CDVPinDialog.h @@ -0,0 +1,19 @@ +// +// CDVPinDialog.h +// HelloWorld +// +// +// + +#import <Foundation/Foundation.h> +#import <UIKit/UIKit.h> +#import <Cordova/CDVPlugin.h> + + +@interface CDVPinDialog : CDVPlugin <UIAlertViewDelegate>{} +@property (nonatomic, copy) NSString* callbackId; + +- (void)prompt:(CDVInvokedUrlCommand*)command; + +@end + diff --git a/plugins/hu.dpal.phonegap.plugins.PinDialog/src/ios/CDVPinDialog.m b/plugins/hu.dpal.phonegap.plugins.PinDialog/src/ios/CDVPinDialog.m new file mode 100644 index 00000000..bd33a205 --- /dev/null +++ b/plugins/hu.dpal.phonegap.plugins.PinDialog/src/ios/CDVPinDialog.m @@ -0,0 +1,61 @@ +// +// CDVPinDialog.m +// HelloWorld +// +// +// + +#import "CDVPinDialog.h" + +@implementation CDVPinDialog + +- (void)prompt:(CDVInvokedUrlCommand*)command +{ + self.callbackId = command.callbackId; + NSString* message = [command argumentAtIndex:0]; + NSString* title = [command argumentAtIndex:1]; + NSArray* buttons = [command argumentAtIndex:2]; + + UIAlertView* alertView = [[UIAlertView alloc] + initWithTitle:title + message:message + delegate:self + cancelButtonTitle:nil + otherButtonTitles:nil]; + + //alertView.callbackId = callbackId; + + int count = [buttons count]; + + for (int n = 0; n < count; n++) { + [alertView addButtonWithTitle:[buttons objectAtIndex:n]]; + } + + alertView.alertViewStyle = UIAlertViewStyleSecureTextInput; + UITextField* textField = [alertView textFieldAtIndex:0]; + + [alertView show]; + + [textField resignFirstResponder]; + [textField setKeyboardType:UIKeyboardTypeNumberPad]; + [textField becomeFirstResponder]; + +} + + +- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex +{ + CDVPluginResult* result; + + NSString* value0 = [[alertView textFieldAtIndex:0] text]; + NSDictionary* info = @{ + @"buttonIndex":@(buttonIndex + 1), + @"input1":(value0 ? value0 : [NSNull null]) + }; + result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:info]; + + [self.commandDelegate sendPluginResult:result callbackId:self.callbackId]; +} + + +@end diff --git a/plugins/hu.dpal.phonegap.plugins.PinDialog/www/pin.js b/plugins/hu.dpal.phonegap.plugins.PinDialog/www/pin.js new file mode 100644 index 00000000..0633748b --- /dev/null +++ b/plugins/hu.dpal.phonegap.plugins.PinDialog/www/pin.js @@ -0,0 +1,13 @@ +var exec = require('cordova/exec'); + + +module.exports = { + + prompt: function(message, resultCallback, title, buttonLabels) { + var _message = (message || "Message"); + var _title = (title || "Title"); + var _buttonLabels = (buttonLabels || ["OK","Cancel"]); + cordova.exec(resultCallback, null, "PinDialog", "prompt", [_message, _title, _buttonLabels]); + } + +};
\ No newline at end of file diff --git a/plugins/ios.json b/plugins/ios.json index b390a6f9..56f3a34e 100644 --- a/plugins/ios.json +++ b/plugins/ios.json @@ -29,6 +29,10 @@ "count": 1 }, { + "xml": "<feature name=\"PinDialog\"><param name=\"ios-package\" value=\"CDVPinDialog\" /></feature>", + "count": 1 + }, + { "xml": "<feature name=\"Insomnia\"><param name=\"ios-package\" value=\"Insomnia\" /></feature>", "count": 1 }, @@ -118,6 +122,9 @@ "de.appplant.cordova.plugin.email-composer": { "PACKAGE_NAME": "com.pliablepixels.zmninja" }, + "hu.dpal.phonegap.plugins.PinDialog": { + "PACKAGE_NAME": "com.pliablepixels.zmninja" + }, "nl.x-services.plugins.insomnia": { "PACKAGE_NAME": "com.pliablepixels.zmninja" }, diff --git a/www/js/LoginCtrl.js b/www/js/LoginCtrl.js index aa61325c..c88c2b46 100644 --- a/www/js/LoginCtrl.js +++ b/www/js/LoginCtrl.js @@ -117,12 +117,12 @@ function addhttp(url) { $scope.save = function () { console.log('Saving login'); - if (parseInt($scope.loginData.maxMontage) > zm.safeMontageLimit) { + /*if (parseInt($scope.loginData.maxMontage) > zm.safeMontageLimit) { $ionicPopup.alert({ title: 'Note', template: 'You have selected to view more than 10 monitors in the Montage screen. Note that this is very resource intensive and may load the server or cause issues in the application. If you are not sure, please consider limiting this value to 10' }); - } + }*/ // lets so some basic sanitization of the data // I am already adding "/" so lets remove spurious ones @@ -216,6 +216,7 @@ function addhttp(url) { ZMDataModel.zmLog ("Validating APIs at " + apiurl); $http.get(apiurl) .success (function (data) { + $ionicPopup.alert({ title: 'Login validated', template: 'Please explore the menu and enjoy zmNinja!' |
