Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Getting Started page #11673

Merged
merged 55 commits into from
May 12, 2017
Merged

Getting Started page #11673

merged 55 commits into from
May 12, 2017

Conversation

ycombinator
Copy link
Contributor

@ycombinator ycombinator commented May 9, 2017

This PR implements a Getting Started page for first-time users of Kibana.

Why is this important

First-run Kibana experience is increasingly the first time the user interacts with the Elastic stack. The current out of the box experience in Kibana is to land on the index pattern creation page, when there are no existing index patterns, and that page is really unfriendly (see here).

What does this page look like

This page can be accessed under two scenarios, and looks slightly different under each scenario:

  1. When the user has never defined any index patterns defined AND the user has not explicitly opted out of the Getting Started page. The user must be shown the Getting Started page by default, regardless of which Kibana app they try and visit (manually, because the navigation is hidden from view).

    Screenshot:

    screen shot 2017-05-09 at 9 35 47 am
  2. When there are index patterns defined OR the user has explicitly opted out of the Getting Started page. In this case the user can perform business as usual around Kibana. However, they may re-visit the Getting Started page if they like from Management > Kibana > Getting Started.

    Screenshot:

    screen shot 2017-05-09 at 9 36 16 am

Additionally, orthogonal to the two scenarios described above, the page has a couple of optional sections as well, that may be populated dynamically. The two sections are:

  • A horizontal (row-like) section in between the Kibana logo and the two boxes. This section can accept a string of formatted text and display it.
  • A third "Manage and Monitor" box that would show up to the right of the "Visualize and explore" box. The section can accept an array of message strings (sentences). The message strings are concatenated and displayed as a paragraph.

Screenshot showing both optional sections populated:

screen shot 2017-05-09 at 9 48 51 am

What's in the box

This PR:

  • Implements a new core plugin called getting_started, that implements the controller and template of the Getting Started page, along with the routing and logic on when the page should be shown to the user.

  • Provides a registry for dynamically populating the two optional sections in the Getting Started page.

  • Provides an attribute directive, kbnGettingStartedOptOut that clickable elements (links, buttons) on the Getting Started Page can use to opt users out of the Getting Started page as they navigate away.

  • Consolidates logic for defining default index patterns into the logic for showing the Getting Started page under Scenario 1 (described above). Without this consolidation there was a race condition which would cause the Getting Started page to be displayed along with a Notifier message about no default index pattern being defined if the user tried to visit a Kibana app (e.g. Discover).

  • Includes SVG images for various logos.

What to test

  1. Delete all index patterns (by directly manipulating the .kibana index, and not via the Index Patterns UI), then load up Kibana. You should see the Getting Started page as described under Scenario 1 above. Attempting to visit another Kibana app (e.g. Discover) should bring you back to the Getting Started page.

  2. Opt out of the Getting Started page by clicking the link in the top right. This decision is recorded in localStorage in the key, kibana.isGettingStartedOptedOut. You should see the nav again and be able to visit other Kibana apps. However, visiting a Kibana app that requires an index pattern (i.e. Discover, Visualize, or Dashboard) should take you to the index patterns page with a Notifier about there being no default index pattern (same as before this PR).

  3. Delete the localStorage key kibana.isGettingStartedOptedOut. Refresh Kibana. You should be back in Scenario 1. Now click on the link in the "Visualize and explore" box on the Getting Started page. This should opt you out of the Getting Started page.

  4. Once you have opted out of the Getting Started page or index patterns exist, try visiting the Getting Started page via Management > Kibana > Getting Started. Check that it looks and functions as described in Scenario 2 above.

  5. Try dynamically registering content for both optional sections on the Getting Started page and ensure that it shows up as expected. The code to do this is:

    import { GettingStartedTopMessagesRegistryProvider } from 'ui/getting_started/top_messages_registry';
    
    GettingStartedTopMessagesRegistryProvider.register(() => ({
      template: `Hello there, I'm on top!`
    }));
    import { GettingStartedMonitorAndManageMessagesRegistryProvider } from 'ui/getting_started/monitor_and_manage_messages_registry';
    
    GettingStartedMonitorAndManageMessagesRegistryProvider.register(() => ({
      template: `Hello there, I'm in the right-most box!`
    }));

