Skip to content

Instantly share code, notes, and snippets.

@ebertti
Last active August 29, 2015 14:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ebertti/386ff6421ae99b9e4537 to your computer and use it in GitHub Desktop.
Save ebertti/386ff6421ae99b9e4537 to your computer and use it in GitHub Desktop.
Mira - Europeana
var abstract = [{
name: 'topic',
widgets : [
{name: 'header', children:[
{name: 'logo'},
{name: 'search_form', children:[
{name: 'search_group', children:[
{name: 'search_field'},
{name:'search_button'}
]
}]
}]},
{name:'content', children: [
{ name: "item", children: [
{name: 'item_panel', children: [
{ name:"item-box", children:[
{ name: 'item-media-link',
bind:'$dataObj.rdf_prop("edm:isShownAt")[0]["@id"]',
children: [
{name: "item-media", bind:'$dataObj.rdf_prop("edm:object")[0]["@id"]'}]
},
{ name:"item-title", bind:'$dataObj.rdf_prop("dc:title")[0]'},
{ name:"item-contributor"},
{ name:"item-contributor-value", bind:'$dataObj.rdf_prop("dc:contributor")[0]'},
{ name:"item-date"},
{ name:"item-date-value", bind:'$dataObj.rdf_prop("dc:date")[0]'},
{ name:"item-format"},
{ name:"item-format-value", bind:'$dataObj.rdf_prop("dcterms:extent")[0]'},
{ name:'item-player', when:'isSound,hasPreview', bind:'$dataObj.rdf_prop("edm:isShownBy")[0]["@id"]'},
{ name:"item-extra-info", children:[
{ name:"item-subject"},
{ name:"item-subject-value", bind:'$dataObj.rdf_prop("dc:subject")[0]'},
{ name:"item-identifier"},
{ name:"item-identifier-value", bind:'$dataObj.rdf_prop("dc:identifier")[0]'},
{ name:"item-language"},
{ name:"item-language-value", bind:'$dataObj.rdf_prop("dc:language")[0]'},
{ name:"item-provider"},
{ name:"item-provider-value", bind:'$dataObj.rdf_prop("edm:dataProvider")[0]'},
{ name:"item-country" },
{ name:"item-country-value" , bind:'$dataObj.rdf_prop("edm:country")[0]'}
]}
]
}
]
},{
name: 'sidebar-dbpedia',
when: 'hasDbpedia',
datasource:'url:<%= $env.methods.get_datasource_dbpedia_uri($dataObj.rdf_prop("dc:contributor")) %>',
children:[
{name: 'dbpedia-item', children:[
{name: 'dbpedia-link', children: [
{name: 'dbpedia-logo'}
]},
{name: 'dbpedia-title'},
{name: 'dbpedia-thumbs', children:[
{name: 'dppedia-imgs',
when: 'isAuthorOfSomething',
datasource:'$dataObj.dbpedia_rdf_resource("http://dbpedia.org/ontology/author")',
children:[
{name: 'dppedia-img-link'},
{name: 'dppedia-img'}
]
}]
}
]}
]
}
]}
]},
{name: 'footer'}
]
}]
{ name: 'results', when:'isResultMany', tag:'ul', class:'row' },
{ name: 'result_panel', tag:'div', class:'col-xs-12 col-sm-6 col-md-4 col-lg-3' },
{ name: 'result_panel', when:'isResultMany', tag:'li' },
{ name: 'result_item', tag:'div', class:'item well' },
{ name: 'result_item', when:'isResultMany', tag:'a', href:'navigate(replace_for_ld($data.link))' },
{ name: 'result_link', when:'isResultMany', tag:'span' },
{ name: 'result_link', when:'isResultFew', tag:'a', href:'navigate(replace_for_ld($data.link))' },
{ name: 'result_icon', when:'hasIcon', widget: 'BootstrapIcon', class:'pull-left', icon:'icons[$data.type]' },
{ name: 'result_thumb',when:'hasImage,isResultFew', class:'col-md-11', tag:'img', src:'$data.edmPreview[0]' },
{ name: 'result_title', tag:'h4', value:'$data.title[0]' },
{ name: 'result_title', when:'isResultMany', tag:'span', class:'item-small', value:'$data.title[0]' },
{ name: 'result_details', tag:'span', value:'$data.edmConceptPrefLabelLangAware.en.join(", ")', when:'hasEN' },
var maps = [{
name: 'topic',
head:head,
maps: [
{ name: 'header', widget: 'SimpleHtml', tag:'div', class:'container-fluid text-center fundo' },
{ name: 'logo', widget: 'SimpleHtml', tag:'img', src:'"imgs/europedia.png"' },
{ name: 'search_form', widget: 'SimpleHtml', tag:'form', onsubmit:'do_search(event);' },
{ name: 'search_group', widget: 'SimpleHtml', tag:'div', class:'input-group form_center col-sm-8' },
{ name: 'search_field', widget: 'SimpleHtml', tag:'input', class:'form-control input-lg', placeholder:'"Please type search term"' },
{ name: 'search_button', widget: 'BootstrapFormGroupButton', class:'btn-warning', value:'"Search"', events:{'click': 'do_search'} },
{ name: 'content', widget: 'SimpleHtml', tag:'div', class:'container' },
{ name: 'item', widget: 'SimpleHtml', tag:'div', class:'row' },
{ name: 'item_panel', tag:'div', md:'12' },
{ name: 'item_panel', when:'hasDbpedia,isDesktop', tag:'div', xs:'12', sm:12, md:8, lg:8 },
{ name: 'item-box', tag:'div', class:'well' },
{ name: 'item-extra-info' },
{ name: 'item-extra-info', when:'isMobile', widget:'Collapsed', title:{value:'Click for more info'} },
{ name:"item-title", tag:'h2', value:'$bind' },
{ name:"item-media-link", tag:'a', pull:'right', href:'$bind', xs:12, sm:12, md:4, lg:4},
{ name:"item-media", tag:'img', img:'thumbnail', src:'$bind' },
{ name:"item-contributor", tag:'h4', value: 'Contributor'},
{ name:"item-date", tag: 'h4', value:'@Date'},
{ name:"item-subject", tag: 'h4', value:'Subject'},
{ name:"item-identifier", tag: 'h4', value:'Identifier'},
{ name:"item-partof", tag: 'h4', value:'Part Of'},
{ name:"item-format", tag:'h4', value:'Format' },
{ name:"item-language", tag: 'h4', value: 'Language'},
{ name:"item-provider", tag: 'h4', value:'Provider'},
{ name:"item-country", tag: 'h4', value:'Country Provider'},
{ name:"item-contributor-value", value:'$bind' },
{ name:"item-date-value", value:'$bind' },
{ name:"item-type-value", value:'$bind' },
{ name:"item-format-value", value:'$bind' },
{ name:"item-subject-value", value:'$bind' },
{ name:"item-identifier-value", value:'$bind' },
{ name:"item-language-value", value:'$bind' },
{ name:"item-provider-value", value:'$bind' },
{ name:"item-country-value", value:'$bind'},
{ name:"item-player", widget:'AudioPlayer', source:'$dataObj.rdf_prop("edm:isShownBy")[0]["@id"]'},
{ name:"sidebar-dbpedia", xs:12, sm:12, md:4, lg:4},
{name: 'dbpedia-item'},
{name: 'dbpedia-logo', tag:'img', src:'"imgs/dbpedia_logo.png"', img:'responsive'},
{name: 'dbpedia-link', tag:'a', md:6, href:'$env.methods.get_datasource_dbpedia_uri($dataObj.rdf_prop("dc:contributor"))'},
{name: 'dbpedia-thumbs'},
{ name: 'footer', widget: 'TecWebRodape'}
]}
]}]
var conditions = [{
name: 'isResult',
validate: '$data.action == "search.json"'
},{
name: 'isJsonLD',
validate: '$data["@context"] != null'
},{
name: 'isResultFew',
validate: '$env.$data.items.length <= 10'
},{
name: 'isResultMany',
validate: '$env.$data.items.length > 10'
},{
name: 'hasDbpedia',
validate: '$env.methods.get_datasource_dbpedia_uri($dataObj.rdf_prop("dc:contributor")) != null'
},{
name: 'isMobile',
validate: '$env.device.mobile == true'
},{
name: 'isDesktop',
validate: '$env.device.desktop == true'
},{
name: 'hasPreview',
validate: '$dataObj.rdf_prop("edm:isShownBy").length > 0'
},{
name: 'isSound',
validate: '$dataObj.rdf_prop("edm:type")[0] == "SOUND"'
},{
name: 'hasName',
validate: '$data.name != ""'
},{
name: 'hasType',
validate: '$data.notable != null && $data.notable.name != ""'
},{
name:'hasEN',
validate: '$data.edmConceptPrefLabelLangAware != null && $data.edmConceptPrefLabelLangAware.en != null'
},{
name: 'hasImage',
validate: '$data.edmPreview != null'
},{
name: 'hasIcon',
validate: '$data.type != null && icons[$data.type] != undefined'
}
];
var methods = {
get_datasource_dbpedia_uri: function (values) {
var dbpedia = null;
_.each(values, function (value) {
if (value['@id'] && value['@id'].indexOf("http://dbpedia.org/resource") == 0) {
dbpedia = value['@id'].replace('resource', 'data') + '.json';
}
});
return dbpedia
}
}
var selection = [{
when: 'isResult', abstract: 'results'
},{
when: 'isJsonLD', abstract: 'topic'
}];
define([
"jquery", "bootstrap", 'mira/init'
], function ($, $bootstrap, Mira) {
return function Europeana() {
var app = new Mira.Application(interface_abstracts, concrete_interface, conditions, selection, conf);
Mira.Widget.setDefault('BootstrapSimple');
app.useServer();
};
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment