Code Monkey home page Code Monkey logo

pocdoc's Introduction

Pipeline-UI-PoC

Cloudfoundry Deployment

  • As a precondition, mongodb backing service should be started on your cf space. Sample commands:
cf login -a-u-o-s-p....    // log on to your cf space
cf marketplace // to see if mongodb is provided with which plan
cf s  // to see running services
cf a  // to se  running applications
cf create-service mongodb v3.0-container pipeline-db  // creating backing service named 'pipeline-db' which is needed in our db module

Local Install

  • This step if optional. If you are behind Corporate network, please add settings as following. Note that do not commit these two proxy settings into git, because it would effect build service.:
    • .bowerrc in root folder.
    • .npmrc in root folder and /db folder.
	 	{
	 		"proxy": "http://proxy.xxx.xxx.corp:8080",
			"https-proxy": "http://proxy.xxx.xxx.corp:8080"
	 	}
		registry=http://nexus.wdf.xxx.corp:8081/nexus/content/groups/build.releases.npm/
  • Install this node project, following things are triggered to build web module by this command
    • install all dependencies in to folder '/node_modules'
    • download blue ocean design language project via bower into folder '/bower_components'
    • build translate blue ocean control in JSX+ES6 to ES5 in format of AMD module bundle into folder '/web/dist'
    • translate blue ocean LESS to CSS, and wrap it with 'jenkinsbo' namespace into folder '/web/dist'
    • copy blue ocean svg files into folder '/web/dist'
    • copy font files of oct + fontawsome to '/web/dist'
npm install
  • Run a server for web module
npm start
mongod --dbpath "c:\mongodata"
  • Run a server for db module
cd db
npm start

web Module Design

  • View Structure, Transition and Routing of views:
  • Wrapper of React control: sap.ciconnect.control.BOControl. This is a general wrapper. Any control provided by blue ocean can be used via this wrapper. Only specify following things:
    • properties:
      • moduleName: name of the module (file) under dist/bo/js. For example: PipelineGraph.
      • controlName: name of the control. One module is possible to export several controls. For example: weather-icon module contains several controls.
      • props: This is an object of react property. In general data is fed here. Please refer to blue ocean modules (under folder bower_components/jenkins-design-language/src/js/components) for props detail.
    • aggregations:
      • boEvents:react control event is impelemented in here. Because BOControl is a general wrapper, event names cannot be predefined in event{} block. So this multiple aggregation is defined to wrap events. For each event defined by react control, add an aggregation instance of BOEvent, simply specify event name and provide handler would work. Example:
<ci:BOControl moduleName="PipelineGraph" controlName="PipelineGraph" props="{pipeline>abstract}">
   <ci:boEvents>
   	<ci:BOEvent name="onNodeClick" handle="onPipelineNodeClick" />
   </ci:boEvents>
</ci:BOControl>

db Module Design

TODO

Useful links

Done Tasks

  • use requirejs to integrate amd bo to ui5.
  • Ref to this article: http://www.ryadel.com/en/css-namespaces-avoid-conflict-style-sheets-files/, create own LESS and add namespace to avoid conflict of BO css and UI5 css.
  • adjust data to support both d3 pipeline and new bo pipeline control.
  • adjust summary page, use weather icons instead of ui5 control.
  • remove vscroll bar on app level (overflow: hidden)
  • move vscroll bar from view level on to list level
  • add a category dropdown in front of search on pipeline page (e.g. Fiori standard pipeline)
  • enhance search function of pipeline page
  • add an organization + git/gerrit + all selection dropdown in front of search on repo page.
  • enhance search function of repo page
  • finish delete git repo pop
  • finish active button pop - consume the new models
  • finish deactive button pop - consume the new models
  • move add git input to a pop triggered by popover
  • mix github/gitgerrit tables
  • change repo view to bage style, line items become like link + bages + pipelinegraph
  • change pipeline view to bage style, line items become like link + bages + pipelinegraph
  • linkage / event navigation of repo/pipeline page
  • add navigation function to pipeline page list items, a page to edit pipeline, and see more details about it
  • add navigation function to repo page list items, a page to see more detail of running status
  • add bookmarkable tab
  • add bookmarkable search
  • event handling of BOControl in general
  • deploy to cf
  • detail page of repo (use children data of BO pipelinegraph control)
  • detail page of repo (use control sap.uxap.ObjectPageLayout and forms)
  • add db (json-based)

TODO Tasks

  • HCP - Classic: integrate with github
  • HCP - Classic: integrate with git/gerrit
  • UI: try out n-odata-server
  • UI: embed BOControl in BOControl (use page & page-header controls)
  • UI: detail page of pipeline (use BOControl container features)
  • UI: detail page of pipeline - has dependency: use pipeline editor control, comming soon by jenkins DL
  • UI: detail page of repo - think about an activation button on header, and more forms in body to provide sufficient information to really activate pipeline on the repo
  • UI: legend page
  • KT: knowledge transfer of poc
  • KT: know-how to department (19th Dec. 1h)
  • BUG: use babel polyfill to provide implementation for Object.assign(), Symbol for stupid IE.

pocdoc's People

Contributors

jeankueo avatar jeankueo2 avatar tomk8r avatar ikirilova avatar

Watchers

 avatar

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.