Git Product home page Git Product logo

app-inventor-gallery's People

Contributors

cado avatar canausa avatar chris-adler avatar derrell avatar digitaldybbuk avatar efernand avatar fturbak avatar grav3mind avatar htompkins avatar jbeteivazi avatar mbenn112 avatar mijoda avatar paulsena avatar piersquared avatar ramon-037 avatar reedspool avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

app-inventor-gallery's Issues

MApps.getAppInfo() reports incorrect Owner field

getAppInfo() attempts to hide the "owner id" field of the App from the user. In attempting to replace this field with the "Display Name" field, a query is made using the "whoami" user data, to get whoami's Display Name. This wrongfully reports that the owner of any queried App is the person who made the query. I believe instead this query should be made on "app.owner" before that value is deleted.

App Management needs remote table model instead of simple table model

There are going to be too many applications for the entire application list to be loaded into memory at one time, for the Application Management module. This module should be altered to use qx.ui.table.model.Remote instead of qx.ui.table.model.Simple so that only those records near the ones that are displayed are actually fetched.

Assigned to @adorettic

Original Creation Date/Time as Database property

It would be useful for the search feature in FindApps to be able to query on original creation date. Currently the only property regarding date in the database is 'uploadTime.' This property records the date/time of the most recent update of the app's source code. Since this can change repeatedly over the life of the App, it does not offer a solid artifact to search on. For example: I saw a really cool app in August, and remember nothing about it. It is now December and I want to find it. The developer updated the App in November. I now have no information to search upon.

Provide URL to retrieve unique images (and source zip and apk file)

At present, images, the source zip file, and the apk file are stored as data URLs. The mobile client can't support those at present, so we need to provide a means of specifying a "file" to download. This will require offering a GET api to retrieve particular images and files from an AppInfo entity, base64-decoding the requested data URL, and returning the correct MIME type and data.

Retrieve App Comments from MApps.getAppInfo()

Adding Comment retrieval to getAppInfo. This will prevent an extra round trip which is currently required to use the separate RPC for getting comments. Comments will be requested by having a "comments" field in the requestedFields object passed when the RPC is called. The comments will then be returned as an additional member of the object which is currently returned by this RPC.

MApps.getAppInfo() incorrectly writes data

MApps.getAppInfo() is a read-only function as far as the database is concerned. It does however return a formatted App object, instead of the original. At the moment, when one opens an App Info page, by clicking on an App in the gallery, everything looks great. By closing the new App Info Tab, and clicking on the very same App in the gallery again, an error is drawn. The error is from MApps.getAppInfo() trying to retrieve the App from the database, but instead getting the formatted App object it received previously.

Tag some apps as "Featured"

Please tag some apps as Featured so that I can pull actual featured apps in the homepage feed and still have something show up.

getComments() accepts number or string key

Passing either 105 or "105" to the getComments() function provides the correct results. It probably shouldn't. The actual appId (key) is 105.

This should be looked at as a general issue rearing its head in getComments(), but likely of much wider scope.

Ability to change my display name

For users to be capable of changing their display names, an RPC will be required (something like "setMyDisplayName") that takes a new display name as a parameter, and updates that user's display name. The appropriate home for this is MVisitors.js

No docu for MApps.getAppInfo()

I'm trying to use getAppInfo() in my MMobile.getInfo(). It is currently breaking because I don't know what the error parameter is and thus what to pass to it.

Previous Owner broken during Upload

Found a bug. For some reason, previous authors aren't being stored properly during new app creation. To reproduce this bug, simply "upload" a new app with anything you like in most fields, just make sure that the Previous Owners field contains some text. Then switch to another module, and back again. This error is the MApps.getAppList attempting to process an array of previous authors, where instead it only receives a string.

Add permission groups

Currently, per-RPC permissions as assigned on a per-user (visitor) basis. We should also provide groups which have permission sets, so if a user is in a group, he has the group's permissions as well as any additional permissions assigned to him explicitly.

Assigning to @reedspool.

Normal user RPCs should return owner display name instead of owner id

I need to be showing the authors' display names instead of the private owner names on the apps in the Featured Apps feed. It would be nice to be able to do this without running an extra query, especially since I think this will be a pretty common use case. Would it be possible to add the display name as part of the app data, or do some magic to return the display name instead of the owner name in the appQuery method of MApps.js?

Implement Find Apps / Search

Implement the Advanced Search capatility in the Find Apps module. This will provide a gui to the query functionality which already exists in the backend.

Base 64 Decoder broken

Currently there is a problem with how the last few bytes of the base 64 encoded string are decoded. The bug is isolated in the qx.util.Base64

mobile request crash

rpc?tag=search:description

Causes Java backtrace. The search feature may not yet be implemented, but it still shouldn't crash.
Assigned to @reedspool

Comment's "visitor" must be key, not displayName

Currently, when comments are stored, the current value of the displayName is used in the 'visitor' field. This is incorrect, because if the commenting user changes his display name, comments will still be displayed with the old name, and no one can search by that user's now-nonexistent name.

  • addComments() must save the Visitor object key (email address).
  • getComments() must replace the email address with the user's display name.

Assigned to @reedspool.

mobile tag=by_developer with wrong id yields javascript error

