bower is deprecated and intended to be replaced. yarn is the recommended
replacement for both things installed via npm and things installed via
bower.
Move the bower resources into package.json and add the yarn.lock file.
Zuul has support for installing yarn if a yarn.lock file is found and
using it to install things.
Change-Id: I848f22dce6196b2df9de4b9f585e857e03cdb0d7
The markdown parser used in StoryBoard (marked.js) is buggy and
mostly unmaintained. This commit replaces it with a better library
which is actually maintained.
There is a small change to functionality incurred with this change,
we no longer automatically attempt to highlight every code block by
guessing the language. Instead only fenced code blocks are
highlighted, and then only if the language is specified. For example:
``` python
def foo():
return 'foo'
```
Change-Id: I8ee562e3e97ab6f0d09a21c27907d1a0959aceb1
This updates Bootstrap, our web framework of choice, from version 3.3.2
to version 3.3.7.
Task: 3245
Change-Id: I2920d5a27a0d5429bdcabd01e1e29b0151d56ea6
Add a worklist detail page, and various other modal templates for
interacting with the worklist. Also add ng-sortable[0] as a new
dependency. This is used to allow drag-and-drop rearrangement of
the worklist contents.
[0]: https://github.com/a5hik/ng-sortable
Change-Id: I5cc85e687f9ce60db158168a9f4c8325b1a022f6
When displaying comments and descriptions for projects or stories,
render the content as Markdown before displaying it. This is a
simple way to support rich text descriptions and comments, and
there is no special editor as yet.
Any code in the supplied Markdown (indented by 4 spaces) will have
its syntax highlighted. The `highlightjs` module is used for syntax
highlighting and the `marked` module is used for parsing the
Markdown.
Also, stop eslint from raising an error when it thinks something is
undefined, and raise a warning instead. This is because the use of
`hljs` and `marked` was confusing the linter into thinking they
weren't defined.
Change-Id: I7896fd686a39e27f8068ee6db6747b2b5ab0ccfc
It's useful to have some information in the page title about what is
being viewed on that page. For example, the story title should be in
the page title for a story detail page.
See https://storyboard.openstack.org/#!/story/2000178.
Change-Id: If4f63e90a03ca92f3a92c11c27011233797eb4dd
On some browers, storyboard interpreted right clicks as left clicks,
meaning users could not open links in new tabs, etc. This was a problem
with angularjs; updating angularjs to version 1.3.13 fixes this.
Change-Id: I5b2c7aa2858895bc6bf76176fdeac55bcd154939
This patch enables request caching for specifically addressed
resources. In order to avoid cache expiry, POST/PUT/DELETE requests
trigger a immediate cache update. Furthermore, angular-cache was
added to handle our maxAge expiration, with an expiration time
of one minute. This short time is intended to provide a reasonable
lifespan for each resource - one that both prevents
frequent reloads, but also doesn' tallow the resource to age too
much.
Change-Id: Ibbcb48c20fa99eb287c6543e042268ac8e842e17
We're a bit out of date, this gets us back in line with the
most recent improvements on the client side.
Change-Id: Ie2bd29b73c01dff52fded464d0830fb1ab6b1632
This adds the storyboard administration module, with a placeholder
dashboard that indicates that future functionality is coming.
Change-Id: Ibb9fc799e6434691b3bb80ef47948d1f5f501014
This commit updates angular. We don't have an explicit need for it, but
it's nice to stay up-to-date with the library so we don't have
unexpected surprises.
Change-Id: I5bf959ea0541f7727e890ec371f533ebee132f98
Add angular-momentjs to dependencies
Update all date fields to include am-time-ago tag, to properly display dates
Configure that using UTC timezone according to API requirements
Timeago will be shown for changes done in less than one week, displaying
a tooltip with whole date on hover.
Full UTC date will be displayed for older changes.
Change-Id: I2f4c1facaa3a99808f89900dbeb6b6cacb31f8a6
Closes-Bug: 118
As long as we are using Angular and do not require any third
part library, jQuery is not needed. This will reduce the footprint
of storyboard and help us develop a cleaner web client.
Change-Id: I95c0945bb39de9850e290d3303122a7c7df79da8
I added the monospaced.elastic library from bower, as it already
implements everything we need for the textarea resize. Then I applied
it to several of the textareas throughout the application. In a
few cases I had to add a small timeout trigger to force a recalculation
of the text area, because the initial size check was performed while
the element in question was hidden which confuses browsers.
Change-Id: I368096c93f61142df472573e84bac2d13b4647f0
The more I used it and tried to design for it, the more the bootstrappy
header and footer menus started to annoy me. This commit removes them,
and moves primary navigation into a left-locked sidebar. This reclaims
some of the bootstrap wasted whitespace, as well as giving us an
option for two tiers of submenu: directly below the main menu item,
or pulled to the right as a second-tier left menu.
- Removed header and footer as no longer necessary.
- Moved all links into main_menu and restyled.
- Deleted old zombie bootstrap files, not certain where they came from.
- Removed old navbar styles.
- Added new navbar-fixed-left component, as well as a pilltab and
link menu style.
- Added margin and container adjustments for responsive sizing.
- Updated body padding since we don't have top fixed menus anymore.
- Updated global container widths to accomodate for 150px less space.
- Removed zombie code in index.html that should never have been there.
- Updated Bootstrap
Change-Id: Ib84ba77ea296e7ad0c6e8482c7b1c3a31885eb03
- Created StringUtil class with some useful random string methods.
- Create UrlUtil class with useful URL manipulation and builder methods.
- Cleaned up some unused libraries (cookies, mocks) from index.html
- Added LocalStorage dependency.
- Added advanced routing to auth module for OAuth response routing.
- Added state resolver methods so we can enforce UI states that require
certain session states.
- Removed AuthProvider resolver and resource, as they're no longer necessary.
- Updated header to point to correct routes.
- Updated header to correctly represent state.
- Added busy template for "pending" activity. This shouldn't actually show up
because the javascript will resolve the view logic too quickly, but it's
included for the sake of completion.
- Added error state in case we get an error response from the server. It's
very basic.
- Added request interceptor that attaches an access token to every request
if a valid access token exists.
- Added OpenId service to handle our redirection and token resolution.
- Added Deauthorization (logout) controller.
- Added session management controller.
- Added search param provider to inject non-hashbang query parameters.
Change-Id: Id9b1e7fe9ed98ad4be0a80f1acd4a9e125ec57c9
This patch includes two fixes. First, it disables our functional tests
because of a bug in grunt-connect-proxy, which is fixed by an
as-yet-not-accepted patch here:
81631b20c5
Secondly, it includes a temporary fix for the recent NPM CA chain update
explained here:
http://blog.npmjs.org/post/78085451721/npms-self-signed-certificate-is-no-more
The basic premise is that the node package manager no longer supports
their self-signed certificate. This is good! Unfortunately, the
released version of npm is 1.4.4, but the one packaged with nodejs
0.10.26(stable) is 1.4.3. Until nodejs updates itself, we need to
temporarily bork the ca chain to update npm.
Since we're using throwaway slaves, and it's a temporary fix, and
node is only used for builds, I feel this is an acceptable risk.
Change-Id: Ic510e55355966591affbe25ce3f831ca424b2afa
This patch constitutes the work discussed in Brussels for the MVP webclient.
Changes made, as follows:
1- Updated header to contain Overview, Projects, Stories, and a "New Story"
button, including mobile treatment.
2- Updated navigation header to use selection styling for mobile and regular.
3- Application index contains new-story button.
4- Main application container now has a minheight.
5- Removed old controllers (code cleanup) before reimplementation.
6- Wired project views (require API support).
7- Wired story views (require API support).
8- Wired new story modal (require API support).
9- New task form (requires API support).
10- Wired up new functional tests and fixed a few issues in existing unit
tests.
11- Switched LESS compiler from recess to less, since recess can no longer
compile the most recent version of bootstrap.
Change-Id: Iddd5b29dd899d92f05ad7a9a63814d8599e167d4
Here I add three major components: Firstly, the API abstractions (resources) that drive our consumption of the
storyboard API. Secondly, a series of API mock interceptors that trigger when HTTP requests are made and simulate
the existence of the storyboard API. Lastly, a basic UI for project creation, listing, and management.
Change-Id: Idbce8252237b0f9fbb9dd2330b952f9a6432c694
This contains the initial commit for the storyboard web client
project, consisting of the basic build & testing harnesses,
simple set of routes, and a list of basic dependencies
necessary to run an application. It's purpose is to be
reference Javascript/Angular project to test out the build
images.