Skip to content

Commit

Permalink
Add a profile detail directive and use it to merge the profile detail…
Browse files Browse the repository at this point in the history
… view and the wiki view of a profile
  • Loading branch information
gashcrumb committed Sep 11, 2013
1 parent 519d4b5 commit 4a6ebb6
Show file tree
Hide file tree
Showing 10 changed files with 473 additions and 220 deletions.
3 changes: 1 addition & 2 deletions hawtio-web/src/main/webapp/app/fabric/html/editFeatures.html
Expand Up @@ -3,8 +3,7 @@
<div class="row-fluid">
<div class="span12">
<div class="pull-left">
<h2 style="display: inline;">/ <a ng-href="#/fabric/view?cv={{versionId}}&sp={{profileId}}">{{versionId}}</a> /
<a ng-href="#/fabric/profile/{{versionId}}/{{profileId}}">{{profileId}}</a> / Features</h2>
<h2>Features in profile "{{profileId}}"</h2>
</div>
<div class="pull-right">
<a class="btn" ng-disabled="deletingFeatures.length == 0 && addingFeatures.length == 0" href="" ng-click="save()"><i class="icon-save"></i> Save</a>
Expand Down
208 changes: 1 addition & 207 deletions hawtio-web/src/main/webapp/app/fabric/html/profile.html
@@ -1,211 +1,5 @@
<div class="controller-section" ng-controller="Fabric.ProfileController">

<div ng-show="loading">
Please wait, loading profile details...
</div>
<div ng-hide="loading">
<div class="fabric-page-header row-fluid">
<div class="pull-left">
<h2 class="inline">Profile: {{row.id}}</h2>
&nbsp;
in version: <a ng-href="#/fabric/view?cv={{versionId}}&sp={{row.id}}">{{versionId}}</a>
&nbsp;
<!--
TODO : add this link back in when the overview supports filtering via active profile in the address bar
<a href="#/fabric/containers?cv={{versionId}}&cp={{row.id}}">
-->
<ng-pluralize count="row.containerCount"
when="{'0': 'Not assigned to any containers',
'one': 'Assigned to 1 container',
'other': 'Assigned to {} containers'}">
</ng-pluralize>
<!--
</a>
-->
</div>
<div class="pull-right">
<a class="btn" ng-href="#/fabric/containers/createContainer?versionId={{versionId}}&profileIds={{profileId}}" title="Deploy this profile to a new container"><i class="icon-truck"></i> Create Container</a>
<a class="btn" href="" title="Create a new profile that is a copy of this one" ng-click="copyProfileDialog = true"><i class="icon-copy"></i> Copy</a>
</div>
</div>

<div class="row-fluid profile-details">
<div class="span2">
<ul class="unstyled">
<li>
<strong>Abstract:</strong> {{row.abstractProfile}}
</li>
<li>
<strong>Locked:</strong> {{row.locked}}
</li>
</ul>
<dl ng-show="row.parentIds.length > 0">
<dt>Parents:</dt>
<dd>
<ul class="unstyled">
<li ng-repeat="profile in row.parentIds">
<i class="red clickable icon-remove" title="Remove parent {{profile}}" ng-click="removeParentProfile(profile)"></i>
<a href="#/fabric/profile/{{versionId}}/{{profile}}{{hash}}">{{profile}}</a>
</li>
<li>
<i class="clickable icon-edit" ng-click="showChangeParentsDialog()" title="Change parent profiles"></i>
</ul>
</dd>
</dl>
<dl ng-show="row.childIds.length > 0">
<dt>Children:</dt>
<dd>
<ul class="unstyled">
<li ng-repeat="profile in row.childIds">
<a href="#/fabric/profile/{{versionId}}/{{profile}}{{hash}}">{{profile}}</a>
</li>
</ul>
</dd>
</dl>
</div>
<div class="span4">
<dl>
<dt>Features ({{row.features.length}}):</dt>
<dd>
<ul class="unstyled">
<li ng-repeat="feature in row.features">
<i class="red clickable icon-remove" title="Delete {{feature}}" ng-click="deleteThing('Feature', 'Features', row.features, feature)"></i>
<editable-property ng-model="row.features" property="$index" on-save="updateThing('Feature', 'Features', row.features)"></editable-property>
</li>
<li>
<i class="clickable icon-edit" ng-click="goto('/fabric/profile/{{versionId}}/{{profileId}}/editFeatures')" title="Edit features"></i>
</li>
</ul>
</dd>
</dl>
<dl>
<dt>Fuse Application Bundles ({{row.fabs.length}}):</dt>
<dd>
<ul class="unstyled">
<li ng-repeat="fab in row.fabs">
<i class="red clickable icon-remove" title="Delete {{fab}}" ng-click="deleteThing('Fuse Application Bundle', 'Fabs', row.fabs, fab)"></i>
<editable-property ng-model="row.fabs" property="$index" on-save="updateThing('Fuse Application Bundle', 'Fabs', row.fabs)"></editable-property>

