I am trying to debug my webos app in webos ide.When I click on debug button it says Errors found in appinfo.json file while parsing. This is my appinfo.json
Link
I think the issue is how I have entered the path to my html file. The path is '/App/index.html'. Please let me know if you know how can I type the path in correct format
I guess you must specify the path as a relative path to your html file (App/index.html) not as an absolute path
You can check other app.json properties at here
I can't add the whole json to the comment, please check this one (a free sample of a basic HTML app that you can find at webostv.developer.lge.com/)
{
"id": "com.lgdev.hello-world",
"version": "2.0.0",
"uiRevision": 2,
"vendor": "LG Developer",
"type": "web",
"main": "index.html",
"title": "Hello World",
"appDescription": "Hello World",
"icon": "icon.png",
"largeIcon": "largeIcon.png",
"iconColor": "blue",
"bgColor": "white",
"splashBackground": "app_bg_1920x1080.png",
"bgImage": "app_bg2_1920x1080.png"
}
If you need to move your index.html for example to 'myappfolder' folder you must modify your appinfo.json to the correct relative path 'myappfolder/index.html'
Related
My output tree is showing duplicates and I can't figure out why. This is prototype angular project with this file tree. I can't figure out why.
src
app
components
scss
styles.scss
Here's my out put tree
My sassdoc.json config
{
"basePath": "https://mjhandy.github.io/AngularBoilerPlate/docs/sass/",
"package": {
"title": "Angular Boilerplate",
"name": "ngBoilerplate",
"description": "My boilerplate for basic, resuable, Angular components"
},
"dest": "./docs/sassdoc",
"excliude": [
"./src/scss/_mixins.scss"
],
"groups" : {
"structure" : "Structure",
"component" : "Component",
"helpers" : "Helpers",
"global" : "Global Items",
"mixins" : "Mixins"
},
"options": {
"display": {
"watermark": false
}
}
}
My run commands :
sassdoc ./src/**/* -c sassdoc.json
I ran into the same result with the following command within my package.json scripts
sassdoc 'src/assets/styles/sass/**'
According to the official sassdoc documentation they are using this library to parse glob patterns.
The ** notation matches the directory itself, its containing files and its subdirectories.
But the root directory name is suffice for the sassdoc, it will iterate over its tree structure if any.
sassdoc 'src/assets/styles/sass/*'
# or simply
sassdoc 'src/assets/styles/sass'
I'm using Foundation for Emails, which has a few unique tag names that are later parsed. Specifically, VSCode doesn't seem to like <spacer>:
How do I add <spacer> as an known/allowed tag so it's not redded out by VSCode?
You can use HTML custom data. Create a JSON file, e.g. spacer.html-data.json:
{
"version": 1.1,
"tags": [
{
"name": "spacer",
"description": "Foundation spacer",
"attributes": [
{
"name": "size",
"description": "Spacer size"
}
]
}
]
}
And include it in your VS Code JSON configuration:
"html.customData": [
"./spacer.html-data.json"
]
Note that this has to be a path relative to your opened folder/workspace.
EDIT: Oh, I just realized that this does not prevent the red colouring in this special case. Probably this is becaue spacer used to be a valid HTML tag but is deprecated now. I have no idea how to change this behaviour in VS code.
I am trying to use a wild card folder path that is being supplied by getmetadata and foreach. The actual file name within these folders ends with _Problem_1.csv however i get the following error. can anyone advise me on where i am going wrong?
{ "errorCode": "2200", "message": "ErrorCode=UserErrorSourceBlobNotExist,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=The
required Blob is missing. Folder path: client-uploads/[{\"name\":\"A001\",\"type\":\"Folder\"},{\"name\":\"A002\",\"type\":\"Folder\"},{\"name\":\"A004\",\"type\":\"Folder\"},{\"name\":\"A006\",\"type\":\"Folder\"},{\"name\":\"A623\",\"type\":\"Folder\"}]/.,Source=Microsoft.DataTransfer.ClientLibrary,'",
"failureType": "UserError", "target": "Copy data1", "details": [] }
You can try having your Copy activity inside the forEach activity and having for each items dynamic expression as below, which will get the list of all Folder names (This will also include file names if any exists in the folder you are pointing in getmetadata activity).
ForEach Activity Dynamic expression:
Items : #activity('getFolderNames').output.childItems
Here are child Items from getMetaData:
{
"childItems": [
{
"name": "A001",
"type": "Folder"
},
{
"name": "A002",
"type": "Folder"
}
],
"effectiveIntegrationRuntime": "DefaultIntegrationRuntime (West US)",
"executionDuration": 0,
"durationInQueue": {
"integrationRuntimeQueue": 0
},
"billingReference": {
"activityType": "PipelineActivity",
"billableDuration": {
"Managed": 0.016666666666666666
}
}
Than you have to use the "item().name" in the wild card file path expression field of copy activity, to get the name of folder per iteration of forEach activity.
In my sample, I have tried below concat expression to point to the correct folder path name for each iteration.
Wildcard Folder path: #{Concat('input/MultipleFolders/', item().name)}
This will return:
For Iteration 1: input/MultipleFolders/A001
For Iteration 2: input/MultipleFolders/A002
Hope this helps..
Let's say I have a public folder which is not discoverable. If I expose the File ID of one of the files for download, is it possible for an untrusted user to obtain a link to the folder which contains that file, or a link to other files within that folder? I've done a search on the Google APIs but haven't found anything relevant.
Edit:
Seems like some of you guys still don't get the question. So let me illustrate with a diagram. Let's say I have a public folder in Google Drive:
Folder A |
|-- File X
|-- File Y
|-- File Z
So the question is, if someone else has the File ID of File X, which I'm fine with, then can he get the File ID of Folder A? Or the File IDs of Files Y and Z? That's where I'm concerned.
If you create a file on Google drive it is just that public.
If you share the file with me, then I have access to it.
If i install an application that has access to my google drive account the owner of the app has access to it (Really they ahve access to all my files)
If i give a copy of the link to my friend they can access it.
I can technically also see what directory the file is in. I can then make a request to see what other files may be within this directory. If the directory is public then I have access to that information.
Only the file you set to public will be accessible.
Files within the same directory as a public file will not be public.
The parent directory will not be public just because it contains a public file.
The point with public drive files is anyone can access them without permissions. The only security you have is that Tom on the street cant just do a search and find your file, or can they will it popup in google search someday?
Update file id:
If you expose the file id then i can take the file id and download the file using the API just like you can using a public api key or using the Google APIs explorer. The file is public anyone can download it that has the id. It was also possible in the past to take the file id and use that to create a URL for download directly though the Google Drive website.
https://docs.google.com/spreadsheets/d/{FileID}/edit#gid=0
https://drive.google.com/drive/folders/{FileID}
This does not always work anymore mostly with files that are of type Google doc.
I can also use the file id to see what directory the file is in and request a list of files within that directory.
Example Testing with a given file id
https://www.googleapis.com/drive/v2/files/1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI?key={my api key}
or just use the try me on this page
Files.Get
Response
{
"kind": "drive#file",
"id": "1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI",
"etag": "\"G9mQazc6pdRCuGfUPB_oyY074Ug/MTUxNTY5MzM4NjYxNA\"",
"selfLink": "https://www.googleapis.com/drive/v2/files/1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI",
"webContentLink": "https://drive.google.com/uc?id=1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI&export=download",
"alternateLink": "https://drive.google.com/file/d/1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI/view?usp=drivesdk",
"embedLink": "https://drive.google.com/file/d/1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI/preview?usp=drivesdk",
"iconLink": "https://drive-thirdparty.googleusercontent.com/16/type/image/png",
"thumbnailLink": "https://lh3.googleusercontent.com/_vX1BrFIsR-lVnFR1-VS9tp2toDLNfE6Cf1m3RGEIG7--VQfp53OiNbrnLC_rOGmqUbfn6QHQ7c=s220",
"title": "splash.png",
"mimeType": "image/png",
"labels": {
"starred": false,
"hidden": false,
"trashed": false,
"restricted": false,
"viewed": false
},
"createdDate": "2018-01-11T09:31:51.426Z",
"modifiedDate": "2018-01-11T17:56:26.614Z",
"markedViewedByMeDate": "1970-01-01T00:00:00.000Z",
"version": "8",
"parents": [],
"downloadUrl": "https://doc-0g-6o-docs.googleusercontent.com/docs/securesc/1mngaurn1r7pdnvlih02e6t9l8me2de5/3q2i7ak140vftlc9c96evgvnsmri4m4v/1517565600000/18429462472537742596/06030588225573437243/1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI?e=download&gd=true",
"userPermission": {
"kind": "drive#permission",
"etag": "\"G9mQazc6pdRCuGfUPB_oyY074Ug/WUHObW5vTApa-BsGvLisiOGqWbA\"",
"id": "me",
"selfLink": "https://www.googleapis.com/drive/v2/files/1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI/permissions/me",
"role": "reader",
"type": "user"
},
"originalFilename": "splash.png",
"fileExtension": "png",
"md5Checksum": "108e62ba72a0b33cb4bc7628e48d2e2c",
"fileSize": "22375",
"quotaBytesUsed": "0",
"ownerNames": [
"WU JUANG CHEN"
],
"owners": [
{
"kind": "drive#user",
"displayName": "WU JUANG CHEN",
"isAuthenticatedUser": false,
"permissionId": "18429462472537742596",
"emailAddress": "XXXX#connect.hku.hk"
}
],
"lastModifyingUserName": "WU JUANG CHEN",
"lastModifyingUser": {
"kind": "drive#user",
"displayName": "WU JUANG CHEN",
"isAuthenticatedUser": false,
"permissionId": "18429462472537742596",
"emailAddress": "xxxxx#connect.hku.hk"
},
"capabilities": {
"canCopy": true,
"canEdit": false
},
"editable": false,
"copyable": true,
"writersCanShare": true,
"shared": true,
"explicitlyTrashed": false,
"appDataContents": false,
"headRevisionId": "0B-l1jDyJ1EfRZERkZnJmcUZxRHlkUzk0bEx6bmhMUzd3WXdrPQ",
"imageMediaMetadata": {
"width": 375,
"height": 812,
"rotation": 0
},
"spaces": [
"drive"
]
}
Analytics
I have your email address "emailAddress": "XXXX#connect.hku.hk" and name
A view link of the file https://drive.google.com/file/d/1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI/view?usp=drivesdk as well as a download link for it.
Note: "parents": [], should contain the ID of the parent directory for this file. I am going to assume that its either private or in your root directory. If you say that the directory for this file is public i think its an awesome feature of google not to display this.
Which would mean that the answer is if you have the file id you dont necessarily get access to the folder id.
In firefox Add-On builder there is a possibility to drop add-on preferences into the properties window in an "Extra package.json Properties" field.
The preferences for localization look like this:
{ "preferences": [
{
"type": "string",
"name": "myStringPref",
"value": "this is the default string value",
"title": "My String Pref"
}
....
]}
}
Question: How can i localize the labels of the addon-options?
Here is essential of manual localization.
create locale files in json format
create locale listing file in json format
download addon package(xpi file) from Add-on Builder
rename file extension .xpi to .zip
expand zip file
create locale folder in the root of addon
copy locale files into locale folder
copy locale listing file into root folder
zip all files and folders on root folder.
rename file extension .zip to .xpi
file tree:
my-addon
| locales.json
|
+---data
+---lib
+---locale
en-US.json
fr-FR.json
ja-JP.json
samples:
locales.json
{"locales":[
"en-US",
"fr-FR",
"ja-JP"
]}
en-US.json
{
"test": "test en-US",
"test2": "test2 en-US"
}
fr-FR.json
{
"test": "test fr-FR",
"test2": "test2 fr-FR"
}
ja-JP.json
{
"test": "test ja-JP",
"test2": "test2 ja-JP"
}
You can localize the labels of the addon preferences by add some json files into addon package file(xpi) manually.
I wrote "How To" document in Japanese, just yesterday.
You can get it through Google Translate.
I beleive that this document will help you.
http://translate.google.co.jp/translate?sl=ja&tl=en&js=n&prev=_t&hl=ja&ie=UTF-8&u=http%3A%2F%2Fbacky0175.at.webry.info%2F201310%2Farticle_4.html&act=url
Note:
Google Translate makes some weird translation. :-(
Sorry for inconvenient.
backy0175
No it's not possible to do this at the moment.