Picker says setEnableSharedDrives() is not a function - google-picker

The Picker reference updated on April 24th. The subclass DocsView now has a function setEnableSharedDrives(), but Picker throws an exception and doesn't show the view.
Here it is a sample code:
var view = new google.picker.DocsView(google.picker.ViewId.FOLDERS);
view.setMode(google.picker.DocsViewMode.LIST);
view.setIncludeFolders(true);
view.setSelectFolderEnabled(true);
view.setEnableSharedDrives(true);
var picker = new google.picker.PickerBuilder()
.addView(view)
.enableFeature(google.picker.Feature.NAV_HIDDEN)
.enableFeature(google.picker.Feature.SUPPORT_DRIVES)
.hideTitleBar()
.setSelectableMimeTypes("application/vnd.google-apps.folder")
.setOAuthToken(token)
.setDeveloperKey(DEVELOPER_KEY)
.setCallback(pickerCallback)
.setOrigin(google.script.host.origin)
.setSize(DIALOG_DIMENSIONS.width - 2,
DIALOG_DIMENSIONS.height - 2)
.build();
picker.setVisible(true);

change setEnableSharedDrives to setEnableDrives

Related

How to list a single filetype in google picker

I want to only show files of a certain type (e.g. Spreadsheets). Is this possible?
I would have thought that specifying picker.ViewId.SPREADSHEETS would accomplish this but it appears not.
const {DocsView, DocsViewMode} = picker
var view = new DocsView(picker.ViewId.SPREADSHEETS)
view.setMimeTypes("image/png,image/jpeg,image/jpg")
view.setMode(DocsViewMode.LIST)
view.setSelectFolderEnabled(false)
var picker = new picker.PickerBuilder()
.enableFeature(picker.Feature.NAV_HIDDEN)
.setAppId(appId)
.setOAuthToken(oauthToken)
.setDeveloperKey(developerKey)
.setCallback(resolve)
.addView(view)
.build()
picker.setVisible(true)

Getting a page view element from a model class

I've got a model class and would like to get access to a ui element.
frameModule.topmost().getViewById("id") or
frameModule.topmost().page.getViewById("id")
don't work.
As I understand what you need, I hope this solution would help.
In XML, assuming that you have UI Element with an ID. You will get it in the controller. For example:
In page.xml:
<Label id="test"/>
In the binding object class in page-view-model.js, create a property that has type of label:
var labelModule = require("ui/label");
var Label = labelModule.Label;
class Someclass extends Observable {
public label: Label;
}
In page.js:
function pageLoaded(args) {
var page = args.object;
var myLabel = page.getViewById("test");
var context = new Someclass();
page.bindingContext = context;
context.label = myLabel;
}
There are many ways to get a reference to the Page object. The documentation is a good reference to learn about them: https://v7.docs.nativescript.org/ui/components/page#page-reference
To answer you question, the usual way to get a reference to the Page object inside a view model class is by using the EventData passed to each event like a tap event when a Button is tapped.
onButtonTap(args: EventData) {
const button = args.object as Button;
const page = button.page;
// ...
}

Adding CameraOverlayView to UIImagePicker

I am stuck in creating a CameraOverlayView on the UIImagePicker my Xamarin.iOS application
here is my code to launch the cameraView
{
var imagePickerControl = new UIImagePickerController();
imagePickerControl.SourceType = UIImagePickerControllerSourceType.Camera;
imagePickerControl.ShowsCameraControls = false;
//imagePickerControl.CameraOverlayView = new CameraOverlayView();
var imagePickerDelegate = new CameraImagePicker(this);
imagePickerControl.Delegate = imagePickerDelegate;
NavigationController.PresentModalViewController(imagePickerControl, true);
}
the above code helped me creating a imagepicker with no controls...
can somebody help me creating a CameraOverlayview :UIView
I m trying to create a custom UI and basic controls (with 2 imagebuttons and UI like its in instagram Camera screen)

Google Drive Picker - select folders to upload

I have my picker code as follows:
var mimetypes = "application/vnd.ms-excel," +
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet," +
"application/vnd.google-apps.spreadsheet," +
"application/vnd.ms-powerpoint," +
"application/vnd.openxmlformats-officedocument.presentationml.presentation," +
"application/vnd.google-apps.presentation," +
"application/vnd.openxmlformats-officedocument.wordprocessingml.document," +
"application/msword," +
"application/vnd.google-apps.document," +
"application/pdf,"+
"application/vnd.google-apps.folder";
var view = new google.picker.View(google.picker.ViewId.DOCS);
view.setMimeTypes(mimetypes);
var docsView = new google.picker.DocsView()
.setIncludeFolders(true)
.setMimeTypes('application/vnd.google-apps.folder')
.setSelectFolderEnabled(true);
var folderView = new google.picker.View(google.picker.ViewId.FODLERS);
folderView.setMimeTypes("application/vnd.google-apps.folder");
var picker = new google.picker.PickerBuilder()
.enableFeature(google.picker.Feature.MINE_ONLY)
.enableFeature(google.picker.Feature.NAV_HIDDEN)
.setAppId(appId)
.setOAuthToken(oauthToken)
.addView(view)
.addView(docsView)
.addView(folderView)
.addView(new google.picker.DocsUploadView())
.setSelectableMimeTypes(mimetypes)
.setDeveloperKey(developerKey)
.setCallback(pickerCallback)
.build();
picker.setVisible(true);
I have added the view to enable "setSelectFolderEnabled" but still after selecting the folder form Picker View, the "Select" button in the bottom remains disabled. I need the folder Id in callback for further processing. But I am unable to figure out how to enable the button even if a folder is selected.
Does Google Picker API only allow to select files saved in Google Drive ??
Just changed my code to this and it works :
var docsView = new google.picker.DocsView().
setIncludeFolders(true).
setSelectFolderEnabled(true);
var picker = new google.picker.PickerBuilder()
.enableFeature(google.picker.Feature.MINE_ONLY)
.enableFeature(google.picker.Feature.NAV_HIDDEN)
.setAppId(appId)
.setOAuthToken(oauthToken)
.setDeveloperKey(developerKey)
.addView(docsView)
.setCallback(pickerCallback)
.build();
picker.setVisible(true);
Try to add the google.picker.​ViewId.FOLDERS viewId in the addView. I think you can't select folders due to it not being set in the PickerView.Builder. More information about the View Descriptions can be found on the Showing Different Views of the Picker API documentation.
After that, determine if you have write scopes for you to upload files to Drive.

Get kendo datasource independent of widget

From a grid I can get the data source using:
var ds = $(#mygrid).data("kendoGrid").dataSource;
or from a listview:
var ds = $(#mylist).data("kendoListView").dataSource;
But how do I get it if I do not know if its a grid or listview (or scheduler)?
For example:
// Refresh data for any dataSource based control:
$(#myControl).data("???").dataSource.read();
You can get the widget of an object like this:
var control = kendo.widgetInstance($('#myControl'), kendo.ui);
Then you could check if there is a dataSource, and do something with it:
if(control.dataSource) {
control.dataSource.read();
}

Resources