diff --git a/config.jsonc b/config.jsonc index 0f6822b..065c19a 100644 --- a/config.jsonc +++ b/config.jsonc @@ -992,11 +992,6 @@ examples (config.SITENAME.jsonc) that are part of this pan.do/ra distribution. {"name": "Private", "color": [255, 128, 128]} ], /* - "sendReferrer", if set to false, will cause all outgoing links to originate - from one single URL - */ - "sendReferrer": false, - /* "site" contains various settings for this instance. In "email", "contact" if the address in the contact form (to), "system" is the address used by the system (from). @@ -1011,7 +1006,7 @@ examples (config.SITENAME.jsonc) that are part of this pan.do/ra distribution. // E-mail address uses by the system (from) "system": "system@collective-cinema.net" }, - "https": false, + "https": true, "id": "collectivecinema", "name": "Collective Cinema", // Set to true to allow search engines to index the site diff --git a/static/js/home.collectivecinema.js b/static/js/home.collectivecinema.js new file mode 100644 index 0000000..76162e7 --- /dev/null +++ b/static/js/home.collectivecinema.js @@ -0,0 +1,323 @@ +'use strict'; + +pandora.ui.home = function() { + + var that = $('
') + .addClass('OxScreen') + .css({ + position: 'absolute', + width: '100%', + height: '100%', + opacity: 0, + zIndex: 1001 + }), + $reflectionImage = $('') + .addClass('logo') + .attr({src: '/static/png/logo.png'}) + .css({ + position: 'absolute', + left: 0, + top: '160px', + right: 0, + bottom: 0, + width: '320px', + margin: 'auto', + opacity: 0, + MozTransform: 'scaleY(-1)', + OTransform: 'scaleY(-1)', + WebkitTransform: 'scaleY(-1)' + }) + .appendTo(that), + $reflectionGradient = $('
') + .addClass('OxReflection logo') + .css({ + position: 'absolute', + left: 0, + top: '160px', + right: 0, + bottom: 0, + // FIXME: should be 320 and 160 - the values below are temporary fixes for Chrome 26 + width: '322px', + height: '162px', + margin: 'auto', + }) + .appendTo(that), + $logo = $('') + .addClass('logo') + .attr({ + id: 'logo', + src: '/static/png/logo.png' + }) + .css({ + position: 'absolute', + left: 0, + top: 0, + right: 0, + bottom: '160px', + width: window.innerWidth + 'px', + margin: 'auto', + cursor: 'pointer' + }) + .on({ + click: function() { + $browseButton.triggerEvent('click'); + } + }) + .appendTo(that), + $findInput = Ox.Input({ + width: 156 + }) + .css({ + position: 'absolute', + left: 0, + top: '48px', + right: '164px', + bottom: 0, + margin: 'auto', + opacity: 0 + }) + .on({ + click: function(e) { + // fixme: why? + e.stopPropagation(); + } + }) + .bindEvent({ + submit: function(data) { + if (data.value) { + $findButton.triggerEvent('click'); + } else { + $browseButton.triggerEvent('click'); + } + } + }) + .appendTo(that), + $findButton = Ox.Button({ + title: Ox._('Find'), + width: 74 + }) + .css({ + position: 'absolute', + left: '82px', + top: '48px', + right: 0, + bottom: 0, + margin: 'auto', + opacity: 0 + }) + .bindEvent({ + click: function() { + var folder = pandora.getListData().folder, + value = $findInput.value(); + folder && pandora.$ui.folderList[folder].options({selected: []}); + that.fadeOutScreen(); + pandora.UI.set({ + page: '', + find: { + conditions: value === '' + ? [] + : [{key: '*', value: value, operator: '='}], + operator: '&' + }, + section: 'items' + }); + pandora.$ui.findSelect && pandora.$ui.findSelect.value('*'); + pandora.$ui.findInput && pandora.$ui.findInput.value(value); + } + }) + .appendTo(that), + $browseButton = Ox.Button({ + title: Ox._('Browse'), + width: 74 + }) + .css({ + position: 'absolute', + left: '246px', + top: '48px', + right: 0, + bottom: 0, + margin: 'auto', + opacity: 0 + }) + .bindEvent({ + click: function() { + pandora.UI.set({ + page: pandora.user.ui.page == 'home' ? '' : pandora.user.ui.page, + section: 'items' + }); + that.fadeOutScreen(); + } + }) + .appendTo(that), + + $signupButton = Ox.Button({ + title: Ox._('Sign Up'), + width: 74 + }) + .css({ + position: 'absolute', + left: 0, + top: '112px', + right: '246px', + bottom: 0, + margin: 'auto', + opacity: 0 + }) + .bindEvent({ + click: function() { + pandora.UI.set({page: 'signup'}); + that.fadeOutScreen(); + } + }), + $signinButton = Ox.Button({ + title: Ox._('Sign In'), + width: 74 + }) + .css({ + position: 'absolute', + left: 0, + top: '112px', + right: '82px', + bottom: 0, + margin: 'auto', + opacity: 0 + }) + .bindEvent({ + click: function() { + pandora.UI.set({page :'signin'}); + that.fadeOutScreen(); + } + }), + $preferencesButton = Ox.Button({ + title: Ox._('Preferences'), + width: 156 + }) + .css({ + position: 'absolute', + left: 0, + top: '112px', + right: '164px', + bottom: 0, + margin: 'auto', + opacity: 0 + }) + .bindEvent({ + click: function() { + pandora.UI.set({page: 'preferences'}); + that.fadeOutScreen(); + } + }), + $aboutButton = Ox.Button({ + title: Ox._('About {0}', [pandora.site.site.name]), + width: 156 + }) + .css({ + position: 'absolute', + left: '164px', + top: '112px', + right: 0, + bottom: 0, + margin: 'auto', + opacity: 0 + }) + .bindEvent({ + click: function() { + pandora.UI.set({page: 'about'}); + that.fadeOutScreen(); + } + }) + .appendTo(that), + $text = $('
') + .html(Ox._( + 'pan.do/ra. \u2620 2007-{0} 0x2620. All Open Source.', + [Ox.formatDate(new Date(), '%Y')] + )).css({ + position: 'absolute', + left: 0, + top: '176px', + right: 0, + bottom: 0, + width: '360px', + height: '16px', + margin: 'auto', + opacity: 0, + textAlign: 'center' + }) + .appendTo(that); + + adjustRatio(); + + if (pandora.user.level == 'guest') { + $signupButton.appendTo(that); + $signinButton.appendTo(that); + } else { + $preferencesButton.appendTo(that); + } + + function adjustRatio() { + var width = $logo.width(); + var height = $logo.height(); + if (width == 0 || height == 0) { + setTimeout(adjustRatio, 50); + } else { + var aspect = width / height; + if (aspect != 2) { + var top = 320 / aspect; + $reflectionImage.css({ + top: top + 'px', + }) + $reflectionGradient.css({ + top: top + 'px', + height: (top + 2) + 'px', + }) + $logo.css({ + bottom: top + 'px', + }) + } + } + } + + that.fadeInScreen = function() { + that.appendTo(Ox.$body).animate({opacity: 1}, 500, function() { + that.find(':not(#logo)').animate({opacity: 1}, 250, function() { + $findInput.focusInput(true); + }); + }); + $logo.animate({width: '320px'}, 500); + return that; + }; + + that.fadeOutScreen = function() { + that.find(':not(#logo)').hide(); + $logo.animate({width: window.innerWidth + 'px'}, 500); + that.animate({opacity: 0}, 500, function() { + that.remove(); + }); + pandora.$ui.tv && pandora.$ui.tv.unmute().find('.OxControls.OxVolume').hide(); + return that; + }; + + that.hideScreen = function() { + that.hide().remove(); + that.find(':not(#logo)').css({opacity: 0}); + $logo.css({width: window.innerWidth + 'px'}); + return that; + }; + + that.showScreen = function(callback) { + var $elements = that.find(':not(.logo)'), count = 0; + $logo.css({width: '320px'}); + that.css({opacity: 1}).appendTo(Ox.$body); + that.find(':not(#logo)').css({opacity: 1}); + $elements.animate({opacity: 1}, 500, function() { + if (callback && ++count == $elements.length) { + callback(); + } + }); + $findInput.focusInput(true); + return that; + }; + + return that; + +}; diff --git a/static/png/icon.collectivecinema.png b/static/png/icon.collectivecinema.png new file mode 100644 index 0000000..2f6b589 Binary files /dev/null and b/static/png/icon.collectivecinema.png differ diff --git a/static/png/logo.collectivecinema.png b/static/png/logo.collectivecinema.png new file mode 100644 index 0000000..a85e437 Binary files /dev/null and b/static/png/logo.collectivecinema.png differ diff --git a/static/svg/logo.collectivecinema.svg b/static/svg/logo.collectivecinema.svg new file mode 100644 index 0000000..47d19b2 --- /dev/null +++ b/static/svg/logo.collectivecinema.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + +