Giter Site home page Giter Site logo

powerlineapp / powerline-mobile Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 16.0 127.93 MB

License: Other

JavaScript 65.70% Java 4.60% C 0.03% C++ 2.13% Objective-C 12.03% CSS 10.97% HTML 2.95% C# 1.34% QML 0.06% Shell 0.01% CoffeeScript 0.18% Ruby 0.01%
civic-tech javascript powerline

powerline-mobile's People

Contributors

attilaher avatar austinpapp avatar bakbanga avatar devotebest avatar eriklouis129 avatar habibillah avatar jterps08 avatar petervojtek avatar rudjdev avatar tobias2016 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

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

powerline-mobile's Issues

Home screen - switching between groups is not filtering activity items properly

  1. I login as JTest1
  2. on Home page, All tab is active, and I see the activity item feed (e.g. "Post made for Bucklin group.").
  3. I click tab Bucklin and the feed is empty (I expected to see there at least the "Post made for Bucklin group."
  4. I click the All tab. I see no items in the feed (feed is empty) -- I expected here to see the same activity items as in step 2.

@jterps08 , can you please confirm what is the desired behaviour?

Newsfeed Red Dots for Priority Zone Items

The newsfeed used to display "red dots" next to items that were considered priority zone items. The counters represent the number of red dot items. For example, if the user has 7 priority zone items in the All feed, the All counter shows 7 and the first 7 items in the newsfeed each have red dots. The red dot disappears when the item is no longer in the priority zone. This functionality should still work, but it depends on newsfeed data to test.

Group Selector Filters

The Filters in the Group Selector do not work. They should filter the newsfeed to show content for that specific group. The “All” filter should show content from all of the user’s groups. The country group button should only show content from the user's country group. The save the whales group button should only show the Save the Whales group content, etc.

The More button should display the current filter if not All, town, state, or country. To clarify, the group selector always has five buttons shown: All, Town, State, Country, More... When the user taps the "More" button, the addition tiles of other groups should appear. When a group tile is selected (e.g. "Save the Whales"), the More button is supposed to show that label while maintaining the "..." three-dots icon. It should use the acronym for the group if available.

Group Selector Counters

Each tile in the Group Selector should display a counter with the number of unread/unanswered “leader” items in that group (we call this “priority zone content”). The backend provides activities in the sort order as described below. The Group Selector counters should always count the number of Priority Zone items. So, if there are 3 priority zone items in Save the Whales and 4 priority zone items in United States, then the All counter shows 7, the 3-person newsfeed icon shows 7, the US icon shows 4, and the Save the Whales icon shows 3.

This logic already existed in the app on the frontend, but I don't think the counters have been working correctly because of the newsfeed data not loading properly. I want to make sure that I gave all of this description so that you could better understand how its supposed to work.

(Backend sorting information below)
Prioritized Zone, listed chronologically

  • All unread Petitions, unread Discussions, unanswered polls, unanswered fundraisers, unanswered events, unanswered boosted posts that are not expired
  • Note: Counters/badges reflect the number of items that fall within this zone. Notification alerts are sent for everything in this zone.

Non-Prioritized Zone, listed chronologically beginning _after _the oldest priority item

  • All Non-Boosted User Posts and Petitions that are not expired
  • All previously-prioritized content that has been read (Petition/Discussion) or answered (Poll/Event/Fundraiser/Boosted Post) - the flag needs to be switched from true to false once the user has read the petition, read the discussion, answered the poll/fundraiser/event, or answered a boosted post. The mobile app will tell the server when a petition or discussion has been read. The server will automatically update the flag when a poll/fundraiser/event has been answered or a boosted post has been answered.
  • Note: Non-boosted user posts are always treated chronologically with no special prioritization. Boosted user posts are prioritized like leader's posts.

Expired Zone, listed chronologically beginning after the oldest non-expired, non-priority zone item.

  • All other activities that do not fit into the above two categories.

Friend Finder

We have added an endpoint that receives "hashed" e-mail addresses and phone numbers from the user and returns the same hashed e-mail addresses that are associated to an existing Powerline account. This is how we will be able to scan the user's contact address book and see 'who they already know' on Powerline already. The mobile app will scan the user's address book, send hashed e-mail address (or phone numbers) from user's address book to the Powerline server which will return the hashes of existing Powerline users so that the app can display a list of people that the user can request to follow... What does this mean exactly? Add a button to the Main Menu called "Find Friends". When tapped, this button will display the same screen as the Splash screen (Powerline logo) with a button that says "Search Address Book Now". When the Search Address Book Now button is pressed, the app will hash the e-mail addresses and phone numbers in the user's address book and send them to the Powerline server. Any returned hashes will be of registered Powerline users and those registered user's names should be displayed (with the same format/template as My Influences screen that lists group members along with a Follow button next to each person's name). Their avatar and name will link to that user's profile. The follow button will behave just like the follow button in the newsfeed. Igor can clarify the hash method - I believe it's SHA1. Igor has also built the endpoint.

Correct UI Favorite Button & List Performance

Favorite buttons should toggle yellow/grey.

If yellow, the item appears in the Favorites list (accessed from the Main Menu). If grey, the item disappears from Favorites list.

The Favorites list itself should show all items with Yellow star (there should be no group selector. only a back button to return to the home screen). There should be a back button from Favorites list back to Home screen.

Reference: See #21 for background information.

Known Logout Issue

User installs app.
User logs in with Facebook or with manual credentials.
User is logged in successfully.
User logs out.
User tries to log back in.
Login process fails.

Favorites Concept

Add ability to bookmark certain posts for easy viewing later. Should support separate list of Favorites as well as a Favorite button on every single post.

Unable to View Items in "Question Template" Screen

User cannot open any item when tapping on the item in the newsfeed (content does not load on next screen). When user taps item in the newsfeed, it should open the item in the 'question template' screen. This question template screen is currently not loading correctly. It should load posts, petitions, discussions, fundraisers, and events with answer choices (if required), attachments, etc and comments, etc.

Unstable UI Behavior

The home screen UI is periodically unstable. The title bar element/row (menu button + title) disappears and group selector element/row disappears randomly as well. It is unclear why this happens. It seems the following events trigger this to occur.

Triggered events:

  1. Tapping a filter button on group selector
  2. Tapping Add Group button on group selector.
  3. Visiting Favorites List and returning to Home screen.
  4. Opening an item in newsfeed and returning to Home screen.
  5. Others TBD and listed as discovered.

View/Edit User Profile

dev environment

When updating the user's profile, the app provides an error that the "value is already used" for the e-mail address field even if the e-mail address wasn't changed as part of the edit exercise. If I try to update the e-mail address, it still gives me an error.

I wonder if this is related to new user registration with e-mail problem.

To reproduce:
Menu>Edit Profile
Tap "Edit" pencil icon.
Change bio (or any other field)
Tap "Save" floppy-disk icon.
Error occurs for e-mail field during save.

Staying Logged in After Registration & First Login

I should be able to register with or without Facebook with no problem and stay logged in on the user’s device after the new user's first login. (The user should stay logged in after completing registration).

When I log out manually and log back in, the app should work with no problem. Otherwise, user should stay logged in if "stay logged in" option is true (default true).

Follow All group Members

Pending completion of issue #12. This will be a button on the Group Members screen that sends follow requests to all members of the group. The button "Follow All Members" will have a confirmation dialog box that says "Send follow request to every group member? (Not recommended!)" If Yes is selected, another note pops up saying "Follow requests sent to all group members. You can manage these in My Influences."

Correct UI Muting Button Performance

Muting buttons should toggle blue/grey.

For any post the user authored, the notifications bell-icon is blue (on) by default.
For any post the user did not author, the notifications bell-icon is grey (off) by default.

Push notifications for that post should be updated accordingly to backend subscription endpoints. If blue, notifications are on. If grey, notifications are off.

See #19 and #20 and #16 for background information.

My Groups Not Working

dev environment