/cc @tbragin @skearns64 @alexfrancoeur

For Release Notes

Summary: Introduces a Getting Started page in Kibana for first-time users. Previously we would drop first-time users onto the Index Patterns page, without providing much context for why they were there or good instructions on what to do next. The Getting Started page provides a short introduction to Kibana and a link to the Index Patterns page along with some context around when and why to use it.

@cjcenizal
Copy link
Contributor

cjcenizal commented May 9, 2017

I've only read the PR description so far, but I just want to say this description is amazing. Thanks for outlining everything so clearly, especially steps for testing. We should put a reference to this PR in the CONTRIBUTING.md.

Copy link
Contributor

@cjcenizal cjcenizal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Such an incredible change, and really great, readable code. Now please change all of it! JK.

<p class="kuiText kuiSubduedText">
<a
kbn-href="#/management"
ng-click="gettingStarted.recordOptOut()"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we set class="kuiLink" on this and the other anchor tags on this page?

</div>

<div class="kuiCard__footer">
<p class="kuiText">Pull in data from the <a href="">Elasticsearch API</a>, <a href="">Beats</a>, <a href="">Logstash</a>.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are the blank href attributes intentional here? Are we waiting on the URLs?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Crap, no, they are not intentional 😄 I will add the URLs. Thanks for catching!

<div class="kuiCard__descriptionText gettingStartedCard__descriptionText">
<div class="gettingStartedLogoRow">
<img src="{{ gettingStarted.imageUrls.beatsLogo }}" />
<img src="{{ gettingStarted.imageUrls.logstashLogo }}" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For each img, we need to add an alt attribute which describes the image for screen readers. Something as simple as alt="Logstash logo" will work.

</div>

<div class="kuiFieldGroupSection">
<button class="kuiButton kuiButton--primary">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing an ng-click handler here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cjcenizal When the user clicks on this button we want to open demo.elastic.co in a new tab. This is easy to do with an anchor element, using target="_blank". So I'm thinking of replacing the button tags here with a tags. Thoughts?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds like a great idea, the kuiButton classes are designed to support that use case.

controllerAs: 'gettingStarted',
controller: class GettingStartedController {
constructor() {
if (this.hasOptedOut) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a flash of content when you first load the getting started page. If you log uiChrome.getVisible() before this condition, it will be true. I think this is what's causing it.

I tested out a solution, and it seems to work. We just need to change https://github.com/elastic/kibana/blob/master/src/ui/public/chrome/directives/kbn_chrome.js#L40 to this:

        // Hide the chrome by default, so it doesn't interfere with the Getting Started page.
        // Otherwise, show it if Kibana hasn't been embedded.
        const isChromeVisible =
          $location.search().embed === undefined
          ? false
          : !$location.search().embed;

        internals.setVisibleDefault(isChromeVisible);

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After talking with @ycombinator this solution doesn't work either because it means when you open another app, e.g. Timelion, the chrome defaults to hidden.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@spalger Perhaps you have some idea of how to pull off what we are trying here?

We want to not show the left nav when the Getting Started page (introduced in this PR) is shown to the user. Right now, there's a flash of the left nav before it gets hidden. Any way we could avoid that?

const isGettingStartedOptedOut = localStorageService.get(GETTING_STARTED_OPT_OUT) || false;
const isOnGettingStartedPage = get(currentRoute, 'originalPath') === GETTING_STARTED_ROUTE;

// If index patterns exist
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure we need this particular comment, but the rest are par excellence.

config.set('defaultIndex', defaultIndexPattern);
}

// At this point, we have a default index pattern and ar all set!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: are

if (!defaultRequiredToasts) defaultRequiredToasts = [];
else defaultRequiredToasts.push(notify.error(err));
}
);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job removing this and replacing it with clearer and commented logic!

* @param {string} message Message string
* @return {string} And ID for the message that was added. This can be used later to remove the message.
*/
addManageAndMonitorMessagesMessage = (message) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can be changed to addManageAndMonitorMessage

