Code Monkey home page Code Monkey logo

agenda-ui's Introduction

DEPRECIATED

Try https://github.com/agenda/agendash

Agenda UI

A UI to view Agenda jobs.

Agenda UI Screenshot

Install

npm install --save agenda-ui

Usage

The Agenda UI is middleware you can mount at a path in your express app.

var express = require('express');
var Agenda = require('agenda');
var agendaUI = require('agenda-ui');

var app = express();
var agenda = new Agenda(...)

app.use('/agenda-ui', agendaUI(agenda, {poll: 1000}));

Documentation

agendaUI(agendaInstance, options)

The first argument is the agenda instance. The second is an options object. Currently the only options is poll. This sets the interval the app polls for chnages. It can also be set to false to not poll at all.

Todo and Ideas

  • pagination
  • more human friendly countdown time format
  • a way to view a specific job (i.e. /jobs/:jobId)
  • run/cancel job
  • tests

Developing

This is an Ember app that gets built on prepublish.

To build the app, you will need Bower installed globally (npm install bower -g). After Bower is available, run npm install and then bower install in the app/ directory.

To run the application locally with sample jobs, run npm run dev and ember serve in the /app directory, then visit http://localhost:3022/.

License

(The MIT License)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

agenda-ui's People

Contributors

3choboomer avatar albert-iv avatar moudy avatar sogko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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

agenda-ui's Issues

Cannot read property 'count' of undefined

TypeError: Cannot read property 'count' of undefined
    at Store.count (/home/bob/files/node_modules/agenda-ui/lib/store.js:41:37)
    at Store.definitions (/home/bob/files/node_modules/agenda-ui/lib/store.js:69:26)
    at /home/bob/files/node_modules/agenda-ui/lib/api.js:13:11
    at Layer.handle [as handle_request] (/home/bob/files/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/bob/files/node_modules/express/lib/router/route.js:131:13)
    at Route.dispatch (/home/bob/files/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/home/bob/files/node_modules/express/lib/router/layer.js:95:5)
    at /home/bob/files/node_modules/express/lib/router/index.js:277:22
    at Function.process_params (/home/bob/files/node_modules/express/lib/router/index.js:330:12)
    at next (/home/bob/files/node_modules/express/lib/router/index.js:271:10)
    at Function.handle (/home/bob/files/node_modules/express/lib/router/index.js:176:3)
    at router (/home/bob/files/node_modules/express/lib/router/index.js:46:12)
    at Layer.handle [as handle_request] (/home/bob/files/node_modules/express/lib/router/layer.js:95:5)
    at trim_prefix (/home/bob/files/node_modules/express/lib/router/index.js:312:13)
    at /home/bob/files/node_modules/express/lib/router/index.js:280:7
    at Function.process_params (/home/bob/files/node_modules/express/lib/router/index.js:330:12)

``

Main font missing

Hi,

I'm using Agenda UI 0.0.5. I have this issue : the main fonts aren't imported, so Agenda UI displays with (beautiful !) Times.

Not sure if I missed something, or there is directly :
body{font-family:"Proxima Nova","Helvetica Neue"}
without any @font-face.

Please add the missing fonts, or add sans-serif at the end of the font-family attribute :)

Wrong release 0.0.7

Steps to reproduce:

  • Install specified latest version
npm install [email protected]
  • Or download release:
wget https://github.com/moudy/agenda-ui/archive/v0.0.7.zip
  • Open the code, file lib/store.js

On Github Store constructor has _collection property:

var Store = module.exports = function (agenda) {
  if (!agenda) {throw new Error('agenda is undefined. Check agenda config.');}
  this.agenda = agenda;
  this.collection = agenda._collection;
};

In downloaded package you will see property name called _db and no error throwing:

var Store = module.exports = function (agenda) {
  this.agenda = agenda;
  this.db = agenda._db;
};

Actually it doesn't work with [email protected], request for http://localhost:3030/agenda/definitions if failing with error:

TypeError: Cannot read property 'count' of undefined
    at Store.count ({PROJECT_DIR}/node_modules/agenda-ui/lib/store.js:41:37)
    at Store.definitions ({PROJECT_DIR}/node_modules/agenda-ui/lib/store.js:69:26)
    at {PROJECT_DIR}/node_modules/agenda-ui/lib/api.js:13:11
    at Layer.handle [as handle_request] ({PROJECT_DIR}/node_modules/express/lib/router/layer.js:82:5)
    at next ({PROJECT_DIR}/node_modules/express/lib/router/route.js:100:13)
    at Route.dispatch ({PROJECT_DIR}/node_modules/express/lib/router/route.js:81:3)
    at Layer.handle [as handle_request] ({PROJECT_DIR}/node_modules/express/lib/router/layer.js:82:5)
    at {PROJECT_DIR}/node_modules/express/lib/router/index.js:234:24
    at Function.proto.process_params ({PROJECT_DIR}/node_modules/express/lib/router/index.js:312:12)
    at {PROJECT_DIR}/node_modules/express/lib/router/index.js:228:12

It happens because agenda instance has _collection property, but not _db.

Use template-literal instead of EJS

Template Literal is fastest, smallest and simplest template engine, because it use JS's literal template feature.

It's 55 times faster than EJS, and it also use less CPU and RAM ressources, so it may be a good idea to use it instead of EJS ๐Ÿ˜€

Basic implementation is broken

This is extremely bad practice to use app.use and to create your own express() instance.

The API should be modularized and exposed so that users can easily plug this into their existing apps.

npm installs incorrectly

I ran npm install agenda-ui --save today and looked into node_modules/agenda-ui and I see these files/directories:

README.md
/assets
index.js
/lib
/node_modules
package.json

This doesn't match what's in GitHub....

Locked/ Not Finished/ Running Tasks

We had an issue where some tasks would just never complete or would take a long time to complete and these would then never show up in the UI.

I wrote a query in Mongo to get these tasks db.agendaJobs.find({lastRunAt: {$ne: null},lastFinishedAt:null}).

My Ember.js skills are non-existant and would really appreciate it if someone could add this to agenda-ui.

Also the development environment have multiple errors when running npm install and bower install.

Show current time

It would be nice to see what is the current time in the machine, somewhere in the UI.

Thanks,
Franklin

TypeError: Cannot read property 'count' of undefined

After running npm update with version 0.7.9. I am seeing this error.

2016-02-06 09:01:35.798 xcodebuild[61573:10882989] [MT] PluginLoading: Required plug-in compatibility UUID F41BD31E-2683-44B8-AE7F-5F09E919790E for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/Unity4XC.xcplugin' not present in DVTPlugInCompatibilityUUIDs
  CXX(target) Release/obj.target/kerberos/lib/kerberos.o
  CXX(target) Release/obj.target/kerberos/lib/worker.o
  CC(target) Release/obj.target/kerberos/lib/kerberosgss.o
