Skip to content

Commit

Permalink
first commit for the marklogic-community#411 ticket. Missing the all.…
Browse files Browse the repository at this point in the history
…xml and ml-config.xml.
  • Loading branch information
jenbreese authored and grtjn committed Nov 22, 2016
1 parent 6893a86 commit ae62f2e
Show file tree
Hide file tree
Showing 10 changed files with 756 additions and 0 deletions.
24 changes: 24 additions & 0 deletions app/themes/cards/ui/app/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
(function () {
'use strict';

angular.module('app', [
'ml.common',
'ml.search',
'ml.search.tpls',
'ml.utils',
'ngJsonExplorer',
'app.create',
'app.detail',
'app.error',
'app.login',
'app.root',
'app.search',
'app.phone',
'app.user',
'ui.bootstrap',
'ui.router',
'ui.tinymce',
'ngToast'
]);

}());
116 changes: 116 additions & 0 deletions app/themes/cards/ui/app/create/create.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
<div class="create" ng-if="ctrl.currentUser">
<div class="row">
<div class="col-sm-2"></div>
<h2 class="col-sm-10">Create a Document</h2>
</div>
<form class="form-horizontal">
<div class="form-group">
<label class="col-sm-2 control-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" placeholder="person's name" ng-model="ctrl.person.name">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">About</label>
<div class="col-sm-10">
<textarea class="form-control" ui-tinymce="ctrl.editorOptions" ng-model="ctrl.person.about"></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Greeting</label>
<div class="col-sm-10">
<input type="text" class="form-control" ng-model="ctrl.person.greeting" placeholder="How this person should be greeted on login">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Balance</label>
<div class="col-sm-10">
<input type="text" class="form-control" ng-model="ctrl.person.balance" placeholder="">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Picture</label>
<div class="col-sm-10">
<input type="text" class="form-control" ng-model="ctrl.person.picture" placeholder="">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Age</label>
<div class="col-sm-10">
<input type="text" class="form-control" ng-model="ctrl.person.age" placeholder="">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Eye Color</label>
<div class="col-sm-10">
<input type="text" class="form-control" ng-model="ctrl.person.eyeColor" placeholder="">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Gender</label>
<div class="col-sm-1">
<label class="radio-inline"><input type="radio" value="Female" ng-model="ctrl.person.gender" placeholder="">Female</label>
</div>
<div class="col-sm-1">
<label class="radio-inline"><input type="radio" value="Male" ng-model="ctrl.person.gender" placeholder="">Male</label>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Company</label>
<div class="col-sm-10">
<input type="text" class="form-control" ng-model="ctrl.person.company" placeholder="">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" ng-model="ctrl.person.email" placeholder="">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Phone</label>
<div class="col-sm-10">
<input type="text" class="form-control" ng-model="ctrl.person.phone" placeholder="">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Address</label>
<div class="col-sm-10">
<input type="text" class="form-control" ng-model="ctrl.person.address" placeholder="">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Location</label>
<div class="col-sm-5">
<input type="text" class="form-control" ng-model="ctrl.person.location.latitude" placeholder="">
</div>
<div class="col-sm-5">
<input type="text" class="form-control" ng-model="ctrl.person.location.longitude" placeholder="">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Tags</label>
<div class="col-sm-10">
<input type="text" ng-model="ctrl.newTag">
<button class="add-feature btn btn-info btn-sm" ng-click="ctrl.addTag()">Add</button>
</div>
<div class="col-sm-10 col-sm-offset-2">
<div class="tag btn btn-info" ng-repeat="tag in ctrl.person.tags">
<span>{{tag}}</span>
<span class="glyphicon glyphicon-remove-circle" ng-click="ctrl.removeTag($index)"></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Active</label>
<div class="col-sm-10">
<input type="checkbox" ng-model="ctrl.person.isActive">
</div>
</div>

<div class="row">
<a class="col-sm-offset-10 btn btn-default" ui-sref="root">Cancel</a>
<button class="btn btn-primary" ng-click="ctrl.submit()">Submit</button>
</div>
</form>
</div>
36 changes: 36 additions & 0 deletions app/themes/cards/ui/app/detail/detail.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<div class="row detail">
<div class="col-sm-9">
<uib-tabset type="tabs">
<uib-tab active="true">
<uib-tab-heading>{{ctrl.type | uppercase}}</uib-tab-heading>
<div class="bottom-buffer">
<json-explorer ng-if="ctrl.type==='json'" data="ctrl.json"></json-explorer>
<pre ng-if="ctrl.type!=='json'" class="pre-xml">{{ctrl.xml}}</pre>

<a ng-if="ctrl.type==='binary'" target="_blank" ng-href="/v1/documents?uri={{ctrl.uri}}&transform=download" class="btn btn-default">Download</a>
</div>
</uib-tab>
<uib-tab ng-if="ctrl.type!=='json'">
<uib-tab-heading>JSON</uib-tab-heading>
<div class="bottom-buffer">
<json-explorer data="ctrl.json"></json-explorer>
</div>
</uib-tab>
<uib-tab ng-if="ctrl.type==='json'">
<uib-tab-heading >XML</uib-tab-heading>
<div>
<pre class="pre-xml">{{ctrl.xml}}</pre>
</div>
</uib-tab>
</uib-tabset>
</div>
<div class="col-sm-3">
<!-- show (links to) similar documents -->
<div class="panel panel-default similar">
<div class="panel-heading">Similar</div>
<div class="panel-body">
<ml-similar uri="{{ctrl.uri}}" limit="5"></ml-similar>
</div>
</div>
</div>
</div>
72 changes: 72 additions & 0 deletions app/themes/cards/ui/app/root/root.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<div>
<toast></toast>

