├── vendor └── .gitkeep ├── app ├── helpers │ ├── .gitkeep │ ├── mod.js │ ├── add-em.js │ ├── present.js │ ├── object-is-empty.js │ ├── object-each.js │ ├── get-dash.js │ ├── get-property.js │ ├── uc-words.js │ └── bbox-to-poly.js ├── models │ ├── .gitkeep │ ├── pouch-base.js │ ├── couch.js │ ├── pouch-record.js │ ├── pouch-dictionary.js │ └── pouch-contact.js ├── routes │ ├── .gitkeep │ └── index.js ├── pods │ ├── help │ │ ├── template.hbs │ │ └── route.js │ ├── publish │ │ ├── template.hbs │ │ ├── index │ │ │ └── route.js │ │ ├── couchdb │ │ │ └── route.js │ │ └── route.js │ ├── record │ │ ├── template.hbs │ │ ├── index │ │ │ ├── template.hbs │ │ │ └── route.js │ │ ├── new │ │ │ ├── index │ │ │ │ ├── template.hbs │ │ │ │ └── route.js │ │ │ └── route.js │ │ ├── show │ │ │ ├── edit │ │ │ │ ├── extent │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── index │ │ │ │ │ │ └── route.js │ │ │ │ ├── index │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── route.js │ │ │ │ ├── keywords │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── route.js │ │ │ │ ├── distribution │ │ │ │ │ ├── distributor │ │ │ │ │ │ └── template.hbs │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── route.js │ │ │ │ ├── main │ │ │ │ │ ├── citation │ │ │ │ │ │ ├── template.hbs │ │ │ │ │ │ └── route.js │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── route.js │ │ │ │ ├── taxonomy │ │ │ │ │ ├── collection │ │ │ │ │ │ ├── system │ │ │ │ │ │ │ └── template.hbs │ │ │ │ │ │ ├── template.hbs │ │ │ │ │ │ └── itis │ │ │ │ │ │ │ └── template.hbs │ │ │ │ │ ├── route.js │ │ │ │ │ └── template.hbs │ │ │ │ ├── metadata │ │ │ │ │ ├── template.hbs │ │ │ │ │ ├── alternate │ │ │ │ │ │ ├── template.hbs │ │ │ │ │ │ └── index │ │ │ │ │ │ │ └── route.js │ │ │ │ │ ├── parent │ │ │ │ │ │ ├── template.hbs │ │ │ │ │ │ └── route.js │ │ │ │ │ └── route.js │ │ │ │ ├── dataquality │ │ │ │ │ ├── edit │ │ │ │ │ │ └── template.hbs │ │ │ │ │ ├── route.js │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── index │ │ │ │ │ │ └── template.hbs │ │ │ │ ├── documents │ │ │ │ │ ├── citation │ │ │ │ │ │ ├── template.hbs │ │ │ │ │ │ └── index │ │ │ │ │ │ │ └── route.js │ │ │ │ │ ├── route.js │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── index │ │ │ │ │ │ └── template.hbs │ │ │ │ ├── associated │ │ │ │ │ ├── resource │ │ │ │ │ │ └── template.hbs │ │ │ │ │ ├── route.js │ │ │ │ │ └── template.hbs │ │ │ │ ├── lineage │ │ │ │ │ ├── lineageobject │ │ │ │ │ │ ├── template.hbs │ │ │ │ │ │ ├── source │ │ │ │ │ │ │ └── template.hbs │ │ │ │ │ │ ├── step │ │ │ │ │ │ │ └── template.hbs │ │ │ │ │ │ └── citation │ │ │ │ │ │ │ └── template.hbs │ │ │ │ │ ├── route.js │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── index │ │ │ │ │ │ └── template.hbs │ │ │ │ ├── grid │ │ │ │ │ └── route.js │ │ │ │ ├── constraint │ │ │ │ │ ├── route.js │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── index │ │ │ │ │ │ └── template.hbs │ │ │ │ ├── coverages │ │ │ │ │ └── route.js │ │ │ │ ├── spatial │ │ │ │ │ ├── route.js │ │ │ │ │ ├── index │ │ │ │ │ │ ├── route.js │ │ │ │ │ │ └── template.hbs │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── raster │ │ │ │ │ │ └── template.hbs │ │ │ │ └── funding │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── route.js │ │ │ ├── template.hbs │ │ │ ├── translate │ │ │ │ ├── template.hbs │ │ │ │ └── route.js │ │ │ └── index │ │ │ │ └── route.js │ │ ├── route.js │ │ └── nav │ │ │ └── template.hbs │ ├── sync │ │ ├── template.hbs │ │ ├── index │ │ │ ├── template.hbs │ │ │ └── route.js │ │ ├── route.js │ │ └── list │ │ │ └── route.js │ ├── contact │ │ ├── template.hbs │ │ ├── show │ │ │ ├── template.hbs │ │ │ ├── index │ │ │ │ └── route.js │ │ │ └── edit │ │ │ │ └── route.js │ │ ├── new │ │ │ ├── index │ │ │ │ ├── template.hbs │ │ │ │ └── route.js │ │ │ └── route.js │ │ └── route.js │ ├── dictionary │ │ ├── template.hbs │ │ ├── new │ │ │ ├── index │ │ │ │ ├── template.hbs │ │ │ │ └── route.js │ │ │ └── route.js │ │ ├── show │ │ │ ├── edit │ │ │ │ ├── domain │ │ │ │ │ ├── edit │ │ │ │ │ │ ├── citation │ │ │ │ │ │ │ ├── template.hbs │ │ │ │ │ │ │ └── route.js │ │ │ │ │ │ └── template.hbs │ │ │ │ │ ├── template.hbs │ │ │ │ │ ├── route.js │ │ │ │ │ └── index │ │ │ │ │ │ └── template.hbs │ │ │ │ ├── entity │ │ │ │ │ ├── edit │ │ │ │ │ │ ├── attribute │ │ │ │ │ │ │ └── template.hbs │ │ │ │ │ │ ├── template.hbs │ │ │ │ │ │ └── citation │ │ │ │ │ │ │ └── template.hbs │ │ │ │ │ ├── route.js │ │ │ │ │ └── template.hbs │ │ │ │ └── citation │ │ │ │ │ ├── route.js │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── index │ │ │ │ │ └── route.js │ │ │ ├── template.hbs │ │ │ └── index │ │ │ │ └── route.js │ │ └── route.js │ ├── settings │ │ ├── index │ │ │ ├── template.hbs │ │ │ └── route.js │ │ ├── profile │ │ │ ├── route.js │ │ │ ├── template.hbs │ │ │ ├── index │ │ │ │ └── route.js │ │ │ └── manage │ │ │ │ └── route.js │ │ ├── main │ │ │ └── route.js │ │ └── validation │ │ │ └── route.js │ ├── components │ │ ├── layout │ │ │ ├── md-wrap │ │ │ │ ├── template.hbs │ │ │ │ └── component.js │ │ │ ├── md-breadcrumb │ │ │ │ ├── template.hbs │ │ │ │ └── component.js │ │ │ ├── nav │ │ │ │ ├── record │ │ │ │ │ └── nav-main │ │ │ │ │ │ ├── component.js │ │ │ │ │ │ └── template.hbs │ │ │ │ └── dictionary │ │ │ │ │ └── nav-main │ │ │ │ │ ├── component.js │ │ │ │ │ └── template.hbs │ │ │ ├── md-footer │ │ │ │ ├── component.js │ │ │ │ └── template.hbs │ │ │ ├── md-slider │ │ │ │ └── template.hbs │ │ │ └── md-nav-main │ │ │ │ └── component.js │ │ ├── md-title │ │ │ └── template.hbs │ │ ├── control │ │ │ ├── md-scroll-into-view │ │ │ │ └── template.hbs │ │ │ ├── md-infotip │ │ │ │ └── template.hbs │ │ │ ├── md-pouch-record-table │ │ │ │ ├── pouch-buttons │ │ │ │ │ ├── template.hbs │ │ │ │ │ ├── delete │ │ │ │ │ │ ├── template.hbs │ │ │ │ │ │ └── component.js │ │ │ │ │ └── update │ │ │ │ │ │ └── template.hbs │ │ │ │ ├── buttons │ │ │ │ │ ├── update │ │ │ │ │ │ └── template.hbs │ │ │ │ │ ├── import │ │ │ │ │ │ ├── template.hbs │ │ │ │ │ │ └── component.js │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── component.js │ │ │ │ └── component.js │ │ │ ├── md-repo-link │ │ │ │ └── template.hbs │ │ │ ├── subbar-importcsv │ │ │ │ ├── component.js │ │ │ │ └── template.hbs │ │ │ ├── md-contact-title │ │ │ │ └── template.hbs │ │ │ ├── md-record-table │ │ │ │ └── buttons │ │ │ │ │ ├── show │ │ │ │ │ ├── component.js │ │ │ │ │ └── template.hbs │ │ │ │ │ ├── custom │ │ │ │ │ └── template.hbs │ │ │ │ │ └── filter │ │ │ │ │ └── template.hbs │ │ │ ├── md-spinner │ │ │ │ ├── template.hbs │ │ │ │ └── component.js │ │ │ ├── subbar-citation │ │ │ │ └── component.js │ │ │ ├── md-definition │ │ │ │ └── template.hbs │ │ │ ├── md-button │ │ │ │ └── template.hbs │ │ │ ├── md-scroll-spy │ │ │ │ └── template.hbs │ │ │ ├── md-button-confirm │ │ │ │ └── template.hbs │ │ │ ├── md-edit-table │ │ │ │ └── template.hbs │ │ │ ├── subbar-spatial │ │ │ │ └── component.js │ │ │ ├── md-indicator │ │ │ │ └── template.hbs │ │ │ ├── md-button-modal │ │ │ │ └── template.hbs │ │ │ ├── md-json-button │ │ │ │ └── template.hbs │ │ │ └── subbar-link │ │ │ │ └── template.hbs │ │ ├── object │ │ │ ├── md-extent │ │ │ │ └── component.js │ │ │ ├── md-profile │ │ │ │ ├── component.js │ │ │ │ ├── form │ │ │ │ │ └── component.js │ │ │ │ ├── preview │ │ │ │ │ ├── component.js │ │ │ │ │ └── template.hbs │ │ │ │ └── template.hbs │ │ │ ├── md-dataquality │ │ │ │ └── preview │ │ │ │ │ ├── component.js │ │ │ │ │ └── template.hbs │ │ │ ├── md-funding │ │ │ │ └── preview │ │ │ │ │ └── component.js │ │ │ ├── md-address │ │ │ │ └── md-address-block │ │ │ │ │ ├── component.js │ │ │ │ │ └── template.hbs │ │ │ ├── md-schema │ │ │ │ ├── component.js │ │ │ │ └── form │ │ │ │ │ └── component.js │ │ │ ├── md-taxonomy │ │ │ │ ├── classification │ │ │ │ │ ├── component.js │ │ │ │ │ └── template.hbs │ │ │ │ └── collection │ │ │ │ │ └── system │ │ │ │ │ └── preview │ │ │ │ │ └── template.hbs │ │ │ ├── md-citation │ │ │ │ └── preview │ │ │ │ │ └── body │ │ │ │ │ └── component.js │ │ │ ├── md-process-step │ │ │ │ └── preview │ │ │ │ │ ├── component.js │ │ │ │ │ └── template.hbs │ │ │ ├── md-graphic-array │ │ │ │ └── md-graphic-preview │ │ │ │ │ └── template.hbs │ │ │ ├── md-source │ │ │ │ └── preview │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── component.js │ │ │ ├── md-distributor │ │ │ │ └── preview │ │ │ │ │ └── component.js │ │ │ ├── md-raster │ │ │ │ └── attrgroup │ │ │ │ │ └── attribute │ │ │ │ │ └── preview │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── component.js │ │ │ ├── md-citation-array │ │ │ │ └── template.hbs │ │ │ ├── md-identifier-array │ │ │ │ └── template.hbs │ │ │ ├── md-transfer │ │ │ │ └── preview │ │ │ │ │ ├── component.js │ │ │ │ │ └── template.hbs │ │ │ ├── md-lineage │ │ │ │ └── preview │ │ │ │ │ └── component.js │ │ │ ├── md-documentation │ │ │ │ ├── preview │ │ │ │ │ └── component.js │ │ │ │ └── template.hbs │ │ │ ├── md-domainitem │ │ │ │ └── preview │ │ │ │ │ └── component.js │ │ │ ├── md-locale-array │ │ │ │ └── component.js │ │ │ ├── md-party-array │ │ │ │ └── component.js │ │ │ ├── md-quality-report │ │ │ │ └── coverage-result │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── component.js │ │ │ ├── md-attribute │ │ │ │ └── preview │ │ │ │ │ └── component.js │ │ │ ├── md-date-array │ │ │ │ └── template.hbs │ │ │ ├── md-standalone-quality-report │ │ │ │ └── component.js │ │ │ └── md-online-resource-array │ │ │ │ └── template.hbs │ │ ├── ember-tooltip │ │ │ └── component.js │ │ ├── md-help │ │ │ └── component.js │ │ ├── md-models-table │ │ │ ├── components │ │ │ │ ├── row-buttons │ │ │ │ │ └── component.js │ │ │ │ ├── check │ │ │ │ │ ├── template.hbs │ │ │ │ │ └── component.js │ │ │ │ ├── check-all │ │ │ │ │ ├── component.js │ │ │ │ │ └── template.hbs │ │ │ │ └── row-body │ │ │ │ │ └── template.hbs │ │ │ └── component.js │ │ ├── input │ │ │ ├── md-select-thesaurus │ │ │ │ └── template.hbs │ │ │ ├── md-boolean │ │ │ │ └── template.hbs │ │ │ └── md-month │ │ │ │ └── component.js │ │ └── models-table │ │ │ ├── table-body │ │ │ └── component.js │ │ │ └── cell-content-display │ │ │ └── template.hbs │ ├── save │ │ ├── template.hbs │ │ └── route.js │ ├── error │ │ └── route.js │ ├── dashboard │ │ └── route.js │ ├── translate │ │ └── route.js │ └── not-found │ │ └── template.hbs ├── templates │ ├── nav-secondary.hbs │ └── head.hbs ├── styles │ ├── _import_export.scss │ ├── _publish.scss │ ├── _alert.scss │ ├── _collapse.scss │ ├── _control_sidebar.scss │ ├── _extent.scss │ ├── _dashboard.scss │ ├── _spinner.scss │ ├── _simple-mde.scss │ └── _breadcrumb.scss ├── resolver.js ├── serializers │ ├── application.js │ ├── pouch-base.js │ ├── pouch-record.js │ ├── pouch-contact.js │ └── pouch-dictionary.js ├── services │ └── publish.js ├── validators │ └── messages.js ├── utils │ ├── couchdb-config.js │ ├── md-object.js │ └── md-interpolate.js ├── instance-initializers │ ├── settings-couchdb.js │ ├── settings.js │ ├── profile.js │ └── route-publish.js ├── adapters │ ├── pouch-contact.js │ ├── pouch-record.js │ ├── pouch-dictionary.js │ └── application.js ├── initializers │ └── leaflet.js └── mixins │ └── scroll-to.js ├── tests ├── helpers │ ├── .gitkeep │ ├── flash-message.js │ ├── destroy-app.js │ └── create-identifier.js ├── unit │ ├── .gitkeep │ ├── helpers │ │ ├── mod-test.js │ │ ├── make-range-test.js │ │ ├── md-markdown-test.js │ │ ├── get-dash-test.js │ │ └── bbox-to-poly-test.js │ ├── routes │ │ ├── index-test.js │ │ ├── application-test.js │ │ └── publish │ │ │ └── sciencebase-test.js │ ├── pods │ │ ├── error │ │ │ └── route-test.js │ │ ├── export │ │ │ └── route-test.js │ │ ├── help │ │ │ └── route-test.js │ │ ├── import │ │ │ └── route-test.js │ │ ├── records │ │ │ └── route-test.js │ │ ├── contacts │ │ │ └── route-test.js │ │ ├── settings │ │ │ ├── route-test.js │ │ │ ├── main │ │ │ │ └── route-test.js │ │ │ ├── index │ │ │ │ └── route-test.js │ │ │ ├── profile │ │ │ │ ├── route-test.js │ │ │ │ ├── index │ │ │ │ │ ├── route-test.js │ │ │ │ │ └── controller-test.js │ │ │ │ └── manage │ │ │ │ │ ├── route-test.js │ │ │ │ │ └── controller-test.js │ │ │ └── validation │ │ │ │ ├── route-test.js │ │ │ │ └── controller-test.js │ │ ├── dashboard │ │ │ └── route-test.js │ │ ├── not-found │ │ │ └── route-test.js │ │ ├── translate │ │ │ └── route-test.js │ │ ├── contact │ │ │ ├── show │ │ │ │ ├── route-test.js │ │ │ │ ├── edit │ │ │ │ │ └── route-test.js │ │ │ │ └── index │ │ │ │ │ └── route-test.js │ │ │ └── new │ │ │ │ ├── id │ │ │ │ └── route-test.js │ │ │ │ └── index │ │ │ │ └── route-test.js │ │ ├── dictionaries │ │ │ └── route-test.js │ │ ├── record │ │ │ ├── index │ │ │ │ └── route-test.js │ │ │ ├── show │ │ │ │ ├── route-test.js │ │ │ │ ├── edit │ │ │ │ │ ├── route-test.js │ │ │ │ │ ├── grid │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── index │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── main │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── citation │ │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ │ └── identifier │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── keywords │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── thesaurus │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── associated │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── resource │ │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ │ └── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── coverages │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── documents │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── citation │ │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ │ └── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── funding │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── allocation │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── metadata │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ ├── parent │ │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ │ └── identifier │ │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ ├── alternate │ │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ │ └── identifier │ │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── identifier │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── spatial │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ ├── extent │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── raster │ │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ │ └── attribute │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── taxonomy │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── collection │ │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ │ ├── itis │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ │ └── system │ │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ │ └── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── constraint │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ └── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── dictionary │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── distribution │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── distributor │ │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ │ └── transfer │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── extent │ │ │ │ │ │ └── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ └── lineage │ │ │ │ │ │ └── lineageobject │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── step │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── citation │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ ├── source │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ └── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── citation │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── identifier │ │ │ │ │ │ └── route-test.js │ │ │ │ ├── index │ │ │ │ │ └── route-test.js │ │ │ │ └── translate │ │ │ │ │ └── route-test.js │ │ │ └── new │ │ │ │ ├── id │ │ │ │ └── route-test.js │ │ │ │ └── index │ │ │ │ └── route-test.js │ │ ├── publish │ │ │ └── index │ │ │ │ └── route-test.js │ │ └── dictionary │ │ │ ├── show │ │ │ ├── route-test.js │ │ │ ├── edit │ │ │ │ ├── route-test.js │ │ │ │ ├── domain │ │ │ │ │ ├── route-test.js │ │ │ │ │ ├── edit │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── item │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── citation │ │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ │ └── identifier │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ └── index │ │ │ │ │ │ └── route-test.js │ │ │ │ ├── entity │ │ │ │ │ ├── route-test.js │ │ │ │ │ ├── edit │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ ├── attribute │ │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ │ └── index │ │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ └── citation │ │ │ │ │ │ │ ├── route-test.js │ │ │ │ │ │ │ ├── index │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ │ │ └── identifier │ │ │ │ │ │ │ └── route-test.js │ │ │ │ │ ├── index │ │ │ │ │ │ └── route-test.js │ │ │ │ │ └── import │ │ │ │ │ │ └── route-test.js │ │ │ │ ├── index │ │ │ │ │ └── route-test.js │ │ │ │ └── citation │ │ │ │ │ ├── route-test.js │ │ │ │ │ ├── index │ │ │ │ │ └── route-test.js │ │ │ │ │ └── identifier │ │ │ │ │ └── route-test.js │ │ │ └── index │ │ │ │ └── route-test.js │ │ │ └── new │ │ │ ├── id │ │ │ └── route-test.js │ │ │ └── index │ │ │ └── route-test.js │ ├── utils │ │ ├── config-test.js │ │ └── sb-tree-node-test.js │ ├── validators │ │ ├── array-valid-test.js │ │ └── array-required-test.js │ ├── services │ │ ├── icon-test.js │ │ ├── itis-test.js │ │ ├── patch-test.js │ │ ├── mdjson-test.js │ │ ├── slider-test.js │ │ ├── contacts-test.js │ │ ├── keycloak-test.js │ │ ├── keyword-test.js │ │ ├── profile-test.js │ │ ├── publish-test.js │ │ ├── schemas-test.js │ │ ├── settings-test.js │ │ ├── spotlight-test.js │ │ └── custom-profile-test.js │ ├── mixins │ │ ├── cancel-test.js │ │ ├── hash-poll-test.js │ │ ├── scroll-to-test.js │ │ └── object-template-test.js │ └── models │ │ ├── setting-test.js │ │ └── base-test.js ├── .eslintrc.js └── test-helper.js ├── translations └── en-us.yaml ├── public ├── CNAME ├── robots.txt ├── favicon.ico ├── favicon-128.png ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon-96x96.png ├── favicon-196x196.png ├── fonts │ ├── mdeditor.eot │ ├── mdeditor.ttf │ └── mdeditor.woff ├── mstile-144x144.png ├── apple-touch-icon-144x144.png └── apple-touch-icon-152x152.png ├── .github_changelog_generator ├── .yarnrc.yml ├── .dockerignore ├── .watchmanconfig ├── mdeditor.png ├── lib ├── ember-leaflet-table │ ├── addon │ │ ├── templates │ │ │ └── components │ │ │ │ ├── leaflet-draw.hbs │ │ │ │ └── leaflet-table-row-actions.hbs │ │ ├── styles │ │ │ └── addon.scss │ │ └── components │ │ │ ├── leaflet-table-row-actions.js │ │ │ └── feature-group.js │ ├── app │ │ ├── uuid.js │ │ ├── shapefile.js │ │ ├── csv2geojson.js │ │ ├── togeojson.js │ │ ├── components │ │ │ ├── feature-form.js │ │ │ ├── feature-group.js │ │ │ ├── feature-table.js │ │ │ ├── leaflet-table.js │ │ │ ├── leaflet-draw.js │ │ │ ├── lgeojson-layer.js │ │ │ ├── leaflet-table-row.js │ │ │ └── leaflet-table-row-actions.js │ │ ├── geojsoncoords.js │ │ └── templates │ │ │ └── components │ │ │ └── leaflet-table │ │ │ └── actions.hbs │ └── package.json ├── ember-json-tree │ ├── addon │ │ ├── styles │ │ │ └── addon.scss │ │ ├── templates │ │ │ └── components │ │ │ │ └── tree-label.hbs │ │ └── components │ │ │ └── nestable-draggable-object.js │ ├── app │ │ ├── components │ │ │ ├── tree-label.js │ │ │ ├── tree-view.js │ │ │ ├── tree-leaf.js │ │ │ ├── tree-search.js │ │ │ ├── tree-branch.js │ │ │ └── nestable-draggable-object.js │ │ └── helpers │ │ │ └── make-range.js │ └── package.json └── mdeditor-sciencebase │ ├── app │ ├── utils │ │ ├── config.js │ │ └── sb-tree-node.js │ ├── components │ │ ├── sb-tree.js │ │ ├── sb-publisher.js │ │ ├── sb-settings.js │ │ └── sb-tree-label.js │ ├── routes │ │ └── publish │ │ │ └── sciencebase.js │ ├── templates │ │ └── publish │ │ │ └── sciencebase.js │ └── instance-initializers │ │ └── settings-sciencebase.js │ ├── addon │ ├── components │ │ └── sb-settings.js │ ├── routes │ │ └── publish │ │ │ └── sciencebase.js │ ├── instance-initializers │ │ └── settings-sciencebase.js │ ├── utils │ │ └── config.js │ └── templates │ │ └── publish │ │ └── sciencebase.hbs │ ├── package.json │ └── index.js ├── .template-lintrc.js ├── config ├── optional-features.json ├── ember-cli-update.json └── targets.js ├── .ember-cli ├── .prettierrc.js ├── .eslintignore ├── Dockerfile └── .prettierignore /vendor/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/helpers/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/models/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/routes/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/helpers/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/unit/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /translations/en-us.yaml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/CNAME: -------------------------------------------------------------------------------- 1 | go.mdeditor.org 2 | -------------------------------------------------------------------------------- /.github_changelog_generator: -------------------------------------------------------------------------------- 1 | user=adiwg 2 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | -------------------------------------------------------------------------------- /app/pods/help/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/publish/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} -------------------------------------------------------------------------------- /app/pods/record/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/sync/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/contact/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/dictionary/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/sync/index/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/contact/show/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/record/index/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/record/new/index/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/settings/index/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | bower_components 2 | node_modules 3 | 4 | -------------------------------------------------------------------------------- /app/pods/contact/new/index/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/dictionary/new/index/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/components/layout/md-wrap/template.hbs: -------------------------------------------------------------------------------- 1 | {{yield}} 2 | -------------------------------------------------------------------------------- /app/pods/components/md-title/template.hbs: -------------------------------------------------------------------------------- 1 | {{yield title}} 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/extent/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/index/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/keywords/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/templates/nav-secondary.hbs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.watchmanconfig: -------------------------------------------------------------------------------- 1 | { 2 | "ignore_dirs": ["tmp", "dist"] 3 | } 4 | -------------------------------------------------------------------------------- /app/pods/save/template.hbs: -------------------------------------------------------------------------------- 1 | Save the Record(s) 2 | {{outlet}} 3 | -------------------------------------------------------------------------------- /app/pods/components/control/md-scroll-into-view/template.hbs: -------------------------------------------------------------------------------- 1 | {{yield}} -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/domain/edit/citation/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/entity/edit/attribute/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} -------------------------------------------------------------------------------- /app/pods/record/show/edit/distribution/distributor/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/main/citation/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet}} 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/taxonomy/collection/system/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} -------------------------------------------------------------------------------- /mdeditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adiwg/mdEditor/HEAD/mdeditor.png -------------------------------------------------------------------------------- /lib/ember-leaflet-table/addon/templates/components/leaflet-draw.hbs: -------------------------------------------------------------------------------- 1 | {{yield}} 2 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # http://www.robotstxt.org 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/main/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/metadata/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /app/styles/_import_export.scss: -------------------------------------------------------------------------------- 1 | .md-import-preview { 2 | margin-top: 2rem; 3 | } 4 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adiwg/mdEditor/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /app/pods/record/show/edit/dataquality/edit/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} -------------------------------------------------------------------------------- /app/resolver.js: -------------------------------------------------------------------------------- 1 | import Resolver from 'ember-resolver'; 2 | 3 | export default Resolver; 4 | -------------------------------------------------------------------------------- /.template-lintrc.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | extends: 'octane', 5 | }; 6 | -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/domain/edit/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/entity/edit/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/documents/citation/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/metadata/alternate/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/metadata/parent/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /lib/ember-leaflet-table/addon/styles/addon.scss: -------------------------------------------------------------------------------- 1 | @import "variables"; 2 | @import "leaflet"; 3 | -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/uuid.js: -------------------------------------------------------------------------------- 1 | import uuidV4 from 'uuid/v4'; 2 | 3 | export {uuidV4}; 4 | -------------------------------------------------------------------------------- /public/favicon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adiwg/mdEditor/HEAD/public/favicon-128.png -------------------------------------------------------------------------------- /public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adiwg/mdEditor/HEAD/public/favicon-16x16.png -------------------------------------------------------------------------------- /public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adiwg/mdEditor/HEAD/public/favicon-32x32.png -------------------------------------------------------------------------------- /public/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adiwg/mdEditor/HEAD/public/favicon-96x96.png -------------------------------------------------------------------------------- /app/pods/record/show/edit/associated/resource/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/lineage/lineageobject/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/taxonomy/collection/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /app/serializers/application.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-local-storage/serializers/serializer'; -------------------------------------------------------------------------------- /public/favicon-196x196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adiwg/mdEditor/HEAD/public/favicon-196x196.png -------------------------------------------------------------------------------- /public/fonts/mdeditor.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adiwg/mdEditor/HEAD/public/fonts/mdeditor.eot -------------------------------------------------------------------------------- /public/fonts/mdeditor.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adiwg/mdEditor/HEAD/public/fonts/mdeditor.ttf -------------------------------------------------------------------------------- /public/fonts/mdeditor.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adiwg/mdEditor/HEAD/public/fonts/mdeditor.woff -------------------------------------------------------------------------------- /public/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adiwg/mdEditor/HEAD/public/mstile-144x144.png -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/entity/edit/citation/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/lineage/lineageobject/source/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/lineage/lineageobject/step/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/shapefile.js: -------------------------------------------------------------------------------- 1 | import shapefile from 'shapefile'; 2 | 3 | export {shapefile}; 4 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/lineage/lineageobject/citation/template.hbs: -------------------------------------------------------------------------------- 1 | {{liquid-outlet class="liquid-spy"}} 2 | -------------------------------------------------------------------------------- /lib/ember-json-tree/addon/styles/addon.scss: -------------------------------------------------------------------------------- 1 | @import "variables"; 2 | @import "tree"; 3 | @import "search"; 4 | -------------------------------------------------------------------------------- /lib/ember-json-tree/app/components/tree-label.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-json-tree/components/tree-label'; -------------------------------------------------------------------------------- /lib/ember-json-tree/app/components/tree-view.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-json-tree/components/tree-view'; -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/app/utils/config.js: -------------------------------------------------------------------------------- 1 | export { default } from 'mdeditor-sciencebase/utils/config'; 2 | -------------------------------------------------------------------------------- /app/pods/components/layout/md-breadcrumb/template.hbs: -------------------------------------------------------------------------------- 1 | {{bread-crumbs tagName="ol" linkable=true}} 2 | {{yield}} 3 | -------------------------------------------------------------------------------- /app/pods/error/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/help/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/save/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /lib/ember-json-tree/app/components/tree-leaf.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-json-tree/components/tree-leaf'; 2 | -------------------------------------------------------------------------------- /lib/ember-json-tree/app/components/tree-search.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-json-tree/components/tree-search'; -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/csv2geojson.js: -------------------------------------------------------------------------------- 1 | import csv2geojson from 'csv2geojson'; 2 | 3 | export {csv2geojson}; 4 | -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/togeojson.js: -------------------------------------------------------------------------------- 1 | import toGeoJSON from '@mapbox/togeojson'; 2 | 3 | export {toGeoJSON}; 4 | -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/app/components/sb-tree.js: -------------------------------------------------------------------------------- 1 | export { default } from 'mdeditor-sciencebase/components/sb-tree'; -------------------------------------------------------------------------------- /tests/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | embertest: true, 4 | jquery: true 5 | } 6 | }; 7 | -------------------------------------------------------------------------------- /app/pods/dashboard/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/translate/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /lib/ember-json-tree/app/components/tree-branch.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-json-tree/components/tree-branch'; 2 | -------------------------------------------------------------------------------- /lib/ember-json-tree/app/helpers/make-range.js: -------------------------------------------------------------------------------- 1 | export { default, makeRange } from 'ember-json-tree/helpers/make-range'; 2 | -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/app/utils/sb-tree-node.js: -------------------------------------------------------------------------------- 1 | export { default } from 'mdeditor-sciencebase/utils/sb-tree-node'; 2 | -------------------------------------------------------------------------------- /public/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adiwg/mdEditor/HEAD/public/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /public/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adiwg/mdEditor/HEAD/public/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /app/pods/components/control/md-infotip/template.hbs: -------------------------------------------------------------------------------- 1 | {{fa-icon icon}} 2 | {{ember-tooltip delay=delay text=text}} 3 | {{yield}} -------------------------------------------------------------------------------- /app/pods/publish/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/settings/profile/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/components/feature-form.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-leaflet-table/components/feature-form'; -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/components/feature-group.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-leaflet-table/components/feature-group'; -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/components/feature-table.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-leaflet-table/components/feature-table'; -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/components/leaflet-table.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-leaflet-table/components/leaflet-table'; -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/geojsoncoords.js: -------------------------------------------------------------------------------- 1 | import geojsonCoords from 'geojson-coords'; 2 | 3 | export {geojsonCoords}; 4 | -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/app/components/sb-publisher.js: -------------------------------------------------------------------------------- 1 | export { default } from 'mdeditor-sciencebase/components/sb-publisher'; -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/app/components/sb-settings.js: -------------------------------------------------------------------------------- 1 | export { default } from 'mdeditor-sciencebase/components/sb-settings'; -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/app/components/sb-tree-label.js: -------------------------------------------------------------------------------- 1 | export { default } from 'mdeditor-sciencebase/components/sb-tree-label'; -------------------------------------------------------------------------------- /app/pods/contact/show/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/grid/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/main/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/components/leaflet-draw.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-leaflet-table/components/leaflet-draw'; 2 | -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/components/lgeojson-layer.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-leaflet-table/components/lgeojson-layer'; 2 | -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/entity/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/associated/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/constraint/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/coverages/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/dataquality/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route' 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/documents/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/lineage/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/metadata/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/spatial/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/taxonomy/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/components/leaflet-table-row.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-leaflet-table/components/leaflet-table-row'; -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/app/routes/publish/sciencebase.js: -------------------------------------------------------------------------------- 1 | export { default } from 'mdeditor-sciencebase/routes/publish/sciencebase'; 2 | -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/citation/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/main/citation/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/metadata/parent/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/spatial/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /lib/ember-json-tree/app/components/nestable-draggable-object.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-json-tree/components/nestable-draggable-object'; -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/app/templates/publish/sciencebase.js: -------------------------------------------------------------------------------- 1 | export { default } from 'mdeditor-sciencebase/templates/publish/sciencebase'; 2 | -------------------------------------------------------------------------------- /app/pods/components/object/md-extent/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/components/object/md-profile/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/serializers/pouch-base.js: -------------------------------------------------------------------------------- 1 | import { Serializer } from 'ember-pouch'; 2 | 3 | export default class PouchBaseSerializer extends Serializer {} 4 | -------------------------------------------------------------------------------- /app/pods/components/control/md-pouch-record-table/pouch-buttons/template.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/pods/components/control/md-repo-link/template.hbs: -------------------------------------------------------------------------------- 1 | {{#if hasBlock}} 2 | {{yield}} 3 | {{else}} 4 | {{version}}{{fa-icon "github"}} 5 | {{/if}} 6 | -------------------------------------------------------------------------------- /app/pods/components/layout/md-breadcrumb/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/record/show/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | 3 | {{to-elsewhere named="nav-main" send=(component "layout/nav/record/nav-main" model=model)}} 4 | -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/components/leaflet-table-row-actions.js: -------------------------------------------------------------------------------- 1 | export { default } from 'ember-leaflet-table/components/leaflet-table-row-actions'; -------------------------------------------------------------------------------- /app/pods/components/control/subbar-importcsv/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/components/object/md-dataquality/preview/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({}); 4 | -------------------------------------------------------------------------------- /app/pods/components/object/md-funding/preview/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/pods/dictionary/show/template.hbs: -------------------------------------------------------------------------------- 1 | {{outlet}} 2 | 3 | {{to-elsewhere named="nav-main" send=(component "layout/nav/dictionary/nav-main" model=model)}} 4 | -------------------------------------------------------------------------------- /app/pods/components/object/md-address/md-address-block/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | }); 5 | -------------------------------------------------------------------------------- /app/serializers/pouch-record.js: -------------------------------------------------------------------------------- 1 | import Serializer from 'mdeditor/serializers/pouch-base'; 2 | 3 | export default class PouchRecordSerializer extends Serializer {} 4 | -------------------------------------------------------------------------------- /app/pods/components/control/md-contact-title/template.hbs: -------------------------------------------------------------------------------- 1 | {{#if hasBlock}} 2 | {{yield contact}} 3 | {{else}} 4 | {{if contact contact.title default}} 5 | {{/if}} 6 | -------------------------------------------------------------------------------- /app/pods/components/layout/nav/record/nav-main/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | tagName:'' 5 | }); 6 | -------------------------------------------------------------------------------- /app/serializers/pouch-contact.js: -------------------------------------------------------------------------------- 1 | import Serializer from 'mdeditor/serializers/pouch-base'; 2 | 3 | export default class PouchContactSerializer extends Serializer {} 4 | -------------------------------------------------------------------------------- /app/services/publish.js: -------------------------------------------------------------------------------- 1 | import { A } from '@ember/array'; 2 | import Service from '@ember/service'; 3 | 4 | export default Service.extend({ 5 | catalogs: A() 6 | }); 7 | -------------------------------------------------------------------------------- /app/styles/_publish.scss: -------------------------------------------------------------------------------- 1 | .add-token-button { 2 | margin-top: 5px; 3 | } 4 | 5 | .sb-publish-instructions { 6 | margin-bottom: 15px; 7 | font-size: 1.5rem; 8 | } 9 | -------------------------------------------------------------------------------- /tests/helpers/flash-message.js: -------------------------------------------------------------------------------- 1 | import FlashObject from 'ember-cli-flash/flash/object'; 2 | 3 | FlashObject.reopen({ 4 | init() { 5 | return this; 6 | } 7 | }); 8 | -------------------------------------------------------------------------------- /app/pods/components/layout/nav/dictionary/nav-main/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | tagName:'' 5 | }); 6 | -------------------------------------------------------------------------------- /app/pods/components/object/md-profile/form/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | tagName: 'form' 5 | }); 6 | -------------------------------------------------------------------------------- /app/pods/components/object/md-schema/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | classNames: ['md-schema'] 5 | }); 6 | -------------------------------------------------------------------------------- /app/serializers/pouch-dictionary.js: -------------------------------------------------------------------------------- 1 | import Serializer from 'mdeditor/serializers/pouch-base'; 2 | 3 | export default class PouchDictionarySerializer extends Serializer {} 4 | -------------------------------------------------------------------------------- /app/pods/components/control/md-record-table/buttons/show/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | tagName:'' 5 | }); 6 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/constraint/template.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{outlet class=""}} 4 |
5 |
6 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/spatial/template.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{liquid-outlet class=""}} 4 |
5 |
-------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/app/instance-initializers/settings-sciencebase.js: -------------------------------------------------------------------------------- 1 | export { default, initialize } from 'mdeditor-sciencebase/instance-initializers/settings-sciencebase'; 2 | -------------------------------------------------------------------------------- /app/pods/components/control/md-spinner/template.hbs: -------------------------------------------------------------------------------- 1 | {{fa-icon "spinner" pulse=true size=size}} 2 |

