<div dir="ltr">Hi, <div><br></div><div>thanks for the kind words.<div>As the example went bigger and bigger, skelly suggested to test it and I moved it to the smoke tests to ensure that the example is always working.</div><div><br></div><div>Its referenced in the doc with the help of this line + a symlink from the smoke tests to the docs</div><div><span style="color:rgb(36,41,46);font-family:sfmono-regular,consolas,"liberation mono",menlo,courier,monospace;font-size:12px;white-space:pre-wrap;background-color:rgb(234,255,234)"><br></span></div><div><span style="color:rgb(36,41,46);font-family:sfmono-regular,consolas,"liberation mono",menlo,courier,monospace;font-size:12px;white-space:pre-wrap;background-color:rgb(234,255,234)">+.. </span><span class="inbox-inbox-pl-c1" style="box-sizing:border-box;color:rgb(0,134,179);font-family:sfmono-regular,consolas,"liberation mono",menlo,courier,monospace;font-size:12px;white-space:pre-wrap;background-color:rgb(234,255,234)">literalinclude</span><span style="color:rgb(36,41,46);font-family:sfmono-regular,consolas,"liberation mono",menlo,courier,monospace;font-size:12px;white-space:pre-wrap;background-color:rgb(234,255,234)">:: </span><span class="inbox-inbox-pl-en" style="box-sizing:border-box;color:rgb(121,93,163);font-family:sfmono-regular,consolas,"liberation mono",menlo,courier,monospace;font-size:12px;white-space:pre-wrap;background-color:rgb(234,255,234)">mydashboard.html</span></div><div><font color="#795da3" face="sfmono-regular, consolas, liberation mono, menlo, courier, monospace"><span style="font-size:12px;white-space:pre-wrap"><br></span></font></div><div><div>The examples are here:</div><div><a href="https://github.com/tardyp/buildbot/blob/23ff8caa598a80ff3963ccbb5e87e8651acad881/smokes/mydashboard.py">https://github.com/tardyp/buildbot/blob/23ff8caa598a80ff3963ccbb5e87e8651acad881/smokes/mydashboard.py</a></div><div><br></div><div><a href="https://github.com/tardyp/buildbot/blob/23ff8caa598a80ff3963ccbb5e87e8651acad881/smokes/templates/mydashboard.html">https://github.com/tardyp/buildbot/blob/23ff8caa598a80ff3963ccbb5e87e8651acad881/smokes/templates/mydashboard.html</a></div><div><br></div><div>Hopefully the story will be easier when the PR will be merged, and 0.9.5 released.</div><div><br></div><div>Pierre</div><div><br><div class="gmail_quote"><div dir="ltr">Le jeu. 16 mars 2017 à 20:11, Gelonida <<a href="mailto:gelonida@gmail.com">gelonida@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
    <p class="gmail_msg">Hi Pierre,</p>
    <p class="gmail_msg"><br class="gmail_msg">
    </p>
    <p class="gmail_msg">I cloned, checked out the branch, built master, worker and
      frontend and built my first hello world bottle ap.<br class="gmail_msg">
      This is great!!! Exactly what will help me adding some specific
      views very quickly.<br class="gmail_msg">
    </p>
    <p class="gmail_msg">One small thing though. I thought, that I saw yesterday or this
      morning a sample config file and a sample app somewhere in the
      doc.<br class="gmail_msg">
      Today I didn't find it anymore.<br class="gmail_msg">
    </p>
    <p class="gmail_msg">After some searching / grepping  I found the only documentation
      about parameters in the file smokes/mydashboard.py, which was <br class="gmail_msg">
      sufficient for me to know how to hook in my wsgi app. <br class="gmail_msg">
      The file