<nav class="navbar navbar-default nav" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/"><h1 id="logo">Sample App</h1></a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav nav-tabs navbar-nav" role="tablist">
<li><a href="/">Home</a></li>
<li><a href="/search">Search</a></li>
<li><a href="/create">Create</a></li>
</ul>
<ml-user mode="inline"></ml-user>
</div><!-- /.navbar-collapse -->
</nav>

<div class="content">
<div class="container-fluid">
<message-board msg="ctrl.messageBoardService.message()"></message-board>
<div ng-hide="ctrl.messageBoardService.message()">
<ui-view></ui-view>
</div>
</div>
</div>

<footer id="footer">
<div class="container-fluid">
<div class="row">
<div class="col-sm-12">
<div class="social-links">
<a href="https://www.facebook.com/marklogic" title="Facebook" rel="external">
<img src="images/facebook.svg" alt="Facebook" title="Facebook"></a>
<a href="https://twitter.com/marklogic" title="Twitter" rel="external">
<img src="images/twitter.svg" alt="Twitter" title="Twitter"></a>
<a href="http://www.linkedin.com/company/marklogic" title="LinkedIn" rel="external">
<img src="images/linkedin.svg" alt="LinkedIn" title="LinkedIn"></a>
<a href="https://www.flickr.com/photos/marklogicuc/" title="Flickr" rel="external">
<img src="images/flickr.svg" alt="Flickr" title="Flickr"></a>
<a href="https://www.youtube.com/channel/UCT2Q5qhC2gmd89K9qpV2TrQ" title="YouTube" rel="external">
<img src="images/youtube.svg" alt="YouTube" title="YouTube"></a>
<a href="https://plus.google.com/+MarklogicCo/posts" title="Google+" rel="external">
<img src="images/google.svg" alt="Google+" title="Google+"></a>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<ul id="menu-footer-navigation-logged-in" class="nav">
<li id="menu-item-140" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-140">
<a target="_blank" href="http://www.marklogic.com">MarkLogic.com</a>
</li>
<li id="menu-item-71" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-71">
<a target="_blank" href="http://developer.marklogic.com">MarkLogic Developers</a>
</li>
</ul>
</div>
</div>
<div class="row copyright">
<div class="col-sm-12 text-muted">
Copyright <sup>&copy;</sup> {{ ctrl.currentYear }} MarkLogic Corporation. MARKLOGIC <sup>&reg;</sup> is a registered trademark of MarkLogic Corporation.
</div>
</div>
</div>
</footer>
</div>
16 changes: 16 additions & 0 deletions app/themes/cards/ui/app/search/phone.directive.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
(function () {
'use strict';

var app = angular.module('app.phone', []);
app.directive('phone', function() {
return {
restrict: 'E',
replace: 'true',
templateUrl: 'app/search/phone.html',
scope: {
phoneNumber: '='
}
};

});
}());
1 change: 1 addition & 0 deletions app/themes/cards/ui/app/search/phone.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<span>{{phoneNumber}}</span>
17 changes: 17 additions & 0 deletions app/themes/cards/ui/app/search/search-results.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<div ng-repeat="result in results" class="result panel panel-default col-md-3">
<div class="panel-body">
<h4>
<a ui-sref="root.view({uri: result.uri})">{{ result.label || result.uri }}</a>
</h4>
<div class="matches">
<div class="match" ng-repeat="match in result.matches">
<em ng-repeat="text in match['match-text'] track by $index">
<span ng-class="{ highlight: !!text.highlight }">{{ text.highlight || text }}</span>
</em>
</div>
</div>
</div>
<div class="panel-footer phone">
<i class="fa fa-phone fa-lg"></i><phone phone-number="result.extracted.content[0].phone"></phone>
</div>
</div>
25 changes: 25 additions & 0 deletions app/themes/cards/ui/app/search/search.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<div class="row" ng-if="!ctrl.currentUser">Please log in to see content</div>
<div class="row" ng-if="ctrl.currentUser">
<div class="col-md-12 search-row">
<ml-input qtext="ctrl.qtext" search="ctrl.search(qtext)" suggest="ctrl.suggest(val)" template="fa" class="search"></ml-input>
</div>
</div>

<div class="search row" ng-if="ctrl.currentUser">
<div class="col-md-2 right-col">
<ml-facets facets="ctrl.response.facets" toggle="ctrl.toggleFacet(facet, value)" active-facets="ctrl.mlSearch.activeFacets" negate="ctrl.toggleNegatedFacet(facet,value)"></ml-facets>
</div>
<div class="col-md-10">
<h4 ng-if="ctrl.response.total === 0">No results to show</h4>

<div ng-if="ctrl.response.total > 0" class="results">
<div class="pagination-ctrls">
<uib-pagination class="pagination-sm" ng-model="ctrl.page" ng-change="ctrl.search()" max-size="10" boundary-links="true" total-items="ctrl.response.total" items-per-page="ctrl.response['page-length']">
</uib-pagination>
<ml-snippet set-snippet="ctrl.setSnippet(type)"></ml-snippet>
</div>
<ml-metrics search="ctrl.response" ></ml-metrics>
<ml-results template="app/search/search-results.html" results="ctrl.response.results"></ml-results>
</div>
</div>
</div>
Loading

0 comments on commit ae62f2e

Please sign in to comment.