* Add JSON-LD in place of schema.org in _video_player.html.erb * Remove unnecessary tags around JSON-LD to clean up templates * Fix indenatation and remove extra elements from show.html.erb and _profile_header.html.erb * Remove empty line from articles/show.html.erb * Clean up JSON-LD commas across erb templates * Revert articleBody changes, adjust nesting, and remove extra quote * Add application/ld+json to allowed_types in .erb-lint.yml This addition makes it so that the no verify flag is no longer required * Add additional data for Articles, Users, and Orgs to better SEO * Add additional data to JSON-LD structures *Add sameAs data to articles/show.html.erb *Add sameAs data to users/show.html.erb *Make adjustments to VideoObject data in _video_player *Make adjustments to Org in _profile_header *Add removed erb back to all erb templates * Refactor code to fix syntax Google syntax errors * Add missing double quotes to values * Remove unnecessary meta tags from _video_player.html.erb * Add additional key-value pairs to data structures * General code clean up * Clean up existing data structures *Remove useless meta tag and replace with a tag *Small refactor to users/show.html.erb data * Extract user json-ld out of users/show.html.erb *Move json-ld logic to stories_controller *Use user_json_ld variable in place of entire data structure *Set user_json_ld as a before_action in the controller * Add specs around JSON-LD data in templates *Add request spec for users/show.html.erb *Add request spec for articles/show.html.erb *Add request spec for _video_player.html.erb *Add request spec for _profile_header.html.erb *WIP: Fix pending specs for all templates * Remove useless meta tags from users/show and _profile_header.html.erb * Add additional test coverage to users/show.html.erb *Add additional tests to user_show_spec *Ensure that all tests pass *Small refactor to users/show.html.erb JSON data structure * Add additional test coverage around JSON-LD data *Add more robust tests to template specs *Remove unnecessary comments from specs *Uncomment pending specs * Adjust modified date to be more readable in article specs * Refactor spec to be more readable and update GitHub username test * Remove meta erb from articles/show.html.erb * Remove meta data from _video_player.html.erb * Clean up useless codeand whitespace for final review * Extract users/show data structure from template into StoriesController * Remove JSON-LD object from users/show.html.erb * Place JSON-LD for users/show.html.erb in StoriesController * Store user_json_ld in set_json_ld method in StoriesController * Call user_json_ld variable in script tag in users/show * Clean up trailing commas and refactor articles/show.html.erb * Remove redundant user/profile_header_spec.rb * Remove unnecessary code from _profile_header and articles/show * Remove Organization from articles/show.html.erb * Remove unnecessary comments from _profile_header.html.erb * Extract user_json_ld into separate methods to fix Code Climate failures * Rename user_profile_details and user_same_as methods to be more explicit * Refactored user_json_ld methods to use symbols instead of strings * Use symbols to fetch keys from a hash instead of strings * Changed user_url in data structure * Removal of erb tags and general clean up * Revert schema changes * Remove unnecessary quotation marks
73 lines
2.5 KiB
Text
73 lines
2.5 KiB
Text
<div class="video-player-header">
|
|
<% minutes, seconds = article.video_duration_in_minutes.split(":") %>
|
|
<div id="video-player-source" data-source="<%= article.video_source_url %>"></div>
|
|
<script src="//content.jwplatform.com/libraries/b1zWy2iv.js" async></script>
|
|
<div id="video-player-<%= article.id %>" class="video-player"></div>
|
|
|
|
<script type="application/ld+json">
|
|
{
|
|
"@context": "https://schema.org",
|
|
"@type": "VideoObject",
|
|
"url": "<%= article.video_source_url %>",
|
|
"uploadDate": "<%= article.published_at&.rfc3339 %>",
|
|
"name": "<%= article.title %>",
|
|
"description": "<%= article.description %>",
|
|
"thumbnailUrl": "<%= cloudinary(article.video_thumbnail_url, 880) %>",
|
|
"contentUrl": "<%= article.video_source_url %>",
|
|
"duration": "<%= format("PT%<minutes>sM%<seconds>sS", minutes: minutes, seconds: seconds) %>"
|
|
}
|
|
</script>
|
|
</div>
|
|
|
|
<script type="text/javascript" async>
|
|
function getParameterByName(name, url) {
|
|
if (!url) url = window.location.href;
|
|
name = name.replace(/[\[\]]/g, "\\$&");
|
|
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
|
|
results = regex.exec(url);
|
|
if (!results) return null;
|
|
if (!results[2]) return '';
|
|
return decodeURIComponent(results[2].replace(/\+/g, " "));
|
|
}
|
|
|
|
function timeToSeconds(hms) {
|
|
if (hms.length < 3) {
|
|
return hms
|
|
} else if (hms.length < 6) {
|
|
var a = hms.split(':')
|
|
return hms = (+a[0]) * 60 + (+a[1])
|
|
} else {
|
|
var a = hms.split(':')
|
|
return hms = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2])
|
|
}
|
|
}
|
|
|
|
var waitingOnJWP<%= article.id %> = setInterval(function () {
|
|
if (typeof jwplayer !== 'undefined') {
|
|
clearInterval(waitingOnJWP<%= article.id %>);
|
|
var playerInstance = jwplayer("video-player-<%= article.id %>");
|
|
playerInstance.setup({
|
|
file: "<%= article.video_source_url %>",
|
|
mediaid: "<%= article.video_code %>",
|
|
autostart: <%= internal_navigation? %>,
|
|
image: "<%= cloudinary(article.video_thumbnail_url, 880) %>",
|
|
playbackRateControls: true,
|
|
tracks: [{
|
|
file: "<%= article.video_closed_caption_track_url %>",
|
|
label: "English",
|
|
kind: "captions",
|
|
"default": false
|
|
}]
|
|
});
|
|
var time = getParameterByName('t')
|
|
if (time) {
|
|
jwplayer().on('ready', function (event) {
|
|
jwplayer().play();
|
|
});
|
|
jwplayer().on('firstFrame', function () {
|
|
jwplayer().seek(timeToSeconds(time))
|
|
});
|
|
}
|
|
}
|
|
}, 2)
|
|
</script>
|