GithubHelp home page GithubHelp logo

hoodie-admin-dashboard's People

Contributors

boennemann avatar espy avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hoodie-admin-dashboard's Issues

Remove dependencies

Pocket currently depends on:

    "hoodie-app": "git://github.com/hoodiehq/hoodie-app.git",
    "hoodie-worker-users": "git://github.com/hoodiehq/worker-users.git",
    "hoodie-worker-shares": "git://github.com/hoodiehq/worker-shares.git",
    "hoodie-worker-email-out": "git://github.com/hoodiehq/worker-email-out.git"

I assume this is because it was easier to develop in isolation, but Pocket should really not depend on these things, as it is itself a dependency for hoodie-server

Pocket is dependent on Futon login

Pocket's requests to the API (for example, http://127.0.0.1:6014/_api/_users/_all_docs?include_docs=true&startkey=%22org.couchdb.user%3A%22&endkey=%22org.couchdb.user%3B%22) will fail with 403 forbidden unless the admin user in Futon is logged in.

merge app & login layouts into one

Instead of having two separate templates for different states of the user (logged in / logged out), let's just do one and show/hide the components with CSS only.

Using Bower for hoodie.admin broke something

Not sure exactly what happened, but pocket no longer runs and isn't able to find any of the hoodie.admin components, and yeoman update hoodie.admin doesn't do anything.

