You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by nd...@apache.org on 2015/05/01 23:33:23 UTC

[36/57] [partial] airavata-php-gateway git commit: AIRAVATA 1632 + Job Description for Admin Dashboard

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/admin/manage-roles.blade.php
----------------------------------------------------------------------
diff --git a/app/views/admin/manage-roles.blade.php b/app/views/admin/manage-roles.blade.php
new file mode 100644
index 0000000..fa39a75
--- /dev/null
+++ b/app/views/admin/manage-roles.blade.php
@@ -0,0 +1,138 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+    {{ HTML::style('css/admin.css')}}
+@stop
+
+@section('content')
+
+    <div id="wrapper">
+            <!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens -->
+            @include( 'partials/dashboard-block')
+        <div id="page-wrapper">
+
+            <div class="container-fluid">
+                <div class="col-md-12">
+                    @if( Session::has("message"))
+                        <div class="row">
+                            <div class="alert alert-success alert-dismissible" role="alert">
+                                <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
+                                {{ Session::get("message") }}
+                            </div>
+                        </div>
+                        {{ Session::forget("message") }}
+                    @endif
+
+                    <h1 class="text-center">Roles</h1>
+
+                    <table class="table table-striped table-condensed">
+                        <tr>
+                            <th>
+                                Role</th>
+                            <th>Actions</th>
+                        </tr>
+                        @foreach( $roles as $role)
+                        <tr>
+                            <td class="role-name">{{ $role }}</td>
+                            <td>
+                                <span class="glyphicon glyphicon-pencil edit-role-name"></span>&nbsp;&nbsp;
+                                <a href="{{URL::to('/')}}/admin/dashboard/users?role={{$role}}">
+                                    <span class="glyphicon glyphicon-user role-users"></span>&nbsp;&nbsp;
+                                </a>
+                                <span class="glyphicon glyphicon-trash delete-role"></span>&nbsp;&nbsp;
+                            </td>
+                        </tr>
+                        @endforeach
+                    </table>
+                    <div class="col-md-12">
+                        <button type="button" class="btn btn-default toggle-add-role"><span class="glyphicon glyphicon-plus"></span>Add a new Role</button>
+                    </div>
+                    <div class="add-role col-md-6">
+                        <form role="form" action="{{URL::to('/')}}/admin/addrole" method="POST" class="add-role-form">
+                            <div class="form-group">
+                                <label>Enter Role Name</label>
+                                <input type="text" name="role" class="form-control"/>
+                            </div>
+                            <div class="form-group">
+                                <input type="submit" class="form-control btn btn-primary" value="Add" />
+                            </div>
+                        </form>
+                    </div>
+
+                    <div class="edit-role hide">
+                        <form class="edit-role-form">
+                            <div class="form-group col-md-4">
+                                <input type="text" name="new-role-name" class="new-role-name form-control"/>
+                                <input type="hidden" name="original-role-name" class="original-role-name" value=""/>
+                            </div>
+                            <div class="form-group col-md-4">
+                                <input type="submit" class="form-control btn btn-primary" value="Edit" />
+                            </div>
+                        </form>
+                    </div>
+
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <div class="modal fade" id="delete-role-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+        <div class="modal-dialog">
+
+            <form action="{{URL::to('/')}}/admin/deleterole" method="POST">
+                <div class="modal-content">
+                    <div class="modal-header">
+                        <h3 class="text-center">Delete Role Confirmation</h3>
+                    </div>
+                    <div class="modal-body">
+                        <input type="hidden" class="form-control delete-roleName" name="role"/>
+                        Do you really want to delete the role - <span class="delete-role-name"></span>
+                    </div>
+                    <div class="modal-footer">
+                        <div class="form-group">
+                            <input type="submit" class="btn btn-danger" value="Delete"/>
+                            <input type="button" class="btn btn-default" data-dismiss="modal" value ="Cancel"/>
+                        </div>
+                    </div>
+                </div>
+
+            </form>
+
+
+        </div>
+    </div>
+
+
+@stop
+
+@section('scripts')
+    @parent
+    <script>
+        $(".toggle-add-role").click( function(){
+            $(".add-role").slideDown();
+        });
+
+        $(".edit-role-name").click( function(){
+            var roleNameSpace = $(this).parent().parent().find(".role-name");
+            if( roleNameSpace.find(".edit-role-form").length )
+            {
+                roleNameSpace.html( roleNameSpace.find(".original-role-name").val() );
+            }
+            else
+            {
+                var role = roleNameSpace.html();
+                roleNameSpace.html( $(".edit-role").html() );
+                roleNameSpace.find(".original-role-name").val( role );
+                roleNameSpace.find(".new-role-name").val( role );
+            }
+        });
+
+        $(".delete-role").click( function(){
+            $("#delete-role-block").modal("show");
+            var roleName = $(this).parent().parent().find(".role-name").html();
+            $(".delete-role-name").html(roleName);
+            $(".delete-roleName").val(roleName);
+        });
+    </script>
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/admin/manage-users.blade.php
----------------------------------------------------------------------
diff --git a/app/views/admin/manage-users.blade.php b/app/views/admin/manage-users.blade.php
new file mode 100644
index 0000000..5cbdb7b
--- /dev/null
+++ b/app/views/admin/manage-users.blade.php
@@ -0,0 +1,144 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+    {{ HTML::style('css/admin.css')}}
+@stop
+
+@section('content')
+
+    <div id="wrapper">
+            <!-- Sidebar Menu Items - These collapse to the responsive navigation menu on small screens -->
+            @include( 'partials/dashboard-block')
+        <div id="page-wrapper">
+            <div class="col-md-12">
+            @if( Session::has("message"))
+                <div class="row">
+                    <div class="alert alert-success alert-dismissible" role="alert">
+                        <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
+                        {{ Session::get("message") }}
+                    </div>
+                </div>
+                {{ Session::forget("message") }}
+            @endif
+            </div>
+            <div class="container-fluid">
+                <div class="col-md-12">
+                    @if( Session::has("message"))
+                        <div class="row">
+                            <div class="alert alert-success alert-dismissible" role="alert">
+                                <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
+                                {{ Session::get("message") }}
+                            </div>
+                        </div>
+                        {{ Session::forget("message") }}
+                    @endif
+
+                    <h1 class="text-center">Users</h1>
+
+                    <table class="table table-striped table-condensed">
+                        <tr>
+                            <th>Username</th>
+                            <th>
+                                Role : 
+                                <select onchange="location = this.options[this.selectedIndex].value;">
+                                    <option>Select a role</option>
+                                    <option value="{{URL::to('/')}}/admin/dashboard/users">All</option>
+                                    @foreach( (array)$roles as $role)
+                                    <option value="{{URL::to('/')}}/admin/dashboard/users?role={{$role}}">{{$role}}</option>
+                                    @endforeach
+                                </select>
+                            </th>
+                        </tr>
+                        @foreach( (array)$users as $user)
+                        <tr class="user-row">
+                            <td>{{ $user }}</td>
+                            <td>
+                                <button class="button btn btn-default check-roles fade" type="button" data-username="{{$user}}">Check All Roles</button>
+                                <div class="user-roles"></div>
+                            </td>
+                        </tr>
+                        @endforeach
+                    </table>
+
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <div class="modal fade" id="check-role-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+        <div class="modal-dialog">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h3 class="text-center">User Roles</h3>
+                </div>
+                <div class="modal-body">
+                    <h4 class="roles-of-user"></h4>
+                    <div class="roles-load">
+                        Getting User Roles. Please Wait...  
+                    </div>
+                    <div class="roles-list">
+                    </div>  
+                </div>
+                <div class="modal-footer">
+                    <div class="form-group">
+                        <input type="submit" class="btn btn-primary" data-dismiss="modal"  value="Ok"/>
+                    </div>
+                </div>
+            </div>
+            <input type="hidden" class="base-url" value="{{URL::to('/')}}"/>
+        </div>
+    </div>
+
+    <div class="role-block">
+        <div class="btn-group" role="group">
+            <button type="button" class="btn btn-default role-name" disabled>Role</button>
+            <button type="button" class="btn btn-default"><span class="glyphicon glyphicon-remove"></span></button>
+        </div>
+    </div>
+@stop
+
+@section('scripts')
+    @parent
+    <script>
+
+    $(".user-row").hover( 
+        function(){
+            $(this).find(".check-roles").addClass("in");
+        },
+        function(){
+            $(this).find(".check-roles").removeClass("in");
+        }
+    );
+    $(".check-roles").click( function(){
+
+        var userName = $(this).data("username");
+        $("#check-role-block").modal("show");
+        $(".roles-of-user").html( "User : " + userName);
+        $(".roles-load").removeClass("hide");
+        $(".roles-list").addClass("hide");
+        $.ajax({
+            type: "POST",
+            url: $(".base-url").val() + "/admin/checkroles",
+            data: 
+            { 
+              username: userName
+            }
+        })
+        .complete(function( data ) {
+            roles = JSON.parse( data.responseText );
+            roleBlocks = "";
+            for( var i=0; i<roles.length; i++)
+            {
+                $(".role-block").find(".role-name").html( roles[i]);
+                var newRoleBlock = $(".role-block").html();
+                roleBlocks += newRoleBlock;
+                $(".roles-list").html( roleBlocks);
+            }
+            $(".roles-load").addClass("hide");
+            $(".roles-list").removeClass("hide");
+        });
+
+    });
+    </script>
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/application/deployment.blade.php
----------------------------------------------------------------------
diff --git a/app/views/application/deployment.blade.php b/app/views/application/deployment.blade.php
new file mode 100644
index 0000000..2cad93b
--- /dev/null
+++ b/app/views/application/deployment.blade.php
@@ -0,0 +1,180 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+    {{ HTML::style('css/style.css') }}
+@stop
+
+@section('content')
+
+<div class="container">
+	<div class="col-md-offset-2 col-md-8">
+		
+		<div class="row">
+			<button class="btn btn-default create-app-deployment">Create a new Application Deployment</button>
+		</div>
+		@if( count( $appDeployments) )
+			@if( Session::has("message"))
+				<div class="row">
+					<div class="alert alert-success alert-dismissible" role="alert">
+						<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
+						{{ Session::get("message") }}
+					</div>
+				</div>
+				{{ Session::forget("message") }}
+			@endif
+
+			<div class="row">
+				<div class="col-md-6">
+					<h3>Existing Application Deployments :</h3>
+				</div>
+				<div class="col-md-6" style="margin-top:3.5%">
+					<input type="text" class="col-md-12 filterinput" placeholder="Search by Deployment Id Name" />
+				</div>
+			</div>
+			<div class="panel-group" id="accordion">
+			@foreach( $appDeployments as $index => $deployment )
+				<div class="panel panel-default">
+					<div class="panel-heading">
+						<h4 class="panel-title">
+							<a class="accordion-toggle collapsed deployment-id" data-toggle="collapse" data-parent="#accordion" href="#collapse-{{$index}}">
+							{{ $deployment->appDeploymentId }}
+							</a>
+							<div class="pull-right col-md-2 deployment-options fade">
+								<span class="glyphicon glyphicon-pencil edit-app-deployment" style="cursor:pointer;" data-toggle="modal" data-target="#edit-app-deployment-block" data-deployment-id="{{ $deployment->appDeploymentId }}"></span>
+								<span class="glyphicon glyphicon-trash delete-app-deployment" style="cursor:pointer;" data-toggle="modal" data-target="#delete-app-deployment-block" data-deployment-id="{{ $deployment->appDeploymentId }}"></span>
+							</div>
+						</h4>
+					</div>
+					<div id="collapse-{{$index}}" class="panel-collapse collapse">
+						<div class="panel-body">
+							<div class="app-deployment-block">
+								@include('partials/deployment-block', array( 'deploymentObject' => $deployment, 'computeResources' => $computeResources, 'modules' => $modules) )
+							</div>
+						</div>
+					</div>
+				</div>
+			@endforeach
+			</div>
+		@endif
+
+		<div class="load-cmd-ui hide">
+			<input name="moduleLoadCmds[]" type="text" class="form-control" placeholder="Module Load Command"/>
+		</div>
+
+		<div class="lib-prepend-path-ui hide">
+			<div class="col-md-12 well">
+				<input name="libraryPrependPathName[]" type="text" class="col-md-4" placeholder="Name"/>
+				<input name="libraryPrependPathValue[]" type="text" class="col-md-8" placeholder="Value"/>
+			</div>
+		</div>
+
+		<div class="lib-append-path-ui hide">
+			<div class="col-md-12 well">
+				<input name="libraryAppendPathName[]" type="text" class="col-md-4" placeholder="Name"/>
+				<input name="libraryAppendPathValue[]" type="text" class="col-md-8" placeholder="Value"/>
+			</div>
+		</div>
+
+		<div class="environment-ui hide">
+			<div class="col-md-12 well">
+				<input name="environmentName[]" type="text" class="col-md-4" placeholder="Name"/>
+				<input name="environmentValue[]" type="text" class="col-md-8" placeholder="Value"/>
+			</div>
+		</div>
+
+		<div class="pre-job-command-ui hide">
+			<div class="col-md-12 well">
+				<input name="preJobCommand[]" type="text" class="col-md-12" placeholder="Pre Job Command"/>
+			</div>
+		</div>
+
+		<div class="post-job-command-ui hide">
+			<div class="col-md-12 well">
+				<input name="postJobCommand[]" type="text" class="col-md-12" placeholder="Post Job Command"/>
+			</div>
+		</div>
+
+		<div class="modal fade" id="edit-app-deployment-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+		    <div class="modal-dialog">
+				<form action="{{URL::to('/')}}/app/deployment-edit" method="POST">	
+		        <div class="modal-content">
+			    	<div class="modal-header">
+			    		<h3 class="text-center">Edit Application Deployment</h3>
+			    	</div>
+			    	<div class="modal-body row">
+						<div class="app-deployment-form-content col-md-12">
+						</div>
+					</div>
+					<div class="modal-footer">
+			        	<div class="form-group">
+							<input type="submit" class="btn btn-primary" value="Update"/>
+							<input type="button" class="btn btn-default" data-dismiss="modal" value ="Cancel"/>
+						</div>
+			        </div>	
+		        </div>
+		        </form>
+		    </div>
+		</div>
+
+		<div class="modal fade" id="create-app-deployment-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+		    <div class="modal-dialog">
+				<form action="{{URL::to('/')}}/app/deployment-create" method="POST">	
+		        <div class="modal-content">
+			    	<div class="modal-header">
+			    		<h3 class="text-center">Create Application Deployment</h3>
+			    	</div>
+			    	<div class="modal-body row">
+						<div class="col-md-12">
+							<div class="create-app-deployment-block">
+								@include('partials/deployment-block', array( 'computeResources' => $computeResources, 'modules' => $modules) )
+							</div>
+						</div>
+					</div>
+					<div class="modal-footer">
+			        	<div class="form-group">
+							<input type="submit" class="btn btn-primary" value="Create"/>
+							<input type="button" class="btn btn-default" data-dismiss="modal" value ="Cancel"/>
+						</div>
+			        </div>	
+		        </div>
+		        </form>
+		    </div>
+		</div>
+
+		<div class="modal fade" id="delete-app-deployment-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+		    <div class="modal-dialog">
+
+				<form action="{{URL::to('/')}}/app/deployment-delete" method="POST">
+			        <div class="modal-content">
+			            <div class="modal-header">
+			              	<h3 class="text-center">Delete Confirmation Application Deployment</h3>
+			            </div>
+			            <div class="modal-body">
+							<input type="hidden" class="form-control delete-deploymentId" name="appDeploymentId"/>
+					 		Do you really want to delete the Application Deployment - <span class="delete-deployment-id"></span>
+						</div>
+						<div class="modal-footer">
+							<div class="form-group">
+								<input type="submit" class="btn btn-danger" value="Delete"/>
+								<input type="button" class="btn btn-default" data-dismiss="modal" value ="Cancel"/>
+							</div>
+						</div>
+					</div>
+
+				</form>
+
+
+			</div>
+		</div>
+
+	</div>
+
+</div>
+
+@stop
+
+@section('scripts')
+	@parent
+    {{ HTML::script('js/deployment.js') }}
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/application/interface.blade.php
----------------------------------------------------------------------
diff --git a/app/views/application/interface.blade.php b/app/views/application/interface.blade.php
new file mode 100644
index 0000000..140a951
--- /dev/null
+++ b/app/views/application/interface.blade.php
@@ -0,0 +1,165 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+    {{ HTML::style('css/style.css') }}
+@stop
+
+@section('content')
+
+<div class="container">
+	<div class="col-md-offset-2 col-md-8">
+		
+		<div class="row">
+			<button class="btn btn-default create-app-interface">Create a new Application Interface</button>
+		</div>
+		@if( count( $appInterfaces) )
+			@if( Session::has("message"))
+				<div class="row">
+					<div class="alert alert-success alert-dismissible" role="alert">
+						<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
+						{{ Session::get("message") }}
+					</div>
+				</div>
+				{{ Session::forget("message") }}
+			@endif
+			<div class="row">
+
+				<div class="col-md-6">
+					<h3>Existing Application Interfaces :</h3>
+				</div>
+				<div class="col-md-6" style="margin-top:3.5%">
+					<input type="text" class="col-md-12 filterinput" placeholder="Search by Interface Name" />
+				</div>
+			</div>
+			<div class="panel-group" id="accordion">
+			@foreach( $appInterfaces as $index => $interface )
+				<div class="panel panel-default">
+					<div class="panel-heading">
+						<h4 class="panel-title">
+							<a class="accordion-toggle collapsed interface-name" data-toggle="collapse" data-parent="#accordion" href="#collapse-{{$index}}">
+							{{ $interface->applicationName }}
+							</a>
+							<div class="pull-right col-md-2 interface-options fade">
+								<span class="glyphicon glyphicon-pencil edit-app-interface" style="cursor:pointer;" data-toggle="modal" data-target="#edit-app-interface-block" data-interface-id="{{ $interface->applicationInterfaceId }}"></span>
+								<span class="glyphicon glyphicon-trash delete-app-interface" style="cursor:pointer;" data-toggle="modal" data-target="#delete-app-interface-block" data-interface-id="{{ $interface->applicationInterfaceId }}"></span>
+							</div>
+						</h4>
+					</div>
+					<div id="collapse-{{$index}}" class="panel-collapse collapse">
+						<div class="panel-body">
+							<div class="app-interface-block">
+								@include('partials/interface-block', array( 'interfaceObject' => $interface, 'dataTypes' => $dataTypes, 'modules' => $modules) )
+							</div>
+						</div>
+					</div>
+				</div>
+			@endforeach
+			</div>
+		@endif
+
+	</div>
+
+	<div class="app-module-block hide">
+		<div class="input-group">
+			<select name="applicationModules[]" class="app-module-select form-control">
+				@foreach( $modules as $index=> $module)
+				<option value="{{ $module->appModuleId}}">{{ $module->appModuleName }}</option>
+				@endforeach
+			</select>
+			<span class="input-group-addon remove-app-module" style="cursor:pointer;">x</span>
+		</div>
+	</div>
+
+	<div class="app-input-block hide">
+		@include('partials/interface-input-block', array( 'dataTypes' => $dataTypes) )
+	</div>
+
+	<div class="app-output-block hide">
+		@include('partials/interface-output-block', array( 'dataTypes' => $dataTypes) )
+	</div>
+</div>
+
+<div class="modal fade" id="edit-app-interface-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true" data-backdrop="static">
+    <div class="modal-dialog">
+		<form action="{{URL::to('/')}}/app/interface-edit" method="POST" id="edit-app-interface-form">	
+        <div class="modal-content">
+	    	<div class="modal-header">
+	    		<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+	    		<h3 class="text-center">Edit Application Interface</h3>
+	    	</div>
+	    	<div class="modal-body row">
+				<div class="app-interface-form-content col-md-12">
+				</div>
+			</div>
+			<div class="modal-footer">
+	        	<div class="form-group">
+					<input type="button" class="submit-edit-app-interface-form btn btn-primary" value="Update"/>
+					<input type="button" class="btn btn-default" data-dismiss="modal" value ="Cancel"/>
+					<input type="submit" class="btn btn-primary hide really-submit-edit-app-interface-form" value=""/>
+				</div>
+	        </div>	
+        </div>
+        </form>
+    </div>
+</div>
+
+<div class="modal fade" id="create-app-interface-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true" data-backdrop="static">
+    <div class="modal-dialog">
+		<form action="{{URL::to('/')}}/app/interface-create" method="POST" id="create-app-interface-form">	
+        <div class="modal-content">
+	    	<div class="modal-header">
+	    		<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+	    		<h3 class="text-center">Create Application Interface</h3>
+	    	</div>
+	    	<div class="modal-body row">
+				<div class="col-md-12">
+					<div class="create-app-interface-block">
+						@include('partials/interface-block', array( 'dataTypes' => $dataTypes, 'modules' => $modules) )
+					</div>
+				</div>
+			</div>
+			<div class="modal-footer">
+	        	<div class="form-group">
+					<input type="button" class="btn btn-primary submit-create-app-interface-form" value="Create"/>
+					<input type="button" class="btn btn-default" data-dismiss="modal" value ="Cancel"/>
+					<input type="submit" class="btn btn-primary hide really-submit-create-app-interface-form" value=""/>
+				</div>
+	        </div>	
+        </div>
+        </form>
+    </div>
+</div>
+
+<div class="modal fade" id="delete-app-interface-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+    <div class="modal-dialog">
+
+		<form action="{{URL::to('/')}}/app/interface-delete" method="POST">
+	        <div class="modal-content">
+	            <div class="modal-header">
+	              	<h3 class="text-center">Delete Confirmation Application Interface</h3>
+	            </div>
+	            <div class="modal-body">
+					<input type="hidden" class="form-control delete-interfaceid" name="appInterfaceId"/>
+			 		Do you really want to delete the Application Interface - <span class="delete-interface-name"></span>
+				</div>
+				<div class="modal-footer">
+					<div class="form-group">
+						<input type="submit" class="btn btn-danger" value="Delete"/>
+						<input type="button" class="btn btn-default" data-dismiss="modal" value ="Cancel"/>
+					</div>
+				</div>
+			</div>
+
+		</form>
+
+
+	</div>
+</div>
+
+@stop
+
+@section('scripts')
+	@parent
+    {{ HTML::script('js/interface.js') }}
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/application/module.blade.php
----------------------------------------------------------------------
diff --git a/app/views/application/module.blade.php b/app/views/application/module.blade.php
new file mode 100644
index 0000000..006f330
--- /dev/null
+++ b/app/views/application/module.blade.php
@@ -0,0 +1,189 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+    {{ HTML::style('css/style.css') }}
+@stop
+
+@section('content')
+
+<div class="container">
+	<div class="col-md-offset-2 col-md-8">
+
+		<button class="btn btn-default create-app-module" data-toggle="modal" data-target="#new-app-module-block">Create a new Application Module</button>
+
+	@if( count( $modules) )
+		@if( Session::has("message"))
+			<div class="row">
+				<div class="alert alert-success alert-dismissible" role="alert">
+					<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
+					{{ Session::get("message") }}
+				</div>
+			</div>
+			{{ Session::forget("message") }}
+		@endif
+		<div class="row">
+			<div class="col-md-6">
+				<h3>Existing Modules :</h3>
+			</div>
+			<div class="col-md-6" style="margin-top:3.5%">
+				<input type="text" class="col-md-12 filterinput" placeholder="Search by Module Name" />
+			</div>
+		</div>
+		<div class="panel-group" id="accordion">
+		@foreach( $modules as $index => $module )
+			<div class="panel panel-default">
+				<div class="panel-heading">
+					<h4 class="panel-title">
+						<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapse-{{$index}}">
+						{{ $module->appModuleName }}
+						</a>
+						<div class="pull-right col-md-2 module-options fade">
+							<span class="glyphicon glyphicon-pencil edit-app-module" style="cursor:pointer;" data-toggle="modal" data-target="#edit-app-module-block" data-module-data="{{ htmlentities(json_encode( $module) ) }}"></span>
+							<span class="glyphicon glyphicon-trash delete-app-module" style="cursor:pointer;" data-toggle="modal" data-target="#delete-app-module-block" data-module-data="{{ htmlentities(json_encode( $module) ) }}"></span>
+						</div>
+					</h4>
+				</div>
+				<div id="collapse-{{$index}}" class="panel-collapse collapse">
+					<div class="panel-body">
+						{{ $module->appModuleDescription }}
+					</div>
+				</div>
+			</div>
+		@endforeach
+		</div>
+	@endif
+
+
+ 	<div class="modal fade" id="new-app-module-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+	    <div class="modal-dialog">
+
+			<form action="{{URL::to('/')}}/app/module-create" method="POST">
+
+		        <div class="modal-content">
+		            <div class="modal-header">
+		              	<h3 class="text-center">Create a new Application Module</h3>
+		            </div>
+		            <div class="modal-body">
+				 		@include('partials/module-block')
+					</div>
+					<div class="modal-footer">
+						<div class="form-group">
+							<input type="submit" class="btn btn-primary" value="Save"/>
+							<input type="reset" class="reset-create-form btn btn-success" value ="Reset"/>
+						</div>
+					</div>
+				</div>
+
+			</form>
+
+
+		</div>
+	</div>
+
+	<div class="modal fade" id="edit-app-module-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+	    <div class="modal-dialog">
+
+			<form action="{{URL::to('/')}}/app/module-edit" method="POST">
+		        <div class="modal-content">
+		            <div class="modal-header">
+		              	<h3 class="text-center">Edit Application Module</h3>
+		            </div>
+		            <div class="modal-body">
+						<input type="hidden" class="form-control edit-moduleid" name="appModuleId"/>
+				 		@include('partials/module-block')
+					</div>
+					<div class="modal-footer">
+						<div class="form-group">
+							<input type="submit" class="btn btn-primary" value="Update"/>
+							<input type="button" class="btn btn-default" data-dismiss="modal" value ="Cancel"/>
+						</div>
+					</div>
+				</div>
+
+			</form>
+
+
+		</div>
+	</div>
+
+	<div class="modal fade" id="delete-app-module-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+	    <div class="modal-dialog">
+
+			<form action="{{URL::to('/')}}/app/module-delete" method="POST">
+		        <div class="modal-content">
+		            <div class="modal-header">
+		              	<h3 class="text-center">Delete Confirmation Application Module</h3>
+		            </div>
+		            <div class="modal-body">
+						<input type="hidden" class="form-control delete-moduleid" name="appModuleId"/>
+
+				 		Do you really want to delete the Application Module - <span class="delete-module-name"></span>
+					</div>
+					<div class="modal-footer">
+						<div class="form-group">
+							<input type="submit" class="btn btn-danger" value="Delete"/>
+							<input type="button" class="btn btn-default" data-dismiss="modal" value ="Cancel"/>
+						</div>
+					</div>
+				</div>
+
+			</form>
+
+
+		</div>
+	</div>
+
+@stop
+
+@section('scripts')
+	@parent
+	<script type="text/javascript">
+
+		$(".panel-title").hover( 
+			function(){
+				$(this).find(".module-options").addClass("in");
+			},
+			function(){
+				$(this).find(".module-options").removeClass("in");
+			}
+		);
+
+    	$('.filterinput').keyup(function() {
+            var a = $(this).val();
+            if (a.length > 0) {
+                children = ($("#accordion").children());
+
+                var containing = children.filter(function () {
+                    var regex = new RegExp('\\b' + a, 'i');
+                    return regex.test($('a', this).text());
+                }).slideDown();
+                children.not(containing).slideUp();
+            } else {
+                children.slideDown();
+            }
+            return false;
+        });
+
+        $(".create-app-module").click( function(){
+        	//reset form to clear it out if it got filled by edit modules
+        	$(".reset-create-form").click();
+        })
+
+        $(".edit-app-module").click( function(){
+        	var moduleData = $(this).data("module-data");
+        	console.log( moduleData);
+        	$(".edit-name").val( moduleData.appModuleName);
+        	$(".edit-desc").val( moduleData.appModuleDescription);
+        	$(".edit-version").val( moduleData.appModuleVersion);
+        	$(".edit-moduleid").val( moduleData.appModuleId)
+        });
+
+        $(".delete-app-module").click( function(){
+        	var moduleData = $(this).data("module-data");
+        	$(".delete-module-name").html( moduleData.appModuleName);
+        	$(".delete-moduleid").val( moduleData.appModuleId)
+        });
+    </script>
+
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/emails/auth/reminder.blade.php
----------------------------------------------------------------------
diff --git a/app/views/emails/auth/reminder.blade.php b/app/views/emails/auth/reminder.blade.php
new file mode 100755
index 0000000..aebea9e
--- /dev/null
+++ b/app/views/emails/auth/reminder.blade.php
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html lang="en-US">
+	<head>
+		<meta charset="utf-8">
+	</head>
+	<body>
+		<h2>Password Reset</h2>
+
+		<div>
+			To reset your password, complete this form: {{ URL::to('password/reset', array($token)) }}.<br/>
+			This link will expire in {{ Config::get('auth.reminder.expire', 60) }} minutes.
+		</div>
+	</body>
+</html>

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/experiment/create-complete.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/create-complete.blade.php b/app/views/experiment/create-complete.blade.php
new file mode 100644
index 0000000..a3ee8be
--- /dev/null
+++ b/app/views/experiment/create-complete.blade.php
@@ -0,0 +1,70 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+@stop
+
+@section('content')
+<div class="col-md-offset-3 col-md-6">
+    
+    <h1>Create a new experiment</h1>
+    <form action="{{URL::to('/')}}/experiment/create" method="POST" role="form" enctype="multipart/form-data">
+
+        <input type="hidden" name="experiment-name" value="{{$expInputs['experimentName']}}">
+        <input type="hidden" name="experiment-description" value="{{$expInputs['experimentDescription']}}">
+        <input type="hidden" name="project" value="{{$expInputs['project']}}">
+        <input type="hidden" name="application" value="{{$expInputs['application']}}">
+        
+        @include('partials/experiment-inputs', array("expInputs" => $expInputs) )
+
+        <div class="form-group btn-toolbar">
+            <div class="btn-group">
+                <button name="save" type="submit" class="btn btn-primary" value="Save">Save</button>
+                <button name="launch" type="submit" class="btn btn-success" id="expLaunch" value="Save and launch">Save and launch</button>
+            </div>
+            
+            <a href="{{URL::to('/')}}/experiment/create" class="btn btn-default" role="button">Start over</a>
+        </div>
+        
+    </form>
+        
+
+</div>
+
+
+@stop
+
+@section('scripts')
+    @parent
+    <script>
+    $('.file-input').bind('change', function() {
+
+        var inputFileSize = Math.round( this.files[0].size/(1024*1024) );
+        if( inputFileSize > $("#allowedFileSize").val())
+        {
+            alert( "The input file size is greater than the allowed file size (" + $("#allowedFileSize").val() + " MB) in a form. Please upload another file.");
+            $(this).val("");
+        }
+
+    });
+
+    $("#enableEmail").change( function(){
+        if( this.checked)
+        {
+            $("#emailAddresses").attr("required", "required");
+            $(this).parent().children(".emailSection").removeClass("hide");
+        }
+        else
+        {
+            $(this).parent().children(".emailSection").addClass("hide");
+            $("#emailAddresses").removeAttr("required");
+        }
+
+    });
+
+    $(".addEmail").click( function(){
+        var emailInput = $(this).parent().find("#emailAddresses").clone();
+        emailInput.removeAttr("id").removeAttr("required").val("").appendTo(".emailAddresses");
+    });
+    </script>
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/experiment/create.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/create.blade.php b/app/views/experiment/create.blade.php
new file mode 100755
index 0000000..52873f1
--- /dev/null
+++ b/app/views/experiment/create.blade.php
@@ -0,0 +1,55 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+@stop
+
+@section('content')
+<div class="col-md-offset-3 col-md-6">
+    
+    <h1>Create a new experiment</h1>
+
+    <form action="{{URL::to('/')}}/experiment/create" method="POST" role="form" enctype="multipart/form-data">
+
+    <?php
+
+        $disabled = '';
+        $experimentName = '';
+        $experimentDescription = '';
+        $project = '';
+        $application = '';
+
+        $echo = '';
+        $wrf = '';
+    ?>
+
+        <div class="form-group required">
+            <label for="experiment-name" class="control-label">Experiment Name</label>
+            <input type="text" class="form-control" name="experiment-name" id="experiment-name" placeholder="Enter experiment name" autofocus required="required">
+        </div>
+        <div class="form-group">
+            <label for="experiment-description">Experiment Description</label>
+            <textarea class="form-control" name="experiment-description" id="experiment-description" placeholder="Optional: Enter a short description of the experiment"></textarea>
+        </div>
+        <div class="form-group required">
+            <label for="project" class="control-label">Project</label>
+
+
+        {{ Utilities::create_project_select($project, !$disabled) }}
+
+        </div>
+            <div class="form-group">
+            <label for="application">Application</label>
+
+            {{ Utilities::create_application_select($application, !$disabled) }}
+
+        </div>
+        <div class="btn-toolbar">
+            <input name="continue" type="submit" class="btn btn-primary" value="Continue">
+            <input name="clear" type="reset" class="btn btn-default" value="Reset values">
+        </div>   
+    </form>
+
+</div>
+
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/experiment/edit.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/edit.blade.php b/app/views/experiment/edit.blade.php
new file mode 100755
index 0000000..8eb759a
--- /dev/null
+++ b/app/views/experiment/edit.blade.php
@@ -0,0 +1,77 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+@stop
+
+@section('content')
+
+<?php
+//$echoResources = array('localhost', 'trestles.sdsc.edu', 'lonestar.tacc.utexas.edu');
+//$wrfResources = array('trestles.sdsc.edu');
+
+//$appResources = array('Echo' => $echoResources, 'WRF' => $wrfResources);
+?>
+
+
+<div class="container">
+
+  <div class="col-md-offset-3 col-md-6">
+    <h1>Edit Cloned Experiment</h1>
+
+    <form action="{{URL::to('/')}}/experiment/edit" method="POST" role="form" enctype="multipart/form-data">
+        <input type="hidden" name="expId" value="<?php echo Input::get('expId');?>"/>
+
+        @include('partials/experiment-inputs')
+
+
+        <div class="btn-toolbar">
+            <div class="btn-group">
+                <input name="save" type="submit" class="btn btn-primary" value="Save" <?php if(!$expInputs['expVal']['editable']) echo 'disabled'  ?>>
+                <input name="launch" type="submit" class="btn btn-success" value="Save and launch" <?php if(!$expInputs['expVal']['editable']) echo 'disabled'  ?>>
+            </div>
+        </div>
+
+
+    </form>
+  </div>
+
+</div>
+
+@stop
+
+
+@section('scripts')
+    @parent
+    <script>
+    $('.file-input').bind('change', function() {
+
+        var inputFileSize = Math.round( this.files[0].size/(1024*1024) );
+        if( inputFileSize > $("#allowedFileSize").val())
+        {
+            alert( "The input file size is greater than the allowed file size (" + $("#allowedFileSize").val() + " MB) in a form. Please upload another file.");
+            $(this).val("");
+        }
+
+    });
+
+    $("#enableEmail").change( function(){
+      if( this.checked)
+        {
+            $("#emailAddresses").attr("required", "required");
+        $(this).parent().children(".emailSection").removeClass("hide");
+        }
+      else
+        {
+        $(this).parent().children(".emailSection").addClass("hide");
+            $("#emailAddresses").removeAttr("required");
+        }
+
+    });
+
+    $(".addEmail").click( function(){
+      var emailInput = $(this).parent().find("#emailAddresses").clone();
+      emailInput.removeAttr("id").removeAttr("required").val("").appendTo(".emailAddresses");
+    });
+    </script>
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/experiment/search.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/search.blade.php b/app/views/experiment/search.blade.php
new file mode 100755
index 0000000..e33acd0
--- /dev/null
+++ b/app/views/experiment/search.blade.php
@@ -0,0 +1,265 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+    {{ HTML::style('css/datetimepicker.css')}}            
+
+@stop
+
+@section('content')
+
+<div class="container" style="max-width: 750px;">
+<h1>Search for Experiments</h1>
+
+<form action="{{URL::to('/')}}/experiment/search" method="post" class="form-inline" role="form">
+    <div class="form-group">
+        <label for="search-key">Search by</label>
+        <select class="form-control" name="search-key" id="search-key">
+            <?php
+
+            // set up options for select input
+            $values = array('experiment-name', 'experiment-description', 'application', 'creation-time');
+            $labels = array('Experiment Name', 'Experiment Description', 'Application', 'Creation Time');
+            $disabled = array('', '', '', '');
+
+            Utilities::create_options($values, $labels, $disabled);
+
+            ?>
+        </select>
+    </div>
+
+    <div class="form-group search-text-block">
+        <label for="search-value">for</label>
+        <input type="search" class="form-control" name="search-value" id="search-value" placeholder="value" required
+               value="<?php if (isset($_POST['search-value'])) echo $_POST['search-value'] ?>">
+    </div>
+
+    <div class="container select-dates hide">
+        <div class="col-md-12">
+            Select dates between which you want to search for experiments.
+        </div>
+        <div class="col-sm-8" style="height:75px;">
+           <div class='col-md-6'>
+                <div class="form-group">
+                    <div class='input-group date' id='datetimepicker9'>
+                        <input type='text' class="form-control" placeholder="From Date" name="from-date" value="<?php if (isset($_POST['from-date'])) echo $_POST['from-date'] ?>"/>
+                        <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span>
+                        </span>
+                    </div>
+                </div>
+            </div>
+            <div class='col-md-6'>
+                <div class="form-group">
+                    <div class='input-group date' id='datetimepicker10'>
+                        <input type='text' class="form-control"  placeholder="To Date" name="to-date" value="<?php if (isset($_POST['to-date'])) echo $_POST['to-date'] ?>"/>
+                        <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span>
+                        </span>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <button name="search" type="submit" class="btn btn-primary" value="Search"><span class="glyphicon glyphicon-search"></span> Search</button>
+    <p class="help-block">You can use * as a wildcard character. Tip: search for * alone to retrieve all of your experiments.</p>
+</form>
+
+
+
+
+<?php
+
+if (isset( $expContainer))
+{
+    if (sizeof($expContainer) == 0)
+    {
+        Utilities::print_warning_message('No results found. Please try again.');
+    }
+    else
+    {
+
+?>
+
+    <div class="table-responsive">
+        <table class="table">
+            <tr>
+                <th>Name</th>
+                <th>Application</th>
+                <th>Description</th>
+                <!--<th>Resource</th>-->
+                <th>Creation Time</th>
+                <th>
+                    <select class="form-control select-status">
+                        <option value="ALL">Status</option>
+                    @foreach( $expStates as $index => $state)
+                        <option value="{{ $state }}">{{ $state }}</option>
+                    @endforeach
+                    </select>
+                </th>
+            </tr>
+    
+
+<?php
+        foreach ($expContainer as $experiment)
+        {
+            $description = $experiment['experiment']->description;
+            if (strlen($description) > 17) // 17 is arbitrary
+            {
+                $description = substr($experiment['experiment']->description, 0, 17) . '<span class="text-muted">...</span>';
+            }
+
+            echo '<tr>';
+            $addEditOption="";
+            if( $experiment['expValue']['editable'])
+                $addEditOption = '<a href="'. URL::to('/') . '/experiment/edit?expId=' . $experiment['experiment']->experimentID . '" title="Edit"><span class="glyphicon glyphicon-pencil"></span></a>';
+
+            echo '<td>' . $experiment['experiment']->name .  $addEditOption . '</td>';
+
+            echo '<td>' . $experiment['expValue']['applicationInterface']->applicationName . '</td>';
+
+            echo '<td>' . $description . '</td>';
+
+            //echo "<td>$computeResource->hostName</td>";
+            echo '<td>' . date('Y-m-d H:i:s', $experiment['experiment']->creationTime/1000) . '</td>';
+
+
+            switch ($experiment['expValue']['experimentStatusString'])
+            {
+                case 'CANCELING':
+                case 'CANCELED':
+                case 'UNKNOWN':
+                    $textClass = 'text-warning';
+                    break;
+                case 'FAILED':
+                    $textClass = 'text-danger';
+                    break;
+                case 'COMPLETED':
+                    $textClass = 'text-success';
+                    break;
+                default:
+                    $textClass = 'text-info';
+                    break;
+            }
+
+        ?>
+            <td>
+                <a class="<?php echo $textClass; ?>" href="{{ URL::to('/') }}/experiment/summary?expId=<?php echo $experiment['experiment']->experimentID; ?>">
+                    <?php echo $experiment['expValue']['experimentStatusString']; ?>
+                </a>
+            </td>
+
+            </tr>
+
+        <?php            
+        }
+
+        echo '
+            </table>
+            </div>
+            ';
+    }
+
+
+}
+?>
+
+
+</div>
+
+@stop
+
+@section('scripts')
+    @parent
+    {{ HTML::script('js/moment.js')}}            
+    {{ HTML::script('js/datetimepicker.js')}}            
+
+    <script type="text/javascript">
+
+        $(document).ready( function(){
+
+            /* script to make status select work on the UI side itself. */
+
+            $(".select-status").on("change", function(){
+                selectedStatus = this.value;
+
+                if( selectedStatus == "ALL")
+                {
+                    $("table tr").slideDown();
+                }
+                else
+                {
+                    $("table tr").each(function(index) {
+                        if (index != 0) {
+
+                            $row = $(this);
+
+                            var status = $.trim( $row.find("td:last").text() );
+                            if (status == selectedStatus )
+                            {
+                                $(this).slideDown();
+                            }
+                            else {
+                                $(this).slideUp();
+                            }
+                        }
+                    });
+                }
+            });
+
+            /* making datetimepicker work for exp search */
+
+            $('#datetimepicker9').datetimepicker({
+                pick12HourFormat: false
+            });
+            $('#datetimepicker10').datetimepicker({
+                pick12HourFormat: false
+            });
+            $("#datetimepicker9").on("dp.change",function (e) {
+               $('#datetimepicker10').data("DateTimePicker").setMinDate(e.date);
+            });
+            $("#datetimepicker10").on("dp.change",function (e) {
+               $('#datetimepicker9').data("DateTimePicker").setMaxDate(e.date);
+            });
+
+            /* selecting creation time */
+            $("#search-key").on("change", function(){
+                if( this.value == "creation-time")
+                {
+                    $(".search-text-block").addClass("hide");
+                    $(".select-dates").removeClass("hide");
+                    $("#search-value").removeAttr("required");
+
+                }
+                else
+                {
+                    $(".search-text-block").removeClass("hide");
+                    $(".select-dates").addClass("hide");
+                    $("#search-value").attr("required");
+                }
+            });
+
+            changeInputVisibility( $("#search-key").val() );
+
+        });
+
+    function changeInputVisibility( selectedStatus)
+    {
+        if( selectedStatus == "creation-time")
+        {
+            $(".search-text-block").addClass("hide");
+            $(".select-dates").removeClass("hide");
+            $("#search-value").removeAttr("required");
+
+        }
+        else
+        {
+            $(".search-text-block").removeClass("hide");
+            $(".select-dates").addClass("hide");
+            $("#search-value").attr("required");
+        }
+    }
+
+        
+
+    </script>
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/experiment/summary.blade.php
----------------------------------------------------------------------
diff --git a/app/views/experiment/summary.blade.php b/app/views/experiment/summary.blade.php
new file mode 100755
index 0000000..c3f3d4e
--- /dev/null
+++ b/app/views/experiment/summary.blade.php
@@ -0,0 +1,31 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+@stop
+
+@section('content')
+    @include('partials/experiment-info')
+@stop
+
+
+@section('scripts')
+    @parent
+    <script>
+    setInterval( function(){
+        if( $.trim( $(".exp-status").html() ) != "COMPLETED")
+        {
+            $.ajax({
+                type:"GET",
+                url: "{{URL::to('/') }}/experiment/summary",
+                data: {expId: "{{ Input::get('expId') }}" },
+                success: function( exp){
+                    if( $.trim( $("#expObj").val() ) != $.trim( exp) )
+                       $(".refresh-exp").click();
+
+                }
+            });
+        }
+    }, 3000);
+    </script>
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/gateway/browse.blade.php
----------------------------------------------------------------------
diff --git a/app/views/gateway/browse.blade.php b/app/views/gateway/browse.blade.php
new file mode 100644
index 0000000..6d26a06
--- /dev/null
+++ b/app/views/gateway/browse.blade.php
@@ -0,0 +1,218 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+@stop
+
+@section('content')
+
+<div class="container">
+	<div class="col-md-offset-2 col-md-8">
+		<div class="row">
+			<a href="{{URL::to('/')}}/gp/create">
+				<button class="btn btn-default create-gateway-profile">Create a new Gateway Resource Profile</button>
+			</a>
+		</div>
+		@if( count( $gatewayProfiles) )
+			@if( Session::has("message"))
+				<div class="row">
+					<div class="alert alert-success alert-dismissible" role="alert">
+						<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
+						{{ Session::get("message") }}
+					</div>
+				</div>
+				{{ Session::forget("message") }}
+			@endif
+			<div class="row">
+
+				<div class="col-md-6">
+					<h3>Existing Gateway Resource Profiles :</h3>
+				</div>
+				<div class="col-md-6" style="margin-top:3.5%">
+					<input type="text" class="col-md-12 filterinput" placeholder="Search by Gateway Name" />
+				</div>
+			</div>
+			<div class="panel-group" id="accordion1">
+			@foreach( $gatewayProfiles as $indexGP => $gp )
+				<div class="panel panel-default">
+					<div class="panel-heading">
+						<h4 class="panel-title">
+							<a class="accordion-toggle collapsed gateway-name" data-toggle="collapse" data-parent="#accordion" href="#collapse-gateway-{{$indexGP}}">
+							{{ $gp->gatewayName }}
+							</a>
+							<div class="pull-right col-md-2 gateway-options fade">
+								<span class="glyphicon glyphicon-pencil edit-gateway" style="cursor:pointer;" data-toggle="modal" data-target="#edit-gateway-block" data-gp-id="{{ $gp->gatewayID }}" data-gp-name="{{ $gp->gatewayName }}" data-gp-desc="{{ $gp->gatewayDescription }}"></span>
+								<span class="glyphicon glyphicon-trash delete-gateway" style="cursor:pointer;" data-toggle="modal" data-target="#delete-gateway-block" data-gp-name="{{$gp->gatewayName}}" data-gp-id="{{ $gp->gatewayID }}"></span>
+							</div>
+						</h4>
+					</div>
+					<div id="collapse-gateway-{{$indexGP}}" class="panel-collapse collapse">
+						<div class="panel-body">
+							<div class="app-interface-block">
+								<h5>{{ $gp->gatewayDescription}}</h5>
+								<hr/>
+								<div class="row">
+									<div class="col-md-10">
+										<button class="btn btn-default add-cr" data-gpid="{{$gp->gatewayID}}"><span class="glyphicon glyphicon-plus"></span> Add a Compute Resource</button>
+									</div>
+								</div>
+								@if( count( $gp->computeResourcePreferences) )
+									<div class="col-md-12">
+										<h3>Existing Compute Resources :</h3>
+									</div>
+									<div class="accordion-inner">
+										<div class="panel-group" id="accordion-{{$indexGP}}">
+										@foreach( (array)$gp->computeResourcePreferences as $indexCRP => $crp )
+											<div class="panel panel-default">
+												<div class="panel-heading">
+													<h4 class="panel-title">
+														<a class="accordion-toggle collapsed gateway-name" data-toggle="collapse" data-parent="#accordion" href="#collapse-crp-{{$indexGP}}-{{$indexCRP}}">
+														{{ $crp->crDetails->hostName }}
+														</a>
+														<div class="pull-right col-md-2 gateway-options fade">
+															<span class="glyphicon glyphicon-remove remove-resource" style="cursor:pointer;" data-toggle="modal" data-target="#remove-resource-block" data-cr-name="{{$crp->crDetails->hostName}}" data-cr-id="{{$crp->computeResourceId}}" data-gp-id="{{ $gp->gatewayID }}"></span>
+														</div>
+													</h4>
+												</div>
+												<div id="collapse-crp-{{$indexGP}}-{{$indexCRP}}" class="panel-collapse collapse">
+													<div class="panel-body">
+														<div class="app-compute-resource-preferences-block">
+															<form action="{{URL::to('/')}}/gp/update-crp" method="POST">
+																<input type="hidden" name="gatewayId" id="gatewayId" value="{{$gp->gatewayID}}">
+																<input type="hidden" name="computeResourceId" id="gatewayId" value="{{$crp->computeResourceId}}">
+																<div class="form-horizontal">
+																	@include('partials/gateway-preferences', array('computeResource' => $crp->crDetails, 'crData' => $crData, 'preferences'=>$crp, 'show'=>true))
+																</div>
+															</form>
+														</div>
+													</div>
+												</div>
+											</div>
+										@endforeach
+										</div>
+									</div>
+								@endif
+							</div>
+						</div>
+					</div>
+				</div>
+			@endforeach
+			</div>
+		@endif
+	</div>
+</div>
+
+<div class="add-compute-resource-block hide">
+	<div class="well">
+		<form action="{{URL::to('/')}}/gp/add-crp" method="POST">
+			<input type="hidden" name="gatewayId" id="gatewayId" value="">
+			<div class="input-group">
+				<select name="computeResourceId" class="cr-select form-control">
+					<option value="">Select a compute Resource and set its preferences</option>
+					@foreach( (array)$computeResources as $index => $cr)
+					<option value="{{ $cr->computeResourceId}}">{{ $cr->hostName }}</option>
+					@endforeach
+				</select>
+				<span class="input-group-addon remove-cr" style="cursor:pointer;">x</span>
+			</div>
+			<div class="pref-space form-horizontal"></div>
+		</form> 
+	</div>
+</div>
+
+<!-- Edit a Gateway Modal -->
+<div class="modal fade" id="edit-gateway-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+    <div class="modal-dialog">
+
+		<form action="{{URL::to('/')}}/gp/edit" method="POST">
+	        <div class="modal-content">
+	            <div class="modal-header">
+	              	<h3 class="text-center">Edit Gateway</h3>
+	            </div>
+	            <div class="modal-body">
+					<input type="hidden" class="form-control edit-gpId" name="edit-gpId"/>
+					<div class="form-group required">
+						<label class="control-label">Gateway Name</label>
+						<input class="form-control edit-gp-name" maxlength="100" name="gatewayName" required="required" placeholder="Gateway Name"/>
+					</div>
+					<div class="form-group">
+						<label class="control-label">Gateway Description</label>
+						<textarea class="form-control edit-gp-desc" maxlength="255" name="gatewayDescription" placeholder="Gateway Description"></textarea>
+					</div>
+				</div>
+				<div class="modal-footer">
+					<div class="form-group">
+						<input type="submit" class="btn btn-primary" value="Update"/>
+						<input type="button" class="btn btn-default" data-dismiss="modal" value ="Cancel"/>
+					</div>
+				</div>
+			</div>
+
+		</form>
+	</div>
+</div>
+
+<!-- delete a Gateway Modal -->
+<div class="modal fade" id="delete-gateway-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+    <div class="modal-dialog">
+
+		<form action="{{URL::to('/')}}/gp/delete-gp" method="POST">
+	        <div class="modal-content">
+	            <div class="modal-header">
+	              	<h3 class="text-center">Delete Gateway Profile Confirmation</h3>
+	            </div>
+	            <div class="modal-body">
+					<input type="hidden" class="form-control delete-gpId" name="del-gpId"/>
+					Do you really want to delete the Gateway Profile, <span class="delete-gp-name"></span> ?
+				</div>
+				<div class="modal-footer">
+					<div class="form-group">
+						<input type="submit" class="btn btn-danger" value="Delete"/>
+						<input type="button" class="btn btn-default" data-dismiss="modal" value ="Cancel"/>
+					</div>
+				</div>
+			</div>
+
+		</form>
+	</div>
+</div>
+
+<!-- Remove a Compute Resource from a Gateway -->
+<div class="modal fade" id="remove-resource-block" tabindex="-1" role="dialog" aria-labelledby="add-modal" aria-hidden="true">
+    <div class="modal-dialog">
+
+		<form action="{{URL::to('/')}}/gp/remove-cr" method="POST">
+	        <div class="modal-content">
+	            <div class="modal-header">
+	              	<h3 class="text-center">Remove Compute Resource Confirmation</h3>
+	            </div>
+	            <div class="modal-body">
+					<input type="hidden" class="form-control remove-crId" name="rem-crId"/>
+					<input type="hidden" class="form-control cr-gpId" name="gpId"/>
+
+					Do you really want to remove the Compute Resource, <span class="remove-cr-name"> </span>from the selected Gateway?
+				</div>
+				<div class="modal-footer">
+					<div class="form-group">
+						<input type="submit" class="btn btn-danger" value="Remove"/>
+						<input type="button" class="btn btn-default" data-dismiss="modal" value ="Cancel"/>
+					</div>
+				</div>
+			</div>
+
+		</form>
+	</div>
+</div>
+
+<!-- contains all compute resource choices that might get selected on adding a new one to a gateway -->
+@foreach( (array)$computeResources as $index => $cr)
+	@include('partials/gateway-preferences', array('computeResource' => $cr, 'crData' => $crData))
+@endforeach
+
+
+@stop
+
+@section('scripts')
+	@parent
+	{{ HTML::script('js/gateway.js') }}
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/gateway/create.blade.php
----------------------------------------------------------------------
diff --git a/app/views/gateway/create.blade.php b/app/views/gateway/create.blade.php
new file mode 100644
index 0000000..24cba9c
--- /dev/null
+++ b/app/views/gateway/create.blade.php
@@ -0,0 +1,34 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+@stop
+
+@section('content')
+
+<div class="container">
+	<div class="col-md-offset-2 col-md-8">
+		<h3>Create a Gateway</h3>
+		<form role="form" method="POST" action="{{ URL::to('/') }}/gp/create">
+			<div class="form-group required">
+				<label class="control-label">Enter Name</label>
+				<input class="form-control hostName" maxlength="100" name="gatewayName" required="required" placeholder="Gateway Name"/>
+			</div>
+			<div class="form-group">
+				<label class="control-label">Enter Description</label>
+				<textarea class="form-control" maxlength="255" name="gatewayDescription" placeholder="Gateway Description"></textarea>
+			</div>
+			<div class="form-group">
+				<input type="submit" class="btn btn-lg btn-primary" value="Create"/>
+				<input type="reset" class="btn btn-lg btn-success" value="Reset"/>
+			</div>
+		</form>
+	</div>
+</div>
+
+@stop
+
+@section('scripts')
+	@parent
+    {{ HTML::script('js/script.js') }}
+@stop
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/home.blade.php
----------------------------------------------------------------------
diff --git a/app/views/home.blade.php b/app/views/home.blade.php
new file mode 100755
index 0000000..a3deeeb
--- /dev/null
+++ b/app/views/home.blade.php
@@ -0,0 +1,180 @@
+@extends('layout.basic')
+
+@section('page-header')
+    @parent
+@stop
+
+@section('content')
+
+<div class="well">
+    <div class="container">
+
+        <?php
+
+        if (Utilities::id_in_session())
+        {
+            $columnClass = 'col-md-4';
+            if( Session::has("admin"))
+                $admin = " Admin";
+            else
+                $admin = "";
+
+            echo '<h4>Welcome'. $admin . ', '. Session::get("username") . '!</h4>';
+
+            if( Session::get("username") == 'admin1') // temporary hard-coded admin user. will replace with admin role in future
+            {
+                try
+                {
+                    Utilities::open_tokens_file($tokenFilePath);
+                }
+                catch (Exception $e)
+                {
+                    Utilities::print_error_message($e->getMessage());
+                }
+
+
+                if(isset($_GET['tokenId']))
+                {
+                    try
+                    {
+                        Utilities::write_new_token($_GET['tokenId']);
+
+                        Utilties::print_success_message('Received new XSEDE token ' . $tokenFile->tokenId .
+                            '! Click <a href="' . $req_url .
+                            '?gatewayName=' . $gatewayName .
+                            '&email=' . $email .
+                            '&portalUserName=' . $_SESSION['username'] .
+                            '">here</a> to fetch a new token.');
+                    }
+                    catch (Exception $e)
+                    {
+                        print_error_message($e->getMessage());
+                    }
+                }
+                else
+                {
+                    echo '<p><small>Community token currently set to ' . $tokenFile->tokenId .
+                        '. Click <a href="' . $req_url .
+                        '?gatewayName=' . $gatewayName .
+                        '&email=' . $email .
+                        '&portalUserName=' . $_SESSION['username'] .
+                        '">here</a> to fetch a new token.</small></p>';
+                }
+            }
+            else // standard user
+            {
+                /* temporarily remove to avoid confusion during XSEDE tutorial
+                if (isset($_SESSION['tokenId']))
+                {
+                    echo '<p><small>XSEDE token currently active.
+                    All experiments launched during this session will use your personal allocation.</small></p>';
+                }
+                elseif(!isset($_GET['tokenId']) && !isset($_SESSION['tokenId']))
+                {
+                    echo '<p><small>Currently using community allocation. Click <a href="' .
+                        $req_url .
+                        '?gatewayName=' . $gatewayName .
+                        '&email=' . $email .
+                        '&portalUserName=' . $_SESSION['username'] .
+                        '">here</a> to use your personal allocation for this session.</small></p>';
+                }
+                elseif(isset($_GET['tokenId']))
+                {
+                    $_SESSION['tokenId'] = $_GET['tokenId'];
+
+                    print_success_message('Received XSEDE token!' .
+                        '<br>All experiments launched during this session will use your personal allocation.');
+                }
+                */
+            }
+        }
+        else
+        {
+            $columnClass = 'col-md-6';
+
+            echo '
+                <h1>PHP Gateway with Airavata</h1>
+                <p>
+                    PGA is a science gateway built with the Airavata API. You can reference PGA as you integrate Airavata
+                    into your own gateway, or you can create your gateway on top of PGA by cloning it at the link below.
+                    PGA is known to work well in the Chrome, Firefox, and Internet Explorer browsers.
+                </p>
+                <p><a href="https://github.com/apache/airavata-php-gateway"
+                        target="_blank">See the code <span class="glyphicon glyphicon-new-window"></span></a></p>
+                <p><a href="https://cwiki.apache.org/confluence/display/AIRAVATA/XSEDE+2014+Tutorial"
+                    target="_blank">View the XSEDE 2014 tutorial documentation <span class="glyphicon glyphicon-new-window"></span></a></p>
+            ';
+        }
+
+        ?>
+
+
+    </div>
+</div>
+
+<div class="container">
+
+    <div class="row">
+        <?php
+
+        if (Utilities::id_in_session())
+        {
+            echo '
+                <div class="col-md-4">
+                    <h2>PHP Gateway with Airavata</h2>
+
+                    <p>
+                        PGA is a science gateway built with the Airavata API. You can reference PGA as you integrate
+                        Airavata into your own gateway, or you can create your gateway on top of PGA by cloning it at
+                        the link below. PGA is known to work well in the Chrome, Firefox, and Internet Explorer browsers.
+                    </p>
+                    <p><a href="https://github.com/apache/airavata-php-gateway/"
+                        target="_blank">See the code <span class="glyphicon glyphicon-new-window"></span></a></p>
+                    <p><a href="https://cwiki.apache.org/confluence/display/AIRAVATA/XSEDE+2014+Tutorial"
+                        target="_blank">View the XSEDE 2014 tutorial documentation <span class="glyphicon glyphicon-new-window"></span></a></p>
+                </div>
+            ';
+        }
+
+        ?>
+        <div class="<?php echo $columnClass; ?>">
+            <div class="thumbnail" style="border:none">
+                <img src="assets/scigap-header-logo.png" alt="SciGaP">
+                <div class="caption">
+                    <p>
+                        SciGaP is a hosted service with a public API that science gateways can use to manage
+                        applications and workflows running on remote supercomputers, as well as other services. Gateway
+                        developers can thus concentrate their efforts on building their scientific communities and not
+                        worry about operations.
+                    </p>
+                    <p>
+                        Science Gateway Platform as a Service (SciGaP) provides application programmer interfaces (APIs)
+                        to hosted generic infrastructure services that can be used by domain science communities to
+                        create Science Gateways.
+                    </p>
+                    <p><a href="http://scigap.org/"
+                          target="_blank">Learn more <span class="glyphicon glyphicon-new-window"></span></a></p>
+                </div>
+            </div>
+        </div>
+        <div class="<?php echo $columnClass; ?>">
+            <div class="thumbnail" style="border:none">
+                <img src="assets/PoweredbyAiravata_Small.png" alt="Apache Airavata">
+                <div class="caption">
+                    <p>
+                        Apache Airavata is a software framework which is dominantly used to build Web-based science
+                        gateways and assist to compose, manage, execute and monitor large scale applications and
+                        workflows on distributed computing resources such as local clusters, supercomputers, national
+                        grids, academic and commercial clouds. Airavata mainly supports long running applications and
+                        workflows on distributed computational resources.
+                    </p>
+                    <p><a href="http://airavata.apache.org/" target="_blank">Learn more <span class="glyphicon glyphicon-new-window"></span></a></p>
+                </div>
+            </div>
+        </div>
+    </div>
+
+</div>
+
+@stop
+

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/layout/basic.blade.php
----------------------------------------------------------------------
diff --git a/app/views/layout/basic.blade.php b/app/views/layout/basic.blade.php
new file mode 100755
index 0000000..7bebad9
--- /dev/null
+++ b/app/views/layout/basic.blade.php
@@ -0,0 +1,102 @@
+@section ('page-header')
+
+<!DOCTYPE html>
+        <html lang="en">
+        <head>
+            <title>PHP Reference Gateway</title>
+            <meta charset="utf-8">
+            <meta name="viewport" content="width=device-width, initial-scale=1">
+            <link rel="icon" href="resources/assets/favicon.ico" type="image/x-icon">
+            {{ HTML::style('css/bootstrap.min.css')}}            
+        </head>
+
+<?php
+
+//Is there a need to connect to id store at this point? Commented for now.
+//Utilities::connect_to_id_store();
+
+?>
+
+<body>
+
+<?php Utilities::create_nav_bar(); ?>
+
+<?php
+    // Alerts if guests users try to go to the link without signing in.
+    if( Session::has("login-alert"))
+    {
+        Utilities::print_error_message("You need to login to use this service.");
+        Session::forget("login-alert");
+    } 
+    // if signed in user is not an admin.           
+    if( Session::has("admin-alert"))
+    {
+        Utilities::print_error_message("You need to be an admin to use this service.");
+        Session::forget("admin-alert");
+    }
+    
+?>
+
+@show
+
+@yield('content')
+
+</body>
+@section('scripts')
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
+    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
+
+    <!-- Jira Issue Collector - Report Issue -->
+    <script type="text/javascript"
+            src="https://gateways.atlassian.net/s/31280375aecc888d5140f63e1dc78a93-T/en_USmlc07/6328/46/1.4.13/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?locale=en-US&collectorId=b1572922"></script>
+
+    <!-- Jira Issue Collector - Request Feature -->
+    <script type="text/javascript"
+        src="https://gateways.atlassian.net/s/31280375aecc888d5140f63e1dc78a93-T/en_USmlc07/6328/46/1.4.13/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?locale=en-US&collectorId=674243b0"></script>
+
+
+    <script type="text/javascript">
+        window.ATL_JQ_PAGE_PROPS = $.extend(window.ATL_JQ_PAGE_PROPS, {
+            "b1572922":
+            {
+                "triggerFunction": function(showCollectorDialog) {
+                    //Requries that jQuery is available!
+                    jQuery("#report-issue").click(function(e) {
+                        e.preventDefault();
+                        showCollectorDialog();
+                    });
+                }
+            },
+            "674243b0":
+            {
+                "triggerFunction": function(showCollectorDialog) {
+                    //Requries that jQuery is available!
+                    jQuery("#request-feature").click(function(e) {
+                        e.preventDefault();
+                        showCollectorDialog();
+                    });
+                }
+            }
+        });
+
+        var highest = null;
+        $(".nav-tabs a").each(function(){  //find the height of your highest link
+            var h = $(this).height();
+            if(h > highest){
+                highest = $(this).height();  
+            }    
+        });
+
+        $(".nav-tabs a").height(highest);  //set all your links to that height.
+
+
+        // not letting users to add only spaces in text boxes.
+        $("body").on( "blur", ".form-control", function(){
+            $(this).val( $.trim( $(this).val() ) );
+        });
+
+    </script>
+
+@show
+
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/partials/dashboard-block.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/dashboard-block.blade.php b/app/views/partials/dashboard-block.blade.php
new file mode 100644
index 0000000..b7991d5
--- /dev/null
+++ b/app/views/partials/dashboard-block.blade.php
@@ -0,0 +1,50 @@
+<div class="collapse navbar-collapse navbar-ex1-collapse">
+                <ul class="nav navbar-nav side-nav">
+                    <li @if( Session::has("manage"))  class="active" @endif>
+                        <a href="{{ URL::to('/')}}/admin/dashboard/gateway"><i class="fa fa-fw fa-dashboard"></i> Gateway @if( Session::has("scigap_admin"))s @endif</a>
+                    </li>
+                    <li>
+                        <a href="{{ URL::to('/')}}/admin/dashboard/users"><i class="fa fa-fw fa-bar-chart-o"></i> Users</a>
+                    </li>
+                    <li>
+                        <a href="{{ URL::to('/')}}/admin/dashboard/roles"><i class="fa fa-fw fa-table"></i>Roles</a>
+                    </li>
+                    <li>
+                        <a href="{{ URL::to('/')}}/admin/dashboard/credential-store"><i class="fa fa-fw fa-table"></i>Credential Store</a>
+                    </li>
+                    <li>
+                        <a href="tables.html"><i class="fa fa-fw fa-table"></i>Resources</a>
+                    </li>
+                    <li>
+                        <a href="{{ URL::to('/')}}/admin/dashboard/experiments"><i class="fa fa-fw fa-experiments"></i>Experiments</a>
+                    </li>
+                    <li>
+                        <a href="forms.html"><i class="fa fa-fw fa-edit"></i> Settings</a>
+                    </li>
+                    <!-- 
+                    <li>
+                        <a href="bootstrap-elements.html"><i class="fa fa-fw fa-desktop"></i> Bootstrap Elements</a>
+                    </li>
+                    <li>
+                        <a href="bootstrap-grid.html"><i class="fa fa-fw fa-wrench"></i> Bootstrap Grid</a>
+                    </li>
+                    <li>
+                        <a href="javascript:;" data-toggle="collapse" data-target="#demo"><i class="fa fa-fw fa-arrows-v"></i> Dropdown <i class="fa fa-fw fa-caret-down"></i></a>
+                        <ul id="demo" class="collapse">
+                            <li>
+                                <a href="#">Dropdown Item</a>
+                            </li>
+                            <li>
+                                <a href="#">Dropdown Item</a>
+                            </li>
+                        </ul>
+                    </li>
+                    <li>
+                        <a href="blank-page.html"><i class="fa fa-fw fa-file"></i> Blank Page</a>
+                    </li>
+                    <li>
+                        <a href="index-rtl.html"><i class="fa fa-fw fa-dashboard"></i> RTL Dashboard</a>
+                    </li>
+                    -->
+                </ul>
+            </div>

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/app/views/partials/deployment-block.blade.php
----------------------------------------------------------------------
diff --git a/app/views/partials/deployment-block.blade.php b/app/views/partials/deployment-block.blade.php
new file mode 100644
index 0000000..b624c3a
--- /dev/null
+++ b/app/views/partials/deployment-block.blade.php
@@ -0,0 +1,125 @@
+<!-- Application Deployments do not have a name. :(
+<div class="form-group" required>
+	<label class="control-label">Application Deployment Name</label>
+	<input type="text" class="form-control" name="applicationName" value="Class not saving it anywhere." readonly/>
+</div>
+-->
+@if( isset( $deploymentObject) )
+	<input type="hidden" name="app-deployment-id" value="{{$deploymentObject->appDeploymentId}}"/>
+@endif
+<div class="form-group required">
+	<label class="control-label">Application Module</label>
+	<select name="appModuleId" class="form-control app-module-filter" required readonly>
+	@foreach( $modules as $index => $module)
+		<option value="{{ $module->appModuleId }}" @if( isset( $deploymentObject) ) @if( $module->appModuleId == $deploymentObject->appModuleId) selected @endif @endif>{{ $module->appModuleName }}</option>	
+	@endforeach
+	</select>
+</div>
+<div class="form-group required">
+	<label class="control-label">Application Compute Host</label>
+	<select name="computeHostId" class="form-control" required readonly>
+	@foreach( $computeResources as $id => $crName)
+		<option value="{{ $id }}" @if( isset( $deploymentObject) ) @if( $id == $deploymentObject->computeHostId) selected @endif @endif>{{ $crName }}</option>	
+	@endforeach
+	</select>
+</div>
+<div class="form-group required">
+	<label class="control-label">Application Executable Path</label>
+	<input type="text" class="form-control" name="executablePath" value="@if( isset( $deploymentObject)){{$deploymentObject->executablePath}}@endif" required readonly/>
+</div>
+<div class="form-group required">
+	<label class="control-label">Application Parallelism Type</label>
+	<select name="parallelism" class="form-control" readonly>
+	@foreach( $applicationParallelismTypes as $index=>$parallelismType)
+		<option value="{{$index}}" @if( isset( $deploymentObject) ) @if( $index == $deploymentObject->parallelism) selected @endif @endif>{{ $parallelismType }}</option>
+	@endforeach
+	</select>
+</div>
+<div class="form-group">
+	<label class="control-label">Application Deployment Description</label>
+	<textarea class="form-control" name="appDeploymentDescription" readonly>@if( isset( $deploymentObject)){{$deploymentObject->appDeploymentDescription}}@endif</textarea>
+</div>
+<hr/>
+<div class="form-group">
+	<div class="show-load-cmds">
+		@if( isset( $deploymentObject))
+			@foreach( (array)$deploymentObject->moduleLoadCmds as $index => $cmd)
+				<input name="moduleLoadCmds[]" type="text" class="form-control" placeholder="Module Load Command" value="{{$cmd}}" readonly />
+			@endforeach
+		@endif
+	</div>
+	<button type="button" class="btn btn-default control-label add-load-cmd hide">Add Module Load Commands</label>
+</div>
+<hr/>
+<div class="form-group">
+	<div class="show-lib-prepend-paths">
+		<h5>Library Prepend Paths</h5>
+		@if( isset( $deploymentObject))
+			@foreach( (array)$deploymentObject->libPrependPaths as $path)
+				<div class="col-md-12 well">
+					<input name="libraryPrependPathName[]" type="text" class="col-md-4" placeholder="Name" value="{{$path->name}}" readonly/>
+					<input name="libraryPrependPathValue[]" type="text" class="col-md-8" placeholder="Value" value="{{$path->value}}" readonly/>
+				</div>
+			@endforeach
+		@endif
+	</div>
+	<button type="button" class="btn btn-default control-label add-lib-prepend-path hide">Add a Library Prepend Path</label>
+</div>
+<hr/>
+<div class="form-group">
+	<div class="show-lib-append-paths">
+		<h5>Library Append Paths</h5>
+		@if( isset( $deploymentObject))
+			@foreach( (array)$deploymentObject->libAppendPaths as $path)
+				<div class="col-md-12 well">
+					<input name="libraryAppendPathName[]" type="text" class="col-md-4" placeholder="Name" value="{{$path->name}}" readonly/>
+					<input name="libraryAppendPathValue[]" type="text" class="col-md-8" placeholder="Value" value="{{$path->value}}" readonly/>
+				</div>
+			@endforeach
+		@endif
+	</div>
+	<button type="button" class="btn btn-default control-label add-lib-append-path hide">Add a Library Append Path</label>
+</div>
+<hr/>
+<div class="form-group">
+	<div class="show-environments">
+		<h5>Environments</h5>
+		@if( isset( $deploymentObject))
+			@foreach( (array)$deploymentObject->setEnvironment as $path)
+				<div class="col-md-12 well">
+					<input name="environmentName[]" type="text" class="col-md-4" placeholder="Name" value="{{$path->name}}" readonly/>
+					<input name="environmentValue[]" type="text" class="col-md-8" placeholder="Value" value="{{$path->value}}" readonly/>
+				</div>
+			@endforeach
+		@endif
+	</div>
+	<button type="button" class="btn btn-default control-label add-environment hide">Add Environment</label>
+</div>
+
+<div class="form-group">
+	<div class="show-preJobCommands">
+		<h5>Pre Job Commands</h5>
+		@if( isset( $deploymentObject))
+			@foreach( (array)$deploymentObject->preJobCommands as $preJobCommand)
+				<div class="col-md-12 well">
+					<input name="preJobCommand[]" type="text" class="col-md-12" placeholder="Pre Job Command" value="{{$preJobCommand}}" readonly/>
+				</div>
+			@endforeach
+		@endif
+	</div>
+	<button type="button" class="btn btn-default control-label add-preJobCommand hide">Add Pre Job Command</label>
+</div>
+
+<div class="form-group">
+	<div class="show-postJobCommands">
+		<h5>Post Job Commands</h5>
+		@if( isset( $deploymentObject))
+			@foreach( (array)$deploymentObject->postJobCommands as $postJobCommand)
+				<div class="col-md-12 well">
+					<input name="postJobCommand[]" type="text" class="col-md-12" placeholder="Post Job Command" value="{{$postJobCommand}}" readonly/>
+				</div>
+			@endforeach
+		@endif
+	</div>
+	<button type="button" class="btn btn-default control-label add-postJobCommand hide">Add Post Job Command</label>
+</div>
\ No newline at end of file