</li>
<li>
<i class="clickable icon-plus" ng-click="addNewThing('Fuse Application Bundle', 'Fabs', row.fabs)" title="Add Fuse Application Bundle"></i>
</li>
</ul>
</dd>
</dl>
<dl>
<dt>Bundles ({{row.bundles.length}}):</dt>
<dd>
<ul class="unstyled">
<li ng-repeat="bundle in row.bundles">
<i class="red clickable icon-remove" title="Delete {{bundle}}" ng-click="deleteThing('Bundle', 'Bundles', row.bundles, bundle)"></i>
<editable-property ng-model="row.bundles" property="$index" on-save="updateThing('Bundle', 'Bundles', row.bundles)"></editable-property>
</li>
<li>
<i class="clickable icon-plus" ng-click="addNewThing('Bundle', 'Bundles', row.bundles)" title="Add Bundle"></i>
</li>
</ul>
</dd>
</dl>
</div>
<div class="span6">
<dl>
<dt>Feature Repositories ({{row.repositories.length}}):</dt>
<dd>
<ul class="unstyled">
<li ng-repeat="repository in row.repositories">
<i class="red clickable icon-remove" title="Delete {{repository}}" ng-click="deleteThing('Feature Repository', 'Repositories', row.repositories, repository)"></i>
<editable-property ng-model="row.repositories" property="$index" on-save="updateThing('Feature Repository', 'Repositories', row.repositories)"></editable-property>
</li>
<li>
<i class="clickable icon-plus" ng-click="addNewThing('Feature Repository', 'Repositories', row.repositories)" title="Add Feature Repository"></i>
</li>
</ul>
</dd>
</dl>
<dl>
<dt ng-hide="configFolderLink">
Configuration Files ({{row.configurations.length}})
</dt>
<dd ng-hide="configFolderLink">
<ul class="unstyled">
<li ng-repeat="configuration in row.configurations">
<i ng-click="deleteFile(configuration)" title="Delete {{configuration}}" class="clickable red icon-remove"></i>
<a href="#/fabric/profile/{{versionId}}/{{profileId}}/{{configuration}}">{{configuration}}</a>
</li>
<li>
<i class="clickable icon-plus" ng-click="newFileDialog = true" title="Create new configuration file"></i>
</li>
</ul>
</dd>
<dd ng-show="configFolderLink" class="file-list">
<div wiki-file-list branch="{{versionId}}" page-id="/fabric/profiles/{{row.id}}" caption="Configuration Files ({{row.configurations.length}}):"></div>
</dd>
</dl>
</div>
</div>
</div>


<div hawtio-confirm-dialog="deleteThingDialog" ok-button-text="Delete" on-ok="doDeleteThing()">
<div class="dialog-body">
<p>Delete {{currentThingItem}}?</p>
</div>
</div>


<div hawtio-confirm-dialog="addThingDialog" ok-button-text="Add" on-ok="doAddThing()" title="Add {{thingName}}...">
<div class="dialog-body">
<p>Enter a new {{thingName}} to add to this profile</p>
<input type="text" ng-model="newThingName">
</div>
</div>


<div hawtio-confirm-dialog="copyProfileDialog" ok-button-text="Copy" on-ok="copyProfile()">
<div class="dialog-body">
<p>Enter a new profile name to copy this profile to</p>
<input type="text" ng-model="newProfileName">
</div>
</div>

<div hawtio-confirm-dialog="deleteFileDialog" ok-button-text="Delete" on-ok="doDeleteFile()">
<div class="dialog-body">
<p>Delete file {{markedForDeletion}}?</p>

<p>This operation cannot be undone so please be careful.</p>
</div>
</div>

<div hawtio-confirm-dialog="removeParentDialog" ok-button-text="Remove" on-ok="doRemoveParentProfile()">
<div class="dialog-body">
<p>Remove parent {{markedForDeletion}}?</p>
</div>
</div>

<div hawtio-confirm-dialog="changeParentsDialog" title="Change {{row.id}} parent profiles..." ok-button-text="Change Parents" on-ok="doChangeParents()">
<div class="dialog-body">
<p>Select what profiles this profile should inherit from.</p>
<div fabric-profile-selector="selectedParents" version-id="versionId"></div>
</div>
</div>

<div modal="newFileDialog">
<form name="newFile" class="form-horizontal no-bottom-margin" ng-submit="doCreateFile()">
<div class="modal-header"><h4>Create new configuration file...</h4></div>
<div class="modal-body">
<label style="display: inline">File Name: </label>
<input name="id" class="input-xlarge" type="text" ng-model="newFileName" required
ng-pattern="/^[.a-zA-Z0-9_-]*$/">
<span class="help-block" ng-show="newFile.id.$error.required">Please enter a file name</span>
<span class="help-block" ng-show="newFile.id.$error.pattern">File name can only contain letters, numbers, '-', '_' and '.'</span>
</div>
<div class="modal-footer">
<input class="btn btn-success" ng-disabled="!newFile.$valid" type="submit" value="Create">
<input class="btn btn-primary" ng-click="newFileDialog = false" value="Cancel">
</div>
</form>
</div>
<div ng-include="'app/fabric/html/profileDetails.html'"></div>

</div>

0 comments on commit 4a6ebb6

Please sign in to comment.