export class GettingStartedRegistry {
constructor() {
this.topMessage = null;
this._manageAndMonitorMessages = [];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good spot for a comment:

// These are the messages in the Manage and Monitor section of the Getting Started page.

@spalger
Copy link
Contributor

spalger commented May 10, 2017

@ycombinator Looks awesome, but I'm getting the getting started page after I delete my only index pattern, which probably shouldn't happen.

Also, why not just accept gettingStartedCards that would render a template in the getting started view? The manageAndMonitorMessages seems like a pretty strange integration point.

@ycombinator
Copy link
Contributor Author

ycombinator commented May 10, 2017

Looks awesome, but I'm getting the getting started page after I delete my only index pattern, which probably shouldn't happen.

Good catch. I'll make the logic smarter (and actually simpler, if I'm thinking about this correctly).

Also, why not just accept gettingStartedCards that would render a template in the getting started view? The manageAndMonitorMessages seems like a pretty strange integration point.

That's because the optional third box is intended for Management and monitoring messages. If we make it more generic than that, we'll need a way to set its title and icon/logo image as well. Then the question becomes, who is responsible for setting those, keeping in mind that each of the items in manageAndMonitorMessages might be registered by different plugins.

By naming the integration point manageAndMonitorMessages, I'm trying to provide a hint (to the developer) at the types of items that should be added to it.

@ycombinator ycombinator changed the title Getting Started page [WIP] Getting Started page May 10, 2017
@ycombinator ycombinator changed the title [WIP] Getting Started page Getting Started page May 11, 2017
@ycombinator
Copy link
Contributor Author

@BigFunger @cjcenizal This PR is ready for re-review. A few things to note since we last discussed this PR:

  1. I ended up needing several modules related to the Getting Started page under ui/public. So I consolidated them in a single folder, ui/public/getting_started. I added a README.md to that folder to hopefully help understand how to use the modules within.

  2. After discussions with both of you and weighing the pros/cons of an explicit vs. implicit API for setting the top message on the Getting Started page, I decided to stick with the explicit API, that is a setTopMessage function. While an implicit API (that is, direct DOM manipulation) obscures the usage, making it harder to abuse or misuse the top message, it doesn't completely prevent it. In other words, an implicit API is in the same vein as security by obscurity, which is not great design IMO. I'd rather have an explicit API that is easier for non-malicious developers to use. I added some comments above the setTopMessage function explaining its usage expectations so hopefully those will help.

class="kuiLink"
target="_blank"
>Beats</a>,
<a
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"or "?

@BigFunger
Copy link
Contributor

@ycombinator I'm running into a problem.