master/docs/manual/customization.rst#writing-dashboards-with-flask-or-bottle
      contains a section about implementing dashboard, but doesn't link
      to any example snippet (In my opinion always the best way to
      'quickly' learn) and doesn't mention the params.<br class="gmail_msg">
    </p>
    <p class="gmail_msg"><br class="gmail_msg">
    </p>
    <p class="gmail_msg">thanks again for the wsgi_dashboard</p></div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
    <p class="gmail_msg"><br class="gmail_msg">
    </p>
    <p class="gmail_msg">G</p></div><div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
    <p class="gmail_msg"><br class="gmail_msg">
    </p>
    <div class="m_-2514806239369773045moz-cite-prefix gmail_msg">On 03/16/2017 09:23 AM, Gelonida wrote:<br class="gmail_msg">
    </div>
    <blockquote type="cite" class="gmail_msg">
      
      <p class="gmail_msg">Hi Pierre,</p>
      <p class="gmail_msg"><br class="gmail_msg">
      </p>
      <p class="gmail_msg">Thanks a lot.<br class="gmail_msg">
        Yesterday I pulled your PR, built it, but didn't have time to
        check. So I repulled today, rebuilt and hope I have some spare
        time at work.</p>
      <p class="gmail_msg">This looks very interesting and should really simplify to
        implement small uwsgi plugins.</p>
      <p class="gmail_msg"><br class="gmail_msg">
      </p>
      <br class="gmail_msg">
      <div class="m_-2514806239369773045moz-cite-prefix gmail_msg">On 14/03/2017 18:25, Pierre Tardy
        wrote:<br class="gmail_msg">
      </div>
      <blockquote type="cite" class="gmail_msg">
        <div dir="ltr" class="gmail_msg">Hi Gelonida,
          <div class="gmail_msg"><br class="gmail_msg">
          </div>
          <div class="gmail_msg">Here is a first version of the flash_dashboard plugin</div>
          <div class="gmail_msg"><a href="https://github.com/buildbot/buildbot/pull/3041" class="gmail_msg" target="_blank">https://github.com/buildbot/buildbot/pull/3041</a></div>
          <div class="gmail_msg"><br class="gmail_msg">
          </div>
          <div class="gmail_msg">there are still needs to be some polishing, but the main
            ideas are there.</div>
          <div class="gmail_msg"><br class="gmail_msg">
          </div>
          <div class="gmail_msg">See documentation to get an idea on how to use it</div>
          <div class="gmail_msg"><a href="https://github.com/buildbot/buildbot/pull/3041/files#diff-eea13d1ebd483f573175b4da8762a6e5" class="gmail_msg" target="_blank">https://github.com/buildbot/buildbot/pull/3041/files#diff-eea13d1ebd483f573175b4da8762a6e5</a></div>
          <div class="gmail_msg"><br class="gmail_msg">
          </div>
          <div class="gmail_msg">Please let me know if this is the right level of
            abstraction for you.</div>
          <div class="gmail_msg"><br class="gmail_msg">
          </div>
          <div class="gmail_msg">You can use requests to get the REST api, but you can
            also use app.buildbot_api.dataGet to bypass the REST api
            layer (and the authorization layer)</div>
          <div class="gmail_msg"><br class="gmail_msg">
          </div>
          <div class="gmail_msg">Pierre</div>
          <div class="gmail_msg"><br class="gmail_msg">
            <div class="gmail_quote gmail_msg">
              <div dir="ltr" class="gmail_msg">On Tue, Mar 14, 2017 at 12:05 PM Gelonida
                <<a href="mailto:gelonida@gmail.com" class="gmail_msg" target="_blank">gelonida@gmail.com</a>>
                wrote:<br class="gmail_msg">
              </div>
              <blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
                  <p class="gmail_msg">Hi Pierre,</p>
                  <p class="gmail_msg">Thanks for your reply,</p>
                  <p class="gmail_msg">In our context we don't need a
                    real time dashboard (at least for the start)</p>
                  <p class="gmail_msg">I think I will start with a
                    server side created bottle or flask implementation
                    and play with angular at a later time.<br class="gmail_msg">
                    The idea is to have a view quickly for some users
                    and Angular views are not quickly to develop if you
                    don't have the habit.<br class="gmail_msg">
                    I did not try with buildbot (and it's js
                    dependencies), but often just getting the node /
                    grunt / gulp build environment up and <br class="gmail_msg">
                    running can already be painful. So an attractive
                    Angular web front end only later.</p>
                  <p class="gmail_msg">Do I already need a web-dev build
                    environment for hooking up a single url into the
                    buildbot env or is there some plugin magic,<br class="gmail_msg">
                    that will avoid this.<br class="gmail_msg">
                  </p>
                  <p class="gmail_msg"><br class="gmail_msg">
                  </p>
                  <p class="gmail_msg">I'd appreciate a lot if you could
                    point  me to information of how to integrate any url
                    (static / server side) into the buildbot webif.<br class="gmail_msg">
                  </p>
                  <p class="gmail_msg">If easier to integrate, then the
                    dynamic web script could just yield some JSON file
                    but I'd be curious of how to integrate <br class="gmail_msg">
                    some non Angular HTML.<br class="gmail_msg">
                  </p>
                  <p class="gmail_msg"><br class="gmail_msg">
                  </p>
                  My dynamic script could either yield something like:<br class="gmail_msg">
                  <html><br class="gmail_msg">
                  <body><br class="gmail_msg">
                  <h1>all release branches<h1><br class="gmail_msg">
                  <form><br class="gmail_msg">
                  <select name = "branchgroups"><br class="gmail_msg">
                                    <option
                  value="all">all</option><br class="gmail_msg">
                                    <option
                  value="release">release</option><br class="gmail_msg">
                                    <option
                  value="develop">develop</option><br class="gmail_msg">
                                  </select><br class="gmail_msg">
                  </form><br class="gmail_msg">
                  <table><br class="gmail_msg">
                  . . . .<br class="gmail_msg">
                  </table><br class="gmail_msg">
                  </body><br class="gmail_msg">
                  </html><br class="gmail_msg">
                  <br class="gmail_msg">
                  or just a json with something similar to:<br class="gmail_msg">
                  { "title": "all release branches",<br class="gmail_msg">
                     "header_row": [ "project", "branch", "builder",
                  "builds"],<br class="gmail_msg">
                    "rows" : [<br class="gmail_msg">
                      [ "pjt one", "rls/v1.0", "lint_results", [
                  {"buildid": 4, "status": "pass"}, {"buildid": 3,
                  "status": "pass"}, {"buildid": 1, "status": "fail"}]
                  ],<br class="gmail_msg">
                      [ "pjt one", "rls/v1.0", "quick_unittests", [
                  {"buildid": 4, "status": "pass"}, {"buildid": 3,
                  "status": "pass"}, {"buildid": 1, "status": "fail"}]
                  ],<br class="gmail_msg">
                      [ "pjt one", "rls/v2.0", "lint_results", [
                  {"buildid": 6, "status": "fail"}, {"buildid": 5,
                  "status": "pass"}, {"buildid": 2, "status": "fail"}] ]<br class="gmail_msg">
                    ]<br class="gmail_msg">
                  }<br class="gmail_msg">
                  <br class="gmail_msg">
                  whatever is easier to integrate.<br class="gmail_msg">
                  <br class="gmail_msg">
                  <br class="gmail_msg">
                  At the moment I start looking at the REST-API calls,
                  and the amount of calls, that I would need to
                  implement such view.<br class="gmail_msg">
                  On a first glance this seems quite costly.<br class="gmail_msg">
                  <br class="gmail_msg">
                  I'll follow up.</div>
                <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg"><br class="gmail_msg">
                  <br class="gmail_msg">
                  <div class="m_-2514806239369773045m_950433075199581844moz-cite-prefix gmail_msg">On 03/12/2017 05:48 PM, Pierre Tardy
                    wrote:<br class="gmail_msg">
                  </div>
                </div>
                <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
                  <blockquote type="cite" class="gmail_msg">
                    <div dir="ltr" class="gmail_msg">
                      <div class="gmail_quote gmail_msg">
                        <blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                          <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
                            <p class="gmail_msg">Question(s):<br class="gmail_msg">
                              ----------------<br class="gmail_msg">
                              Did anyone already implement something
                              similar?<br class="gmail_msg">
                            </p>
                          </div>
                        </blockquote>
                        <div class="gmail_msg">Well console view and
                          waterfall views are such dashboards or showing
                          the builds in specific manner.</div>
                        <div class="gmail_msg"> </div>
                        <blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                          <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
                            <p class="gmail_msg"> Does anyone have a
                              similar issue? If yes how do you solve
                              this problem?<br class="gmail_msg">
                              What would be the easiest way to create
                              such a page <br class="gmail_msg">
                            </p>
                          </div>
                        </blockquote>
                      </div>
                    </div>
                  </blockquote>
                </div>
                <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
                  <blockquote type="cite" class="gmail_msg">
                    <div dir="ltr" class="gmail_msg">
                      <div class="gmail_quote gmail_msg">
                        <div class="gmail_msg">The easiest way if you
                          know angularjs is to indeed write a UI plugin.
                          buildbot UI has been designed for this, and
                          this is the only way you can write a real time
                          updated dashboard.</div>
                      </div>
                    </div>
                  </blockquote>
                </div>
                <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
                  <blockquote type="cite" class="gmail_msg">
                    <div dir="ltr" class="gmail_msg">
                      <div class="gmail_quote gmail_msg">
                        <div class="gmail_msg"><br class="gmail_msg">
                        </div>
                        <blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                          <div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
                            <p class="gmail_msg"> I'm not very good with
                              web development and never tried to change
                              the buildbot web front end.<br class="gmail_msg">
                              Would it be simpler to create a standalone
                              page, which constructs this contents with
                              the help of the web api?<br class="gmail_msg">
                            </p>
                          </div>
                        </blockquote>
                        <div class="gmail_msg">Server side servers are
                          indeed a bit easier. You could indeed create a
                          separate flask application that would access
                          the REST api using python-requests.</div>
                        <div class="gmail_msg">This can help you to
                          write a dashboard to look exactly as you wish.</div>
                        <div class="gmail_msg"><br class="gmail_msg">
                        </div>
                        <div class="gmail_msg">I usually recommend to
                          take the effort to learn angularJS and front
                          end development as I find it did unlock a lot
                          of opportunities.</div>
                        <div class="gmail_msg">I do realize it is not
                          practical for everybody, and we should have an
                          easier story for custom dashboard creation
                          that does not require front end development
                          mastery.</div>
                        <div class="gmail_msg"><br class="gmail_msg">
                        </div>
                        <div class="gmail_msg">I will be happy to help
                          reviewing your flask application, and will
                          help you integrate it as a dashboard in the
                          main UI. I think it can work with some JS
                          magic to embed a flask application into a
                          Buildbot UI plugin.</div>
                        <div class="gmail_msg"><br class="gmail_msg">
                        </div>
                        <div class="gmail_msg">Regards</div>
                        <div class="gmail_msg">Pierre </div>
                        <div class="gmail_msg"><br class="gmail_msg">
                        </div>
                        <div class="gmail_msg"><br class="gmail_msg">
                        </div>
                      </div>
                    </div>
                  </blockquote>
                </div>
              </blockquote>
            </div>
          </div>
        </div>
      </blockquote>
      <br class="gmail_msg">
    </blockquote>
    <br class="gmail_msg">
  </div></blockquote></div></div></div></div></div>