Issuing a tag=by_developer request with a not-found displayName causes an error to be thrown:

{"id":"tag","error":{"origin":1,"code":-1,"message":"Method threw an error: TypeError: Cannot read property "id" from undefined"}}

This looks like something may be dereferencing a visitor object without checking to be sure it exists.

Problems with addComments

There is a bug in the addComments code. I can add comments and get them back when I first open an application. Closing and opening the app tag without refreshing the browser does not affect addComments. However, after you refresh the browser, addComments starts to reuse comment uid's, effectively overwriting the ones which were previously added.

Also, in the data returned in getAppInfo, there is numComments and numRootComments. numRootComments appears to be accurately counting the number of comments added, even though some have been overwritten by addComments. numComments, however, always remains at zero.

FilterOps in Back End

I'd like to get FindOps up and running. I am assigning myself, but prolly won't get to this for a while.

What should a proper FindOps query object look like?

Suppress comments with no text

Currently, pressing "Submit Comment" when no text has been entered in the comment field, produces a 'null' comment. Comments which have no text, or contain only white space, should be prevented from being added to the database.

@mbenn112 This is assigned to you to fix in the GUI.
@reedspool, the backend code should silently ignore empty comments and comments containing only white space.

Change MApps.getAppList name to getMyAppList or similar

getAppList returns only the calling user's Apps. The function getAppListAll is very descriptive. getAppList obviously returns a subset of what getAppListAll returns, but what subset? I submit that getMyAppList would be a better name, and prevent much confusion in the future. Other suggestions are welcome.

Delete your own comments

We want people to be able to delete their own comments. This will be the first line of defense against user mistakes. I would say that we could have them edit their own comments, except for two reasons. A comment is supposedly not that much text, so a user should not feel it a pain to rewrite a comment (they can even copy and paste), and this would be a lot more work in the backend. A suggestion from the phone meeting today was for me as a user to be able to delete my own comments. What's required for this in the backend is an RPC which I can use, which can ONLY delete MY comments, and no one elses. How this looks and is attached to the frontend is a topic for Mary and Lyn's digest.

validate all input

We currently have input coming from the user (in an RPC) that is entirely unvalidated and put into the database. In some cases, the data needs conversion (e.g. tags may be converted from a series of comma-separated values into an array), and in other cases, the the type is unverified, and user-supplied invalid data can end up getting saved.

Query "contains" for database properties

When searching certain text based properties, it would be quite useful to query for text containing the search term. As it stands, only queries for text properties which exactly equal the search term can be queried. Examples of properties are the following: Tags, 'game' in 'games'; Author, 'Last' in 'FirstLast'; Description, 'fun' in 'This app is totally fun!'

Redesign "sign-in" page

Currently, the sign-in page is entirely empty except for the statement, "Please sign in." This page needs a redesign.

When it is redesigned, add a comment about the clearing cookies in the browser if login gets stuck.

GET interface

Create an interface for the mobile client, which is based on GET requests.

TypeError: Cannot read property "displayName"

I created an app called Peaches and Cream, although I didn't actually upload anything. I then saw is displayed in the set of App Icons. when I clicked on the icon, I got the following errir:

Async(undefined) exception: Server error -1: Method threw an error: TypeError: Cannot read property "displayName" from undefined

Only return email addresses in from appropriate RPCs

Currently, the mobile tag=all request is returning email addresses instead of (or in addition to) display names. Email addresses should never be returned except in the following two cases (I believe):

  • the RPC used by user management, which requires specific access privs
  • the whoAmI function, which returns details about the currently-logged-in user

Check everyplace that references ObjVisitors to be sure that the "id" field is not returned.

My Stuff module

Design layout, interactions, look/feel and create final version of My Stuff module.

deleteComment() can leave orphans

An individual comment can be deleted by deleteComment(). If that comment has children, those children become orphaned. This may or may not be a problem. We must make sure that no child operation would ever try to retrieve that now-deleted parent comment.

Permissions

The concept of permissions that was implemented in the old Java backend is no longer implemented. It will be trivial to implement now, but we need to talk about specifics.

Display name GUI

The default display name is an ugly number. The user should have the option of changing that to something more to their liking.

Mobile request should not return dataURLs

None of the mobile requests should return any App data fields which are data urls. These are the image1, image2, image3, source, and apk fields. This is useless and abundant information now, since the getdata request will return the more useful base64 decoded data. Currently the only mobile request which properly does this filtering is getinfo

deleting comments

There should be some way to remove comments without deleting them entirely. Maybe a way to just mark them as inactive?

Management: Visitors

The Visitor Management page used to work with the old, Java-based backend. It no longer fully functions, and the old permissions mechanism has been revamped entirely, so the permission list likely needs some work. This Issue is for the frontend work. See also #24 pertaining to the backend permissions work.

Assigning to Chris.

Previous Authors - storing problem

Pulled from #27 as a separate issue.

For some reason, previous authors aren't being stored properly during new app creation. To reproduce this bug, simply "upload" a new app with anything you like in most fields, just make sure that the Previous Owners field is filled with anything. Then switch to another module, and back again. This error is the MApps.getAppList attempting to process an array of previous authors, where instead it only receives a string.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.