../lib/kerberosgss.c:509:13: warning: implicit declaration of function 'gss_acquire_cred_impersonate_name' is invalid in C99 [-Wimplicit-function-declaration]
        maj_stat = gss_acquire_cred_impersonate_name(&min_stat,
                   ^
1 warning generated.
  CC(target) Release/obj.target/kerberos/lib/base64.o
  CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o
  SOLINK_MODULE(target) Release/kerberos.node
  SOLINK_MODULE(target) Release/kerberos.node: Finished
[email protected] node_modules/agenda
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”€ [email protected] ([email protected])
โ”œโ”€โ”€ [email protected] ([email protected])
โ”œโ”€โ”€ [email protected] ([email protected])
โ””โ”€โ”€ [email protected] ([email protected], [email protected])
Example app listening on port 8081!
TypeError: Cannot read property 'count' of undefined
    at Store.count (/var/app/current/node_modules/agenda-ui/lib/store.js:41:37)
    at Store.definitions (/var/app/current/node_modules/agenda-ui/lib/store.js:69:26)
    at /var/app/current/node_modules/agenda-ui/lib/api.js:13:11
    at Layer.handle [as handle_request] (/var/app/current/node_modules/express/lib/router/layer.js:95:5)
    at next (/var/app/current/node_modules/express/lib/router/route.js:131:13)
    at Route.dispatch (/var/app/current/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/var/app/current/node_modules/express/lib/router/layer.js:95:5)
    at /var/app/current/node_modules/express/lib/router/index.js:277:22
    at Function.process_params (/var/app/current/node_modules/express/lib/router/index.js:330:12)
    at next (/var/app/current/node_modules/express/lib/router/index.js:271:10)
TypeError: Cannot read property 'count' of undefined
    at Store.count (/var/app/current/node_modules/agenda-ui/lib/store.js:41:37)
    at Store.definitions (/var/app/current/node_modules/agenda-ui/lib/store.js:69:26)
    at /var/app/current/node_modules/agenda-ui/lib/api.js:13:11
    at Layer.handle [as handle_request] (/var/app/current/node_modules/express/lib/router/layer.js:95:5)
    at next (/var/app/current/node_modules/express/lib/router/route.js:131:13)
    at Route.dispatch (/var/app/current/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/var/app/current/node_modules/express/lib/router/layer.js:95:5)
    at /var/app/current/node_modules/express/lib/router/index.js:277:22
    at Function.process_params (/var/app/current/node_modules/express/lib/router/index.js:330:12)
    at next (/var/app/current/node_modules/express/lib/router/index.js:271:10)
TypeError: Cannot read property 'count' of undefined
    at Store.count (/var/app/current/node_modules/agenda-ui/lib/store.js:41:37)
    at Store.definitions (/var/app/current/node_modules/agenda-ui/lib/store.js:69:26)
    at /var/app/current/node_modules/agenda-ui/lib/api.js:13:11
    at Layer.handle [as handle_request] (/var/app/current/node_modules/express/lib/router/layer.js:95:5)
    at next (/var/app/current/node_modules/express/lib/router/route.js:131:13)
    at Route.dispatch (/var/app/current/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/var/app/current/node_modules/express/lib/router/layer.js:95:5)
    at /var/app/current/node_modules/express/lib/router/index.js:277:22
    at Function.process_params (/var/app/current/node_modules/express/lib/router/index.js:330:12)
    at next (/var/app/current/node_modules/express/lib/router/index.js:271:10)

Empty feed

Hi,

I had this issue with agenda 0.6.17 and agenda-ui 0.0.5.
I tried to upgrade to agenda 0.6.26 and agenda-ui 0.0.6 and had the same issue.

I have 5 jobs in my agenda. They are shown in the sidebar, but not in the feed. I can provide screenshots, but I'm not sure this will help. It's really empty. Even if I click on the jobs in the sidebar.

Tell me if you need more infos to reproduce this.

Internal Server Error and Error while processing route: jobs.feed on base install of agenda 0.9.1

vendor.js:27614 Error while processing route: jobs.feed
console.error	@	vendor.js:27614
logError	@	vendor.js:38037
error	@	vendor.js:37994
triggerEvent	@	vendor.js:38085
trigger	@	vendor.js:58530
trigger	@	vendor.js:58375
(anonymous)	@	vendor.js:58180
tryCatch	@	vendor.js:58969
invokeCallback	@	vendor.js:58981
publish	@	vendor.js:58952
publishRejection	@	vendor.js:58894
(anonymous)	@	vendor.js:42220
invoke	@	vendor.js:13785
flush	@	vendor.js:13835
end	@	vendor.js:13298
run	@	vendor.js:13353
apply	@	vendor.js:31533
run	@	vendor.js:30150
hash.error	@	vendor.js:63704
fire	@	vendor.js:3214
fireWith	@	vendor.js:3326
done	@	vendor.js:9372
callback	@	vendor.js:9780

GET http://localhost:3000/agenda-ui/definitions 500 (Internal Server Error)
send	@	vendor.js:9726
ajax	@	vendor.js:9271
(anonymous)	@	vendor.js:63707
initializePromise	@	vendor.js:59016
Promise	@	vendor.js:60612
ajax	@	vendor.js:63691
findAll	@	vendor.js:63207
_findAll	@	vendor.js:73272
fetchAll	@	vendor.js:72290
findAll	@	vendor.js:72271
find	@	vendor.js:71888
model	@	app/routes/jobs.js:10
apply	@	vendor.js:31532
superWrapper	@	vendor.js:31109
deserialize	@	vendor.js:36402
applyHook	@	vendor.js:58641
runSharedModelHook	@	vendor.js:56667
getModel	@	vendor.js:56893
(anonymous)	@	vendor.js:58515
tryCatch	@	vendor.js:58969
invokeCallback	@	vendor.js:58981
publish	@	vendor.js:58952
(anonymous)	@	vendor.js:42220
invoke	@	vendor.js:13785
flush	@	vendor.js:13835
end	@	vendor.js:13298
run	@	vendor.js:13353
apply	@	vendor.js:31532
run	@	vendor.js:30150
runInitialize	@	vendor.js:15590
fire	@	vendor.js:3214
fireWith	@	vendor.js:3326
ready	@	vendor.js:3538
completed	@	vendor.js:3569

Google Calendar

What you think about show jobs like Google Calendar? (Month, Week, Day) ?

I was seeking for a UI like that and think this one is a good start point.

How to run agenda-ui against an express app that uses agenda

I'm confused as how this module is used.

I have an express app and have done the following as per the readme instructs.

var express = require('express');
var Agenda = require('agenda');
var agendaUI = require('agenda-ui');

var app = express();
var agenda = new Agenda(...)

app.use('/agenda-ui', agendaUI(agenda, {poll: 1000}));

then from the root of my express app:
~> cd node_modules/agenda-ui

npm install

but then there was no bower install in the app/ directory. so I couldn't run the bower install

When I go to: localhost//agenda-ui I get 404. I'm not quite sure what's going on.

Could you instruct as how I can run agenda-ui against my express app that uses agenda. ...? thanks

Unable to Build for Development

Was looking to see how hard/ easy it would be to set up a job view (/job/:jobId), however I'm unable to get the dependencies to actually work.

I had this issue a while ago, but I figured with the new look the build would be fixed.

So I clone the repo and try to npm install inside the base directory. When I try that, it throws an error saying it can't find a specific directory, /agenda-ui/app/node_modules/broccoli-ember-hbs-template-compiler.

I then try to go into the app/ directory and npm install, which will also fail, saying it couldn't lstat a file inside the app/node_modules/ember-cli-qunit folder.

NPM Debug Log: https://gist.github.com/droppedonjapan/f96cae70ae893c84eef3
/app NPM Debug Log: https://gist.github.com/droppedonjapan/ba4a60606c004fe857f9

Any ideas how to get this working? The application works from inside Express, I just can't get the project set up so I can look at improving anything.

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.