The weirdness is that according to your commit, app/components/hoodie.admin should have some content (https://github.com/hoodiehq/pocket/blob/8b0ff2fe41fa20fc7906c49463e7f70296b64b40/app/components/hoodie.admin), but a: this file is empty when I pull, and b: it contains a local path on your machine :) Or is it a symlink or something like that? It's a symlink, right? :D

allow more than 1 host to access the couch API

In the pocket admin UI, @espy would like to add a feature to signUp test users and mess around with them. I love that idea!

Problem is, when my app lives at pocket.dev and I open up admin.pocket.dev, I sign in as user "admin", which means each request to api.pocket.dev will send my admin session.

In order to sign up fake users right from admin, I'd therefore need alias URLs for api.pocket.dev. A wildcard matcher would be great, so it would match:

admin.api.pocket.dev => api.pocket.dev
user1.api.pocket.dev => api.pocket.dev
pommes.api.pocket.dev => api.pocket.dev

etc ..

That would allow me to make stuff like this right from pocket:

newUserHoodie = new Hoodie("user1.api.pocket.dev")
newUserHoodie.account.signUp( "[email protected]", "secret")

btw, we do at least need an extra API endpoint for the admin UI, otherwise if I'd use my app, the sessions would from my app and my app's pocket would interfere with each other.

What do you think?

pocket logs module

would be cool to make a dream mock for the pocket logs module.

I think a good logs module will help a lot to debug the bugs the hoodie app and the workers have, especially in regard of the upcoming minutes migration.

The main problem I have with the current logs are:

  1. No differentiation between: debug / info / warning / error / fatal logs
  2. Hard to follow a sequence of logs, as everything is asynchronous. For example in shares worker: First, a shares database gets created, then the security needs to be set, and then it starts to follow the _changes feed. Some sequences are even more complex. If an error happens, it's quite to hard to find out what action caused it, as meanwhile the logs show all kind of other stuff that happened in parallel

I hope 2. makes any sense. I don't know how to fix that yet, just brought it up from my current observations while debugging our workers

Wrong api subdomain

If I want to log in as an admin, pocket tries to connect to admin.admin.api.app.dev. And obviously this doesn't exists (Windows by the way, so no wildcards).

The problem is in L17175.
If the base url is admin.api.app.dev then it's going to be converted to admin.admin.api.app.dev.

Hide plugins from menu

I am making some plugins to test and a few I want to be passive like the email plugin. I noticed that in the admin dashboard it removes the email plugin from the collection on loadtime. Are you guys planning on adding a field in the package file or something where we can specify to have the plugin hidden from the admin dash side menu?

shares module

the shares worker now maintains a special shares database which has $share and $subscription objects in it.

It would be cool to have a list of all current shares and a detail view which shows all shared objects and some meta information like who created it, when it was created, what the access settings are and who subscribed to it.

Changes to $share and $subscription objects to get picked up by the shares worker, which means we could add, edit and remove shares from the admin UI quite easily.

[snug] delete unused div's

by nesting view in view, backbone is wrapping the views in div's by default.
it's unused structure and could cause problems with at least the css.

apart from that, it's working but in my opinion not good practice.

Make dashboard run w/o it's own port

@espy

As discussed the admin-dashboard will no longer run on it's own port in the future. We need to make sure the admin-dashboard app support running on a path like /hoodie/admin.

The implementation on the hoodie-server is currently WIP and lives here: https://github.com/hoodiehq/hoodie-server/tree/feat-remove-dashboard-port

The way to test this is the following:

Go to the local hoodie-admin-dashboard repo and run npm link.
Go to the local hoodie-server repo, checkout the feat-remove-dashboard-port and run npm link.
Create a new hoodie app following theses instructions: https://github.com/hoodiehq/hoodie#installation
Inside your new app's folder run: npm explore @hoodie/dev-top-level -- npm link hoodie-admin-dashboard and npm explore @hoodie/dev-top-level -- npm link hoodie-server.

You can now run npm start inside the new app's folder to start the Hoodie app.

  • Make sure everything still works on a subfolder: paths, assets, links etc.
  • Move the hoodie-admin-dashboard-UIkit into this repo and expose it in the www/assets folder

Logging in with firefox causing landing page to be empty.

after a momentary flicker of some colourful boxes, the main element on the page empties leaving me with only the sidebar containing the hoodie logo and "appName here".

It appears this happens but only for some hoodie installs.

Show status of users:

A user can be new / confirmed / or have an error.

  1. User that could not be confirmed have have "$state": "error" and an $error attribute. Here's an example:
{
   "_id": "org.couchdb.user:user/test",
   "_rev": "3-c3ee2411f47455fa0efafd0a0589e369",
   "password_scheme": "pbkdf2",
   "iterations": 10,
   "type": "user",
   "name": "user/test",
   "ownerHash": "wt3jg5m",
   "database": "user/wt3jg5m",
   "signedUpAt": "2013-05-22T12:36:15.392Z",
   "roles": [
   ],
   "derived_key": "4da3850e1912a595fc0c30afffb2ed63888200fa",
   "salt": "3ce8e4e040414bac30c51b5bf794fa73",
   "$state": "error",
   "$error": {
       "name": "conflict",
       "message": "Document update conflict.\nerror confirming user/wt3jg5m"
   }
}
  1. Confirmed users have "$state": "confirmed"
  2. New users don't have a $state attribute at all.

User's that are not confirmed or have an error should be highlighted.

make session timeout configurable

By default, it's set to only 10 minutes. That sucks, and I'd even change id be default.
Either way, would be cool to have a way to change that in pocket

Cannot serve hoodie-admin-dashboard locally

I was trying to serve the hoodie-admin-dashboard and cannot.

I did npm install bower install and grunt serve like the README tells me too, but no luck.

Here is what happened.

 ~charlotteis~  at 💻  in ~/contribute/hoodie-admin-dashboard (master)
$ grunt browserify
Loading "connect_proxy.js" tasks...ERROR
>> TypeError: Cannot read property 'prototype' of undefined

Running "browserify:vendor" (browserify) task
>> Error: module "/path/to/jquery.gridster.with-extras.js/index.js" not found from "/"
Warning: Error running grunt-browserify. Use --force to continue.

Aborted due to warnings.

 ~charlotteis~  at 💻  in ~/contribute/hoodie-admin-dashboard (master)
$ grunt browserify --force
Loading "connect_proxy.js" tasks...ERROR
>> TypeError: Cannot read property 'prototype' of undefined

Running "browserify:vendor" (browserify) task
>> Error: module "/path/to/jquery.gridster.with-extras.js/index.js" not found from "/"
Warning: Error running grunt-browserify. Used --force, continuing.

Running "browserify:app" (browserify) task

Done, but with warnings.

 ~charlotteis~  at 💻  in ~/contribute/hoodie-admin-dashboard (master)
$ grunt serve
Loading "connect_proxy.js" tasks...ERROR
>> TypeError: Cannot read property 'prototype' of undefined
Warning: Task "configureProxies:server" not found. Use --force to continue.

Aborted due to warnings.

~charlotteis~  at 💻  in ~/contribute/hoodie-admin-dashboard (master)
$ grunt serve --force
Loading "connect_proxy.js" tasks...ERROR
>> TypeError: Cannot read property 'prototype' of undefined
Warning: Task "configureProxies:server" not found. Used --force, continuing.

Done, but with warnings.

Interesting to note, when I ran npm install I got a lot of errors like this (there are more than I show here):

In file included from ../fsevents.cc:6:
../node_modules/nan/nan.h:339:13: error: no member named 'New' in
      'v8::String'
    return  _NAN_ERROR(v8::Exception::Error, errmsg);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:319:50: note: expanded from macro
      '_NAN_ERROR'
# define _NAN_ERROR(fun, errmsg) fun(v8::String::New(errmsg))
                                     ~~~~~~~~~~~~^
../node_modules/nan/nan.h:343:5: error: no member named
      'ThrowException' in namespace 'v8'
    _NAN_THROW_ERROR(v8::Exception::Error, errmsg);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:324:11: note: expanded from macro
      '_NAN_THROW_ERROR'
      v8::ThrowException(_NAN_ERROR(fun, errmsg))...
      ~~~~^
../node_modules/nan/nan.h:343:5: error: no member named 'New' in
      'v8::String'
    _NAN_THROW_ERROR(v8::Exception::Error, errmsg);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:324:26: note: expanded from macro
      '_NAN_THROW_ERROR'
      v8::ThrowException(_NAN_ERROR(fun, errmsg))...
                         ^~~~~~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:319:50: note: expanded from macro
      '_NAN_ERROR'
# define _NAN_ERROR(fun, errmsg) fun(v8::String::New(errmsg))
                                     ~~~~~~~~~~~~^
../node_modules/nan/nan.h:348:9: error: no type named
      'ThrowException' in namespace 'v8'
    v8::ThrowException(error);
    ~~~~^

Pocket dashboard as plugin

For consideration as a possible enhancement, I suggest that Pocket's dashboard might work well as plugin much like appconfig and users is handled today. This modular approach might facilitate community enhancement, or maybe even a drop in replacement if the dev desires.

Thanks for all the great work!

don't connect to 'pocket.dev' when served from localhost

on linux we're not using local-tld but just ports on localhost.

We want to connect to pocket.dev when developing pocket locally using yeoman. So I'd suggest we also test for the port number, or we make a pocket.local domain that we use for yeoman? @espy

can't login with chrome

On chrome the login page only refreshes when trying to login. Also the Sign In button greys out when the enter key is pressed and the following error is logged to console:

Uncaught TypeError: Cannot call method 'defer' of undefined

This is with Chrome 26.0.1410.63 on Ubuntu 12.10, also tried with fresh Lubuntu and Chromium and had the same issue.

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.