3 | {{text}} 4 |

5 | {{yield}} 6 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/lineage/template.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{liquid-outlet class=""}} 4 |
5 |
6 | -------------------------------------------------------------------------------- /app/pods/sync/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | redirect() { 5 | this.transitionTo('sync.list'); 6 | } 7 | }); 8 | -------------------------------------------------------------------------------- /app/models/pouch-base.js: -------------------------------------------------------------------------------- 1 | import { attr } from '@ember-data/model'; 2 | import { Model } from 'ember-pouch'; 3 | 4 | export default class PouchBaseModel extends Model { 5 | @attr json; 6 | } -------------------------------------------------------------------------------- /app/pods/contact/show/edit/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import HashPoll from 'mdeditor/mixins/hash-poll'; 3 | 4 | export default Route.extend(HashPoll, { 5 | }); 6 | -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/domain/template.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{liquid-outlet class=""}} 4 |
5 |
6 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/associated/template.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{liquid-outlet class=""}} 4 |
5 |
6 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/documents/template.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{liquid-outlet class=""}} 4 |
5 |
6 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/spatial/raster/template.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{liquid-outlet class=""}} 4 |
5 |
-------------------------------------------------------------------------------- /app/pods/components/ember-tooltip/component.js: -------------------------------------------------------------------------------- 1 | import Component from 'ember-tooltips/components/ember-tooltip'; 2 | 3 | export default Component.extend({ 4 | popperContainer: 'body' 5 | }); 6 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/dataquality/template.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{liquid-outlet class="liquid-spy"}} 4 |
5 |
-------------------------------------------------------------------------------- /app/pods/record/show/edit/funding/template.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{liquid-outlet class="liquid-spy"}} 4 |
5 |
6 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/taxonomy/template.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{liquid-outlet class="liquid-spy"}} 4 |
5 |
6 | -------------------------------------------------------------------------------- /app/pods/settings/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | redirect() { 5 | this.replaceWith('settings.main'); 6 | } 7 | }); 8 | -------------------------------------------------------------------------------- /app/pods/settings/profile/template.hbs: -------------------------------------------------------------------------------- 1 | {{!-- --}} 4 | {{outlet}} 5 | -------------------------------------------------------------------------------- /app/models/couch.js: -------------------------------------------------------------------------------- 1 | import Model, { attr } from '@ember-data/model'; 2 | 3 | export default class CouchModel extends Model { 4 | @attr('string') remoteUrl; 5 | @attr('string') remoteName; 6 | } 7 | -------------------------------------------------------------------------------- /app/pods/components/md-help/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | classNames: ['md-help-sidebar'], 5 | tagName: 'section' 6 | }); 7 | -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/citation/template.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{liquid-outlet class="liquid-spy"}} 4 |
5 |
6 | -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/entity/template.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{liquid-outlet class="liquid-spy"}} 4 |
5 |
6 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/distribution/template.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | {{liquid-outlet class="liquid-spy"}} 4 |
5 |
6 | -------------------------------------------------------------------------------- /app/validators/messages.js: -------------------------------------------------------------------------------- 1 | import Messages from 'ember-cp-validations/validators/messages'; 2 | 3 | export default Messages.extend({ 4 | arrayRequired: 'At least one {item} is required.' 5 | }); 6 | -------------------------------------------------------------------------------- /app/pods/components/control/subbar-citation/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | selectResource(){ 5 | return this; 6 | } 7 | }); 8 | -------------------------------------------------------------------------------- /app/pods/components/md-models-table/components/row-buttons/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | classNames: ['md-row-buttons'] 5 | }); 6 | -------------------------------------------------------------------------------- /config/optional-features.json: -------------------------------------------------------------------------------- 1 | { 2 | "application-template-wrapper": false, 3 | "default-async-observers": true, 4 | "jquery-integration": true, 5 | "template-only-glimmer-components": true 6 | } 7 | -------------------------------------------------------------------------------- /app/pods/settings/profile/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | model() { 5 | return this.store.findAll('custom-profile'); 6 | }, 7 | }); 8 | -------------------------------------------------------------------------------- /app/styles/_alert.scss: -------------------------------------------------------------------------------- 1 | .alert.md-alert-table { 2 | align-items: center; 3 | display: flex; 4 | justify-content: space-between; 5 | 6 | h3, 7 | h4 { 8 | margin-bottom: 0; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /app/helpers/mod.js: -------------------------------------------------------------------------------- 1 | import Helper from '@ember/component/helper'; 2 | 3 | export function mod(params) { 4 | return params.reduce((a, b) => Number(a) % Number(b)); 5 | } 6 | 7 | export default Helper.helper(mod); 8 | -------------------------------------------------------------------------------- /app/pods/components/control/md-record-table/buttons/show/template.hbs: -------------------------------------------------------------------------------- 1 | {{#link-to (concat record.constructor.modelName ".show") record.id class="btn btn-sm btn-info"}} 2 | {{fa-icon "eye"}} Show 3 | {{/link-to}} 4 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/funding/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | actions: { 5 | deleteAllocation(){}, 6 | editAllocation(){} 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /app/styles/_collapse.scss: -------------------------------------------------------------------------------- 1 | .md-collapsible-content { 2 | max-height: 0; 3 | overflow: hidden; 4 | transition: max-height .25s ease-in-out; 5 | 6 | &.open { 7 | max-height: 100vh; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /app/pods/components/md-models-table/components/check/template.hbs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | redirect(model) { 5 | this.replaceWith('record.show.edit.main', model); 6 | } 7 | }); 8 | -------------------------------------------------------------------------------- /app/routes/index.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | /** Redirect to dashboard route */ 5 | redirect() { 6 | this.transitionTo('dashboard'); 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /app/styles/_control_sidebar.scss: -------------------------------------------------------------------------------- 1 | .md-control-sidebar { 2 | .btn-group-vertical { 3 | margin-top: .5em; 4 | } 5 | 6 | .md-crud-buttons .btn-group-vertical { 7 | margin-top: initial; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/addon/components/sb-settings.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import layout from '../templates/components/sb-settings'; 3 | 4 | export default Component.extend({ 5 | layout 6 | }); 7 | -------------------------------------------------------------------------------- /app/helpers/add-em.js: -------------------------------------------------------------------------------- 1 | import { helper as buildHelper } from '@ember/component/helper'; 2 | 3 | export function addEm(params) { 4 | return params.reduce((a, b) => Number(a) + Number(b)); 5 | } 6 | 7 | export default buildHelper(addEm); 8 | -------------------------------------------------------------------------------- /app/helpers/present.js: -------------------------------------------------------------------------------- 1 | import { helper } from '@ember/component/helper'; 2 | import { isPresent } from '@ember/utils'; 3 | 4 | export function present(params) { 5 | return isPresent(params[0]); 6 | } 7 | 8 | export default helper(present); 9 | -------------------------------------------------------------------------------- /app/pods/components/control/md-pouch-record-table/pouch-buttons/delete/template.hbs: -------------------------------------------------------------------------------- 1 | 2 | Delete 3 | 4 | -------------------------------------------------------------------------------- /app/pods/settings/main/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import ScrollTo from 'mdeditor/mixins/scroll-to'; 3 | 4 | export default Route.extend(ScrollTo, { 5 | model() { 6 | return this.settings.get('data'); 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /lib/ember-leaflet-table/addon/components/leaflet-table-row-actions.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import layout from '../templates/components/leaflet-table-row-actions'; 3 | 4 | export default Component.extend({ 5 | layout 6 | }); 7 | -------------------------------------------------------------------------------- /app/models/pouch-record.js: -------------------------------------------------------------------------------- 1 | import Model from 'mdeditor/models/pouch-base'; 2 | import { alias } from '@ember/object/computed'; 3 | 4 | export default class PouchRecordModel extends Model { 5 | @alias('json.metadata.resourceInfo.citation.title') title; 6 | } -------------------------------------------------------------------------------- /app/templates/head.hbs: -------------------------------------------------------------------------------- 1 | {{!-- 2 | Add content you wish automatically added to the documents head 3 | here. The 'model' available in this template can be populated by 4 | setting values on the 'head-data' service. 5 | --}} 6 | {{model.title}} 7 | -------------------------------------------------------------------------------- /app/helpers/object-is-empty.js: -------------------------------------------------------------------------------- 1 | import { helper } from '@ember/component/helper'; 2 | import { isEmpty } from 'mdeditor/utils/md-object' 3 | 4 | 5 | export default helper(function objectIsEmpty(params/*, hash*/) { 6 | return isEmpty(params[0]); 7 | }); 8 | -------------------------------------------------------------------------------- /app/models/pouch-dictionary.js: -------------------------------------------------------------------------------- 1 | import Model from 'mdeditor/models/pouch-base'; 2 | import { alias } from '@ember/object/computed'; 3 | 4 | export default class PouchDictionaryModel extends Model { 5 | @alias('json.dataDictionary.citation.title') title; 6 | } 7 | -------------------------------------------------------------------------------- /app/utils/couchdb-config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | name: 'CouchDB', 3 | route: 'couchdb', 4 | description: 'CouchDB is a document-oriented NoSQL database for data synchronization', 5 | icon: 'database', 6 | settingsComponent: 'couchdb-settings', 7 | }; 8 | -------------------------------------------------------------------------------- /app/pods/record/new/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | redirect() { 5 | let rec = this.store.createRecord('record'); 6 | 7 | this.replaceWith('record.new.id', rec.id); 8 | } 9 | }); 10 | -------------------------------------------------------------------------------- /app/pods/contact/new/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | redirect() { 5 | let rec = this.store.createRecord('contact'); 6 | 7 | this.replaceWith('contact.new.id', rec.id); 8 | } 9 | }); 10 | -------------------------------------------------------------------------------- /app/pods/sync/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | init() { 5 | this._super(...arguments); 6 | 7 | this.breadCrumb = { 8 | title: 'Sync', 9 | linkable: false 10 | } 11 | }, 12 | }); -------------------------------------------------------------------------------- /app/pods/components/md-models-table/components/check-all/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | actions: { 5 | toggleAllSelection() { 6 | this.toggleAllSelection(); 7 | } 8 | } 9 | }); 10 | -------------------------------------------------------------------------------- /app/pods/components/md-models-table/components/check-all/template.hbs: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /app/pods/components/object/md-taxonomy/classification/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | tagName: 'ul', 5 | classNames: ['list-group', 'md-classification'], 6 | dragging: null, 7 | preview: false 8 | }); 9 | -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/domain/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | init() { 5 | this._super(...arguments); 6 | 7 | this.breadCrumb = { 8 | title: 'Domains' 9 | } 10 | }, 11 | }); 12 | -------------------------------------------------------------------------------- /tests/test-helper.js: -------------------------------------------------------------------------------- 1 | import Application from '../app'; 2 | import config from '../config/environment'; 3 | import { setApplication } from '@ember/test-helpers'; 4 | import { start } from 'ember-qunit'; 5 | 6 | setApplication(Application.create(config.APP)); 7 | 8 | start(); 9 | -------------------------------------------------------------------------------- /app/pods/contact/new/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | init() { 5 | this._super(...arguments); 6 | 7 | this.breadCrumb = { 8 | title: 'New', 9 | linkable: false 10 | } 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /app/pods/contact/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | init() { 5 | this._super(...arguments); 6 | 7 | this.breadCrumb = { 8 | title: 'Contact', 9 | linkable: false 10 | } 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /app/pods/record/new/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | init() { 5 | this._super(...arguments); 6 | 7 | this.breadCrumb = { 8 | title: 'New', 9 | linkable: false 10 | } 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /app/pods/record/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | init() { 5 | this._super(...arguments); 6 | 7 | this.breadCrumb = { 8 | title: 'Record', 9 | linkable: false 10 | } 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /lib/ember-json-tree/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ember-json-tree", 3 | "keywords": [ 4 | "ember-addon" 5 | ], 6 | "dependencies": { 7 | "ember-cli-htmlbars": "^4.2.0", 8 | "ember-cli-babel": "^7.7.3", 9 | "ember-cli-sass": "~10.0.0" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /app/pods/components/object/md-citation/preview/body/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | init() { 5 | this._super(...arguments); 6 | 7 | this.profilePath = this.profilePath || 'preview'; 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /app/pods/dictionary/new/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | init() { 5 | this._super(...arguments); 6 | 7 | this.breadCrumb = { 8 | title: 'New', 9 | linkable: false 10 | } 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /app/pods/dictionary/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | init() { 5 | this._super(...arguments); 6 | 7 | this.breadCrumb = { 8 | title: 'Dictionary', 9 | linkable: false 10 | } 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /app/pods/not-found/template.hbs: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /app/pods/record/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | init() { 5 | this._super(...arguments); 6 | 7 | this.breadCrumb = { 8 | title: 'Record', 9 | linkable: false 10 | } 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /app/pods/components/object/md-process-step/preview/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { alias } from '@ember/object/computed'; 3 | 4 | export default Component.extend({ 5 | tagName: '', 6 | model: alias('item'), 7 | name: alias('model.description') 8 | }); 9 | -------------------------------------------------------------------------------- /app/pods/dictionary/new/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | redirect: function() { 5 | let rec = this.store.createRecord('dictionary'); 6 | 7 | this.replaceWith('dictionary.new.id', rec.id); 8 | } 9 | }); 10 | -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/domain/edit/citation/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | init() { 5 | this._super(...arguments); 6 | 7 | this.breadCrumb = { 8 | title: 'Reference' 9 | } 10 | } 11 | }); 12 | -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mdeditor-sciencebase", 3 | "keywords": [ 4 | "ember-addon" 5 | ], 6 | "dependencies": { 7 | "ember-cli-htmlbars": "^4.2.0", 8 | "ember-cli-babel": "^7.7.3", 9 | "ember-cli-sass": "~10.0.0" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /app/pods/components/control/md-pouch-record-table/buttons/update/template.hbs: -------------------------------------------------------------------------------- 1 | {{#unless this.updated}} 2 | 9 | {{/unless}} -------------------------------------------------------------------------------- /app/pods/components/layout/md-footer/component.js: -------------------------------------------------------------------------------- 1 | import { inject as service } from '@ember/service'; 2 | import Component from '@ember/component'; 3 | 4 | export default Component.extend({ 5 | tagName: 'footer', 6 | classNames: ['md-footer'], 7 | 8 | settings: service() 9 | }); 10 | -------------------------------------------------------------------------------- /app/pods/settings/profile/manage/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import { inject as service } from '@ember/service'; 3 | 4 | export default Route.extend({ 5 | model() { 6 | return this.store.findAll('profile'); 7 | }, 8 | 9 | profile: service(), 10 | }); 11 | -------------------------------------------------------------------------------- /app/pods/components/control/md-pouch-record-table/buttons/import/template.hbs: -------------------------------------------------------------------------------- 1 | {{#unless this.imported}} 2 | 9 | {{/unless}} -------------------------------------------------------------------------------- /app/pods/components/control/md-record-table/buttons/custom/template.hbs: -------------------------------------------------------------------------------- 1 | {{#with column.buttonConfig as |c|}} 2 | 5 | {{/with}} 6 | -------------------------------------------------------------------------------- /app/pods/components/control/md-pouch-record-table/pouch-buttons/update/template.hbs: -------------------------------------------------------------------------------- 1 | {{#unless this.updated}} 2 | 9 | {{/unless}} -------------------------------------------------------------------------------- /app/pods/components/object/md-graphic-array/md-graphic-preview/template.hbs: -------------------------------------------------------------------------------- 1 | {{item.fileName}}: 2 | {{#each item.fileUri as |image|}} 3 | {{#if image.uri}} 4 | Image Preview 5 | {{/if}} 6 | {{/each}} 7 | -------------------------------------------------------------------------------- /app/pods/components/object/md-profile/preview/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { or } from '@ember/object/computed'; 3 | 4 | export default Component.extend({ 5 | classNameBindings: ['textMuted'], 6 | textMuted: true, 7 | config: or('record.config', 'record') 8 | }); 9 | -------------------------------------------------------------------------------- /app/pods/components/object/md-source/preview/template.hbs: -------------------------------------------------------------------------------- 1 | 2 | {{input/md-textarea 3 | value=model.description 4 | profilePath=(concat profilePath ".description") 5 | placeholder="A brief description about the source dataset used in creating the data." 6 | maxrows=7 7 | }} 8 | 9 | -------------------------------------------------------------------------------- /app/styles/_extent.scss: -------------------------------------------------------------------------------- 1 | .md-extent-container { 2 | border: 1px solid $gray-lighter; 3 | margin-left: 0; 4 | margin-right: 0; 5 | min-height: 250px; 6 | padding: 15px 0; 7 | 8 | .md-extent-description, 9 | .leaflet-container, 10 | .alert { 11 | height: 250px; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /lib/ember-json-tree/addon/templates/components/tree-label.hbs: -------------------------------------------------------------------------------- 1 | {{#if labelComponent}} 2 | {{component labelComponent model=model 3 | nodePath=nodePath 4 | selected=selected 5 | highlight=highlight 6 | }} 7 | {{else}} 8 | {{label}} 9 | {{/if}} 10 | -------------------------------------------------------------------------------- /app/instance-initializers/settings-couchdb.js: -------------------------------------------------------------------------------- 1 | import config from '../utils/couchdb-config'; 2 | 3 | export function initialize(instance) { 4 | let service = instance.lookup('service:publish'); 5 | service.get('catalogs').pushObject(config); 6 | } 7 | 8 | export default { 9 | initialize 10 | }; 11 | -------------------------------------------------------------------------------- /app/instance-initializers/settings.js: -------------------------------------------------------------------------------- 1 | export function initialize(appInstance) { 2 | appInstance.inject('route', 'settings', 'service:settings'); 3 | appInstance.inject('controller', 'settings', 'service:settings'); 4 | } 5 | 6 | export default { 7 | name: 'settings', 8 | initialize 9 | }; 10 | -------------------------------------------------------------------------------- /app/pods/components/object/md-process-step/preview/template.hbs: -------------------------------------------------------------------------------- 1 | 2 | {{input/md-textarea 3 | value=model.description 4 | profilePath=(concat profilePath ".description") 5 | placeholder="A brief description about the dataset generated by the processing step." 6 | maxrows=7 7 | }} 8 | 9 | -------------------------------------------------------------------------------- /app/pods/components/control/md-pouch-record-table/buttons/template.hbs: -------------------------------------------------------------------------------- 1 | {{#unless this.relatedRecord}} 2 | 3 | {{else}} 4 | 5 | {{/unless}} 6 | -------------------------------------------------------------------------------- /app/pods/components/control/md-pouch-record-table/component.js: -------------------------------------------------------------------------------- 1 | import MdModelsTable from 'mdeditor/pods/components/md-models-table/component'; 2 | import classic from 'ember-classic-decorator'; 3 | 4 | @classic 5 | export default class MdPouchRecordTable extends MdModelsTable { 6 | classNames = ['md-record-table'] 7 | } -------------------------------------------------------------------------------- /app/pods/components/control/md-record-table/buttons/filter/template.hbs: -------------------------------------------------------------------------------- 1 | {{#if showButton}} 2 | {{#control/md-button-confirm class="btn btn-danger btn-block" onConfirm=(action "deleteSelected" selectedItems)}} 3 | Delete Selected 4 | {{/control/md-button-confirm}} 5 | {{/if}} 6 | -------------------------------------------------------------------------------- /app/pods/components/object/md-distributor/preview/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | init() { 5 | this._super(...arguments); 6 | 7 | this.tagName = this.isTable ? 'td' : 'div'; 8 | }, 9 | 10 | classNames: ['property'] 11 | }); 12 | -------------------------------------------------------------------------------- /app/pods/components/object/md-raster/attrgroup/attribute/preview/template.hbs: -------------------------------------------------------------------------------- 1 | 2 | {{input/md-textarea 3 | value=item.attributeDescription 4 | placeholder="Description of the attribute" 5 | data-spy=false 6 | profilePath=(concat profilePath ".attributeDescription") 7 | }} 8 | -------------------------------------------------------------------------------- /app/pods/components/object/md-raster/attrgroup/attribute/preview/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { alias } from '@ember/object/computed'; 3 | 4 | export default Component.extend({ 5 | tagName: '', 6 | item: alias('model'), 7 | attrDesc: alias('model.attrbuteDescription') 8 | }); 9 | -------------------------------------------------------------------------------- /app/pods/publish/couchdb/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import config from '../../../utils/couchdb-config'; 3 | 4 | export default class PublishCouchdbRoute extends Route { 5 | breadCrumb = { 6 | title: 'CouchDB' 7 | }; 8 | 9 | model() { 10 | return config; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/pods/components/object/md-citation-array/template.hbs: -------------------------------------------------------------------------------- 1 | {{object/md-objectroute-table 2 | items=model 3 | header=label 4 | buttonText="Add Citation" 5 | ellipsis=ellipsis 6 | templateClass=templateClass 7 | editItem=editItem 8 | attributes=attributes 9 | profilePath=profilePath 10 | }} 11 | {{yield}} 12 | -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/addon/routes/publish/sciencebase.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import config from '../../utils/config'; 3 | 4 | export default Route.extend({ 5 | breadCrumb: { 6 | title: 'ScienceBase' 7 | }, 8 | 9 | model: function() { 10 | return config; 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /app/pods/components/control/md-definition/template.hbs: -------------------------------------------------------------------------------- 1 |
{{if title title "--"}}
2 |
3 | {{#if hasBlock}} 4 | {{yield}} 5 | {{else}} 6 | {{#if text}} 7 | {{text}} 8 | {{else}} 9 | {{empty}} 10 | {{/if}} 11 | {{/if}} 12 |
13 | -------------------------------------------------------------------------------- /app/pods/components/md-models-table/component.js: -------------------------------------------------------------------------------- 1 | import classic from 'ember-classic-decorator'; 2 | import Table from 'ember-models-table/components/models-table'; 3 | import Theme from './themes/bootstrap3'; 4 | 5 | @classic 6 | export default class MdModelsTableComponent extends Table { 7 | themeInstance = Theme.create(); 8 | } 9 | -------------------------------------------------------------------------------- /app/pods/components/object/md-identifier-array/template.hbs: -------------------------------------------------------------------------------- 1 | {{object/md-objectroute-table 2 | items=model 3 | header=label 4 | buttonText="Add Identifier" 5 | ellipsis=ellipsis 6 | templateClass=templateClass 7 | editItem=editItem 8 | attributes=attributes 9 | profilePath=profilePath 10 | }} 11 | {{yield}} 12 | -------------------------------------------------------------------------------- /app/pods/components/object/md-transfer/preview/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | init() { 5 | this.tagName = this.isTable ? '' : 'div'; 6 | this._super(...arguments); 7 | }, 8 | 9 | classNames: ['property'], 10 | isTable: true 11 | }); 12 | -------------------------------------------------------------------------------- /app/helpers/object-each.js: -------------------------------------------------------------------------------- 1 | import { helper } from '@ember/component/helper'; 2 | 3 | export default helper(function objectEach([obj]) { 4 | let result = []; 5 | for (let key in obj) { 6 | if (obj.hasOwnProperty(key)) { 7 | result.push({ key, value: obj[key] }); 8 | } 9 | } 10 | return result; 11 | }); 12 | -------------------------------------------------------------------------------- /app/pods/settings/validation/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import { inject as service } from '@ember/service'; 3 | // import EmberObject from '@ember/object'; 4 | 5 | export default Route.extend({ 6 | model() { 7 | return this.store.findAll('schema'); 8 | }, 9 | 10 | schemas: service(), 11 | }); 12 | -------------------------------------------------------------------------------- /app/utils/md-object.js: -------------------------------------------------------------------------------- 1 | import { clean } from 'mdeditor/services/cleaner'; 2 | 3 | const isEmpty = function (obj) { 4 | if(obj !== null) { 5 | let empty = obj ? Object.keys(clean(obj, { 6 | preserveArrays: false 7 | })).length === 0 : true; 8 | 9 | return empty; 10 | } 11 | }; 12 | 13 | export { isEmpty }; 14 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/spatial/index/template.hbs: -------------------------------------------------------------------------------- 1 |

2 | Editing Spatial Information 3 | {{control/md-status model=model}} 4 |

5 | 6 | {{#with model.json.metadata.resourceInfo as |resourceInfo|}} 7 | {{object/md-spatial-info model=resourceInfo profilePath="record.spatial" parentModel=model}} 8 | {{/with}} 9 | -------------------------------------------------------------------------------- /tests/unit/helpers/mod-test.js: -------------------------------------------------------------------------------- 1 | 2 | import { mod } from 'mdeditor/helpers/mod'; 3 | import { module, test } from 'qunit'; 4 | 5 | module('Unit | Helper | mod', function() { 6 | // Replace this with your real tests. 7 | test('it works', function(assert) { 8 | let result = mod([42]); 9 | assert.ok(result); 10 | }); 11 | }); 12 | 13 | -------------------------------------------------------------------------------- /tests/unit/routes/index-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /.ember-cli: -------------------------------------------------------------------------------- 1 | { 2 | /** 3 | Ember CLI sends analytics information by default. The data is completely 4 | anonymous, but there are times when you might want to disable this behavior. 5 | 6 | Setting `disableAnalytics` to true will prevent any data from being sent. 7 | */ 8 | "disableAnalytics": false, 9 | "usePods": true 10 | } 11 | -------------------------------------------------------------------------------- /app/pods/components/control/md-button/template.hbs: -------------------------------------------------------------------------------- 1 | {{#if (has-block)}} 2 | {{yield}} 3 | {{else}} 4 | {{#if icon}} 5 | {{fa-icon icon spin=iconSpin}} 6 | {{/if}} 7 | {{text}} 8 | {{/if}} 9 | 10 | {{#if tooltip}} 11 | {{ember-tooltip tooltipClass=(concat "ember-tooltip md-tooltip " tipClass) text=tooltip side=tipSide}} 12 | {{/if}} 13 | -------------------------------------------------------------------------------- /tests/unit/pods/error/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | error', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:error'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/export/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | save', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:save'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/help/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | help', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:help'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/pods/components/object/md-lineage/preview/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { computed } from '@ember/object'; 3 | 4 | export default Component.extend({ 5 | showMore: false, 6 | limit:1, 7 | showLimit: computed('limit','showMore', function() { 8 | return this.showMore ? 100: this.limit; 9 | }), 10 | }); 11 | -------------------------------------------------------------------------------- /app/pods/components/object/md-taxonomy/collection/system/preview/template.hbs: -------------------------------------------------------------------------------- 1 | 2 | {{input/md-input 3 | model=this 4 | valuePath='title' 5 | placeholder='Descriptive name for the collection taxonomic system.' 6 | profilePath=(concat profilePath '.citation.title') 7 | showValidations=true 8 | required=true 9 | }} 10 | -------------------------------------------------------------------------------- /app/styles/_dashboard.scss: -------------------------------------------------------------------------------- 1 | .dashboard { 2 | padding: 20px; 3 | 4 | .card { 5 | border: 0; 6 | } 7 | 8 | .card-footer { 9 | background-color: $gray-dark; 10 | transition: all .5s ease-out; 11 | 12 | &:hover { 13 | background-color: $gray; 14 | } 15 | } 16 | 17 | .logo{ 18 | color: $gray-dark; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /tests/unit/pods/import/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | import', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:import'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/records/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | records', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:records'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/adapters/pouch-contact.js: -------------------------------------------------------------------------------- 1 | import { Adapter } from 'ember-pouch'; 2 | import { initDb, unloadedDocumentChanged } from 'mdeditor/adapters/pouch-base'; 3 | 4 | export default class PouchContactAdapter extends Adapter { 5 | db = initDb(); 6 | 7 | recordTypeName = 'pouchContact'; 8 | 9 | unloadedDocumentChanged = unloadedDocumentChanged.bind(this); 10 | } -------------------------------------------------------------------------------- /app/adapters/pouch-record.js: -------------------------------------------------------------------------------- 1 | import { Adapter } from 'ember-pouch'; 2 | import { initDb, unloadedDocumentChanged } from 'mdeditor/adapters/pouch-base'; 3 | 4 | export default class PouchRecordAdapter extends Adapter { 5 | db = initDb(); 6 | 7 | recordTypeName = 'pouchRecord'; 8 | 9 | unloadedDocumentChanged = unloadedDocumentChanged.bind(this); 10 | } -------------------------------------------------------------------------------- /tests/unit/pods/contacts/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | contacts', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:contacts'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/settings/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | settings', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:settings'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/utils/config-test.js: -------------------------------------------------------------------------------- 1 | import config from 'mdeditor/utils/config'; 2 | import { module, test } from 'qunit'; 3 | 4 | module('Unit | Utility | config', function() { 5 | // Replace this with your real tests. 6 | test('it works', function(assert) { 7 | let result = config.name; 8 | assert.equal(result, 'ScienceBase'); 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | // prettier.config.js, .prettierrc.js, prettier.config.cjs, or .prettierrc.cjs 2 | 3 | /** 4 | * @see https://prettier.io/docs/en/configuration.html 5 | * @type {import("prettier").Config} 6 | */ 7 | const config = { 8 | trailingComma: 'es5', 9 | tabWidth: 2, 10 | semi: true, 11 | singleQuote: true, 12 | } 13 | 14 | module.exports = config -------------------------------------------------------------------------------- /lib/ember-leaflet-table/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ember-leaflet-table", 3 | "keywords": [ 4 | "ember-addon" 5 | ], 6 | "dependencies": { 7 | "ember-cli-htmlbars": "^4.2.0", 8 | "ember-cli-babel": "^7.7.3", 9 | "ember-cli-sass": "~10.0.0", 10 | "ember-classic-decorator": "^3.0.1", 11 | "ember-decorators": "^6.1.1" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tests/unit/pods/dashboard/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dashboard', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:dashboard'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/not-found/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | not found', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:not-found'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/translate/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | translate', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:translate'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/routes/application-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | application', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:application'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | # unconventional js 2 | /blueprints/*/files/ 3 | /vendor/ 4 | 5 | # compiled output 6 | /dist/ 7 | /tmp/ 8 | 9 | # dependencies 10 | /bower_components/ 11 | /node_modules/ 12 | 13 | # misc 14 | /coverage/ 15 | !.* 16 | .*/ 17 | .eslintcache 18 | 19 | # ember-try 20 | /.node_modules.ember-try/ 21 | /bower.json.ember-try 22 | /package.json.ember-try 23 | -------------------------------------------------------------------------------- /app/adapters/pouch-dictionary.js: -------------------------------------------------------------------------------- 1 | import { Adapter } from 'ember-pouch'; 2 | import { initDb, unloadedDocumentChanged } from 'mdeditor/adapters/pouch-base'; 3 | 4 | export default class PouchDictionaryAdapter extends Adapter { 5 | db = initDb(); 6 | 7 | recordTypeName = 'pouchDictionary'; 8 | 9 | unloadedDocumentChanged = unloadedDocumentChanged.bind(this); 10 | } -------------------------------------------------------------------------------- /app/pods/components/input/md-select-thesaurus/template.hbs: -------------------------------------------------------------------------------- 1 | {{input/md-select 2 | placeholder="Pick a thesaurus" 3 | disabled=disabled 4 | objectArray=thesaurusList 5 | valuePath="id" 6 | namePath="label" 7 | value=value 8 | tooltip=true 9 | tooltipPath="tooltipText" 10 | change=(action "update" value thesaurus) 11 | }} 12 | -------------------------------------------------------------------------------- /app/pods/components/models-table/table-body/component.js: -------------------------------------------------------------------------------- 1 | import Body from 'ember-models-table/components/models-table/table-body'; 2 | 3 | export default Body.extend({ 4 | actions: { 5 | clickOnRowExpand(index, record) { 6 | if(this.themeInstance.selectRowOnExpandClick) { 7 | this.clickOnRow(index, record); 8 | } 9 | } 10 | } 11 | }); 12 | -------------------------------------------------------------------------------- /app/pods/components/object/md-address/md-address-block/template.hbs: -------------------------------------------------------------------------------- 1 |
2 | {{#each item.deliveryPoint as |dp|}} 3 | {{dp}}
4 | {{/each}} 5 | {{item.city}}, {{item.administrativeArea}} {{item.postalCode}} 6 | {{item.country}}
7 | {{#if item.addressType}} 8 | {{join ", " item.addressType}} 9 | {{/if}} 10 |
11 | -------------------------------------------------------------------------------- /tests/unit/pods/contact/show/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | contact/show', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:contact/show'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionaries/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionaries', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:dictionaries'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:record/show'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/models/pouch-contact.js: -------------------------------------------------------------------------------- 1 | import Model from 'mdeditor/models/pouch-base'; 2 | import { computed } from '@ember/object'; 3 | 4 | export default class PouchContactModel extends Model { 5 | @computed('json.{name,positionName,isOrganization}') 6 | get title() { 7 | return this.json.name || (this.json.isOrganization ? null : this.json.positionName); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /app/pods/components/control/md-scroll-spy/template.hbs: -------------------------------------------------------------------------------- 1 | {{#if setScrollTo}} 2 | 10 | {{/if}} 11 | -------------------------------------------------------------------------------- /app/pods/components/object/md-source/preview/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { alias } from '@ember/object/computed'; 3 | // import { 4 | // Validations 5 | // } from '../component'; 6 | 7 | export default Component.extend(/*Validations,*/ { 8 | tagName: '', 9 | model: alias('item'), 10 | name: alias('model.description') 11 | }); 12 | -------------------------------------------------------------------------------- /lib/ember-json-tree/addon/components/nestable-draggable-object.js: -------------------------------------------------------------------------------- 1 | import Draggable from 'ember-drag-drop/components/draggable-object'; 2 | 3 | export default Draggable.extend({ 4 | dragStart(event){ 5 | if(event.currentTarget.getElementsByClassName('is-dragging-object').length){ 6 | return; 7 | } 8 | 9 | this._super(...arguments); 10 | } 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/publish/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | publish/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:publish/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/new/id/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/new/id', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/new/id'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/settings/main/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | settings/main', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:settings/main'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/pods/components/md-models-table/components/check/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | attributeBindings: ['aria-checked:isSelected'], 5 | 6 | actions: { 7 | clickOnRow(index, record, event) { 8 | this.clickOnRow(index, record); 9 | event.stopPropagation(); 10 | } 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /app/pods/components/object/md-documentation/preview/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | classNameBindings: ['muted:text-muted'], 5 | 6 | /** 7 | * Whether to render the text muted. 8 | * 9 | * @property muted 10 | * @type {Boolean} 11 | * @default "true" 12 | */ 13 | muted: true 14 | }); 15 | -------------------------------------------------------------------------------- /app/pods/publish/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import { inject as service } from '@ember/service'; 3 | 4 | export default class PublishRoute extends Route { 5 | @service publish; 6 | @service token; 7 | 8 | async beforeModel() { 9 | await this.token.setup(); 10 | } 11 | 12 | model() { 13 | return this.publish.catalogs; 14 | } 15 | } -------------------------------------------------------------------------------- /tests/unit/helpers/make-range-test.js: -------------------------------------------------------------------------------- 1 | 2 | import { makeRange } from 'mdeditor/helpers/make-range'; 3 | import { module, test } from 'qunit'; 4 | 5 | module('Unit | Helper | make range', function() { 6 | // Replace this with your real tests. 7 | test('it works', function(assert) { 8 | let result = makeRange([42]); 9 | assert.ok(result); 10 | }); 11 | }); 12 | 13 | -------------------------------------------------------------------------------- /tests/unit/pods/contact/new/id/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | contact/new/id', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:contact/new/id'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/contact/show/edit/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | contact/edit', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:contact/show/edit'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:dictionary/show'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/edit', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:record/show/edit'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/settings/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | settings/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:settings/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /lib/ember-leaflet-table/addon/components/feature-group.js: -------------------------------------------------------------------------------- 1 | import LayerGroup from 'ember-leaflet-layer-control/components/layer-group'; 2 | 3 | export default LayerGroup.extend({ 4 | createLayer() { 5 | let layer = this.L.featureGroup(); 6 | 7 | this.setFeatureGroup(layer); 8 | return layer; 9 | }, 10 | setFeatureGroup() { 11 | return this; 12 | } 13 | }); 14 | -------------------------------------------------------------------------------- /tests/unit/pods/contact/new/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | contact/new/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:contact/new/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/new/id/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/new/id', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/new/id'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/new/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/new/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/new/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/settings/profile/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | settings/profile', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:settings/profile'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/validators/array-valid-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Validator | array-valid', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it works', function(assert) { 8 | var validator = this.owner.lookup('validator:array-valid'); 9 | assert.ok(validator); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/instance-initializers/profile.js: -------------------------------------------------------------------------------- 1 | export function initialize(appInstance) { 2 | //appInstance.inject('route', 'profile', 'service:custom-profile'); 3 | //appInstance.inject('controller', 'profile', 'service:custom-profile'); 4 | appInstance.inject('component', 'profile', 'service:custom-profile'); 5 | } 6 | 7 | export default { 8 | name: 'profile', 9 | initialize 10 | }; 11 | -------------------------------------------------------------------------------- /tests/helpers/destroy-app.js: -------------------------------------------------------------------------------- 1 | import { run } from '@ember/runloop'; 2 | 3 | export default function destroyApp(application) { 4 | var store = application.__container__.lookup('service:store'); 5 | 6 | if(store) { 7 | run(function() { 8 | store.unloadAll(); 9 | application.destroy(); 10 | }); 11 | } else { 12 | run(application, 'destroy'); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tests/unit/pods/contact/show/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | contact/show/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:contact/show/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/edit', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:dictionary/show/edit'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/routes/publish/sciencebase-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | publish/sciencebase', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:publish/sciencebase'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:20 as build 2 | WORKDIR /src 3 | 4 | COPY package.json /src/. 5 | COPY yarn.lock /src/. 6 | 7 | RUN corepack enable 8 | RUN yarn install 9 | 10 | COPY . /src/. 11 | RUN yarn 12 | RUN yarn build 13 | 14 | # Final image will only contain the following 15 | FROM pierrezemb/gostatic 16 | COPY --from=build /src/dist/ /srv/http/ 17 | 18 | CMD ["-fallback", "/index.html"] 19 | -------------------------------------------------------------------------------- /app/helpers/get-dash.js: -------------------------------------------------------------------------------- 1 | import Helper from '@ember/component/helper'; 2 | import { get } from '@ember/object'; 3 | 4 | export function getDash(params /*, hash*/ ) { 5 | let obj = params[0]; 6 | let prop = params[1].trim(); 7 | let val = null; 8 | 9 | if(obj) { 10 | val = get(obj, prop); 11 | } 12 | return val || "--"; 13 | } 14 | 15 | export default Helper.helper(getDash); 16 | -------------------------------------------------------------------------------- /app/pods/components/control/md-button-confirm/template.hbs: -------------------------------------------------------------------------------- 1 | {{#liquid-if isShowingConfirm use="toDown"}} 2 | Confirm 3 | {{else}} 4 | {{yield}} 5 | {{/liquid-if}} 6 | 7 | {{#if isShowingConfirm}} 8 | {{#if tooltip}} 9 | {{ember-tooltip tooltipClass=(concat "ember-tooltip md-tooltip " tipClass) text=tooltip side=tipSide}} 10 | {{/if}} 11 | {{/if}} 12 | -------------------------------------------------------------------------------- /app/pods/components/input/md-boolean/template.hbs: -------------------------------------------------------------------------------- 1 | {{#if label}} 2 | 3 | {{#if showInfotip}} 4 | {{control/md-infotip text=placeholder}} 5 | {{/if}} 6 | {{/if}} 7 |
8 | 12 |
13 | {{yield}} 14 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/new/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/new/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/new/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/grid/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/edit/grid', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:record/show/edit/grid'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/settings/validation/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | settings/validation', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:settings/validation'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/validators/array-required-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Validator | array-required', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it works', function(assert) { 8 | var validator = this.owner.lookup('validator:array-required'); 9 | assert.ok(validator); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/addon/instance-initializers/settings-sciencebase.js: -------------------------------------------------------------------------------- 1 | import config from '../utils/config'; 2 | 3 | export function initialize(instance) { 4 | // appInstance.inject('route', 'foo', 'service:foo'); 5 | let service = instance.lookup('service:publish'); 6 | 7 | service.get('catalogs').pushObject(config); 8 | } 9 | 10 | 11 | export default { 12 | initialize 13 | }; 14 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/main/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/main', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/main'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/translate/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/translate', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/translate'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/settings/profile/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | settings/profile/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:settings/profile/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/services/icon-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | icon', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | var service = this.owner.lookup('service:icon'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/services/itis-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | itis', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let service = this.owner.lookup('service:itis'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/services/patch-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | patch', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let service = this.owner.lookup('service:patch'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/keywords/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/edit/keywords', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:record/show/edit/keywords'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/settings/profile/manage/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | settings/profile/manage', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:settings/profile/manage'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/services/mdjson-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | mdjson', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let service = this.owner.lookup('service:mdjson'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/services/slider-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | slider', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let service = this.owner.lookup('service:slider'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/helpers/md-markdown-test.js: -------------------------------------------------------------------------------- 1 | 2 | import { mdMarkdown } from 'mdeditor/helpers/md-markdown'; 3 | import { module, test } from 'qunit'; 4 | 5 | module('Unit | Helper | md markdown', function() { 6 | // Replace this with your real tests. 7 | test('it works', function(assert) { 8 | let result = mdMarkdown('# Test'); 9 | assert.equal(result.string.trim(), '

#

'); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/associated/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/edit/associated', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:record/show/edit/associated'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/coverages/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/edit/coverages', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:record/show/edit/coverages'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/documents/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/edit/documents', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:record/show/edit/documents'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/funding/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/funding', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/funding'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/metadata/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/metadata', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/metadata'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/spatial/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/spatial', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/spatial'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/taxonomy/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/taxonomy', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/taxonomy'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/services/contacts-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | contacts', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let service = this.owner.lookup('service:contacts'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/services/keycloak-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | keycloak', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let service = this.owner.lookup('service:keycloak'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/services/keyword-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | keyword', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let service = this.owner.lookup('service:keyword'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/services/profile-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | profile', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | var service = this.owner.lookup('service:profile'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/services/publish-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | publish', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let service = this.owner.lookup('service:publish'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/services/schemas-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | schemas', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let service = this.owner.lookup('service:schemas'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/services/settings-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | settings', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function (assert) { 9 | let service = this.owner.lookup('service:settings'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /app/pods/components/control/subbar-importcsv/template.hbs: -------------------------------------------------------------------------------- 1 | 3 | 5 | {{yield}} 6 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/domain/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/domain', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/domain'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/entity/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/entity', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/entity'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:dictionary/show/edit/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/constraint/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/constraint', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/constraint'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/dictionary/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/dictionary', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/dictionary'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/main/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/main/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/main/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/services/spotlight-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | spotlight', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let service = this.owner.lookup('service:spotlight'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/distribution/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/edit/distribution', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | var route = this.owner.lookup('route:record/show/edit/distribution'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/distribution/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import { get, set, getWithDefault } from '@ember/object'; 3 | 4 | export default Route.extend({ 5 | afterModel(m) { 6 | this._super(...arguments); 7 | 8 | let model = get(m, 'json.metadata'); 9 | set(model, 'resourceDistribution', getWithDefault(model, 10 | 'resourceDistribution', [])); 11 | }, 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/citation/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/citation', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/citation'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/extent/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/extent/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/extent/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/funding/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/funding/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/funding/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/main/citation/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/main/citation', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/main/citation'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/spatial/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/spatial/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/spatial/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/domain/edit/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/domain/edit', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/domain/edit'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/entity/edit/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/entity/edit', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/entity/edit'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/documents/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/documents/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/documents/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/keywords/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/keywords/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/keywords/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/metadata/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/metadata/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/metadata/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/metadata/parent/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/metadata/parent', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/metadata/parent'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/spatial/extent/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/extent/spatial', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/extent/spatial'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/spatial/raster/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/spatial/raster', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/spatial/raster'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/taxonomy/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/taxonomy/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/taxonomy/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/services/custom-profile-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Service | custom-profile', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let service = this.owner.lookup('service:custom-profile'); 10 | assert.ok(service); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /app/pods/components/models-table/cell-content-display/template.hbs: -------------------------------------------------------------------------------- 1 | {{#if column.truncate}} 2 | {{word-limit 3 | (get record column.propertyName) 4 | limit=column.wordLimit 5 | wordLength=column.wordLength 6 | }} 7 | {{else if column.break}} 8 |
9 | {{get record column.propertyName}} 10 |
11 | {{else}} 12 | {{get record column.propertyName}} 13 | {{/if}} 14 | -------------------------------------------------------------------------------- /app/pods/sync/list/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import { inject as service } from '@ember/service'; 3 | 4 | export default class SyncListRoute extends Route { 5 | @service pouch; 6 | @service couch; 7 | 8 | async beforeModel() { 9 | await this.couch.setup(); 10 | await this.pouch.setup(); 11 | } 12 | 13 | async model() { 14 | return this.pouch.pouchModels; 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/domain/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/domain/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/domain/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/entity/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/entity/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/entity/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/associated/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/associated/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/associated/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/constraint/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/constraint/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/constraint/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/pods/components/object/md-domainitem/preview/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { alias } from '@ember/object/computed'; 3 | import { 4 | Validations 5 | } from '../component'; 6 | 7 | export default Component.extend(Validations, { 8 | tagName:'', 9 | model: alias('item'), 10 | name: alias('model.name'), 11 | value: alias('model.value'), 12 | definition: alias('model.definition') 13 | }); 14 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/citation/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/citation/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/citation/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/entity/import/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/entity/import', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/entity/import'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/distribution/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/distribution/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/distribution/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/documents/citation/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/documents/citation', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/documents/citation'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/funding/allocation/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/funding/allocation', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/funding/allocation'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/keywords/thesaurus/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/keywords/thesaurus', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/keywords/thesaurus'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/metadata/alternate/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/metadata/alternate', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/metadata/alternate'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/pods/components/layout/nav/record/nav-main/template.hbs: -------------------------------------------------------------------------------- 1 |
  • 2 | {{#link-to "record.show.translate" model}} 3 | 4 | Translate 5 | {{ember-tooltip text="Translate" side="bottom" tooltipClass="ember-tooltip md-nav-tip"}} 6 | {{/link-to}} 7 |
  • 8 |
  • 9 |
  • 10 |
  • 11 | {{from-elsewhere name="record-nav"}} 12 |
  • 13 | -------------------------------------------------------------------------------- /app/pods/record/show/translate/template.hbs: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |

    Translate Record

    4 | {{md-translate 5 | model=model 6 | store=store 7 | writer=writer 8 | forceValid=forceValid 9 | showAllTags=showAllTags 10 | goToSettings=(route-action "goToSettings") 11 | }} 12 |
    13 |
    14 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/domain/edit/item/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/domain/edit/item', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/domain/edit/item'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/associated/resource/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/associated/resource', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/associated/resource'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/main/citation/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/main/citation/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/main/citation/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/metadata/identifier/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/metadata/identifier', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/metadata/identifier'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/spatial/raster/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/spatial/raster/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/spatial/raster/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/taxonomy/collection/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/taxonomy/collection', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/taxonomy/collection'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/initializers/leaflet.js: -------------------------------------------------------------------------------- 1 | import ENV from 'mdeditor/config/environment'; 2 | /* global L */ 3 | 4 | export function initialize() { 5 | if(ENV.environment === 'production') { 6 | L.Icon.Default.imagePath = ENV.rootURL + '/assets/images/'; 7 | } 8 | if(ENV.environment === 'development') { 9 | L.Icon.Default.imagePath = '/assets/images/'; 10 | } 11 | } 12 | 13 | export default { 14 | name: 'leaflet', 15 | initialize 16 | }; 17 | -------------------------------------------------------------------------------- /app/mixins/scroll-to.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @module mdeditor 3 | * @submodule mixins 4 | */ 5 | 6 | import Mixin from '@ember/object/mixin'; 7 | 8 | export default Mixin.create({ 9 | queryParams: { 10 | scrollTo: true 11 | }, 12 | setScrollTo(scrollTo) { 13 | this.controller.set('scrollTo', scrollTo || ''); 14 | }, 15 | actions: { 16 | setScrollTo(scrollTo) { 17 | this.setScrollTo(scrollTo); 18 | } 19 | } 20 | }); 21 | -------------------------------------------------------------------------------- /app/pods/components/input/md-month/component.js: -------------------------------------------------------------------------------- 1 | import DateTimePicker from '../md-datetime/component'; 2 | import { computed } from '@ember/object'; 3 | 4 | export default DateTimePicker.extend({ 5 | layoutName: 'components/input/md-datetime', 6 | format: 'MMMM', 7 | extraFormats: computed(function () { 8 | return ['MM', 'M', 'MMM']; 9 | }), 10 | showClear: false, 11 | useCurrent: false, 12 | showTodayButton:false 13 | }); 14 | -------------------------------------------------------------------------------- /app/pods/components/layout/md-slider/template.hbs: -------------------------------------------------------------------------------- 1 | 5 |
    6 | {{#from-elsewhere name=name as |slider|}} 7 |

    {{slider.title}}

    8 |
    9 | {{component slider.body}} 10 | {{/from-elsewhere}} 11 |
    12 | {{yield}} 13 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/domain/edit/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/domain/edit/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/domain/edit/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/entity/edit/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/entity/edit/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/entity/edit/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/lineage/lineageobject/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/lineage/lineageobject', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/lineage/lineageobject'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/metadata/parent/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/metadata/parent/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/metadata/parent/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/helpers/get-property.js: -------------------------------------------------------------------------------- 1 | import { 2 | helper 3 | } from '@ember/component/helper'; 4 | import { 5 | htmlSafe 6 | } from '@ember/string'; 7 | import { 8 | get 9 | } from '@ember/object'; 10 | 11 | export function getProperty([obj, prop]) { 12 | let val = null; 13 | 14 | if(obj) { 15 | val = get(obj, prop.trim()); 16 | } 17 | return val || htmlSafe("Not Defined"); 18 | } 19 | 20 | export default helper(getProperty); 21 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/citation/identifier/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/citation/identifier', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/citation/identifier'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/pods/components/control/md-edit-table/template.hbs: -------------------------------------------------------------------------------- 1 | {{control/md-record-table 2 | class="md-edit-table" 3 | actionsColumn=actionsColumn 4 | selectRowOnClick=selectRowOnClick 5 | data=data 6 | dataColumns=dataColumns 7 | expandedItems=expandedItems 8 | columnSets=columnSets 9 | pageSize=pageSize 10 | expandedRowComponent=(component "md-models-table/components/row-body" spotlighted=spotlightRow rowBodyComponent=rowBodyComponent) 11 | }} 12 | -------------------------------------------------------------------------------- /app/pods/components/md-models-table/components/row-body/template.hbs: -------------------------------------------------------------------------------- 1 | {{!-- {{#liquid-if record class="md-row-body-liquid"}} --}} 2 | {{component rowBodyComponent 3 | record=record 4 | visibleProcessedColumns=visibleProcessedColumns 5 | index=index 6 | clickOnRow=clickOnRow 7 | sendAction=sendAction 8 | themeInstance=themeInstance 9 | expandRow=expandRow 10 | collapseRow=collapseRow 11 | }} 12 | {{!-- {{/liquid-if}} --}} 13 | -------------------------------------------------------------------------------- /app/pods/components/object/md-locale-array/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { 3 | Template 4 | } from '../md-locale/component'; 5 | 6 | export default Component.extend({ 7 | attributeBindings: ['data-spy'], 8 | 9 | /** 10 | * See [md-array-table](md-array-table.html#property_templateClass). 11 | * 12 | * @property templateClass 13 | * @type Ember.Object 14 | */ 15 | templateClass: Template 16 | }); 17 | -------------------------------------------------------------------------------- /app/pods/components/object/md-party-array/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { 3 | Template 4 | } from '../md-party/component'; 5 | 6 | export default Component.extend({ 7 | attributeBindings: ['data-spy'], 8 | 9 | /** 10 | * See [md-array-table](md-array-table.html#property_templateClass). 11 | * 12 | * @property templateClass 13 | * @type Ember.Object 14 | */ 15 | templateClass: Template 16 | }); 17 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/domain/edit/citation/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/domain/edit/citation', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/domain/edit/citation'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/entity/edit/attribute/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/entity/edit/attribute', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/entity/edit/attribute'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/entity/edit/citation/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/entity/edit/citation', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/entity/edit/citation'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/associated/resource/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/associated/resource/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/associated/resource/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/distribution/distributor/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/distribution/distributor', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/distribution/distributor'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/documents/citation/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/documents/citation/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/documents/citation/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/main/citation/identifier/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/main/citation/identifier', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/main/citation/identifier'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/metadata/alternate/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/metadata/alternate/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/metadata/alternate/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/spatial/raster/attribute/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/spatial/raster/attribute', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/spatial/raster/attribute'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/taxonomy/collection/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/taxonomy/collection/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/taxonomy/collection/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/taxonomy/collection/itis/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/taxonomy/collection/itis', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/taxonomy/collection/itis'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/pods/components/object/md-schema/form/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | const typeOptions = [{ 4 | name: 'Metadata', 5 | value: 'record', 6 | //tip: 'tooltip' 7 | }, { 8 | name: 'Contact', 9 | value: 'contact', 10 | //tip: 'tooltip' 11 | }, { 12 | name: 'Dictionary', 13 | value: 'dictionary', 14 | //tip: 'tooltip' 15 | }]; 16 | 17 | export default Component.extend({ 18 | typeOptions: typeOptions 19 | }); 20 | -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/citation/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import ScrollTo from 'mdeditor/mixins/scroll-to'; 3 | 4 | export default Route.extend(ScrollTo, { 5 | actions: { 6 | editIdentifier(index) { 7 | this.transitionTo('dictionary.show.edit.citation.identifier', index) 8 | .then(function () { 9 | this.setScrollTo('identifier'); 10 | }.bind(this)); 11 | } 12 | } 13 | }); 14 | -------------------------------------------------------------------------------- /tests/unit/mixins/cancel-test.js: -------------------------------------------------------------------------------- 1 | import EmberObject from '@ember/object'; 2 | import CancelMixin from 'mdeditor/mixins/cancel'; 3 | import { module, test } from 'qunit'; 4 | 5 | module('Unit | Mixin | cancel', function() { 6 | // Replace this with your real tests. 7 | test('it works', function (assert) { 8 | let CancelObject = EmberObject.extend(CancelMixin); 9 | let subject = CancelObject.create(); 10 | assert.ok(subject); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/lineage/lineageobject/step/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/lineage/lineageobject/step', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/lineage/lineageobject/step'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/metadata/parent/identifier/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/metadata/parent/identifier', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/metadata/parent/identifier'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/taxonomy/collection/system/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/taxonomy/collection/system', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/taxonomy/collection/system'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/settings/validation/controller-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Controller | settings/validation', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let controller = this.owner.lookup('controller:settings/validation'); 10 | assert.ok(controller); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /app/helpers/uc-words.js: -------------------------------------------------------------------------------- 1 | import { helper as buildHelper } from '@ember/component/helper'; 2 | 3 | export function ucWords(params, hash) { 4 | var string = String(params[0]), 5 | force = (hash.force === true) ? true : false; 6 | if(force) { 7 | string = string.toLowerCase(); 8 | } 9 | return string.replace(/(^|\s)[a-z\u00E0-\u00FC]/g, function($1) { 10 | return $1.toUpperCase(); 11 | }); 12 | } 13 | 14 | export default buildHelper(ucWords); 15 | -------------------------------------------------------------------------------- /app/pods/components/object/md-dataquality/preview/template.hbs: -------------------------------------------------------------------------------- 1 |
    2 |
    3 |

    Data Quality #{{index}}

    4 |
    5 |
    6 | {{control/md-definition 7 | title='Scope Code' 8 | text=(word-limit item.scope.scopeCode wordLength=20) 9 | }} 10 |
    11 | 12 |
    13 | {{control/md-definition title='Title' text=item.systemIdentifier.label}} 14 |
    -------------------------------------------------------------------------------- /app/pods/components/object/md-profile/template.hbs: -------------------------------------------------------------------------------- 1 | {{!-- {{#layout/md-card 2 | collapsible=false 3 | collapsed=false 4 | shadow=true 5 | block=false 6 | }} 7 | {{yield}} --}} 8 | {{#if (v-get record "config" "isInvalid")}} 9 | 12 | {{/if}} 13 | 14 | {{object/md-profile/form record=record}} 15 | {{!-- {{/layout/md-card}} --}} 16 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/keywords/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | actions: { 5 | addKeyword(model, obj) { 6 | let k = obj ? obj : {}; 7 | 8 | model.pushObject(k); 9 | }, 10 | deleteKeyword(model, obj) { 11 | if(typeof obj === 'number') { 12 | model.removeAt(obj); 13 | } else { 14 | model.removeObject(obj); 15 | } 16 | }, 17 | } 18 | }); 19 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/lineage/lineageobject/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/lineage/lineageobject/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/lineage/lineageobject/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/lineage/lineageobject/source/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/lineage/lineageobject/source', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/lineage/lineageobject/source'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/settings/profile/index/controller-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Controller | settings/profile/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let controller = this.owner.lookup('controller:settings/profile/index'); 10 | assert.ok(controller); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/models/setting-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | import { run } from '@ember/runloop'; 5 | 6 | module('Unit | Model | setting', function(hooks) { 7 | setupTest(hooks); 8 | 9 | test('it exists', function(assert) { 10 | let model = run(() => this.owner.lookup('service:store').createRecord('setting')); 11 | // let store = this.store(); 12 | assert.ok(!!model); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/domain/edit/citation/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/domain/edit/citation/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/domain/edit/citation/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/entity/edit/citation/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/entity/edit/citation/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/entity/edit/citation/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/distribution/distributor/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/distribution/distributor/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/distribution/distributor/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/lineage/lineageobject/citation/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/lineage/lineageobject/citation', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/lineage/lineageobject/citation'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/metadata/alternate/identifier/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/metadata/alternate/identifier', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/metadata/alternate/identifier'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/settings/profile/manage/controller-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Controller | settings/profile/manage', function(hooks) { 5 | setupTest(hooks); 6 | 7 | // Replace this with your real tests. 8 | test('it exists', function(assert) { 9 | let controller = this.owner.lookup('controller:settings/profile/manage'); 10 | assert.ok(controller); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /lib/ember-leaflet-table/addon/templates/components/leaflet-table-row-actions.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /lib/ember-leaflet-table/app/templates/components/leaflet-table/actions.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/addon/utils/config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | name: 'ScienceBase', 3 | route: 'sciencebase', 4 | description: 5 | 'ScienceBase is a collaborative scientific data and information management platform', 6 | icon: 'globe', 7 | // rootURI: "https://api.sciencebase.gov/sbmd-service/", 8 | rootItemURL: 'https://www.sciencebase.gov/catalog/item/', 9 | defaultParent: '59ef8a34e4b0220bbd98d449', 10 | settingsComponent: 'sb-settings', 11 | }; 12 | -------------------------------------------------------------------------------- /tests/unit/helpers/get-dash-test.js: -------------------------------------------------------------------------------- 1 | 2 | import { getDash } from 'mdeditor/helpers/get-dash'; 3 | import { module, test } from 'qunit'; 4 | 5 | module('Unit | Helper | get dash', function() { 6 | test('it works', function(assert) { 7 | let obj={foo:'bar'}; 8 | let result = getDash([obj, 'foo']); 9 | 10 | assert.equal(result, 'bar', 'value'); 11 | 12 | result = getDash([obj, 'biz']); 13 | 14 | assert.equal(result, '--', 'dash'); 15 | }); 16 | }); 17 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/entity/edit/attribute/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/entity/edit/attribute/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/entity/edit/attribute/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/pods/components/control/md-pouch-record-table/pouch-buttons/delete/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import { inject as service } from '@ember/service'; 3 | import { action } from '@ember/object'; 4 | 5 | export default class MdPouchRecordPouchDeleteButtonComponent extends Component { 6 | @service pouch; 7 | 8 | @action 9 | async delete() { 10 | const { record } = this.args; 11 | await this.pouch.deletePouchRecord(record) 12 | } 13 | } -------------------------------------------------------------------------------- /tests/unit/mixins/hash-poll-test.js: -------------------------------------------------------------------------------- 1 | import EmberObject from '@ember/object'; 2 | import HashPollMixin from 'mdeditor/mixins/hash-poll'; 3 | import { module, test } from 'qunit'; 4 | 5 | module('Unit | Mixin | hash poll', function() { 6 | // Replace this with your real tests. 7 | test('it works', function(assert) { 8 | let HashPollObject = EmberObject.extend(HashPollMixin); 9 | let subject = HashPollObject.create(); 10 | assert.ok(subject); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/mixins/scroll-to-test.js: -------------------------------------------------------------------------------- 1 | import EmberObject from '@ember/object'; 2 | import ScrollToMixin from 'mdeditor/mixins/scroll-to'; 3 | import { module, test } from 'qunit'; 4 | 5 | module('Unit | Mixin | scroll to', function() { 6 | // Replace this with your real tests. 7 | test('it works', function(assert) { 8 | let ScrollToObject = EmberObject.extend(ScrollToMixin); 9 | let subject = ScrollToObject.create(); 10 | assert.ok(subject); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /tests/unit/models/base-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | import { run } from '@ember/runloop'; 5 | 6 | module('Unit | Model | base', function(hooks) { 7 | setupTest(hooks); 8 | 9 | test('it exists', function(assert) { 10 | let model = run(() => this.owner.lookup('service:store').modelFor('base')); 11 | // let store = this.store(); 12 | assert.equal(model.modelName, 'base'); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/distribution/distributor/transfer/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/distribution/distributor/transfer', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/distribution/distributor/transfer'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/lineage/lineageobject/step/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/lineage/lineageobject/step/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/lineage/lineageobject/step/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/taxonomy/collection/system/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/taxonomy/collection/system/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/taxonomy/collection/system/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/pods/components/layout/nav/dictionary/nav-main/template.hbs: -------------------------------------------------------------------------------- 1 | {{!-- TODO --}} 2 | {{!--
  • 3 | {{#link-to "dictionary.show.translate" model}} 4 | 5 | Translate 6 | {{ember-tooltip text="Translate" side="bottom" tooltipClass="ember-tooltip md-nav-tip"}} 7 | {{/link-to}} 8 |
  • --}} 9 |
  • 10 |
  • 11 |
  • 12 | {{from-elsewhere name="dictionary-nav"}} 13 |
  • 14 | -------------------------------------------------------------------------------- /app/pods/components/object/md-quality-report/coverage-result/template.hbs: -------------------------------------------------------------------------------- 1 | {{input/md-input 2 | value=model.dateTime 3 | label="Date Time" 4 | placeholder="Enter date time" 5 | }} 6 | 7 | {{input/md-input 8 | value=model.spatialRepresentationType 9 | label="Spatial Representation Type" 10 | placeholder="Enter spatial representation type" 11 | }} 12 | 13 | {{input/md-input 14 | value=model.resultFile 15 | label="Result File" 16 | placeholder="Enter result file" 17 | }} -------------------------------------------------------------------------------- /app/pods/record/show/edit/metadata/alternate/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import ScrollTo from 'mdeditor/mixins/scroll-to'; 3 | 4 | export default Route.extend(ScrollTo, { 5 | actions: { 6 | editIdentifier(index) { 7 | this.transitionTo('record.show.edit.metadata.alternate.identifier', 8 | index) 9 | .then(function () { 10 | this.setScrollTo('identifier'); 11 | }.bind(this)); 12 | } 13 | } 14 | }); 15 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/domain/edit/citation/identifier/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/domain/edit/citation/identifier', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/domain/edit/citation/identifier'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/dictionary/show/edit/entity/edit/citation/identifier/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | dictionary/show/edit/entity/edit/citation/identifier', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:dictionary/show/edit/entity/edit/citation/identifier'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/lineage/lineageobject/source/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/lineage/lineageobject/source/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/lineage/lineageobject/source/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/lineage/lineageobject/step/citation/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/lineage/lineageobject/step/citation', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/lineage/lineageobject/step/citation'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/lineage/lineageobject/citation/index/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/lineage/lineageobject/citation/index', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/lineage/lineageobject/citation/index'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # unconventional js 2 | /blueprints/*/files/ 3 | /vendor/ 4 | 5 | # compiled output 6 | /dist/ 7 | /tmp/ 8 | 9 | # dependencies 10 | /bower_components/ 11 | /node_modules/ 12 | 13 | # misc 14 | /coverage/ 15 | !.* 16 | .eslintcache 17 | .lint-todo/ 18 | 19 | # ember-try 20 | /.node_modules.ember-try/ 21 | /bower.json.ember-try 22 | /npm-shrinkwrap.json.ember-try 23 | /package.json.ember-try 24 | /package-lock.json.ember-try 25 | /yarn.lock.ember-try 26 | 27 | 28 | .yarn/* 29 | -------------------------------------------------------------------------------- /app/pods/components/object/md-attribute/preview/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { alias } from '@ember/object/computed'; 3 | import { 4 | Validations 5 | } from '../component'; 6 | 7 | export default Component.extend(Validations, { 8 | tagName: '', 9 | model: alias('item'), 10 | codeName: alias('model.codeName'), 11 | dataType: alias('model.dataType'), 12 | definition: alias('model.definition'), 13 | allowNull: alias('model.allowNull') 14 | }); 15 | -------------------------------------------------------------------------------- /app/pods/components/object/md-transfer/preview/template.hbs: -------------------------------------------------------------------------------- 1 | {{#with item as |t|}} 2 | {{#if isTable}} 3 | {{t.transferSize}} 4 | {{if t.onlineOption.length (concat "yes(" t.onlineOption.length ")") "no"}} 5 | {{if t.offlineOption.length (concat "yes(" t.offlineOption.length ")") "no"}} 6 | {{if t.distributionFormat.length (concat "yes(" t.distributionFormat.length ")") "no"}} 7 | {{else}} 8 | {{yield t}} 9 | {{/if}} 10 | {{/with}} 11 | -------------------------------------------------------------------------------- /app/pods/record/show/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import ScrollTo from 'mdeditor/mixins/scroll-to'; 3 | 4 | /* global L */ 5 | 6 | export default Route.extend(ScrollTo, { 7 | actions: { 8 | linkTo(route){ 9 | this.transitionTo(route); 10 | }, 11 | setupMap(features, m) { 12 | let map = m.target; 13 | let bounds = L.geoJson(features) 14 | .getBounds(); 15 | 16 | map.fitBounds(bounds); 17 | } 18 | } 19 | }); 20 | -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/index.js: -------------------------------------------------------------------------------- 1 | /* eslint-env node */ 2 | 'use strict'; 3 | 4 | module.exports = { 5 | name: 'mdeditor-sciencebase', 6 | 7 | isDevelopingAddon() { 8 | return true; 9 | }, 10 | 11 | included(app, parentAddon) { 12 | let target = (parentAddon || app); 13 | target.options = target.options || {}; 14 | target.options.babel = target.options.babel || { includePolyfill: true }; 15 | return this._super.included.apply(this, arguments); 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /tests/unit/helpers/bbox-to-poly-test.js: -------------------------------------------------------------------------------- 1 | import { bboxToPoly } from 'mdeditor/helpers/bbox-to-poly'; 2 | import { module, test } from 'qunit'; 3 | 4 | module('Unit | Helper | bbox to poly', function() { 5 | test('it works', function(assert) { 6 | let result = bboxToPoly([{ 7 | southLatitude: 1, 8 | northLatitude: 2, 9 | westLongitude: 3, 10 | eastLongitude: 4 11 | }]); 12 | assert.equal("[[1,3],[2,3],[2,4],[1,4]]", JSON.stringify(result)); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /app/pods/components/control/subbar-spatial/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | actions: { 5 | zoomAll() { 6 | this.zoomAll(); 7 | }, 8 | deleteAllFeatures() { 9 | this.deleteAllFeatures(); 10 | }, 11 | exportGeoJSON() { 12 | this.exportGeoJSON(); 13 | }, 14 | uploadData() { 15 | this.uploadData(); 16 | }, 17 | toList() { 18 | this.toList(); 19 | }, 20 | } 21 | }); 22 | -------------------------------------------------------------------------------- /app/pods/components/object/md-date-array/template.hbs: -------------------------------------------------------------------------------- 1 | {{#object/md-array-table 2 | columns="Precision,Date,Date Type,Description" 3 | required=required 4 | title="Date" 5 | value=value 6 | plain=plain 7 | validation=validation 8 | profilePath=profilePath 9 | data-spy=data-spy 10 | templateClass=templateClass 11 | as |date| 12 | }} 13 | {{object/md-date 14 | model=date.item 15 | profilePath=(concat profilePath ".dateItem") 16 | }} 17 | {{yield}} 18 | {{/object/md-array-table}} -------------------------------------------------------------------------------- /tests/unit/pods/record/show/edit/lineage/lineageobject/citation/identifier/route-test.js: -------------------------------------------------------------------------------- 1 | import { module, test } from 'qunit'; 2 | import { setupTest } from 'ember-qunit'; 3 | 4 | module('Unit | Route | record/show/edit/lineage/lineageobject/citation/identifier', function(hooks) { 5 | setupTest(hooks); 6 | 7 | test('it exists', function(assert) { 8 | let route = this.owner.lookup('route:record/show/edit/lineage/lineageobject/citation/identifier'); 9 | assert.ok(route); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /app/pods/components/control/md-indicator/template.hbs: -------------------------------------------------------------------------------- 1 | {{fa-icon icon fixedWidth=true}} 2 | 3 | {{#ember-popover 4 | popoverHideDelay=popoverHideDelay 5 | popperContainer=popperContainer 6 | tooltipClass=(concat "md-tooltip " type) 7 | event=event 8 | }} 9 | {{#if title}} 10 |

    11 | {{#if icon}} 12 | {{fa-icon icon}} 13 | {{/if}} 14 | {{title}} 15 |

    16 | {{/if}} 17 | {{interpolated}} 18 | {{yield}} 19 | {{/ember-popover}} 20 | -------------------------------------------------------------------------------- /app/pods/components/control/md-spinner/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | classNames:['text-center', 'md-spinner'] 5 | 6 | /** 7 | * The size of the FontAwesome icon. 8 | * 9 | * @property size 10 | * @type {String} 11 | * @default "false" 12 | * @optional 13 | */ 14 | 15 | /** 16 | * The the text to show below the spinner. 17 | * 18 | * @property text 19 | * @type {String} 20 | * @optional 21 | */ 22 | }); 23 | -------------------------------------------------------------------------------- /app/styles/_spinner.scss: -------------------------------------------------------------------------------- 1 | .md-spinner { 2 | animation: fadeIn 1s ease; 3 | color: $brand-info; 4 | 5 | .md-spinner-text { 6 | color: $gray; 7 | font-size: 1em; 8 | font-variant: small-caps; 9 | font-weight: 900; 10 | 11 | &.size-5 { 12 | font-size: 1.8em; 13 | } 14 | 15 | &.size-4 { 16 | font-size: 1.6em; 17 | } 18 | 19 | &.size-3 { 20 | font-size: 1.4em; 21 | } 22 | 23 | &.size-2 { 24 | font-size: 1.2em; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/instance-initializers/route-publish.js: -------------------------------------------------------------------------------- 1 | import Router from "@ember/routing/router"; 2 | export function initialize(appInstance) { 3 | let catalogs = appInstance.lookup('service:publish').get('catalogs'); 4 | 5 | // appInstance.inject('route', 'foo', 'service:foo'); 6 | Router.map(function() { 7 | this.route('publish', function() { 8 | catalogs.forEach((itm) => { 9 | this.route(itm.route); 10 | }); 11 | }); 12 | }); 13 | } 14 | 15 | export default { 16 | initialize 17 | }; 18 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/taxonomy/collection/itis/template.hbs: -------------------------------------------------------------------------------- 1 |

    2 | Add Taxa from ITIS Taxonomy Collection #{{collectionId}} 3 | {{control/md-status model=parentModel}} 4 |

    5 | 6 | {{control/md-itis taxonomy=model}} 7 | 8 | {{to-elsewhere 9 | named="md-subbar-extra" 10 | send=(component "control/md-button" 11 | text="Back to Collection" 12 | icon="arrow-left" 13 | class="btn-primary btn-lg" 14 | click=(route-action "toCollection") 15 | ) 16 | }} 17 | -------------------------------------------------------------------------------- /app/styles/_simple-mde.scss: -------------------------------------------------------------------------------- 1 | $simple-mde-z: 10001; 2 | 3 | // .CodeMirror, 4 | .CodeMirror-scroll { 5 | height: auto; 6 | max-height: 300px; 7 | min-height: 80px; 8 | } 9 | 10 | .editor-toolbar { 11 | &.fullscreen { 12 | z-index: $simple-mde-z !important; 13 | } 14 | } 15 | 16 | .CodeMirror-fullscreen, 17 | .editor-preview-side { 18 | z-index: $simple-mde-z; 19 | } 20 | 21 | // .CodeMirror-fullscreen.CodeMirror, 22 | .CodeMirror-fullscreen .CodeMirror-scroll { 23 | max-height: none; 24 | } 25 | -------------------------------------------------------------------------------- /lib/mdeditor-sciencebase/addon/templates/publish/sciencebase.hbs: -------------------------------------------------------------------------------- 1 | 4 | 5 |
    6 | Publishing to ScienceBase requires a token. To obtain a token, go to the 7 | ScienceBase Manager 8 | , copy your API token, and paste it below. 9 |
    10 | 11 | {{sb-publisher}} 12 | -------------------------------------------------------------------------------- /tests/unit/mixins/object-template-test.js: -------------------------------------------------------------------------------- 1 | import EmberObject from '@ember/object'; 2 | import ObjectTemplateMixin from 'mdeditor/mixins/object-template'; 3 | import { module, test } from 'qunit'; 4 | 5 | module('Unit | Mixin | object template', function() { 6 | // Replace this with your real tests. 7 | test('it works', function(assert) { 8 | let ObjectTemplateObject = EmberObject.extend(ObjectTemplateMixin); 9 | let subject = ObjectTemplateObject.create(); 10 | assert.ok(subject); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /app/pods/components/object/md-standalone-quality-report/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { set } from '@ember/object'; 3 | 4 | export default Component.extend({ 5 | actions: { 6 | deleteStandaloneQualityReport() { 7 | this.deleteStandaloneQualityReport(); 8 | }, 9 | addReportReference() { 10 | set(this.model, 'reportReference', {}); 11 | }, 12 | deleteReportReference() { 13 | set(this.model, 'reportReference', undefined); 14 | } 15 | } 16 | }); 17 | -------------------------------------------------------------------------------- /app/styles/_breadcrumb.scss: -------------------------------------------------------------------------------- 1 | .breadcrumb { 2 | background-color: lighten($brand-primary, 55); 3 | border-radius: 0; 4 | color: $breadcrumb-color; 5 | font-size: 12px; 6 | margin-bottom: 0; 7 | 8 | a { 9 | opacity: .8; 10 | text-decoration: none; 11 | 12 | &:hover { 13 | opacity: 1; 14 | } 15 | } 16 | 17 | li { 18 | @include text-overflow(); 19 | font-weight: 600; 20 | max-width: 175px; 21 | 22 | + li::before { 23 | color: $gray-light; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/pods/components/control/md-button-modal/template.hbs: -------------------------------------------------------------------------------- 1 | {{yield}} 2 | {{#control/md-modal 3 | isShowing = isShowingModal 4 | closeModal=(action "cancel") 5 | target=target 6 | renderInPlace=renderInPlace 7 | }} 8 | {{html-safe message}} 9 |
    10 | 11 | 12 |
    13 | {{/control/md-modal}} 14 | -------------------------------------------------------------------------------- /app/pods/components/layout/md-nav-main/component.js: -------------------------------------------------------------------------------- 1 | import $ from 'jquery'; 2 | import Component from '@ember/component'; 3 | 4 | export default Component.extend({ 5 | /*didInsertElement: function () { 6 | this.$('[data-toggle="tooltip"]') 7 | .tooltip(); 8 | },*/ 9 | actions: { 10 | toggleSidebar() { 11 | $('#md-wrapper') 12 | .toggleClass('toggled'); 13 | //hack to force reflow 14 | $('#md-navbar-main-collapse ul') 15 | .hide() 16 | .show(0); 17 | } 18 | } 19 | }); 20 | -------------------------------------------------------------------------------- /app/pods/components/object/md-taxonomy/classification/template.hbs: -------------------------------------------------------------------------------- 1 | {{#each (sort-by "order" model) as |class index|}} 2 | {{object/md-taxonomy/classification/taxon 3 | model=class 4 | parentItem=parentItem 5 | top=(unless parentItem model) 6 | index=index 7 | dragging=dragging 8 | preview=preview 9 | profilePath=(concat profilePath ".taxon") 10 | }} 11 | {{else}} 12 |
    13 |

    No Classification found.

    14 |
    15 | {{/each}} 16 | -------------------------------------------------------------------------------- /app/utils/md-interpolate.js: -------------------------------------------------------------------------------- 1 | let interpolate = function (str, obj) { 2 | let parts = str.split(/\$\{(?!\d)[^0-9][a-zA-Z0-9.]+\}/); 3 | let args = parseArgs(str); 4 | let parameters = args.map(argument => obj[argument] || (obj[argument] === 5 | undefined ? "" : obj[argument])); 6 | 7 | return String.raw({ raw: parts }, ...parameters); 8 | }; 9 | 10 | let parseArgs = function (str) { 11 | let args = str.match(/[^{}]+(?=})/g) || []; 12 | return args; 13 | }; 14 | 15 | export { interpolate, parseArgs }; 16 | -------------------------------------------------------------------------------- /app/pods/components/object/md-documentation/template.hbs: -------------------------------------------------------------------------------- 1 |
    2 | {{object/md-resource-type-array 3 | plain=false 4 | value=model.resourceType 5 | required=true 6 | data-spy="Resource Types" 7 | profilePath=(concat profilePath ".resourceType") 8 | }} 9 |
    10 | {{#with model.citation.firstObject as |citation|}} 11 | {{object/md-citation 12 | model=citation 13 | profilePath=(concat profilePath ".citation") 14 | simpleIdentifier=true 15 | }} 16 | {{/with}} 17 | {{yield}} 18 | -------------------------------------------------------------------------------- /app/pods/record/show/translate/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | 3 | export default Route.extend({ 4 | setupController(controller, model) { 5 | this._super(controller, model); 6 | 7 | controller.setProperties({ 8 | writer: controller.writer || null, 9 | forceValid: controller.forceValid || false, 10 | showAllTags: controller.showAllTags || false, 11 | }); 12 | }, 13 | 14 | actions: { 15 | goToSettings() { 16 | this.transitionTo('settings.main'); 17 | }, 18 | }, 19 | }); 20 | -------------------------------------------------------------------------------- /app/adapters/application.js: -------------------------------------------------------------------------------- 1 | import Adapter from 'ember-local-storage/adapters/adapter'; 2 | import { v4 } from 'uuid'; 3 | 4 | export default Adapter.extend({ 5 | generateIdForRecord(store, type, inputProperties) { 6 | if (inputProperties.id) { 7 | return inputProperties.id; 8 | } 9 | if (!inputProperties.uuid) { 10 | let uuid = v4(); 11 | let shortId = uuid.split('-')[0]; 12 | inputProperties.uuid = uuid; 13 | return shortId; 14 | } 15 | return inputProperties.uuid.split('-')[0]; 16 | }, 17 | }); 18 | -------------------------------------------------------------------------------- /app/pods/components/layout/md-wrap/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | 3 | export default Component.extend({ 4 | /** 5 | * Component used as a wrapper, data-spy enabled. 6 | * 7 | * ```handlebars 8 | * \{{#layout/md-wrap 9 | * data-spy="Wrap" 10 | * shadow=true 11 | * }} 12 | * Content 13 | * {{/layout/md-wrap}} 14 | * ``` 15 | * @module mdeditor 16 | * @submodule components-layout 17 | * @class md-wrap 18 | * @constructor 19 | */ 20 | attributeBindings: ['data-spy'] 21 | }); 22 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/constraint/index/template.hbs: -------------------------------------------------------------------------------- 1 |

    2 | Editing Constraints 3 | {{control/md-status model=model}} 4 |

    5 | {{#object/md-object-table 6 | items=model.json.metadata.resourceInfo.constraint 7 | collasped=false 8 | header="Constraints" 9 | buttonText="Add Constraint" 10 | previewTemplate=previewTemplate 11 | addSubbar="md-subbar-extra" 12 | attributes="type" as |editing| 13 | }} 14 | {{object/md-constraint model=editing profilePath="record.constraints"}} 15 | {{/object/md-object-table}} 16 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/extent/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import ScrollTo from 'mdeditor/mixins/scroll-to'; 3 | import { defineProperty } from '@ember/object'; 4 | import { alias } from '@ember/object/computed'; 5 | 6 | export default Route.extend(ScrollTo, { 7 | setupController(controller, model) { 8 | this._super(controller, model); 9 | 10 | defineProperty( 11 | this.controller, 12 | 'refreshSpy', 13 | alias('model.json.metadata.resourceInfo.extent.length') 14 | ); 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /config/ember-cli-update.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": "1.0.0", 3 | "packages": [ 4 | { 5 | "name": "ember-cli", 6 | "version": "3.15.0", 7 | "blueprints": [ 8 | { 9 | "name": "app", 10 | "outputRepo": "https://github.com/ember-cli/ember-new-output", 11 | "codemodsSource": "ember-app-codemods-manifest@1", 12 | "isBaseBlueprint": true, 13 | "options": [ 14 | "--yarn", 15 | "--no-welcome" 16 | ] 17 | } 18 | ] 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /config/targets.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const browsers = [ 4 | 'last 1 Chrome versions', 5 | 'last 1 Firefox versions', 6 | 'last 1 Safari versions' 7 | ]; 8 | 9 | const isCI = !!process.env.CI; 10 | const isProduction = process.env.EMBER_ENV === 'production'; 11 | 12 | if (isCI || isProduction) { 13 | browsers.push('ie 11'); 14 | } 15 | 16 | module.exports = { 17 | browsers: [ 18 | //'ie 9', 19 | 'last 1 edge versions', 20 | 'last 1 Chrome versions', 21 | 'last 1 Firefox versions', 22 | 'last 1 Safari versions' 23 | ] 24 | }; 25 | -------------------------------------------------------------------------------- /tests/unit/utils/sb-tree-node-test.js: -------------------------------------------------------------------------------- 1 | import sbTreeNode from 'mdeditor/utils/sb-tree-node'; 2 | import { module, test } from 'qunit'; 3 | 4 | module('Unit | Utility | sb tree node', function() { 5 | test('it works', function(assert) { 6 | assert.expect(2); 7 | 8 | let result = sbTreeNode.create({ 9 | _record: { 10 | recordId: 'theid' 11 | }, 12 | //config: this.get('config') 13 | }); 14 | 15 | assert.equal(result.uuid, 'theid'); 16 | assert.equal(result.uuid, result.identifier, 'set ids'); 17 | }); 18 | }); 19 | -------------------------------------------------------------------------------- /app/pods/components/object/md-online-resource-array/template.hbs: -------------------------------------------------------------------------------- 1 | {{#object/md-object-table 2 | items=model 3 | header=label 4 | shadow=shadow 5 | buttonText="Add Resource" 6 | ellipsis=ellipsis 7 | previewTemplate=previewTemplate 8 | profilePath=profilePath 9 | templateClass=templateClass 10 | attributes=attributes as |editing| 11 | }} 12 | {{!-- Editing: {{editing.name}} --}} 13 | 14 | {{object/md-online-resource imagePicker=imagePicker model=editing 15 | profilePath=profilePath 16 | }} 17 | 18 | {{/object/md-object-table}} 19 | {{yield}} 20 | -------------------------------------------------------------------------------- /app/pods/components/object/md-quality-report/coverage-result/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@ember/component'; 2 | import { once } from '@ember/runloop'; 3 | import { alias } from '@ember/object/computed'; 4 | import { set, getWithDefault } from '@ember/object'; 5 | 6 | export default Component.extend({ 7 | didReceiveAttrs() { 8 | this._super(...arguments); 9 | 10 | let model = this.model; 11 | 12 | if (model) { 13 | once(this, function () { 14 | set(model, 'scope', getWithDefault(model, 'scope', {})); 15 | }); 16 | } 17 | }, 18 | }); 19 | -------------------------------------------------------------------------------- /app/pods/components/control/md-json-button/template.hbs: -------------------------------------------------------------------------------- 1 | {{#if hasBlock}} 2 | {{yield}} 3 | {{else}} 4 | {{text}} 5 | {{/if}} 6 | 7 | {{#if preview}} 8 | {{control/md-json-viewer json=json modal=true close=(action "close")}} 9 | {{/if}} 10 | 11 | {{#unless hideSlider}} 12 | {{to-elsewhere 13 | named="md-slider-json" 14 | send=(hash 15 | title=(concat "Viewing JSON for: " title) 16 | body=(component "control/md-json-viewer" 17 | modal=false 18 | json=json 19 | ) 20 | ) 21 | }} 22 | {{/unless}} 23 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/lineage/index/template.hbs: -------------------------------------------------------------------------------- 1 |

    2 | Editing Lineage 3 | {{control/md-status model=parentModel}} 4 |

    5 | 6 | {{object/md-objectroute-table 7 | items=model.json.metadata.resourceLineage 8 | header="Lineage" 9 | shadow=true 10 | buttonText="Add Lineage Object" 11 | ellipsis=false 12 | previewTemplate="object/md-lineage/preview" 13 | profilePath="record.lineage" 14 | editItem=(route-action "editLineage") 15 | hideIndex=true 16 | condensed=true 17 | verticalButtons=true 18 | addSubbar="md-subbar-extra" 19 | }} 20 | -------------------------------------------------------------------------------- /app/pods/components/control/md-pouch-record-table/buttons/import/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import { inject as service } from '@ember/service'; 3 | import { action } from '@ember/object'; 4 | import { tracked } from '@glimmer/tracking'; 5 | 6 | export default class MdPouchRecordImportButtonComponent extends Component { 7 | @service pouch; 8 | 9 | @tracked imported = false; 10 | 11 | @action 12 | async import() { 13 | const { record } = this.args; 14 | await this.pouch.createRelatedRecord(record); 15 | this.imported = true; 16 | } 17 | } -------------------------------------------------------------------------------- /app/pods/record/nav/template.hbs: -------------------------------------------------------------------------------- 1 |
  • 2 | {{#link-to "record.show.translate"}} 3 | 4 | Translate 5 | {{ember-tooltip text="Translate" side="bottom" tooltipClass="ember-tooltip md-nav-tip"}} 6 | {{/link-to}} 7 |
  • 8 | {{!--
  • 9 | {{#link-to "publish"}} 10 | 11 | Publish 12 | {{ember-tooltip text="Publish" side="bottom" tooltipClass="ember-tooltip md-nav-tip"}} 13 | {{/link-to}} 14 |
  • --}} 15 | {{outlet}} 16 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/documents/index/template.hbs: -------------------------------------------------------------------------------- 1 |

    2 | Editing Additional Documentation 3 | {{control/md-status model=parentModel}} 4 |

    5 | 6 | {{object/md-objectroute-table 7 | items=model.json.metadata.additionalDocumentation 8 | header="Additional Documents" 9 | shadow=true 10 | verticalButtons=true 11 | buttonText="Add Document" 12 | ellipsis=true 13 | previewTemplate="object/md-documentation/preview" 14 | editItem=(route-action "editDocument") 15 | hideIndex=true 16 | condensed=true 17 | addSubbar="md-subbar-extra" 18 | }} 19 | -------------------------------------------------------------------------------- /app/pods/components/control/subbar-link/template.hbs: -------------------------------------------------------------------------------- 1 |
    2 | {{#if click}} 3 | 4 | {{/if}} 5 | 6 | {{#if route}} 7 | {{#link-to route class=(concat "btn btn-lg btn-" btnType " btn-block md-btn-responsive") }} {{fa-icon icon}} {{text}}{{/link-to}} 8 | {{/if}} 9 | 10 | {{yield}} 11 |
    12 | -------------------------------------------------------------------------------- /app/pods/components/layout/md-footer/template.hbs: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /app/pods/components/control/md-pouch-record-table/buttons/component.js: -------------------------------------------------------------------------------- 1 | import Component from '@glimmer/component'; 2 | import { inject as service } from '@ember/service'; 3 | import { tracked } from '@glimmer/tracking'; 4 | 5 | export default class MdPouchRecordTableButtonsComponent extends Component { 6 | @service pouch; 7 | 8 | @tracked relatedRecord = null; 9 | 10 | constructor() { 11 | super(...arguments); 12 | const { record } = this.args; 13 | this.pouch.queryRelatedRecord(record).then((relatedRecord) => { 14 | this.relatedRecord = relatedRecord; 15 | }); 16 | } 17 | } -------------------------------------------------------------------------------- /app/pods/dictionary/show/edit/domain/index/template.hbs: -------------------------------------------------------------------------------- 1 |

    2 | Editing Domains 3 | for {{model.title}} 4 | {{control/md-status model=model}} 5 |

    6 | 7 | {{object/md-objectroute-table 8 | items=model.json.dataDictionary.domain 9 | header="Domain" 10 | shadow=true 11 | buttonText="Add Domain" 12 | ellipsis=true 13 | attributes="domainId,codeName,description" 14 | editItem=(route-action "editDomain") 15 | verticalButtons=true 16 | profilePath="dictionary.domain" 17 | hideIndex=false 18 | condensed=false 19 | }} 20 | -------------------------------------------------------------------------------- /app/pods/dictionary/show/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import ScrollTo from 'mdeditor/mixins/scroll-to'; 3 | 4 | export default Route.extend(ScrollTo, { 5 | actions: { 6 | linkTo(){ 7 | this.transitionTo(...arguments); 8 | }, 9 | editDomain(id) { 10 | this.transitionTo('dictionary.show.edit.domain.edit', id); 11 | }, 12 | editCitation(scrollTo) { 13 | this.transitionTo('dictionary.show.edit.citation') 14 | .then(function () { 15 | this.setScrollTo(scrollTo); 16 | }.bind(this)); 17 | } 18 | } 19 | }); 20 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/documents/citation/index/route.js: -------------------------------------------------------------------------------- 1 | import Route from '@ember/routing/route'; 2 | import { get } from '@ember/object'; 3 | import ScrollTo from 'mdeditor/mixins/scroll-to'; 4 | 5 | export default Route.extend(ScrollTo, { 6 | setupController: function() { 7 | // Call _super for default behavior 8 | this._super(...arguments); 9 | 10 | this.controller.set('parentModel', this.modelFor( 11 | 'record.show.edit')); 12 | this.controller.set('citationId', get(this.controllerFor( 13 | 'record.show.edit.documents.citation'), 'citationId')); 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /app/pods/components/object/md-profile/preview/template.hbs: -------------------------------------------------------------------------------- 1 |
    2 | 3 |
    {{config.title}}
    4 |
    5 |
    6 | 7 |
    {{config.description}}
    8 |
    9 |
    10 | 11 |
    {{config.identifier}}
    12 |
    13 |
    14 | 15 |
    {{config.namespace}}
    16 |
    17 | {{yield}} 18 | -------------------------------------------------------------------------------- /app/pods/record/show/edit/dataquality/index/template.hbs: -------------------------------------------------------------------------------- 1 |

    2 | Editing Data Quality 3 | {{control/md-status model=parentModel}} 4 |

    5 | 6 | {{object/md-objectroute-table 7 | items=model.json.metadata.dataQuality 8 | header="Data Quality" 9 | shadow=true 10 | buttonText="Add Quality Object" 11 | ellipsis=false 12 | previewTemplate="object/md-dataquality/preview" 13 | profilePath="record.dataQuality" 14 | editItem=(route-action "editDataQuality") 15 | hideIndex=true 16 | condensed=true 17 | verticalButtons=true 18 | addSubbar="md-subbar-extra" 19 | }} -------------------------------------------------------------------------------- /tests/helpers/create-identifier.js: -------------------------------------------------------------------------------- 1 | import EmberObject from '@ember/object'; 2 | 3 | export default function createIdentifier(total) { 4 | 5 | const identifiers = []; 6 | 7 | for(let i = 0; i < total; i++) { 8 | 9 | const identifier = EmberObject.create({ 10 | "identifier": "identifier" + i, 11 | "namespace": "namespace" + i, 12 | "version": "version" + i, 13 | "description": "description" + i, 14 | "authority": { 15 | "title": "title" + i 16 | } 17 | }); 18 | 19 | identifiers.push(identifier); 20 | } 21 | 22 | return identifiers; 23 | } 24 | -------------------------------------------------------------------------------- /app/helpers/bbox-to-poly.js: -------------------------------------------------------------------------------- 1 | import { helper as buildHelper } from '@ember/component/helper'; 2 | 3 | export function bboxToPoly(params/*, hash*/) { 4 | let bbox = params[0]; 5 | 6 | if(!(bbox.southLatitude && bbox.westLongitude && 7 | bbox.northLatitude && bbox.eastLongitude)) { 8 | return null; 9 | } 10 | 11 | return [ 12 | [bbox.southLatitude, bbox.westLongitude], 13 | [bbox.northLatitude, bbox.westLongitude], 14 | [bbox.northLatitude, bbox.eastLongitude], 15 | [bbox.southLatitude, bbox.eastLongitude] 16 | ]; 17 | } 18 | 19 | export default buildHelper(bboxToPoly); 20 | --------------------------------------------------------------------------------