-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #28 from adiwg/feature-24-basic-layout-and-navigation
Feature 24 basic layout and navigation
- Loading branch information
Showing
177 changed files
with
3,663 additions
and
94 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,6 +5,7 @@ | |
"-Promise" | ||
], | ||
"browser": true, | ||
"jquery": true, | ||
"boss": true, | ||
"curly": true, | ||
"debug": false, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,27 @@ | ||
import Ember from 'ember'; | ||
import Resolver from 'ember/resolver'; | ||
import loadInitializers from 'ember/load-initializers'; | ||
import config from './config/environment'; | ||
|
||
var App; | ||
|
||
Ember.MODEL_FACTORY_INJECTIONS = true; | ||
|
||
App = Ember.Application.extend({ | ||
modulePrefix: config.modulePrefix, | ||
podModulePrefix: config.podModulePrefix, | ||
Resolver: Resolver | ||
}); | ||
|
||
loadInitializers(App, config.modulePrefix); | ||
|
||
export default App; | ||
import Ember from 'ember'; | ||
import Resolver from 'ember/resolver'; | ||
import loadInitializers from 'ember/load-initializers'; | ||
import config from './config/environment'; | ||
|
||
let App; | ||
|
||
Ember.MODEL_FACTORY_INJECTIONS = true; | ||
|
||
App = Ember.Application.extend({ | ||
modulePrefix: config.modulePrefix, | ||
podModulePrefix: config.podModulePrefix, | ||
Resolver | ||
}); | ||
|
||
loadInitializers(App, config.modulePrefix); | ||
|
||
//for bootstrap | ||
Ember.LinkComponent.reopen({ | ||
attributeBindings: ['data-toggle', 'data-placement'] | ||
}); | ||
//for crumbly | ||
Ember.Route.reopen({ | ||
//breadCrumb: null | ||
}); | ||
|
||
export default App; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
import Ember from 'ember'; | ||
import DS from 'ember-data'; | ||
import UUID from "npm:node-uuid"; | ||
|
||
export default DS.Model.extend({ | ||
json: DS.attr('json', { | ||
defaultValue: function () { | ||
var obj = { | ||
"contactId": UUID.v4(), | ||
"organizationName": null, | ||
"individualName": "New Contact", | ||
"positionName": null, | ||
"phoneBook": [], | ||
"address": {}, | ||
"onlineResource": [], | ||
"contactInstructions": null | ||
}; | ||
return obj; | ||
} | ||
}), | ||
title: Ember.computed('json.individualName', 'json.organizationName', | ||
function () { | ||
const json = this.get('json'); | ||
|
||
return json.individualName || json.organizationName; | ||
}), | ||
icon: Ember.computed('json.individualName', 'json.organizationName', | ||
function () { | ||
const name = this.get('json.individualName'); | ||
|
||
return name ? 'user' : 'users'; | ||
}) | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
import Ember from 'ember'; | ||
import DS from 'ember-data'; | ||
|
||
export default DS.Model.extend({ | ||
json: DS.attr('json', { | ||
defaultValue() { | ||
const obj = { | ||
"dictionaryInfo": { | ||
"citation": { | ||
"title": "My Dictionary", | ||
"date": [{ | ||
"date": new Date() | ||
.toISOString(), | ||
"dateType": "creation" | ||
}] | ||
}, | ||
"description": "Data dictionary.", | ||
"resourceType": null | ||
}, | ||
"domain": [], | ||
"entity": [] | ||
}; | ||
|
||
return obj; | ||
} | ||
}), | ||
title: Ember.computed('json.dictionaryInfo.citation.title', function () { | ||
return this.get('json.dictionaryInfo.citation.title'); | ||
}), | ||
icon: 'book' | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
import Ember from 'ember'; | ||
import DS from 'ember-data'; | ||
import UUID from "npm:node-uuid"; | ||
|
||
export default DS.Model.extend({ | ||
profile: DS.attr('string', { | ||
defaultValue: 'full' | ||
}), | ||
json: DS.attr('json', { | ||
defaultValue() { | ||
const obj = Ember.Object.create({ | ||
"version": { | ||
"name": "mdJson", | ||
"version": "1.0.0" | ||
}, | ||
"contact": [], | ||
"metadata": { | ||
"metadataInfo": { | ||
"metadataIdentifier": { | ||
"identifier": UUID.v4(), | ||
"type": "uuid" | ||
} | ||
}, | ||
"resourceInfo": { | ||
"resourceType": null, | ||
"citation": { | ||
"title": "My Record", | ||
"date": [{ | ||
"date": new Date() | ||
.toISOString(), | ||
"dateType": "creation" | ||
}] | ||
}, | ||
"pointOfContact": [], | ||
"abstract": null, | ||
"status": null, | ||
"language": ["eng; USA"] | ||
} | ||
} | ||
}); | ||
|
||
return obj; | ||
} | ||
}), | ||
|
||
title: Ember.computed('json.metadata.resourceInfo.citation.title', function () { | ||
return this.get('json.metadata.resourceInfo.citation.title'); | ||
}), | ||
icon: Ember.computed('json.metadata.resourceInfo.resourceType', function () { | ||
const type = this.get('json.metadata.resourceInfo.resourceType'); | ||
const list = Ember.getOwner(this) | ||
.lookup('service:icon'); | ||
|
||
return type ? list.get(type) || list.get('default') : list.get('defaultFile'); | ||
}) | ||
}); |
182 changes: 182 additions & 0 deletions
182
app/pods/components/input/md-input-codelist-single/component.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,182 @@ | ||
import Ember from 'ember'; | ||
|
||
export default Ember.Component.extend({ | ||
/** | ||
* [service description] | ||
* @param {[type]} 'codelist' [description] | ||
* @return {[type]} [description] | ||
*/ | ||
mdCodes: Ember.inject.service('codelist'), | ||
|
||
/** | ||
* [service description] | ||
* @return {Object} [description] | ||
*/ | ||
icons: Ember.inject.service('icon'), | ||
|
||
/** | ||
* [create description] | ||
* @type {Boolean} | ||
*/ | ||
create: false, | ||
|
||
/** | ||
* [tooltip description] | ||
* @type {Boolean} | ||
*/ | ||
tooltip: false, | ||
|
||
/** | ||
* [icon description] | ||
* @type {Boolean} | ||
*/ | ||
icon: false, | ||
|
||
/** | ||
* [allowClear description] | ||
* @type {Boolean} | ||
*/ | ||
allowClear: false, | ||
|
||
/** | ||
* [mdCodeName description] | ||
* @type {String} mdCodeName | ||
*/ | ||
|
||
/** | ||
* [placeholder description] | ||
* @type {String} | ||
*/ | ||
placeholder: "Select one option", | ||
|
||
/** | ||
* [label description] | ||
* @type {String} label | ||
*/ | ||
|
||
/** | ||
* [width description] | ||
* @type {String} width | ||
*/ | ||
width: "100%", | ||
|
||
/** | ||
* [disabled description] | ||
* @type {Boolean} width | ||
*/ | ||
disabled: false, | ||
|
||
/** | ||
* codelist is an array of code objects in mdCodelist format | ||
* the initial codelist for 'mdCodeName' is pulled from the 'codelist' service; | ||
* then if a new value was created by the user a new object will be added into the codelist; | ||
* then a new 'selected' element will be added to each codelist object to let select2 | ||
* know if this item should be selected. | ||
* | ||
* @return {Array} | ||
*/ | ||
codelist: Ember.computed('value', function() { | ||
let codelist = []; | ||
let codelistName = this.get('mdCodeName'); | ||
let mdCodelist = this.get('mdCodes') | ||
.get(codelistName) | ||
.codelist | ||
.sortBy('codeName'); | ||
mdCodelist.forEach(function(item) { | ||
let newObject = { | ||
code: item['code'], | ||
codeName: item['codeName'], | ||
description: item['description'], | ||
selected: false | ||
}; | ||
codelist.pushObject(newObject); | ||
}); | ||
|
||
let selectedItem = this.get('value'); | ||
let create = this.get('create'); | ||
if(selectedItem) { | ||
if(create) { | ||
let index = mdCodelist.indexOf(selectedItem); | ||
if(index === -1) { | ||
let newObject = { | ||
code: Math.floor(Math.random() * 100000) + 1, | ||
codeName: selectedItem, | ||
description: 'Undefined', | ||
selected: false | ||
}; | ||
codelist.pushObject(newObject); | ||
} | ||
} | ||
|
||
codelist.forEach(function(item) { | ||
item['selected'] = (item['codeName'] === selectedItem); | ||
}); | ||
} | ||
|
||
return codelist; | ||
}), | ||
|
||
// Format options for the select tag | ||
// Add tooltips,icons if requested | ||
didInsertElement: function() { | ||
let tooltip = this.get('tooltip'); | ||
let icon = this.get('icon'); | ||
let icons = this.get('icons'); | ||
|
||
function formatOption(option) { | ||
let text = option['text']; | ||
let $option = $(`<div> ${text}</div>`); | ||
|
||
if(icon) { | ||
$option.prepend( | ||
`<span class="fa fa-${icons.get(text) || icons.get('defaultList')}"> </span>` | ||
); | ||
} | ||
|
||
if(tooltip) { | ||
let tip = $(option.element) | ||
.data('tooltip'); | ||
|
||
$option = $option.append( | ||
$( | ||
`<span class="badge pull-right" data-toggle="tooltip" | ||
data-placement="left" data-container="body" | ||
title="${tip}">?</span>` | ||
) | ||
.on('mousedown', function(e) { | ||
$(e.target) | ||
.tooltip('destroy'); | ||
return true; | ||
}) | ||
.tooltip()); | ||
} | ||
return $option; | ||
} | ||
|
||
this.$('.md-input-codelist-single') | ||
.select2({ | ||
placeholder: this.get('placeholder'), | ||
allowClear: this.get('allowClear'), | ||
tags: this.get('create'), | ||
templateResult: formatOption, | ||
width: this.get('width'), | ||
minimumResultsForSearch: 10, | ||
theme: 'bootstrap' | ||
}); | ||
}, | ||
|
||
didRender() { | ||
this.$('.md-input-codelist-single') | ||
.trigger('change.select2'); | ||
}, | ||
|
||
actions: { | ||
// do the binding to value | ||
setValue: function() { | ||
let selectedEl = this.$('select'); | ||
let selectedValue = selectedEl.val(); | ||
this.set('value', selectedValue); | ||
} | ||
} | ||
|
||
}); |
22 changes: 22 additions & 0 deletions
22
app/pods/components/input/md-input-codelist-single/template.hbs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
{{#if label}} | ||
<div class="form-group"> | ||
<label>{{label}}</label> | ||
<select class="form-control md-input-codelist-single" {{action 'setValue' on='change'}}> | ||
<option></option> | ||
{{#each codelist as |code index|}} | ||
<option value={{code.codeName}} selected={{code.selected}} | ||
data-tooltip={{code.description}}>{{code.codeName}}</option> | ||
{{/each}} | ||
{{yield}} | ||
</select> | ||
</div> | ||
{{else}} | ||
<select class="form-control md-input-codelist-single" {{action 'setValue' on='change'}}> | ||
<option></option> | ||
{{#each codelist as |code index|}} | ||
<option value={{code.codeName}} selected={{code.selected}} | ||
data-tooltip={{code.description}}>{{code.codeName}}</option> | ||
{{/each}} | ||
{{yield}} | ||
</select> | ||
{{/if}} |
Oops, something went wrong.