  • I set up a fresh install of Elasticsearch
  • Deleted the kibana.isGettingStartedOptedOut key from my LocalStorage
  • Open an instance of kibana in a new incognito window
  • The getting started screen is shown, but if I click on the 'configure an index pattern' link, I am not redirected and I get the below error in the console:

image

Copy link
Contributor

@cjcenizal cjcenizal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👏 One minor suggestion, but otherwise LGTM!

<div class="kuiFieldGroupSection">
<a
class="kuiButton kuiButton--primary"
href="{{ gettingStarted.documentationLinks.demoSite }}"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It probably doesn't matter, but you might want to consider making this

ng-href="gettingStarted.documentationLinks.demoSite"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it should be, or else there's a small time window where the expression will not be replaced. Good catch. Thanks!

// Compile topMessageHtml and inject it into the DOM
const topMessage = getTopMessage();
if (topMessage) {
const topMessageContainer = document.getElementById('gettingStartedTopMessageContainer');
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wat
What the heck is going on here? Why isn't this just a variable on this/$scope that you use in the template? You're bypassing angular and then using angular to compile and inject angular code...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this is deliberate because topMessage can contain an angular expression, e.g. a directive. Injecting that the normal way (as just a variable on the scope) doesn't cause Angular to reevaulate the template and render any new Angular expressions.

AFAIK, this is the only way to achieve what we want but I might be missing something and will gladly consider a more intuitive approach.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We actually do this in the top nav, with navbar extensions. You can simply inject a directive and it will render it correctly, with its own scope. I don't recall exactly how to use it, but you can chase it down. IIRC, it uses the render directive

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool, let me try to find that usage and implement it here. Thanks!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looked at the top nav code and it doesn't seem to use the render directive. It seems to be taking the $compile approach.

Also, looking into the definition of the render directive, it appears to expect a directive definition, not just any arbitrary text (that may or may not contain a directive). This is too constraining for the use case here on the Getting Started page.

Given these considerations, I'm going to stick with the $compile approach for the Getting Started page. However, since it wasn't obvious why we were using it here, I'll add some comments explaining the intent. Thanks!

@@ -0,0 +1,78 @@
import uuid from 'node-uuid';

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a job for ui/registry. Nothing in here seems to warrant maintaining another registry.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The registry here contains two properties: a topMessage (which is a single message) and manageAndMonitorMessages (which is an array of messages). I'm happy to reuse ui/registry if it can somehow accommodate both those properties.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chatted about this with @w33ble and @BigFunger out-of-PR. The decisions were:

  • to allow multiple top messages, that way we don't have to worry about the single one getting clobbered. They will be concatenated and rendered just like the manage-and-monitor messages.
  • replace the getting_started/registry module with two separate ui/registrys - one for top messages and one for manage-and-monitor messages.

@ycombinator
Copy link
Contributor Author

@BigFunger @cjcenizal @w33ble I've addressed all the feedback from the last round of reviews. This is ready for your 👀 again. Thanks!

Copy link
Contributor

@cjcenizal cjcenizal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@BigFunger BigFunger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@ycombinator ycombinator merged commit 211b3d4 into elastic:master May 12, 2017
@ycombinator ycombinator deleted the getting-started branch May 12, 2017 18:35
ycombinator added a commit that referenced this pull request May 12, 2017
* Initial code

* Renaming files/folders

* Notes and changes from HTML/CSS review

* CSS changes

* Fixing transform units

* Fleshing out logo circle

* Adding logos

* Un-nesting styles

* Adding kuiText class on <p> elements

* Making shield icon 404 go away

* Using trustAsHtml filter; using registry

* Adding code for registry

* Adding images

* Hooking up the opt-out link

* Fixing linter issues

* Fix issue with refresh bringing back nav

* Removing load_default module

* Use GETTING_STARTED_ROUTE constant

* Allow topMessage to be a directive

* Adding kuiLink CSS class to anchor elements

* Adding alt text to images

* Replace getters with regular methods

* Remove leftover comment

* Removing unnecessary comment

* Fixing typo in comment

* Adding comments for message properties

* Fixing typo in method name

* Defining custom CSS class

* Fixing method call

* Creating custom CSS classes

* Adding documentation links

* Use a instead of button for demo link

* Allow directives in manage and monitor messages

* Refactoring shared code into single ui/public/getting_started folder

* Adding README

* Fixing whitespace in/around links

* Trim messages before setting them

* Decorate in-app links with opt-out attribute

* Opt out of the Getting Started page if the user already has index patterns

* Adding more commentary around expectations of setTopMessage use

* Using ng-src and ng-href attributes where attr values are angular expressions

* Importing the directive before using it

* Using ui/registry for message registries

* Renaming service => helpers to clarify intent

* Adding explanatory comment

* Adding "or"

* Fixing div id

* Breaks out the inject logic into another directive

* Adding Getting Started page object for functional tests

* Consolidate into one registry

* Fixes incorrect classes

* Changes how styles are applied to injected-items items

* Modifying class name per CSS style guide

* Adding getting started doc link

* Removing unused import
@ycombinator
Copy link
Contributor Author

ycombinator commented May 12, 2017

Backported to:

  • 5.x / 5.5: 65e5c09

epixa added a commit to epixa/kibana that referenced this pull request May 15, 2017
This reverts commit 211b3d4.

This was breaking builds, so we revert until we figure out why.
epixa added a commit that referenced this pull request May 15, 2017
This reverts commit 211b3d4.

This was breaking builds, so we revert until we figure out why.
epixa added a commit that referenced this pull request May 15, 2017
This reverts commit 211b3d4.

This was breaking builds, so we revert until we figure out why.
@epixa
Copy link
Contributor

epixa commented May 15, 2017

@ycombinator I pulled the enhancement/roadmap label off of this one since it was reverted. When you open a new one with these changes, please copy over the excellent details you included in this PR.

ycombinator added a commit to ycombinator/kibana that referenced this pull request May 15, 2017
* Initial code

* Renaming files/folders

* Notes and changes from HTML/CSS review

* CSS changes

* Fixing transform units

* Fleshing out logo circle

* Adding logos

* Un-nesting styles

* Adding kuiText class on <p> elements

* Making shield icon 404 go away

* Using trustAsHtml filter; using registry

* Adding code for registry

* Adding images

* Hooking up the opt-out link

* Fixing linter issues

* Fix issue with refresh bringing back nav

* Removing load_default module

* Use GETTING_STARTED_ROUTE constant

* Allow topMessage to be a directive

* Adding kuiLink CSS class to anchor elements

* Adding alt text to images

* Replace getters with regular methods

* Remove leftover comment

* Removing unnecessary comment

* Fixing typo in comment

* Adding comments for message properties

* Fixing typo in method name

* Defining custom CSS class

* Fixing method call

* Creating custom CSS classes

* Adding documentation links

* Use a instead of button for demo link

* Allow directives in manage and monitor messages

* Refactoring shared code into single ui/public/getting_started folder

* Adding README

* Fixing whitespace in/around links

* Trim messages before setting them

* Decorate in-app links with opt-out attribute

* Opt out of the Getting Started page if the user already has index patterns

* Adding more commentary around expectations of setTopMessage use

* Using ng-src and ng-href attributes where attr values are angular expressions

* Importing the directive before using it

* Using ui/registry for message registries

* Renaming service => helpers to clarify intent

* Adding explanatory comment

* Adding "or"

* Fixing div id

* Breaks out the inject logic into another directive

* Adding Getting Started page object for functional tests

* Consolidate into one registry

* Fixes incorrect classes

* Changes how styles are applied to injected-items items

* Modifying class name per CSS style guide

* Adding getting started doc link

* Removing unused import
ycombinator added a commit to ycombinator/kibana that referenced this pull request May 15, 2017
* Initial code

* Renaming files/folders

* Notes and changes from HTML/CSS review

* CSS changes

* Fixing transform units

* Fleshing out logo circle

* Adding logos

* Un-nesting styles

* Adding kuiText class on <p> elements

* Making shield icon 404 go away

* Using trustAsHtml filter; using registry

* Adding code for registry

* Adding images

* Hooking up the opt-out link

* Fixing linter issues

* Fix issue with refresh bringing back nav

* Removing load_default module

* Use GETTING_STARTED_ROUTE constant

* Allow topMessage to be a directive

* Adding kuiLink CSS class to anchor elements

* Adding alt text to images

* Replace getters with regular methods

* Remove leftover comment

* Removing unnecessary comment

* Fixing typo in comment

* Adding comments for message properties

* Fixing typo in method name

* Defining custom CSS class

* Fixing method call

* Creating custom CSS classes

* Adding documentation links

* Use a instead of button for demo link

* Allow directives in manage and monitor messages

* Refactoring shared code into single ui/public/getting_started folder

* Adding README

* Fixing whitespace in/around links

* Trim messages before setting them

* Decorate in-app links with opt-out attribute

* Opt out of the Getting Started page if the user already has index patterns

* Adding more commentary around expectations of setTopMessage use

* Using ng-src and ng-href attributes where attr values are angular expressions

* Importing the directive before using it

* Using ui/registry for message registries

* Renaming service => helpers to clarify intent

* Adding explanatory comment

* Adding "or"

* Fixing div id

* Breaks out the inject logic into another directive

* Adding Getting Started page object for functional tests

* Consolidate into one registry

* Fixes incorrect classes

* Changes how styles are applied to injected-items items

* Modifying class name per CSS style guide

* Adding getting started doc link

* Removing unused import
ycombinator added a commit to ycombinator/kibana that referenced this pull request May 15, 2017
* Initial code

* Renaming files/folders

* Notes and changes from HTML/CSS review

* CSS changes

* Fixing transform units

* Fleshing out logo circle

* Adding logos

* Un-nesting styles

* Adding kuiText class on <p> elements

* Making shield icon 404 go away

* Using trustAsHtml filter; using registry

* Adding code for registry

* Adding images

* Hooking up the opt-out link

* Fixing linter issues

* Fix issue with refresh bringing back nav

* Removing load_default module

* Use GETTING_STARTED_ROUTE constant

* Allow topMessage to be a directive

* Adding kuiLink CSS class to anchor elements

* Adding alt text to images

* Replace getters with regular methods

* Remove leftover comment

* Removing unnecessary comment

* Fixing typo in comment

* Adding comments for message properties

* Fixing typo in method name

* Defining custom CSS class

* Fixing method call

* Creating custom CSS classes

* Adding documentation links

* Use a instead of button for demo link

* Allow directives in manage and monitor messages

* Refactoring shared code into single ui/public/getting_started folder

* Adding README

* Fixing whitespace in/around links

* Trim messages before setting them

* Decorate in-app links with opt-out attribute

* Opt out of the Getting Started page if the user already has index patterns

* Adding more commentary around expectations of setTopMessage use

* Using ng-src and ng-href attributes where attr values are angular expressions

* Importing the directive before using it

* Using ui/registry for message registries

* Renaming service => helpers to clarify intent

* Adding explanatory comment

* Adding "or"

* Fixing div id

* Breaks out the inject logic into another directive

* Adding Getting Started page object for functional tests

* Consolidate into one registry

* Fixes incorrect classes

* Changes how styles are applied to injected-items items

* Modifying class name per CSS style guide

* Adding getting started doc link

* Removing unused import
ycombinator added a commit to ycombinator/kibana that referenced this pull request May 15, 2017
* Initial code

* Renaming files/folders

* Notes and changes from HTML/CSS review

* CSS changes

* Fixing transform units

* Fleshing out logo circle

* Adding logos

* Un-nesting styles

* Adding kuiText class on <p> elements

* Making shield icon 404 go away

* Using trustAsHtml filter; using registry

* Adding code for registry

* Adding images

* Hooking up the opt-out link

* Fixing linter issues

* Fix issue with refresh bringing back nav

* Removing load_default module

* Use GETTING_STARTED_ROUTE constant

* Allow topMessage to be a directive

* Adding kuiLink CSS class to anchor elements

* Adding alt text to images

* Replace getters with regular methods

* Remove leftover comment

* Removing unnecessary comment

* Fixing typo in comment

* Adding comments for message properties

* Fixing typo in method name

* Defining custom CSS class

* Fixing method call

* Creating custom CSS classes

* Adding documentation links

* Use a instead of button for demo link

* Allow directives in manage and monitor messages

* Refactoring shared code into single ui/public/getting_started folder

* Adding README

* Fixing whitespace in/around links

* Trim messages before setting them

* Decorate in-app links with opt-out attribute

* Opt out of the Getting Started page if the user already has index patterns

* Adding more commentary around expectations of setTopMessage use

* Using ng-src and ng-href attributes where attr values are angular expressions

* Importing the directive before using it

* Using ui/registry for message registries

* Renaming service => helpers to clarify intent

* Adding explanatory comment

* Adding "or"

* Fixing div id

* Breaks out the inject logic into another directive

* Adding Getting Started page object for functional tests

* Consolidate into one registry

* Fixes incorrect classes

* Changes how styles are applied to injected-items items

* Modifying class name per CSS style guide

* Adding getting started doc link

* Removing unused import
ycombinator added a commit that referenced this pull request May 15, 2017
* Getting Started page (#11673)

* Initial code

* Renaming files/folders

* Notes and changes from HTML/CSS review

* CSS changes

* Fixing transform units

* Fleshing out logo circle

* Adding logos

* Un-nesting styles

* Adding kuiText class on <p> elements

* Making shield icon 404 go away

* Using trustAsHtml filter; using registry

* Adding code for registry

* Adding images

* Hooking up the opt-out link

* Fixing linter issues

* Fix issue with refresh bringing back nav

* Removing load_default module

* Use GETTING_STARTED_ROUTE constant

* Allow topMessage to be a directive

* Adding kuiLink CSS class to anchor elements

* Adding alt text to images

* Replace getters with regular methods

* Remove leftover comment

* Removing unnecessary comment

* Fixing typo in comment

* Adding comments for message properties

* Fixing typo in method name

* Defining custom CSS class

* Fixing method call

* Creating custom CSS classes

* Adding documentation links

* Use a instead of button for demo link

* Allow directives in manage and monitor messages

* Refactoring shared code into single ui/public/getting_started folder

* Adding README

* Fixing whitespace in/around links

* Trim messages before setting them

* Decorate in-app links with opt-out attribute

* Opt out of the Getting Started page if the user already has index patterns

* Adding more commentary around expectations of setTopMessage use

* Using ng-src and ng-href attributes where attr values are angular expressions

* Importing the directive before using it

* Using ui/registry for message registries

* Renaming service => helpers to clarify intent

* Adding explanatory comment

* Adding "or"

* Fixing div id

* Breaks out the inject logic into another directive

* Adding Getting Started page object for functional tests

* Consolidate into one registry

* Fixes incorrect classes

* Changes how styles are applied to injected-items items

* Modifying class name per CSS style guide

* Adding getting started doc link

* Removing unused import

* Attempting to fix breaking build

Apparently the Getting Started page is preventing access to Console (Dev Tools, really) so the functional tests for Console are failing. This commit opts the user out of the Getting Started page before attempting to navigate to Console.

* Cleanup on aisle testbed! (#11765)

* Navigate to getting started page so we can opt out of it
ycombinator added a commit that referenced this pull request May 15, 2017
* Getting Started page (#11673)

* Initial code

* Renaming files/folders

* Notes and changes from HTML/CSS review

* CSS changes

* Fixing transform units

* Fleshing out logo circle

* Adding logos

* Un-nesting styles

* Adding kuiText class on <p> elements

* Making shield icon 404 go away

* Using trustAsHtml filter; using registry

* Adding code for registry

* Adding images

* Hooking up the opt-out link

* Fixing linter issues

* Fix issue with refresh bringing back nav

* Removing load_default module

* Use GETTING_STARTED_ROUTE constant

* Allow topMessage to be a directive

* Adding kuiLink CSS class to anchor elements

* Adding alt text to images

* Replace getters with regular methods

* Remove leftover comment

* Removing unnecessary comment

* Fixing typo in comment

* Adding comments for message properties

* Fixing typo in method name

* Defining custom CSS class

* Fixing method call

* Creating custom CSS classes

* Adding documentation links

* Use a instead of button for demo link

* Allow directives in manage and monitor messages

* Refactoring shared code into single ui/public/getting_started folder

* Adding README

* Fixing whitespace in/around links

* Trim messages before setting them

* Decorate in-app links with opt-out attribute

* Opt out of the Getting Started page if the user already has index patterns

* Adding more commentary around expectations of setTopMessage use

* Using ng-src and ng-href attributes where attr values are angular expressions

* Importing the directive before using it

* Using ui/registry for message registries

* Renaming service => helpers to clarify intent

* Adding explanatory comment

* Adding "or"

* Fixing div id

* Breaks out the inject logic into another directive

* Adding Getting Started page object for functional tests

* Consolidate into one registry

* Fixes incorrect classes

* Changes how styles are applied to injected-items items

* Modifying class name per CSS style guide

* Adding getting started doc link

* Removing unused import

* Attempting to fix breaking build

Apparently the Getting Started page is preventing access to Console (Dev Tools, really) so the functional tests for Console are failing. This commit opts the user out of the Getting Started page before attempting to navigate to Console.

* Cleanup on aisle testbed! (#11765)

* Navigate to getting started page so we can opt out of it
snide pushed a commit to snide/kibana that referenced this pull request May 30, 2017
* Initial code

* Renaming files/folders

* Notes and changes from HTML/CSS review

* CSS changes

* Fixing transform units

* Fleshing out logo circle

* Adding logos

* Un-nesting styles

* Adding kuiText class on <p> elements

* Making shield icon 404 go away

* Using trustAsHtml filter; using registry

* Adding code for registry

* Adding images

* Hooking up the opt-out link

* Fixing linter issues

* Fix issue with refresh bringing back nav

* Removing load_default module

* Use GETTING_STARTED_ROUTE constant

* Allow topMessage to be a directive

* Adding kuiLink CSS class to anchor elements

* Adding alt text to images

* Replace getters with regular methods

* Remove leftover comment

* Removing unnecessary comment

* Fixing typo in comment

* Adding comments for message properties

* Fixing typo in method name

* Defining custom CSS class

* Fixing method call

* Creating custom CSS classes

* Adding documentation links

* Use a instead of button for demo link

* Allow directives in manage and monitor messages

* Refactoring shared code into single ui/public/getting_started folder

* Adding README

* Fixing whitespace in/around links

* Trim messages before setting them

* Decorate in-app links with opt-out attribute

* Opt out of the Getting Started page if the user already has index patterns

* Adding more commentary around expectations of setTopMessage use

* Using ng-src and ng-href attributes where attr values are angular expressions

* Importing the directive before using it

* Using ui/registry for message registries

* Renaming service => helpers to clarify intent

* Adding explanatory comment

* Adding "or"

* Fixing div id

* Breaks out the inject logic into another directive

* Adding Getting Started page object for functional tests

* Consolidate into one registry

* Fixes incorrect classes

* Changes how styles are applied to injected-items items

* Modifying class name per CSS style guide

* Adding getting started doc link

* Removing unused import
snide pushed a commit to snide/kibana that referenced this pull request May 30, 2017
This reverts commit 211b3d4.

This was breaking builds, so we revert until we figure out why.
snide pushed a commit to snide/kibana that referenced this pull request May 30, 2017
* Getting Started page (elastic#11673)

* Initial code

* Renaming files/folders

* Notes and changes from HTML/CSS review

* CSS changes

* Fixing transform units

* Fleshing out logo circle

* Adding logos

* Un-nesting styles

* Adding kuiText class on <p> elements

* Making shield icon 404 go away

* Using trustAsHtml filter; using registry

* Adding code for registry

* Adding images

* Hooking up the opt-out link

* Fixing linter issues

* Fix issue with refresh bringing back nav

* Removing load_default module

* Use GETTING_STARTED_ROUTE constant

* Allow topMessage to be a directive

* Adding kuiLink CSS class to anchor elements

* Adding alt text to images

* Replace getters with regular methods

* Remove leftover comment

* Removing unnecessary comment

* Fixing typo in comment

* Adding comments for message properties

* Fixing typo in method name

* Defining custom CSS class

* Fixing method call

* Creating custom CSS classes

* Adding documentation links

* Use a instead of button for demo link

* Allow directives in manage and monitor messages

* Refactoring shared code into single ui/public/getting_started folder

* Adding README

* Fixing whitespace in/around links

* Trim messages before setting them

* Decorate in-app links with opt-out attribute

* Opt out of the Getting Started page if the user already has index patterns

* Adding more commentary around expectations of setTopMessage use

* Using ng-src and ng-href attributes where attr values are angular expressions

* Importing the directive before using it

* Using ui/registry for message registries

* Renaming service => helpers to clarify intent

* Adding explanatory comment

* Adding "or"

* Fixing div id

* Breaks out the inject logic into another directive

* Adding Getting Started page object for functional tests

* Consolidate into one registry

* Fixes incorrect classes

* Changes how styles are applied to injected-items items

* Modifying class name per CSS style guide

* Adding getting started doc link

* Removing unused import

* Attempting to fix breaking build

Apparently the Getting Started page is preventing access to Console (Dev Tools, really) so the functional tests for Console are failing. This commit opts the user out of the Getting Started page before attempting to navigate to Console.

* Cleanup on aisle testbed! (elastic#11765)

* Navigate to getting started page so we can opt out of it
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants