GithubHelp home page GithubHelp logo

bzdeck / bzdeck Goto Github PK

View Code? Open in Web Editor NEW
30.0 3.0 14.0 7.28 MB

A useful experimental Bugzilla client demonstrating modern Web application technologies such as CSS3, DOM4, HTML5, ECMAScript 6 and WAI-ARIA.

Home Page: https://www.bzdeck.com/

License: Other

PHP 1.95% JavaScript 64.99% CSS 20.46% Shell 0.06% ApacheConf 0.49% HTML 12.05%
bugzilla javascript css a11y wai-aria dom ecmascript web-app es6 service-worker

bzdeck's Introduction

BzDeck

A useful experimental Bugzilla client demonstrating modern Web application technologies such as CSS3, DOM4, HTML5, ECMAScript 6 and WAI-ARIA.

Update: We have decided to abandon BzDeck and instead bring all the UX innovations to Bugzilla to help make it a modernized, productive, competitive issue tracking system. See our Project Update for details.

How to run the app locally

BzDeck is mostly written in static HTML, CSS and JavaScript, but you need PHP as well to combine CSS/JavaScript files and handle the authentication explained below with a SQLite database.

Note that sqlite is provided by the php-pdo package on many RPM-based distros.

Apache + PHP

Nothing special, just set up a normal local server.

  1. Fork this repository
  2. Add a new virtual host in your Apache config as below
  3. Add a new host in your /etc/hosts: 127.0.0.1 local.bzdeck.com
  4. Restart your Apache server with PHP 5.4+ enabled
  5. Open http://local.bzdeck.com/ in your browser

Apache config example:

<VirtualHost *:80>
  ServerName local.bzdeck.com
  DocumentRoot "/path/to/bzdeck/webroot/"
</VirtualHost>

PHP only

If you want to run a local development server without Apache, do the following:

  1. Install PHP >= 5.4.0 (e.g. In Ubuntu 14.04: sudo apt-get install php5)
  2. Run bin/run_dev_server.sh
  3. Open your browser (Firefox Developer Edition or Firefox Nightly), go to http://localhost:8000

Sign in

Due to the updated Authentication Delegation implementation that requires 2 HTTP requests, it's now difficult to sign in to Bugzilla with a local server through the standard process. However, you can still sign in programmatically by entering the following code to the browser's Web Console:

BzDeck.controllers.session.verify_account('(Server ID)', '(Your Bugzilla ID)', '(Your API key)');

The server ID will be mozilla-dev (testing) or mozilla (production). Your API key can be generated on the Preferences page of each Bugzilla instance.

Debug mode

Append ?debug=true to any BzDeck URL to enable the debug mode. All the JavaScript files will be served separately and some debug messages will get dumped.

If some API tests are required, a Bugzilla instance for testing is available at bugzilla-dev.allizom.org. Ask your password on IRC or sign in with your GitHub account. Once a new API key is generated on the Preferences page, sign out from BzDeck and load the app again by appending ?debug=true&server=dev to the URL.

bzdeck's People

Contributors

dylanwh avatar eoger avatar kyoshino avatar shinglyu 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

Watchers

 avatar  avatar  avatar

bzdeck's Issues

Migrate from BzAPI to the native Bugzilla REST API

BzAPI doesn't expose people's full email addresses. Migrating to the native REST API will address the following issues due to this limitation:

  • BzDeck cannot see who are actually the reporter, assignee, QA contact or CC members of each bug. So BzDeck sends separate queries to retrieve bugs where the user is the reporter, assignee, QA contact or CC member. With the native API, we no longer have to this subscription style. Just send a single request and find the user's email address in the results.
  • BzDeck will be able to get everyone's Gravatar based on the full email address. Currently we can only see history changers' email addresses.
  • BzDeck will be able to show full the email addresses of people involved in each bug.
  • BzDeck will be able to implement new features like the Address Book based on people's email addresses.

Allow marking all bugs as read

Needs a menu item. We already have a keyboard shortcut on desktop: select all bugs on the thread pane (Ctrl+A) then hit the M key

Add more themes

Note that we don't have a plan to add the Sandstone theme as BzDeck is not affiliated with Mozilla.

Sync user data between multiple devices

Sync user's preferences, stars, and saved search seamlessly. Currently the BzDeck server doesn't store any user data. This feature is our big step and may need a Persona integration.

Redesign the public pages

  • New branding, logo, tagline
  • New landing page with screenshots
  • About and FAQ pages that are currently hosted on GitHub

Implement saved search

Saved search data is available from the API, but it's read-only. Let's implement this ourselves as subscriptions. This blocks #18 custom tags, #21 component watching and #360 stars. The data format may look like this:

[
  { type: 'stars', query: 'id=1217353,1249610,1233959' },
  { type: 'component', query: 'product=www.mozilla.org&component=bedrock' },
  { type: 'component', query: 'product=Websites&component=__Any__' },
  { type: 'search', label: 'My favourite bugs', query: '(custom query)' },
  { type: 'search', label: 'Funny bugs', query: '(another custom query)' },
  { type: 'tag', label: 'like', query: 'id=1217353,1249610,1233959' },
]

Implement user profile

Mozillians API data + Bugzilla activity stats + more. It would be nice to have a visualized contribution log like GitHub.

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.