Merge "Bug 161 - Deleting an item that was being edited did not clear the canvas - fix exception"
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..40dc922
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,24 @@
+FROM ubuntu:16.04
+
+RUN apt-get update && apt-get -y install python3 curl build-essential
+RUN curl http://repos.riftio.com/public/xenial-riftware-public-key | apt-key add - && \
+	curl -o /etc/apt/sources.list.d/OSM.list http://buildtracker.riftio.com/repo_file/ub16/OSM/ && \
+	apt-get update && \
+	apt-get -y install rw.toolchain-rwbase \
+		rw.toolchain-rwtoolchain \
+		rw.core.mgmt-mgmt \
+		rw.core.util-util \
+		rw.core.rwvx-rwvx \
+		rw.core.rwvx-rwdts \
+		rw.automation.core-RWAUTO \
+		rw.tools-container-tools \
+		rw.tools-scripts \
+		python-cinderclient \
+		libxml2-dev \
+		libxslt-dev
+
+RUN /usr/rift/container_tools/mkcontainer --modes build --modes ext --repo OSM
+
+RUN chmod 777 /usr/rift /usr/rift/usr/share
+
+RUN rm -rf /tmp/npm-cache
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..dda86ae
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,27 @@
+pipeline {
+	agent any
+	stages {
+		stage("Build") {
+			agent {
+				dockerfile true
+			}
+			steps {
+				sh 'make NOT_DEVELOPER_BUILD=TRUE -j16 package'
+				stash name: "deb-files", includes: ".build/*.deb"
+			}
+		}
+		stage("Repo Component") {
+			steps {
+				unstash "deb-files"
+				sh '''
+					mkdir -p pool/UI
+					mv .build/*.deb pool/UI/
+					mkdir -p dists/$RELEASE/UI/binary-amd64
+					apt-ftparchive packages pool/UI > dists/$RELEASE/UI/binary-amd64/Packages
+					gzip -9fk dists/$RELEASE/UI/binary-amd64/Packages
+					'''
+				archiveArtifacts artifacts: "dists/**,pool/UI/*.deb"
+			}
+		}
+	}
+}
diff --git a/skyquake/plugins/launchpad/src/launchpad_card/jobListCard.jsx b/skyquake/plugins/launchpad/src/launchpad_card/jobListCard.jsx
index 0f345ea..5cdcb85 100644
--- a/skyquake/plugins/launchpad/src/launchpad_card/jobListCard.jsx
+++ b/skyquake/plugins/launchpad/src/launchpad_card/jobListCard.jsx
@@ -68,11 +68,12 @@
                 <section className='jobListCard--details'>
                     <h4 onClick={this.openModal.bind(this)}>Job Details</h4>
                     <Modal
+                        className='jobListCard--details--modal'
                         visible={this.state.modalVisible}
                         width="600"
                         height="400"
                         effect="fadeInUp">
-                        <div>
+                        <div className='jobListCard--details--tree'>
                             <TreeView nodeLabel={<span>Job Details</span>} key={'job-details'} defaultCollapsed={false}>
                                 <p>{jobDetailsText}</p>
                             </TreeView>
diff --git a/skyquake/plugins/launchpad/src/launchpad_card/jobListCard.scss b/skyquake/plugins/launchpad/src/launchpad_card/jobListCard.scss
index 8551abb..0ea403f 100644
--- a/skyquake/plugins/launchpad/src/launchpad_card/jobListCard.scss
+++ b/skyquake/plugins/launchpad/src/launchpad_card/jobListCard.scss
@@ -67,6 +67,26 @@
     }
     &--details {
         font-size:0.75rem;
+
+        >div {
+            display: flex;
+            >div {
+                display: flex;
+                padding: 1em 0 0 1em;
+            }
+        }
+
+        &--tree {
+                display: flex;
+                flex-direction: column;
+
+                .tree-view {
+                    min-height: 300px;
+                    min-width: 580px;
+                    overflow-y: scroll;
+                }
+            }
+
         h4 {
             padding-bottom:0.5rem;
             text-decoration:underline;