diff --git a/h5p.classes.php b/h5p.classes.php index aae261d..3564c59 100644 --- a/h5p.classes.php +++ b/h5p.classes.php @@ -1715,6 +1715,12 @@ abstract class H5PDisplayOptionBehaviour { abstract class H5PHubEndpoints { const CONTENT_TYPES = 'api.h5p.org/v1/content-types/'; + const SITES = 'api.h5p.org/v1/sites'; + + public static function createURL($endpoint) { + $protocol = (extension_loaded('openssl') ? 'https' : 'http'); + return "{$protocol}://{$endpoint}"; + } } /** @@ -2465,9 +2471,7 @@ class H5PCore { // Register site if it is not registered if (empty($uuid)) { - $protocol = (extension_loaded('openssl') ? 'https' : 'http'); - $endpoint = 'api.h5p.org/v1/sites'; - $registration = $this->h5pF->fetchExternalData("{$protocol}://{$endpoint}", $registrationData); + $registration = $this->h5pF->fetchExternalData(H5PHubEndpoints::createURL(H5PHubEndpoints::SITES), $registrationData); // Failed retrieving uuid if (!$registration) { @@ -2874,9 +2878,7 @@ class H5PCore { $postData['current_cache'] = $this->h5pF->getOption('content_type_cache_updated_at', 0); - $protocol = (extension_loaded('openssl') ? 'https' : 'http'); - $endpoint = H5PHubEndpoints::CONTENT_TYPES; - $data = $interface->fetchExternalData("{$protocol}://{$endpoint}", $postData); + $data = $interface->fetchExternalData(H5PHubEndpoints::createURL(H5PHubEndpoints::CONTENT_TYPES), $postData); if (! $this->h5pF->getOption('hub_is_enabled', TRUE)) { return TRUE; diff --git a/js/h5p-library-details.js b/js/h5p-library-details.js index 9d22167..77d366b 100644 --- a/js/h5p-library-details.js +++ b/js/h5p-library-details.js @@ -93,88 +93,83 @@ var H5PLibraryDetails= H5PLibraryDetails || {}; * Creates the pager element on the bottom of the list */ H5PLibraryDetails.createPagerElement = function () { + H5PLibraryDetails.$previous = $(''); + H5PLibraryDetails.$next = $(''); - // Only create pager if needed: - if(H5PLibraryDetails.currentContent.length > H5PLibraryDetails.PAGER_SIZE) { + H5PLibraryDetails.$previous.on('click', function () { + if(H5PLibraryDetails.$previous.hasClass('disabled')) { + return; + } - H5PLibraryDetails.$previous = $(''); - H5PLibraryDetails.$next = $(''); + H5PLibraryDetails.currentPage--; + H5PLibraryDetails.updatePager(); + H5PLibraryDetails.createContentTable(); + }); - H5PLibraryDetails.$previous.on('click', function () { - if(H5PLibraryDetails.$previous.hasClass('disabled')) { + H5PLibraryDetails.$next.on('click', function () { + if(H5PLibraryDetails.$next.hasClass('disabled')) { + return; + } + + H5PLibraryDetails.currentPage++; + H5PLibraryDetails.updatePager(); + H5PLibraryDetails.createContentTable(); + }); + + // This is the Page x of y widget: + H5PLibraryDetails.$pagerInfo = $(''); + + H5PLibraryDetails.$pager = $('
').append(H5PLibraryDetails.$previous, H5PLibraryDetails.$pagerInfo, H5PLibraryDetails.$next); + H5PLibraryDetails.$content.append(H5PLibraryDetails.$pager); + + H5PLibraryDetails.$pagerInfo.on('click', function () { + var width = H5PLibraryDetails.$pagerInfo.innerWidth(); + H5PLibraryDetails.$pagerInfo.hide(); + + // User has updated the pageNumber + var pageNumerUpdated = function() { + var newPageNum = $gotoInput.val()-1; + var intRegex = /^\d+$/; + + $goto.remove(); + H5PLibraryDetails.$pagerInfo.css({display: 'inline-block'}); + + // Check if input value is valid, and that it has actually changed + if(!(intRegex.test(newPageNum) && newPageNum >= 0 && newPageNum < H5PLibraryDetails.getNumPages() && newPageNum != H5PLibraryDetails.currentPage)) { return; } - H5PLibraryDetails.currentPage--; + H5PLibraryDetails.currentPage = newPageNum; H5PLibraryDetails.updatePager(); H5PLibraryDetails.createContentTable(); - }); + }; - H5PLibraryDetails.$next.on('click', function () { - if(H5PLibraryDetails.$next.hasClass('disabled')) { - return; - } - - H5PLibraryDetails.currentPage++; - H5PLibraryDetails.updatePager(); - H5PLibraryDetails.createContentTable(); - }); - - // This is the Page x of y widget: - H5PLibraryDetails.$pagerInfo = $(''); - - H5PLibraryDetails.$pager = $('
').append(H5PLibraryDetails.$previous, H5PLibraryDetails.$pagerInfo, H5PLibraryDetails.$next); - H5PLibraryDetails.$content.append(H5PLibraryDetails.$pager); - - H5PLibraryDetails.$pagerInfo.on('click', function () { - var width = H5PLibraryDetails.$pagerInfo.innerWidth(); - H5PLibraryDetails.$pagerInfo.hide(); - - // User has updated the pageNumber - var pageNumerUpdated = function() { - var newPageNum = $gotoInput.val()-1; - var intRegex = /^\d+$/; - - $goto.remove(); - H5PLibraryDetails.$pagerInfo.css({display: 'inline-block'}); - - // Check if input value is valid, and that it has actually changed - if(!(intRegex.test(newPageNum) && newPageNum >= 0 && newPageNum < H5PLibraryDetails.getNumPages() && newPageNum != H5PLibraryDetails.currentPage)) { - return; - } - - H5PLibraryDetails.currentPage = newPageNum; - H5PLibraryDetails.updatePager(); - H5PLibraryDetails.createContentTable(); - }; - - // We create an input box where the user may type in the page number - // he wants to be displayed. - // Reson for doing this is when user has ten-thousands of elements in list, - // this is the easiest way of getting to a specified page - var $gotoInput = $('', { - type: 'number', - min : 1, - max: H5PLibraryDetails.getNumPages(), - on: { - // Listen to blur, and the enter-key: - 'blur': pageNumerUpdated, - 'keyup': function (event) { - if (event.keyCode === 13) { - pageNumerUpdated(); - } + // We create an input box where the user may type in the page number + // he wants to be displayed. + // Reson for doing this is when user has ten-thousands of elements in list, + // this is the easiest way of getting to a specified page + var $gotoInput = $('', { + type: 'number', + min : 1, + max: H5PLibraryDetails.getNumPages(), + on: { + // Listen to blur, and the enter-key: + 'blur': pageNumerUpdated, + 'keyup': function (event) { + if (event.keyCode === 13) { + pageNumerUpdated(); } } - }).css({width: width}); - var $goto = $('', { - 'class': 'h5p-pager-goto' - }).css({width: width}).append($gotoInput).insertAfter(H5PLibraryDetails.$pagerInfo); + } + }).css({width: width}); + var $goto = $('', { + 'class': 'h5p-pager-goto' + }).css({width: width}).append($gotoInput).insertAfter(H5PLibraryDetails.$pagerInfo); - $gotoInput.focus(); - }); + $gotoInput.focus(); + }); - H5PLibraryDetails.updatePager(); - } + H5PLibraryDetails.updatePager(); }; /** diff --git a/js/h5p.js b/js/h5p.js index b9d70f6..dd74a79 100644 --- a/js/h5p.js +++ b/js/h5p.js @@ -247,7 +247,7 @@ H5P.init = function (target) { if (H5P.externalEmbed === false) { // Internal embed // Make it possible to resize the iframe when the content changes size. This way we get no scrollbars. - var iframe = window.parent.document.getElementById('h5p-iframe-' + contentId); + var iframe = window.frameElement; var resizeIframe = function () { if (window.parent.H5P.isFullscreen) { return; // Skip if full screen. @@ -501,8 +501,7 @@ H5P.fullScreen = function ($element, instance, exitCallback, body, forceSemiFull // We're called from an iframe. $body = H5P.jQuery(body); $classes = $body.add($element.get()); - var contentId = $element.closest('[data-content-id]').data('content-id'); - var iframeSelector = '#h5p-iframe-' + contentId; + var iframeSelector = '#h5p-iframe-' + $element.parent().data('content-id'); $iframe = H5P.jQuery(iframeSelector); $element = $iframe.parent(); // Put iframe wrapper in fullscreen, not container. } @@ -1272,8 +1271,13 @@ H5P.MediaCopyright = function (copyright, labels, order, extraFields) { // Check for version info var versionInfo; - if (version && copyrightLicense.versions[version]) { - versionInfo = copyrightLicense.versions[version]; + if (copyrightLicense.versions) { + if (copyrightLicense.versions.default && (!version || !copyrightLicense.versions[version])) { + version = copyrightLicense.versions.default; + } + if (version && copyrightLicense.versions[version]) { + versionInfo = copyrightLicense.versions[version]; + } } if (versionInfo) { @@ -2031,6 +2035,7 @@ H5P.createTitle = function (rawTitle, maxLength) { $(document).ready(function () { var ccVersions = { + 'default': '4.0', '4.0': H5P.t('licenseCC40'), '3.0': H5P.t('licenseCC30'), '2.5': H5P.t('licenseCC25'), @@ -2084,6 +2089,7 @@ H5P.createTitle = function (rawTitle, maxLength) { 'v1': '1.0' }, versions: { + 'default': 'v3', 'v3': H5P.t('licenseV3'), 'v2': H5P.t('licenseV2'), 'v1': H5P.t('licenseV1')