The app is not displaying the different groups that the test user is linked to. It is not showing them in the Group Selector (per Issue #35) and it is not showing them in My Groups screen either. The test user is linked to several groups. All of the user's groups should be listed in My Groups screen.

There might be a backend API change that caused this.

Membership List

We added an endpoint that returns all members of a group. We need you to add a button to the Group Profile screen called "Group Members". When tapped, this button will display a screen (with same format/template as the My Influences screen) that lists group members along with a Follow button next to each person's name. Their avatar and name will link to that user's profile. The follow button should look like and behave just like the follow button in the newsfeed. Please be sure avatar references incorporate the imgix call appropriately.

Unable to Login/Register with Facebook

Dev environment

User taps the "Register/Login with Facebook" button on the login screen.
If user is already registered, tapping this button should log the user in. (It doesn't)
If user is not registered, tapping this button should proceed to registration pages pre-filled with available information (It doesn't).

This is related to the plugin update probably.

For hands-on example of how this feature is supposed to work, reference production app in app stores.

Favorites Screen Title and Button Issue

When the user selects "Favorites" from the Main Menu, the Favorites screen should be titled "Favorites" (instead of Powerline) and the Menu '=' icon should be replaced with a back arrow button. It should only be a feed (no group selector, and no icons for newsfeed/social-activity-feed/announcements).

Edit/Delete Posts

Edit/Delete buttons should appear on any post I authored. They should not appear on posts I did not author.

The UI is supposed to display an Edit (pencil) icon and a Delete (trashcan) icon on any post I have authored. This was previously implemented in PR #15

Group Profile Membership List Not Appearing

The membership list should appear when user taps on membership count in Group Profile page. Currently no list appears.

The membership list screen should display all group members and allow the user to tap on any individual user listed to view their profile. The membership list screen should also display a Follow All Members button that displays a warning confirmation dialog box when the user taps it. Mockup below - this was previously implemented in PR #26 or #24

screenshot_2016-03-03-10-36-06

Registration DatePicker

User unable to select date during manual registration with e-mail. Must be able to utilize native OS date picker.

Home Screen Group Selector

Upon logging in with the test credentials, the "All" button is shown in the group selector, but it is missing the town, state/province, and country group buttons as well. It should also show any other groups that the user has joined (including EU or AU groups if registering with an address in Europe or Africa).

The app does not seem to be picking up which groups the user is associated with. The More Button disappears when the user logs out and logs in again.

Will update with screenshot examples

#main page throws Error: [$resource:badcfg]

ionic.bundle.min.js:139 Error: [$resource:badcfg] http://errors.angularjs.org/1.4.3/$resource/badcfg?p0=query&p1=object&p2=array&p3=GET&p4=https%3A%2F%2Fapi-dev.powerli.ne%2Fapi%2Fannouncements
    at Error (native)
    at http://localhost:8100/lib/ionic/js/ionic.bundle.min.js:37:416
    at k.then.p.$resolved (http://localhost:8100/lib/angular-resource/angular-resource.min.js:9:354)
    at http://localhost:8100/lib/ionic/js/ionic.bundle.min.js:151:182
    at n.$eval (http://localhost:8100/lib/ionic/js/ionic.bundle.min.js:165:493)
    at n.$digest (http://localhost:8100/lib/ionic/js/ionic.bundle.min.js:163:9)
    at n.$apply (http://localhost:8100/lib/ionic/js/ionic.bundle.min.js:166:269)
    at l (http://localhost:8100/lib/ionic/js/ionic.bundle.min.js:118:152)
    at F (http://localhost:8100/lib/ionic/js/ionic.bundle.min.js:122:187)
    at XMLHttpRequest.K.onload (http://localhost:8100/lib/ionic/js/ionic.bundle.min.js:123:220)(anonymous function) @ ionic.bundle.min.js:139

https://docs.angularjs.org/error/$resource/badcfg

Facebook Login / API Change

Per the e-mail I forwarded, the Facebook change requires our action by August 6th. We have time, but we may want to address this as part of the fix for #66

unable to add comment to post

in dev env, In home screen in activity feed, I click Reply button under a post.
I am forwarded to this screen http://localhost:8100/#/petition/undefined?focus=add-comment.

When I insert text into the comment text field and press button, I receive following error:

ionic.bundle.min.js:139 TypeError: Cannot read property 'id' of undefined
    at n.$scope.reply (discussion.js:147)
    at fn (eval at compile (ionic.bundle.min.js:1), <anonymous>:4:206)
    at f (ionic.bundle.min.js:283)
    at n.$eval (ionic.bundle.min.js:165)
    at n.$apply (ionic.bundle.min.js:166)
    at HTMLFormElement.<anonymous> (ionic.bundle.min.js:283)
    at HTMLFormElement.dispatch (jquery.js:4435)
    at HTMLFormElement.r.handle (jquery.js:4121)
    at n (ionic.bundle.min.js:22)
    at t (ionic.bundle.min.js:22)
    at HTMLDocument.r (ionic.bundle.min.js:22)

I guess the problem is that some object ID is not set properly (undefined): http://localhost:8100/#/petition/undefined?focus=add-comment

also following error occur in js console at the same time:

GET https://api-dev.powerli.ne/api/micro-petitions/undefined/comments/ 404 (Not Found)

'Register via Facebook' button click fails with "TypeError: Cannot read property 'login' of undefined"

ionic.bundle.min.js:139 TypeError: Cannot read property 'login' of undefined
    at Object.login (session.js:273)
    at n.$scope.facebookLogin (login.js:51)
    at fn (eval at compile (ionic.bundle.min.js:243), <anonymous>:4:230)
    at ionic.bundle.min.js:446
    at n.$eval (ionic.bundle.min.js:165)
    at n.$apply (ionic.bundle.min.js:166)
    at HTMLButtonElement.<anonymous> (ionic.bundle.min.js:446)
    at HTMLButtonElement.dispatch (jquery.js:4435)
    at HTMLButtonElement.r.handle (jquery.js:4121)
    at n (ionic.bundle.min.js:22)
    at t (ionic.bundle.min.js:22)
    at HTMLDocument.r (ionic.bundle.min.js:22)(anonymous function) @ ionic.bundle.min.js:139(anonymous function) @ ionic.bundle.min.js:111$apply @ ionic.bundle.min.js:166(anonymous function) @ ionic.bundle.min.js:446dispatch @ jquery.js:4435r.handle @ jquery.js:4121n @ ionic.bundle.min.js:22t @ ionic.bundle.min.js:22r @ ionic.bundle.min.js:22

Newsfeed Group Titles in Item Container

Each post in the newsfeed should show the group the post was made next to the user's name (e.g. Jesse Chen | United States of America). Currently the group is not showing in the container correctly. Other UI elements in the container may also not be showing correctly (comment counter)- it is unclear due to lack of newsfeed data.

Notification Action Buttons (Non-leader)

Notification Action Buttons Scope - For each of these existing notifications, we want to add the following action buttons. Ignore is easy. Open is easy. The others are different and will require the callbacks: 1) Approve a received follow request, 2) Join/accept a received group invite, 3) Upvote a post [boosted or from a followed user], 4) Downvote a post [boosted or from a followed user].

  • NOTIFICATION EVENT
  • Button 1 Action
  • Button 2 Action
    -** Social @Mention**
  • Button 1: Open
  • Button 2: Ignore
  • Social Follow Request
  • Button 1: Approve (also opens up Social Influences tab after)
  • Button 2: Ignore
  • Social Post-created-by-Followed-User
  • Button 1: Upvote (also opens up item after, preferably uses Upvote double-arrow from newsfeed quick action bar)
  • Button 2: Open
  • Automatic Boosted Post
  • Button 1: Upvote (also opens up item after, preferably uses Upvote double-arrow icon from newsfeed quick action bar)
  • Button 2: Downvote (also opens up item after, preferably uses Downvote double-arrow icon from newsfeed quick action bar)
  • Manual Boosted Post
  • Button 1: Upvote (also opens up item after, preferably uses Upvote double-arrow icon from newsfeed quick action bar)
  • Button 2: Downvote (also opens up item after, preferably uses Downvote double-arrow icon from newsfeed quick action bar)
  • Group Invite
  • Button 1: Join (also opens up group profile page)
  • Button 2: Ignore
  • Group Permissions Changed
  • Button 1: Open
  • Button 2: Ignore

This will likely require the latest version of the https://github.com/phonegap/phonegap-plugin-push plugin.

Picture Preview

Ability to view an attached picture to any leader's post.

Edit-Delete Comments

For the UI, add an "Edit" pencil icon and "Delete" trashcan icon in the menu bar that appears under the comment when the user taps "..." button. Deleted comments should show "This post was deleted by author" in comment and "(Deleted)" in the author label (so that comment tree integrity can stay in tact).
5) Membership List w Follow Buttons ($125) - We added an endpoint that returns all members of a group. We need you to add a button to the Group Profile screen called "Group Members". When tapped, this button will display a screen (with same format/template as the My Influences screen) that lists group members along with a Follow button next to each person's name. Their avatar and name will link to that user's profile. The follow button should look like and behave just like the follow button in the newsfeed. Please be sure avatar references incorporate the imgix call appropriately.

Registration ZipCode / First E-mail Address Field Error

User enters account information on page 1 of registration successfully.
Next.
User enters contact information on page 2. User's address fields are "auto-filled" correctly with Google assistance for street address field.
User enters remaining required information correctly.
User taps "register" - error thrown for Zipcode and first e-mail address fields "Correct the errors and try again" (but no error exists).

User unable to complete registration

Avatar/Picture Loading

Dev environment

The user avatars in the newsfeed are messed up. It should show the user's default avatar (loaded through imgix) or the ng-letter avatar if no avatar is present. This seems to be all image avatars throughout the app (My Representatives, My Influences, etc.) - I believe this is an ​_Imgix_​ implementation issue. contact me for imgix info if needed.

Edit/Delete Comments Buttons Not Appearing

Not Able to Test (Comments not loading): Edit/Delete buttons should appear on any comment I authored. They should not appear on any comments I did not author.

Please see issues #10 for details. This was previously implemented in PR #15

Edit-Delete Posts

The API can now support edit and delete of a post under certain conditions. The UI should show "Edit" pencil icon and "Delete" trashcan icon in the right-hand corner (same line as the author's name, see attached). Keep in mind that we will need space for the "Mute" speaker icon for author notifications in the future. These icons are only shown to the post author. Deleted posts are not "shown" in the user's feed. When user taps Edit, the post description label changes to a text field and the Edit label changes to "Save". "Delete" shows "Are you sure you want to Delete?"...

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.