Page MenuHomePhabricator

No OneTemporary

diff --git a/assets/css/app.css b/assets/css/app.css
index 249db0c..6d3f12f 100644
--- a/assets/css/app.css
+++ b/assets/css/app.css
@@ -1,1918 +1,1925 @@
@charset "UTF-8";
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
Created on : Nov 16, 2016, 4:02:35 PM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
html, body {
margin: 0;
padding: 0;
background: #FAFAFA;
font-family: 'Nunito Sans', sans-serif; }
* {
box-sizing: border-box;
-moz-box-sizing: border-box; }
a {
color: #25A9F8;
text-decoration: none; }
+p.secondary {
+ color: #777; }
+ p.secondary.very {
+ color: #999; }
+p.small {
+ font-size: .8rem; }
+
*[disabled] {
pointer-events: none; }
.button, .add-ping input[type=submit] {
background: #3191f1 none repeat scroll 0 0;
border: medium none;
border-radius: 3px;
box-shadow: -2px -2px 1px #3167f1 inset;
color: #fff;
cursor: pointer;
display: inline-block;
font-weight: 700;
padding: 0.5em 1.2em;
text-decoration: none; }
.button.follow, .add-ping input.follow[type=submit] {
/*Follow button specific styles*/ }
.button.unfollow, .add-ping input.unfollow[type=submit] {
/*Follow button specific styles*/ }
.button[disabled], .add-ping input[disabled][type=submit] {
background: #AAAAAA;
box-shadow: -2px -2px 1px #888 inset; }
.material {
background: #FFF;
border-radius: 2px;
border: solid 1px #CCC;
padding: 20px 15px 15px; }
.material.unpadded {
padding: 0px; }
.material .padded {
padding: 15px 10px 10px; }
.add-ping {
background: #fff; }
.add-ping textarea,
.add-ping .textarea {
width: 100%;
padding: 5px 10px;
border: none;
font-size: 10px;
max-width: 100%;
min-width: 100%;
resize: none; }
.add-ping textarea::-webkit-placeholder,
.add-ping .textarea::-webkit-placeholder {
color: #1f567d; }
.add-ping textarea::-moz-placeholder,
.add-ping .textarea::-moz-placeholder {
color: #1f567d; }
.separator {
border-top: solid 1px #c0d9eb; }
.badge {
background: #F00;
color: #FFF;
border-radius: 1em;
padding: 0 .5em;
font-weight: bold; }
.badge[data-ping-amt='0'], .badge[data-ping-amt=''] {
background: #BBB; }
.notification-indicator {
display: inline-block;
width: .3rem;
height: .3rem;
background: #F00;
color: #FFF;
border-radius: 50%;
font-size: 0;
vertical-align: .4rem;
margin: 0 .3rem; }
.notification-indicator[data-ping-amt='0'], .notification-indicator[data-ping-amt=''] {
background: #BBB; }
.user-card .banner {
overflow: hidden;
background: #3289c7;
height: 60px; }
.user-card .banner img {
width: 100%;
height: auto;
background: #FFF;
vertical-align: middle; }
.user-card .user-info {
display: inline-block;
margin-left: 5px; }
.user-card .user-name {
display: block;
color: #000;
font-weight: bold; }
.user-card .user-bio {
font-size: .8em;
color: #555; }
.user-card .avatar {
border-radius: 5px;
border: solid 2px #FFF;
width: 68px;
vertical-align: bottom; }
.home-billboard h1, .home-billboard p {
display: inline-block;
padding: 4px 10px;
margin: 0;
color: #555;
vertical-align: bottom;
background: rgba(255, 255, 255, 0.6);
box-shadow: 5px -5px 0 #777;
z-index: 0; }
.home-billboard h1 {
padding: 4px 30px 4px 10px;
z-index: 1; }
.profile-resume .avatar {
width: 100%;
border-radius: 10px; }
.profile-resume .bio,
.profile-resume .follow-count,
.profile-resume .follower-count,
.profile-resume .ping-count {
display: block;
color: #555;
font-size: .8em; }
.profile-resume .follow-count,
.profile-resume .follower-count,
.profile-resume .ping-count {
text-align: right; }
.profile-resume .user-name {
display: block;
color: #000;
font-weight: bold; }
.source-ping {
padding: 15px 10px 10px;
border-bottom: solid 1px #DDD;
background: #F6F6F6;
color: #444;
position: relative;
font-size: .95em; }
.media-cover {
background: #EEE;
border-radius: 3px;
font-size: 12px;
text-align: center;
padding: 50px 0;
font-style: italic;
cursor: pointer; }
.profile .delete-link {
display: none;
font-weight: bold;
color: #900;
margin-left: 3px;
font-size: 12px; }
.profile.mine .delete-link {
display: inline-block; }
.pagination {
list-style: none;
text-align: center; }
.pagination li {
display: inline-block;
font-weight: bold; }
.pagination li a {
display: inline-block;
padding: 10px; }
.pagination li.disabled, .pagination li.disabled a {
color: #AAA; }
.pagination li.active {
border-bottom: solid 1px #777; }
.reply-link {
color: #333;
font-weight: bold;
margin: 0 10px;
line-height: 14px;
font-size: 12px; }
.reply-link:before {
content: '';
display: inline-block;
width: 12px;
height: 12px;
background: url("../img/reply.png");
background-size: 12px 12px;
margin: 0 5px;
vertical-align: middle; }
.share-link {
color: #333;
font-weight: bold;
margin: 0 10px;
line-height: 14px;
font-size: 12px; }
.share-link:before {
content: '';
display: inline-block;
width: 12px;
height: 12px;
background: url("../img/share.png");
background-size: 12px 12px;
margin: 0 5px;
vertical-align: middle; }
.like-link {
color: #333;
font-weight: bold;
margin: 0 10px;
line-height: 14px;
font-size: 12px; }
.like-link:before {
content: '';
display: inline-block;
width: 12px;
height: 12px;
background: url("../img/like.png");
background-size: 12px 12px;
margin: 0 5px;
vertical-align: middle; }
.share-link, .reply-link, .like-link {
opacity: .6; }
.share-link:hover, .reply-link:hover, .like-link:hover {
opacity: 1; }
#new-ping-content {
font-size: 1.05em;
color: #3b7080;
font-family: inherit;
padding: 0;
min-height: 50px;
max-height: 300px; }
#new-ping-content::placeholder {
font-size: .8em; }
.media-preview {
overflow: hidden;
border-radius: 10px; }
.media-preview img {
vertical-align: top;
border-bottom: solid 1px #FFF;
border-right: solid 1px #FFF; }
#page-banner {
max-height: 400px;
min-height: 100px;
overflow: hidden;
border-bottom: solid 1px #777;
position: relative; }
#page-banner:after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.2), transparent 5%, transparent 95%, rgba(0, 0, 0, 0.2)); }
#page-banner img {
max-width: 100%;
width: 2000px;
margin: 0 auto;
display: block;
vertical-align: middle; }
@media all and (min-width: 960px) {
.mobile-only {
display: none !important; } }
@media all and (max-width: 960px) {
.desktop-only {
display: none !important; } }
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
Created on : Feb 17, 2017, 3:02:00 PM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
.main.navigation {
background: rgba(255, 255, 255, 0.6);
color: #242424;
border-bottom: solid 1px #999;
box-shadow: 0 1px 0px rgba(0, 0, 0, 0.1); }
.main.navigation .menu-item {
background: none;
color: #242424;
padding: 10px;
width: 100%;
display: inline-block; }
.main.navigation .menu-item:hover {
background: #EEE;
color: #333; }
.secondary.navigation {
list-style-type: none;
margin-left: 0;
padding-left: 10px; }
.secondary.navigation li {
margin-left: 0px;
padding-left: 5px; }
.secondary.navigation li.active {
margin-left: 0;
font-weight: bold; }
.secondary.navigation a {
color: #333;
text-decoration: none;
width: 100%;
display: block;
padding: 5px 5px 5px 0; }
.secondary.navigation .navigation {
font-size: .8em;
padding-left: 10px; }
@media all and (max-width: 960px) {
.main.navigation {
text-align: right;
padding: 0;
font-size: .8em; }
.main.navigation div[class^='row'] div[class^='span'] {
display: inline-block;
width: auto;
float: none; }
.main.navigation div[class^='row'] div[class^='span'].logo {
display: block;
text-align: center;
font-size: 1.2em; }
.main.navigation div[class^='row'] div[class^='span'].logo img {
margin: 0 auto; }
.main.navigation div[class^='row'] div[class^='span'].left {
float: left; }
.secondary.navigation li {
display: inline-block;
border: none; }
.secondary.navigation li.active {
border-left: none;
border-bottom: solid 3px #BBB; } }
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
Created on : Oct 15, 2017, 12:35:45 PM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
.notification-avatar {
position: relative;
margin-right: 3px; }
.activity-type {
position: absolute;
bottom: 0;
right: 0;
width: 12px;
height: 12px;
background-size: 12px 12px; }
.activity-type.follow {
background-image: url("../img/follow.png"); }
.activity-type.like {
background-image: url("../img/like.png"); }
.styled-select {
text-align: left;
background: none;
border: none;
overflow: hidden;
padding: 0;
margin: 0;
width: 100%;
display: inline-block;
box-sizing: border-box;
border: solid 1px #CCC;
border-radius: 3px;
background: #F8F8F8;
background-repeat: no-repeat;
background-position: right 3px center;
background-size: 15px 15px;
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUYyOTM3NjU0ODJBMTFFNkJCQ0VBNkJGMjRDOUE2ODgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUYyOTM3NjY0ODJBMTFFNkJCQ0VBNkJGMjRDOUE2ODgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxRjI5Mzc2MzQ4MkExMUU2QkJDRUE2QkYyNEM5QTY4OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxRjI5Mzc2NDQ4MkExMUU2QkJDRUE2QkYyNEM5QTY4OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiVf3ucAAAFnSURBVHja7Ji9CsIwEMfbwzfSt3DokwhOguDqKnTtKrhKQcEH8AF8AFfBqVOhUCg1gQhV8nXJpTrk4Iba3PnrNXf5a9r3ffLPlkbACBgBkYBlWf4UKMuyj+sJcf6pR+yT+eP7QxXgifl8xMJ1zGcyQFAELJm3IwLumd9kN1SAd+a7keBq5hvVTdAEbmUlD2Da7wHDk60Cw3GwXLcADAkOzK8BAXkBGh9AbgvRZdR2FQVIfAF5dxUBANc2i8AyGe+yihDOeuvYAla6UYC0BtN8gEhcqIYp0nLM+MIAdqJhfMfKFhMAITrPsJfrkIDv2VU7xN3EmZuEBkS/Jp95Co6vaicEha0dXU8kV8BWSDLbtc5nOnhs+LNw6mqTAdoI28pxv5IBmoTtxrHjyQB1gpNEZFAAqoTtmkKmUQDK1AlvngtFYirA4SDGjCCjUf5wH+65+z8CJoSaMRhgRQ0Y/36LgBHQYC8BBgCdj3B0L5oNGwAAAABJRU5ErkJggg=="); }
.styled-select select {
text-align: inherit;
background: none;
border: none;
width: 100%;
width: calc(100% + 20px);
box-sizing: border-box;
-webkit-appearance: none;
-moz-appearance: none;
padding: 3px 40px 3px 5px;
outline: none; }
.styled-select option {
padding: 3px;
border: none; }
.navbar {
background: #FEFEFE;
box-shadow: 0 2px 2px #DDD;
border-bottom: 1px solid #CCC;
width: 100%;
white-space: nowrap;
overflow: visible;
z-index: 5; }
.navbar .left,
.navbar .right {
padding: 15px 10px; }
.navbar .right {
float: right;
text-align: right; }
.navbar .left {
float: left; }
.navbar a {
text-decoration: none;
color: #444;
font-weight: bold;
display: inline-block;
padding: 0 10px; }
.navbar .logo {
display: inline-block;
float: left;
border: none; }
.navbar .logo > * {
vertical-align: middle; }
.navbar .logo img {
height: 20px;
margin-right: 5px; }
.navbar:after {
clear: both;
content: '';
display: table; }
/*
The MIT License
Copyright 2019 César de la Cal Bretschneider <cesar@magic3w.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
Created on : Jul 3, 2019, 9:31:21 AM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
.spinner {
display: inline-block;
width: 1rem;
height: 0.5rem;
text-align: center; }
.spinner:after {
content: '';
display: inline-block;
border-radius: 50%;
width: 0.5rem;
height: 0.5rem;
border-color: #CCC #CCC #CCC transparent;
border-width: 4px;
border-style: solid;
animation: spin infinite 2s linear; }
@keyframes spin {
0% {
transform: rotate(0deg); }
100% {
transform: rotate(360deg); } }
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
Created on : Oct 10, 2017, 11:59:43 AM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
/*
The MIT License
Copyright 2018 César de la Cal Bretschneider <cesar@magic3w.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
Created on : 21.03.2018, 15:18:50
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
.has-dropdown {
position: relative; }
.dropdown {
display: none;
position: absolute;
top: 100%;
left: -20px;
width: 100%;
min-width: 300px;
max-width: 100%;
margin-top: 20px;
background: #FFF;
border: solid 1px #DDD;
border-radius: 3px;
padding: 5px;
z-index: 99999999999;
padding: 10px;
box-shadow: 0 0 7px rgba(0, 0, 0, 0.2);
text-align: left; }
.dropdown:before, .dropdown:after {
content: '';
height: 10px;
width: 10px;
display: block;
position: absolute;
bottom: 100%; }
.dropdown:before {
left: 20px;
background-image: linear-gradient(-225deg, transparent 7px, #DDD 7px, #DDD 8px, #FFF 9px); }
.dropdown:after {
left: 30px;
background-image: linear-gradient(225deg, transparent 7px, #DDD 7px, #DDD 8px, #FFF 9px); }
.dropdown.right-bound {
right: -20px;
left: auto; }
.dropdown.right-bound:before {
left: auto;
right: 30px; }
.dropdown.right-bound:after {
left: auto;
right: 20px; }
.dropdown.unpadded {
padding: 0; }
.dropdown .padded {
padding: 5px; }
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
Created on : Oct 10, 2017, 11:59:49 AM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
Created on : Oct 10, 2017, 11:58:05 AM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
input[type=checkbox].styled {
display: none; }
input[type=checkbox].styled + span.toggle {
display: inline-block;
position: relative;
width: 1.5em;
height: .5em;
background-color: #DDD;
border-radius: 5px;
vertical-align: .11em;
margin: 0 .4em;
transition: background-color .3s linear; }
input[type=checkbox].styled + span.toggle:before {
display: block;
position: absolute;
top: -.20em;
left: 0;
height: .85em;
width: .9em;
border-radius: 50%;
background: #FFF;
border: solid 1px #777;
content: '';
transition: left .3s ease; }
input[type=checkbox].styled:checked + span.toggle {
background-color: #a1d49d; }
input[type=checkbox].styled:checked + span.toggle:before {
left: 50%; }
/*
The MIT License
Copyright 2018 César de la Cal Bretschneider <cesar@magic3w.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
Created on : Jun 6, 2018, 5:21:03 PM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
form.condensed {
margin: 0 auto;
/*
* Textareas do have specific styles, including smaller text to make them more
* useful for users typing in bigger segments of text
*/ }
form.condensed .field {
margin: 0; }
form.condensed label {
display: none; }
form.condensed input,
form.condensed textarea {
/*
* These remove the annoyng styles from the iOS layout that will style
* input for you.
*/
-webkit-appearance: none;
-moz-appearance: none; }
form.condensed input[type="email"],
form.condensed input[type="password"],
form.condensed input[type="text"],
form.condensed textarea {
border: none;
border-top: none;
border-bottom: none;
border-radius: 0;
margin: 0;
font-size: 17px;
width: 100%;
padding: 10px;
box-sizing: border-box;
/*Make the splitter lines. We don't use border to avoid them invading the border */
background-image: linear-gradient(180deg, #DDD 1px, #FFF 1px); }
form.condensed textarea {
font-size: .9em;
height: 8em; }
form.condensed .field:first-child input[type="email"],
form.condensed .field:first-child input[type="text"],
form.condensed .field:first-child input[type="password"],
form.condensed .field:first-child textarea {
border-top: solid 1px #999;
background-image: linear-gradient(180deg, #ccc 0%, #fff 8%); }
form.condensed input[type="submit"] {
border: solid 1px #529EBB;
border-top: none;
font-family: sans-serif;
background-color: #25A9F8;
color: #FFF;
margin: 0;
font-size: 20px;
width: 100%;
padding: 10px;
cursor: pointer;
box-sizing: border-box;
background-image: linear-gradient(0deg, #0571B1 0%, #25A9F8 6%); }
form.condensed input[type="submit"]:disabled {
color: #b3b3b3;
background: #045280 !important;
cursor: not-allowed; }
form.condensed .message {
position: relative;
padding: 10px 10px;
font-size: 13px;
border-width: 0 1px;
border-style: solid; }
form.condensed .message.success {
border-color: #3C7619;
background: #84D950;
color: #3C7619; }
form.condensed .message.success:after {
border-color: transparent transparent #84D950 transparent; }
form.condensed .message.info {
border-color: #CCC;
background: #EEE;
color: #555; }
form.condensed .message.info:after {
border-color: transparent transparent #EEE transparent; }
form.condensed .message.error {
border-color: #590C0E;
background: #F2B5B7;
color: #490C0E; }
form.condensed .message.error:after {
border-color: transparent transparent #F2B5B7 transparent; }
form.condensed .message:after {
position: absolute;
bottom: 100%;
right: 20px;
display: block;
width: 0;
height: 0;
content: '';
border-style: none solid solid solid;
border-color: transparent transparent #CCC transparent;
border-width: 7px; }
form.condensed .description {
background: #FFF;
padding: 10px;
color: #333;
font-size: 13px; }
form.condensed.standalone {
max-width: 350px;
border-radius: 4px;
overflow: hidden;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.7); }
form.condensed.standalone input:first-child,
form.condensed.standalone input:last-child {
background-image: none;
border-top: none; }
form.condensed.standalone input[type="submit"] {
transition: background-color .5s ease, background-size .5s ease;
background-size: 0 0;
background-repeat: no-repeat;
background-position: 50% 50%; }
form.condensed.standalone input[type="submit"]:hover {
background-color: #1599E8; }
form.condensed.standalone input[type="submit"]:active {
background-color: #35B9F8; }
form.condensed.standalone .message {
border-left: none;
border-right: none; }
/*
The MIT License
Copyright 2018 César de la Cal Bretschneider <cesar@magic3w.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
Created on : Jun 7, 2018, 2:39:55 PM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
/*
The MIT License
Copyright 2018 César de la Cal Bretschneider <cesar@magic3w.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
Created on : Jun 7, 2018, 2:39:33 PM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
.toggle-button {
display: inline-block;
position: relative;
vertical-align: middle;
width: 38px;
height: 17px;
padding: 0px;
background-image: linear-gradient(180deg, #FFF 3px, transparent 3px, transparent 7px, #FFF 7px, #FFF 10px, transparent 10px, transparent 14px, #FFF 14px);
background-size: 20px 17px;
background-position: center center;
background-repeat: no-repeat; }
.toggle-button.hidden {
display: none; }
.toggle-button.medium {
background-image: linear-gradient(180deg, #777 3px, transparent 3px, transparent 7px, #777 7px, #777 10px, transparent 10px, transparent 14px, #777 14px); }
.toggle-button.medium:after, .toggle-button.medium:before {
background: #242424; }
.toggle-button.dark {
background-image: linear-gradient(180deg, #242424 3px, transparent 3px, transparent 7px, #242424 7px, #242424 10px, transparent 10px, transparent 14px, #242424 14px); }
.toggle-button.dark:after, .toggle-button.dark:before {
background: #242424; }
.toggle-button.narrow {
background-size: 3px 17px;
width: 20px; }
/*
The MIT License
Copyright 2019 César de la Cal Bretschneider <cesar@magic3w.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
Created on : Apr 2, 2019, 10:23:35 AM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
/*
The MIT License
Copyright 2019 César de la Cal Bretschneider <cesar@magic3w.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
Created on : Apr 2, 2019, 10:20:48 AM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
.poll-open-response {
display: block;
width: 100%;
background: #EEEEF7;
border-radius: 4px;
color: #333;
margin-top: 3px;
padding: 3px; }
.poll-open-response.selected-response {
background: #40aae8;
color: #FFF; }
/*
The MIT License
Copyright 2019 César de la Cal Bretschneider <cesar@magic3w.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
Created on : Apr 2, 2019, 12:37:36 PM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
.like-link.like-active {
color: #438eba; }
#share-dialog {
width: 300px;
text-align: left;
padding: 1rem; }
#share-confirm-link {
display: block;
font-size: 1.4rem; }
/*
The MIT License
Copyright 2018 César de la Cal Bretschneider <cesar@magic3w.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
Created on : 24.10.2018, 16:26:42
Author : César de la Cal Bretschneider <cesar@magic3w.com>
The purpose of this software is to provide a series of minimal standard
components that are typical among UIs and that are required almost universally
by web applications. These include resetting, scaffolding, basic form elements,
basic text formatting elements, basic navigation bars and footers.
Some of these functions will require appropriate Javascript to be used.
This requires the use of a _.scss.js file that will provide the required
functionality. This file will be provided with compatibility for m3.js's
dependency loader.
The use of the Javascript component MUST be optional and allow for graceful
fallbacks while the JS is either not loaded, or failed loading.
*/
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
Created on : 20.04.2018, 16:35:00
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
Created on : 20.04.2018, 14:51:25
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
.span {
display: inline-block;
vertical-align: top;
overflow-x: hidden;
min-height: 1px;
font-size: 16px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
padding: 3px 1.0416666667%;
width: 100%; }
div.row {
display: block;
margin: 0 auto;
width: 100%;
/*
* Fixes an issue that browsers will have rendering the layout. Since the system
* does use inline-block, spaces that are parsed from the HTML file (due to tabs
* or spaces being present to indent the file) will cause the blocks to separate
* just a tiny bit and cause the layout to break.
*/
font-size: 0;
box-sizing: border-box;
-moz-box-sizing: border-box; }
div.row.fluid {
width: 100%;
max-width: 100%; }
div.row.ng .span {
padding: 0; }
div.row.ng-lr .span:first-child {
padding-left: 0; }
div.row.ng-lr .span:nth-last-of-type(1) {
padding-right: 0; }
/*
This are the functions (mixins) used to generate the basic scaffolding for our
website. Due to the inverted functionality of the grid we rewrote big parts to
make them more usable.
*/
/*!
Created on : Oct 26, 2013, 7:18:16 PM
Author : cesar
*/
._fs1-s1, .row.s2 > .span.s2, .row.s3 > .span.s3, .row.s4 > .span.s4, .row.s5 > .span.s5, .row.s6 > .span.s6, .row.s7 > .span.s7, .row.s8 > .span.s8, .row.s9 > .span.s9, .row.s10 > .span.s10,
.row.s1 > .span.s1 {
width: 100%; }
._fs2-s1, .row.s4 > .span.s2, .row.s6 > .span.s3, .row.s8 > .span.s4, .row.s10 > .span.s5,
.row.s2 > .span.s1 {
width: 50%; }
._fs3-s1, .row.s6 > .span.s2, .row.s9 > .span.s3,
.row.s3 > .span.s1 {
width: 33.3333333333%; }
._fs3-s2, .row.s6 > .span.s4, .row.s9 > .span.s6,
.row.s3 > .span.s2 {
width: 66.6666666667%; }
._fs4-s1, .row.s8 > .span.s2,
.row.s4 > .span.s1 {
width: 25%; }
._fs4-s3, .row.s8 > .span.s6,
.row.s4 > .span.s3 {
width: 75%; }
._fs5-s1, .row.s10 > .span.s2,
.row.s5 > .span.s1 {
width: 20%; }
._fs5-s2, .row.s10 > .span.s4,
.row.s5 > .span.s2 {
width: 40%; }
._fs5-s3, .row.s10 > .span.s6,
.row.s5 > .span.s3 {
width: 60%; }
._fs5-s4, .row.s10 > .span.s8,
.row.s5 > .span.s4 {
width: 80%; }
._fs6-s1,
.row.s6 > .span.s1 {
width: 16.6666666667%; }
._fs6-s5,
.row.s6 > .span.s5 {
width: 83.3333333333%; }
._fs7-s1,
.row.s7 > .span.s1 {
width: 14.2857142857%; }
._fs7-s2,
.row.s7 > .span.s2 {
width: 28.5714285714%; }
._fs7-s3,
.row.s7 > .span.s3 {
width: 42.8571428571%; }
._fs7-s4,
.row.s7 > .span.s4 {
width: 57.1428571429%; }
._fs7-s5,
.row.s7 > .span.s5 {
width: 71.4285714286%; }
._fs7-s6,
.row.s7 > .span.s6 {
width: 85.7142857143%; }
._fs8-s1,
.row.s8 > .span.s1 {
width: 12.5%; }
._fs8-s3,
.row.s8 > .span.s3 {
width: 37.5%; }
._fs8-s5,
.row.s8 > .span.s5 {
width: 62.5%; }
._fs8-s7,
.row.s8 > .span.s7 {
width: 87.5%; }
._fs9-s1,
.row.s9 > .span.s1 {
width: 11.1111111111%; }
._fs9-s2,
.row.s9 > .span.s2 {
width: 22.2222222222%; }
._fs9-s4,
.row.s9 > .span.s4 {
width: 44.4444444444%; }
._fs9-s5,
.row.s9 > .span.s5 {
width: 55.5555555556%; }
._fs9-s7,
.row.s9 > .span.s7 {
width: 77.7777777778%; }
._fs9-s8,
.row.s9 > .span.s8 {
width: 88.8888888889%; }
._fs10-s1,
.row.s10 > .span.s1 {
width: 10%; }
._fs10-s3,
.row.s10 > .span.s3 {
width: 30%; }
._fs10-s7,
.row.s10 > .span.s7 {
width: 70%; }
._fs10-s9,
.row.s10 > .span.s9 {
width: 90%; }
@media all and (max-width: 960px) and (min-width: 480px) {
.desktop-only {
display: none !important; }
.mobile-only {
display: none; }
.not-tablet {
display: none; }
/*
This are the functions (mixins) used to generate the basic scaffolding for our
website. Due to the inverted functionality of the grid we rewrote big parts to
make them more usable.
*/
/*!
Created on : Oct 26, 2013, 7:18:16 PM
Author : cesar
*/
._fm1-m1, .row.m2 > .span.m2, .row.m3 > .span.m3, .row.m4 > .span.m4, .row.m5 > .span.m5, .row.m6 > .span.m6, .row.m7 > .span.m7, .row.m8 > .span.m8, .row.m9 > .span.m9, .row.m10 > .span.m10,
.row.m1 > .span.m1 {
width: 100%; }
._fm2-m1, .row.m4 > .span.m2, .row.m6 > .span.m3, .row.m8 > .span.m4, .row.m10 > .span.m5,
.row.m2 > .span.m1 {
width: 50%; }
._fm3-m1, .row.m6 > .span.m2, .row.m9 > .span.m3,
.row.m3 > .span.m1 {
width: 33.3333333333%; }
._fm3-m2, .row.m6 > .span.m4, .row.m9 > .span.m6,
.row.m3 > .span.m2 {
width: 66.6666666667%; }
._fm4-m1, .row.m8 > .span.m2,
.row.m4 > .span.m1 {
width: 25%; }
._fm4-m3, .row.m8 > .span.m6,
.row.m4 > .span.m3 {
width: 75%; }
._fm5-m1, .row.m10 > .span.m2,
.row.m5 > .span.m1 {
width: 20%; }
._fm5-m2, .row.m10 > .span.m4,
.row.m5 > .span.m2 {
width: 40%; }
._fm5-m3, .row.m10 > .span.m6,
.row.m5 > .span.m3 {
width: 60%; }
._fm5-m4, .row.m10 > .span.m8,
.row.m5 > .span.m4 {
width: 80%; }
._fm6-m1,
.row.m6 > .span.m1 {
width: 16.6666666667%; }
._fm6-m5,
.row.m6 > .span.m5 {
width: 83.3333333333%; }
._fm7-m1,
.row.m7 > .span.m1 {
width: 14.2857142857%; }
._fm7-m2,
.row.m7 > .span.m2 {
width: 28.5714285714%; }
._fm7-m3,
.row.m7 > .span.m3 {
width: 42.8571428571%; }
._fm7-m4,
.row.m7 > .span.m4 {
width: 57.1428571429%; }
._fm7-m5,
.row.m7 > .span.m5 {
width: 71.4285714286%; }
._fm7-m6,
.row.m7 > .span.m6 {
width: 85.7142857143%; }
._fm8-m1,
.row.m8 > .span.m1 {
width: 12.5%; }
._fm8-m3,
.row.m8 > .span.m3 {
width: 37.5%; }
._fm8-m5,
.row.m8 > .span.m5 {
width: 62.5%; }
._fm8-m7,
.row.m8 > .span.m7 {
width: 87.5%; }
._fm9-m1,
.row.m9 > .span.m1 {
width: 11.1111111111%; }
._fm9-m2,
.row.m9 > .span.m2 {
width: 22.2222222222%; }
._fm9-m4,
.row.m9 > .span.m4 {
width: 44.4444444444%; }
._fm9-m5,
.row.m9 > .span.m5 {
width: 55.5555555556%; }
._fm9-m7,
.row.m9 > .span.m7 {
width: 77.7777777778%; }
._fm9-m8,
.row.m9 > .span.m8 {
width: 88.8888888889%; }
._fm10-m1,
.row.m10 > .span.m1 {
width: 10%; }
._fm10-m3,
.row.m10 > .span.m3 {
width: 30%; }
._fm10-m7,
.row.m10 > .span.m7 {
width: 70%; }
._fm10-m9,
.row.m10 > .span.m9 {
width: 90%; } }
@media all and (min-width: 960px) {
.mobile-only {
display: none; }
.tablet-only {
display: none; }
.not-desktop {
display: none; }
/*
This are the functions (mixins) used to generate the basic scaffolding for our
website. Due to the inverted functionality of the grid we rewrote big parts to
make them more usable.
*/
/*!
Created on : Oct 26, 2013, 7:18:16 PM
Author : cesar
*/
div.row {
width: 100%;
max-width: 960px; }
._fl1-l1, .row.l2 > .span.l2, .row.l3 > .span.l3, .row.l4 > .span.l4, .row.l5 > .span.l5, .row.l6 > .span.l6, .row.l7 > .span.l7, .row.l8 > .span.l8, .row.l9 > .span.l9, .row.l10 > .span.l10,
.row.l1 > .span.l1 {
width: 100%; }
._fl2-l1, .row.l4 > .span.l2, .row.l6 > .span.l3, .row.l8 > .span.l4, .row.l10 > .span.l5,
.row.l2 > .span.l1 {
width: 50%; }
._fl3-l1, .row.l6 > .span.l2, .row.l9 > .span.l3,
.row.l3 > .span.l1 {
width: 33.3333333333%; }
._fl3-l2, .row.l6 > .span.l4, .row.l9 > .span.l6,
.row.l3 > .span.l2 {
width: 66.6666666667%; }
._fl4-l1, .row.l8 > .span.l2,
.row.l4 > .span.l1 {
width: 25%; }
._fl4-l3, .row.l8 > .span.l6,
.row.l4 > .span.l3 {
width: 75%; }
._fl5-l1, .row.l10 > .span.l2,
.row.l5 > .span.l1 {
width: 20%; }
._fl5-l2, .row.l10 > .span.l4,
.row.l5 > .span.l2 {
width: 40%; }
._fl5-l3, .row.l10 > .span.l6,
.row.l5 > .span.l3 {
width: 60%; }
._fl5-l4, .row.l10 > .span.l8,
.row.l5 > .span.l4 {
width: 80%; }
._fl6-l1,
.row.l6 > .span.l1 {
width: 16.6666666667%; }
._fl6-l5,
.row.l6 > .span.l5 {
width: 83.3333333333%; }
._fl7-l1,
.row.l7 > .span.l1 {
width: 14.2857142857%; }
._fl7-l2,
.row.l7 > .span.l2 {
width: 28.5714285714%; }
._fl7-l3,
.row.l7 > .span.l3 {
width: 42.8571428571%; }
._fl7-l4,
.row.l7 > .span.l4 {
width: 57.1428571429%; }
._fl7-l5,
.row.l7 > .span.l5 {
width: 71.4285714286%; }
._fl7-l6,
.row.l7 > .span.l6 {
width: 85.7142857143%; }
._fl8-l1,
.row.l8 > .span.l1 {
width: 12.5%; }
._fl8-l3,
.row.l8 > .span.l3 {
width: 37.5%; }
._fl8-l5,
.row.l8 > .span.l5 {
width: 62.5%; }
._fl8-l7,
.row.l8 > .span.l7 {
width: 87.5%; }
._fl9-l1,
.row.l9 > .span.l1 {
width: 11.1111111111%; }
._fl9-l2,
.row.l9 > .span.l2 {
width: 22.2222222222%; }
._fl9-l4,
.row.l9 > .span.l4 {
width: 44.4444444444%; }
._fl9-l5,
.row.l9 > .span.l5 {
width: 55.5555555556%; }
._fl9-l7,
.row.l9 > .span.l7 {
width: 77.7777777778%; }
._fl9-l8,
.row.l9 > .span.l8 {
width: 88.8888888889%; }
._fl10-l1,
.row.l10 > .span.l1 {
width: 10%; }
._fl10-l3,
.row.l10 > .span.l3 {
width: 30%; }
._fl10-l7,
.row.l10 > .span.l7 {
width: 70%; }
._fl10-l9,
.row.l10 > .span.l9 {
width: 90%; } }
@media all and (max-width: 480px) {
.desktop-only {
display: none !important; }
.tablet-only {
display: none; }
.not-mobile {
display: none; } }
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
Created on : May 14, 2019, 11:15:57 AM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
body {
overflow-x: hidden; }
* {
box-sizing: border-box;
-moz-box-sizing: border-box; }
.sidebar {
overflow: hidden;
position: fixed;
display: block;
height: 100%;
left: 0px;
top: 0;
width: 300px;
max-width: 90%;
transform: translate(-300px, 0);
background: #FFF;
box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
border-right: 1px solid #DDD; }
.sidebar .menu-title {
display: block;
color: #999;
font-size: 1rem;
padding: .8rem 1rem .5rem; }
.sidebar .menu-entry {
font-size: .8rem;
color: #666;
display: block; }
.sidebar .menu-entry:hover {
color: #242424;
background: #F7F7F7; }
.sidebar .menu-entry.active, .sidebar .menu-entry:active {
background-color: #2f97e0;
color: #FFF;
font-weight: bold; }
.sidebar .menu-entry a {
padding: .7rem 1rem;
display: block;
width: 100%; }
.sidebar .menu-entry img {
vertical-align: middle;
height: 1.2em;
margin-right: .5rem; }
.sidebar .indented {
padding-left: 10px;
border-left: solid 1px #DDD; }
.sidebar .navbar {
box-shadow: none; }
.sidebar a {
color: inherit;
text-decoration: none; }
.sidebar a:hover {
color: #333; }
.sidebar a:active {
color: #FFF; }
.sidebar:hover {
overflow: auto; }
.toggle-button {
display: inline-block;
position: relative;
vertical-align: middle;
cursor: pointer;
width: 38px;
height: 17px;
padding: 0px;
background-image: linear-gradient(180deg, #FFF 3px, transparent 3px, transparent 7px, #FFF 7px, #FFF 10px, transparent 10px, transparent 14px, #FFF 14px);
background-size: 20px 17px;
background-position: center center;
background-repeat: no-repeat; }
.toggle-button.hidden {
display: none; }
.toggle-button.dark {
background-image: linear-gradient(180deg, #242424 3px, transparent 3px, transparent 7px, #242424 7px, #242424 10px, transparent 10px, transparent 14px, #242424 14px); }
.toggle-button.dark:after, .toggle-button.dark:before {
background: #242424; }
.toggle-button.narrow {
background-size: 3px 17px;
width: 20px; }
.contains-sidebar {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.1);
z-index: 30; }
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
Created on : Jun 28, 2019, 11:48:02 AM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
.dialog {
padding: 2.5rem .5rem 2.5rem .5rem;
background: #FFF;
border-radius: .3rem;
border: solid 1px #999;
max-width: 90%;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
max-height: calc(100% - 9rem);
display: inline-block;
position: relative; }
.dialog .inner {
overflow: auto;
position: relative;
height: 100%; }
.dialog .close {
color: #AAA;
font-weight: bold;
text-align: right;
cursor: pointer;
position: absolute;
top: .2rem;
right: .5rem;
font-size: 1.8rem;
line-height: 1.8rem; }
.dialog .close:hover {
color: #777; }
.dialog.transparent {
background: transparent;
border: none;
margin: .5rem auto;
max-width: 90%;
box-shadow: none; }
.dialog.transparent .close {
color: #FFF;
text-shadow: 0 0 3px #555; }
.dialog-backdrop {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.2);
z-index: 9;
text-align: center;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center; }
body.has-dialog {
height: 100%;
overflow: hidden; }
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
Created on : Jun 28, 2019, 11:48:02 AM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
.gallery {
border-radius: .3rem;
border: solid 1px #999;
width: 100%;
height: 100%;
background: transparent;
border: none;
box-shadow: none;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center; }
.gallery .close {
font-weight: bold;
text-align: right;
cursor: pointer;
position: absolute;
top: 1rem;
right: 1rem;
font-size: 1.8rem;
line-height: 1.8rem;
color: #FFF;
text-shadow: 0 0 3px #555; }
.gallery .close:hover {
color: #777; }
.gallery .inner {
max-height: 90%;
max-width: 90%; }
.gallery-backdrop {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.8);
z-index: 9; }
.navbar {
background: #FEFEFE;
box-shadow: 0 2px 2px #DDD;
border-bottom: 1px solid #CCC;
width: 100%;
white-space: nowrap;
overflow: visible;
z-index: 5; }
.navbar .left,
.navbar .right {
padding: 10px 6.6666666667px; }
.navbar .right {
float: right;
text-align: right; }
.navbar .left {
float: left; }
.navbar a {
text-decoration: none;
color: #444;
font-weight: bold;
display: inline-block;
padding: 0 6.6666666667px; }
.navbar .logo {
display: inline-block;
float: left;
border: none; }
.navbar .logo > * {
vertical-align: middle; }
.navbar .logo img {
height: 30px;
width: auto;
margin-right: 5px; }
.navbar:after {
clear: both;
content: '';
display: table; }
/*
The MIT License
Copyright 2019 César de la Cal Bretschneider <cesar@magic3w.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
Created on : May 22, 2019, 9:47:20 AM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
.navigation .navigation-item {
display: inline-block;
padding: .8em 1em;
font-size: 1em; }
.navigation.tabs {
border-bottom: solid 1px #DDD; }
.navigation.tabs .navigation-item {
border: solid 1px transparent;
margin-bottom: -1px; }
.navigation.tabs .navigation-item.active {
font-weight: bold;
border-radius: 5px 5px 0 0;
border: solid 1px #DDD;
border-bottom: solid 1px #FFF; }
.navigation.pills .navigation-item.active {
border-radius: 5px;
background-color: #2f97e0;
color: #FFF; }
.navigation.vertical .navigation-item {
display: block;
width: 100%; }
/*
The MIT License
Copyright 2019 César de la Cal Bretschneider <cesar@magic3w.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
Created on : Jun 17, 2019, 11:49:32 AM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
/*
The MIT License
Copyright 2019 César de la Cal Bretschneider <cesar@magic3w.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
Created on : Jun 17, 2019, 11:56:04 AM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
label {
display: inline-block; }
input, textarea {
line-height: inherit;
margin: 0; }
textarea {
resize: vertical; }
fieldset {
border: none;
padding: 0;
margin: 0; }
legend {
font-size: 1.3rem;
margin-bottom: .3rem; }
input[type="submit"]:not(.disabled), button:not(.disabled) {
curosr: pointer; }
/*
The MIT License
Copyright 2019 César de la Cal Bretschneider <cesar@magic3w.com>.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/*
Created on : Jun 17, 2019, 11:59:07 AM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
.frm-ctrl {
display: block;
width: 100%; }
.frm-group {
margin-bottom: 1rem; }
.frm-inline {
display: flex;
flex-flow: row wrap; }
.frm-inline .frm-ctrl {
display: inline-block;
width: auto; }
input[type="text"] {
padding: .75rem .5rem; }
/*# sourceMappingURL=app.css.map */
diff --git a/assets/css/app.css.map b/assets/css/app.css.map
index 93c5d60..b2110ff 100644
--- a/assets/css/app.css.map
+++ b/assets/css/app.css.map
@@ -1,7 +1,7 @@
{
"version": 3,
-"mappings": "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",
+"mappings": "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",
"sources": ["../scss/app.scss","../scss/_vars.scss","../scss/_navigation.scss","../scss/_activity.scss","../scss/_styledSelect.scss","../scss/_navbar.scss","../scss/_spinner.scss","../scss/ui/_ui.scss","../scss/ui/_dropdown.scss","../scss/ui/form/_form.scss","../scss/ui/form/_checkbox.scss","../scss/ui/form/_condensed.scss","../scss/ui/layout/__layout.scss","../scss/ui/layout/_toggle.scss","../scss/ping/_ping.scss","../scss/ping/poll/_poll.scss","../scss/ping/feedback/_feedback.scss","../scss/_/_.scss","../scss/_/scaffolding/_scaffolding.scss","../scss/_/mixins/_grid.scss","../scss/_/scaffolding/_scaffolding_mobile.scss","../scss/_/scaffolding/_scaffolding_tablet.scss","../scss/_/scaffolding/_scaffolding_desktop.scss","../scss/_/ui/_ui.scss","../scss/_/ui/_sidebar.scss","../scss/_/ui/_dialog.scss","../scss/_/ui/_gallery.scss","../scss/_/ui/_navbar.scss","../scss/_/ui/_navigation.scss","../scss/_/ui/_form.scss","../scss/_/ui/form/_reset.scss","../scss/_/ui/form/_controls.scss"],
"names": [],
"file": "app.css"
}
diff --git a/assets/img/share.png b/assets/img/share.png
index 0769686..711fc62 100644
Binary files a/assets/img/share.png and b/assets/img/share.png differ
diff --git a/assets/js/ping/sdk/activity.js b/assets/js/ping/sdk/activity.js
index dedf5f1..c999753 100644
--- a/assets/js/ping/sdk/activity.js
+++ b/assets/js/ping/sdk/activity.js
@@ -1,123 +1,126 @@
/*
* The MIT License
*
* Copyright 2019 César de la Cal Bretschneider <cesar@magic3w.com>.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
depend(['m3/core/request'], function (request) {
/**
* The feed is in charge of delivering updates to the user from the authors
* they follow.
*
* @returns {pingL#25.Feed}
*/
var Activity = function (ctx) {
this._ctx = ctx;
};
Activity.prototype = {
/**
* Reads the feed. If you pass the offset (the ID of the last ping you have
* available) it will return the feed starting at that point.
*
* The callback will receive a PingList object containing an array of pings
* as it's first and only parameter. This pinglist object gives you access
* to:
*
* * The array of pings the server returned
* * The context. Which allows you to make further calls to the SDK (for responses, for example)
* * A function that calls your function again with the next set of pings.
*
* This allows your application to simply let itself be called over and over
* to generate a timeline.
*
* @param {function} callback
* @param {int} offset
* @returns {undefined}
*/
read : function (callback, offset) {
/*
* Construct an URI that idenitfies the user against Ping and send a
* request to Ping.
*
* The token will authenticate both the user and the application embedding
* the SDK since Ping will be able to retrieve metadata from PHPAS, allowing
* it to determine whether it should share the feed for this user with
* the application.
*
* Additionally, (although at the time of writing this is not the case)
* Ping should send a Access-Control header limited to the application's
* domain to ensure the user is not being attacked with XSRF to leak data.
*
* For this, Ping would also need to be able to understand the options
* header. Which (again, at this point) is not being supported, but as
* soon as it is, this should transparently become operational - only
* breaking non compliant applications.
*/
- var uri = this._ctx.endpoint().trim('/') + '/acticity.json?token=' + this._ctx.token() + (offset !== undefined? '&until=' + offset : '');
+ var uri = this._ctx.endpoint().trim('/') + '/activity.json?token=' + this._ctx.token() + (offset !== undefined? '&until=' + offset : '');
var ctx = this._ctx;
var slf = this;
/*
* Send the request to ping.
*/
request(uri, null)
.then(JSON.parse)
.then(function (e) {
if (!e.payload) { throw {message : 'Invalid response', response : e}; }
var pl = [];
- for (var i = 0; i < e.payload.length; i++) { pl.push(new Activity(ctx, e.payload[i])); }
+ for (var i = 0; i < e.payload.length; i++) { pl.push(e.payload[i]); }
return new ActivityList(
ctx,
pl,
function () { return e.until != 0? slf.read(callback, e.until) : null; }
);
})
.then(callback)
.catch(function (e) { console.error(e); });
}
};
- var Activity = function (ctx, payload) {
+ var ActivityItem = function (ctx, payload) {
this.payload = payload;
+ this.user = payload.user;
+ this.url = payload.url;
+ this.timeRelative = payload.timeRelative;
};
- Activity.prototype = {
+ ActivityItem.prototype = {
};
var ActivityList = function (ctx, pings, next) {
this._pings = pings;
this._ctx = ctx;
this._next = next;
};
ActivityList.prototype = {
};
return Activity;
});
diff --git a/assets/scss/app.scss b/assets/scss/app.scss
index 8e32eff..12bd53a 100644
--- a/assets/scss/app.scss
+++ b/assets/scss/app.scss
@@ -1,417 +1,431 @@
/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/*
Created on : Nov 16, 2016, 4:02:35 PM
Author : César de la Cal Bretschneider <cesar@magic3w.com>
*/
@import '_vars';
$disbled-darken-amount: 30;
html, body{
margin: 0;
padding: 0;
background: #FAFAFA;
font-family: 'Nunito Sans', sans-serif;
}
* {
box-sizing: border-box;
-moz-box-sizing: border-box;
}
a {
color: $LinkColor;
text-decoration: none;
}
+p {
+ &.secondary {
+ color: #777;
+
+ &.very {
+ color: #999;
+ }
+ }
+
+ &.small {
+ font-size: .8rem;
+ }
+}
+
*[disabled] {
pointer-events: none;
}
.button {
background: #3191f1 none repeat scroll 0 0;
border: medium none;
border-radius: 3px;
box-shadow: -2px -2px 1px #3167f1 inset;
color: #fff;
cursor: pointer;
display: inline-block;
font-weight: 700;
padding: 0.5em 1.2em;
text-decoration: none;
&.follow {
/*Follow button specific styles*/
}
&.unfollow {
/*Follow button specific styles*/
}
&[disabled] {
background: #AAAAAA;
box-shadow: -2px -2px 1px #888 inset;
}
}
.material {
background: #FFF;
border-radius: 2px;
border: solid 1px #CCC;
padding: 20px 15px 15px;
&.unpadded {
padding: 0px;
}
.padded {
padding: 15px 10px 10px;
}
}
.add-ping {
background: #fff;
textarea,
.textarea {
width: 100%;
padding: 5px 10px;
border: none;
font-size: 10px;
max-width: 100%;
min-width: 100%;
resize: none;
&::-webkit-placeholder {
color: #1f567d;
}
&::-moz-placeholder {
color: #1f567d;
}
}
input[type=submit] {
@extend .button;
}
}
.separator {
border-top: solid 1px #c0d9eb;
}
.badge {
background: #F00;
color: #FFF;
border-radius: 1em;
padding: 0 .5em;
font-weight: bold;
&[data-ping-amt='0'],
&[data-ping-amt=''] {
background: #BBB;
}
}
.notification-indicator {
display: inline-block;
width: .3rem;
height: .3rem;
background: #F00;
color: #FFF;
border-radius: 50%;
font-size: 0;
vertical-align: .4rem;
margin: 0 .3rem;
&[data-ping-amt='0'],
&[data-ping-amt=''] {
background: #BBB;
}
}
.user-card {
.banner {
overflow: hidden;
background: #3289c7;
height: 60px;
img {
width: 100%;
height: auto;
background: #FFF;
vertical-align: middle;
}
}
.user-info {
display: inline-block;
margin-left: 5px;
}
.user-name {
display: block;
color: #000;
font-weight: bold;
}
.user-bio {
font-size: .8em;
color: #555;
}
.avatar {
border-radius: 5px;
border: solid 2px #FFF;
width: 68px;
vertical-align: bottom;
}
}
.home-billboard {
h1, p {
display: inline-block;
padding: 4px 10px;
margin: 0;
color: #555;
vertical-align: bottom;
background: rgba(255, 255, 255, .6);
box-shadow: 5px -5px 0 #777;
z-index: 0;
}
h1 {
padding: 4px 30px 4px 10px;
z-index: 1;
}
}
.profile-resume {
.avatar {
width: 100%;
border-radius: 10px;
}
.bio,
.follow-count,
.follower-count,
.ping-count {
display: block;
color: #555;
font-size: .8em;
}
.follow-count,
.follower-count,
.ping-count {
text-align: right;
}
.user-name {
display: block;
color: #000;
font-weight: bold;
}
}
.source-ping {
padding: 15px 10px 10px;
border-bottom: solid 1px #DDD;
background: #F6F6F6;
color: #444;
position: relative;
font-size: .95em;
}
.media-cover {
background: #EEE;
border-radius: 3px;
font-size: 12px;
text-align: center;
padding: 50px 0;
font-style: italic;
cursor: pointer;
}
.profile {
.delete-link {
display: none;
font-weight: bold;
color: #900;
margin-left: 3px;
font-size: 12px;
}
&.mine {
.delete-link {
display: inline-block;
}
}
}
.pagination {
list-style: none;
text-align: center;
li {
display: inline-block;
font-weight: bold;
a {
display: inline-block;
padding: 10px;
}
&.disabled, &.disabled a {
color: #AAA;
}
&.active {
border-bottom: solid 1px #777;
}
}
}
.reply-link {
color: #333;
font-weight: bold;
margin: 0 10px;
line-height: 14px;
font-size: 12px;
&:before {
content: '';
display: inline-block;
width: 12px;
height: 12px;
background: url('../img/reply.png');
background-size: 12px 12px;
margin: 0 5px;
vertical-align: middle;
}
}
.share-link {
color: #333;
font-weight: bold;
margin: 0 10px;
line-height: 14px;
font-size: 12px;
&:before {
content: '';
display: inline-block;
width: 12px;
height: 12px;
background: url('../img/share.png');
background-size: 12px 12px;
margin: 0 5px;
vertical-align: middle;
}
}
.like-link {
color: #333;
font-weight: bold;
margin: 0 10px;
line-height: 14px;
font-size: 12px;
&:before {
content: '';
display: inline-block;
width: 12px;
height: 12px;
background: url('../img/like.png');
background-size: 12px 12px;
margin: 0 5px;
vertical-align: middle;
}
}
.share-link, .reply-link, .like-link {
opacity: .6;
&:hover {
opacity: 1;
}
}
#new-ping-content {
font-size: 1.05em;
color: #3b7080;
font-family: inherit;
padding: 0;
min-height: 50px;
max-height: 300px;
&::placeholder {
font-size: .8em;
}
}
.media-preview {
overflow: hidden;
border-radius: 10px;
img {
vertical-align: top;
border-bottom: solid 1px #FFF;
border-right: solid 1px #FFF;
}
}
#page-banner {
max-height: 400px;
min-height: 100px;
overflow: hidden;
border-bottom: solid 1px #777;
position: relative;
&:after {
content: '';
position: absolute;
top : 0;
left : 0;
width: 100%;
height: 100%;
background-image: linear-gradient(0deg, rgba(0, 0, 0, .2), transparent 5%, transparent 95%, rgba(0, 0, 0, .2));
}
img {
max-width: 100%;
width: 2000px;
margin: 0 auto;
display: block;
vertical-align: middle;
}
}
@media all and (min-width: $MobileBreakpoint) {
.mobile-only { display: none !important; }
}
@media all and (max-width: $MobileBreakpoint) {
.desktop-only { display: none !important; }
}
//@import "scaffolding/_scaffolding.scss";
@import '_navigation';
@import '_activity';
@import '_styledSelect';
@import '_navbar';
@import '_vars';
@import '_spinner';
@import 'ui/_ui.scss';
@import "ping/_ping.scss";
@import "_/_.scss";
\ No newline at end of file
diff --git a/bin/controllers/activity.php b/bin/controllers/activity.php
index 7569921..1eba06a 100644
--- a/bin/controllers/activity.php
+++ b/bin/controllers/activity.php
@@ -1,109 +1,108 @@
<?php
use spitfire\exceptions\PublicException;
-use settings\NotificationModel as NotificationSetting;
/**
* Activity refers to anything that happens on the network ping is directly connected
* to. This means that, unlike pings or authors, the activity is not able to be
* federated. The server can determine to push activity to the user if there's an
* event on the federated network that is considered worthy of attention.
*
* Whenever a user receives activity, they will be notified about it. Either via
* email or push notification.
*
* @author César de la Cal Bretschneider <cesar@magic3w.com>
*/
class ActivityController extends AppController
{
public function index() {
/*
* A user can only get their activity feed when they are logged into the
* application.
*/
if (!$this->user) {
$this->response->setBody('Redirect...')->getHeaders()->redirect(url('user', 'login'));
return;
}
if (isset($_GET['until'])) {
- $notifications = db()->table('notification')->get('target__id', $this->user->id)->addRestriction('_id', $_GET['until'], '<')->setOrder('_id', 'DESC')->range(0, 50);
+ $notifications = db()->table('notification')->get('target__id', $this->user->id)->addRestriction('_id', $_GET['until'], '<')->setOrder('_id', 'DESC')->range(0, 20);
} else {
- $notifications = db()->table('notification')->get('target__id', $this->user->id)->setOrder('_id', 'DESC')->range(0, 50);
+ $notifications = db()->table('notification')->get('target__id', $this->user->id)->setOrder('_id', 'DESC')->range(0, 20);
}
$user = db()->table('user')->get('_id', $this->user->id)->fetch();
$user->lastSeenActivity = time();
$user->store();
$this->view->set('notifications', $notifications);
}
/**
*
* @validate GET#signature (required)
* @validate POST#src (required)
* @validate POST#target (required)
* @validate POST#content(required string length[1, 250])
* @validate POST#url(required string url)
* @request-method POST
*/
public function push() {
#Validate the app
if (!$this->sso->authApp($_GET['signature'])) {
throw new PublicException('Invalid signature', 403);
}
#Read POST data
$srcid = $_POST['src'];
$tgtid = (array)$_POST['target'];
$content = str_replace("\r", '', $_POST['content']);
$url = $_POST['url'];
$type = _def($_POST['type'], 0);
#There needs to be a src user. That means that somebody is originating the
#notification. There has to be one, and no more than one.
$src = AuthorModel::get(db()->table('user')->get('_id', $srcid)->fetch()? : UserModel::makeFromSSO($this->sso->getUser($srcid)));
$targets = array_filter(array_map(function ($tgtid) use ($srcid) {
#If sourceID and target are identical, we skip the sending of the notification
#This requires the application to check whether the user is visiting his own profile
if ($srcid == $tgtid) { return null; }
#If there is no user specified we do skip them
try { return db()->table('user')->get('authId', $tgtid)->fetch()? : UserModel::makeFromSSO($this->sso->getUser($tgtid)); }
catch (Exception$e) { return null; }
}, $tgtid));
#It could happen that the target is established as an email and therefore
#receives notifications directly as emails
foreach ($targets as $target) {
#Make it a record
$notification = db()->table('notification')->newRecord();
$notification->src = $src;
$notification->target = $target;
$notification->content = $content;
$notification->url = $url;
$notification->type = $type;
$this->core->activity->push->do(function ($notification) {
$notification->store();
}, $notification);
}
#This happens if the user defined no targets (this would imply that the ping
#they sent out was public.
if (empty($tgtid)) {
throw new PublicException('Notifications require a target', 400);
}
}
}
\ No newline at end of file
diff --git a/bin/templates/activity/index.json.php b/bin/templates/activity/index.json.php
index 6752b07..e343652 100644
--- a/bin/templates/activity/index.json.php
+++ b/bin/templates/activity/index.json.php
@@ -1,27 +1,27 @@
<?php
$payload = Array();
foreach ($notifications as $n) {
- $user = $sso->getUser($n->src->authId);
+ $user = $sso->getUser($n->src->user->authId);
$payload[] = Array(
'id' => $n->_id,
'url' => $n->url,
'type' => $n->type,
'content' => Mention::idToMentions($n->content),
'timestamp' => $n->created,
'timeRelative' => Time::relative($n->created),
'user' => Array(
'id' => $n->src->authId,
'username' => $user->getUsername(),
'avatar' => $user->getAvatar(128),
)
);
}
echo json_encode(Array(
'payload' => $payload,
'until' => isset($n)? $n->_id : 0
));
\ No newline at end of file
diff --git a/bin/templates/activity/index.php b/bin/templates/activity/index.php
index a4d1f0b..d6d2bb8 100644
--- a/bin/templates/activity/index.php
+++ b/bin/templates/activity/index.php
@@ -1,156 +1,157 @@
<div class="spacer" style="height: 18px"></div>
-<div class="row l4">
+<div class="row l3">
+
+ <!-- Main content-->
+ <div class="span l2">
+
+
+ <?php foreach($notifications as $notification): ?>
+ <?php $user = $sso->getUser($notification->src->user->_id); ?>
+ <div class="material">
+ <div class="row l10 fluid">
+ <div class="span l1" style="text-align: center">
+ <div class="spacer" style="height: 5px"></div>
+ <a href="<?= url('user', $user->getUsername()) ?>" class="notification-avatar">
+ <img src="<?= $user->getAvatar(64) ?>" style="width: 32px; border: solid 1px #777; border-radius: 50%; vertical-align: middle">
+ <span class="activity-type <?= array_search($notification->type, NotificationModel::getTypesAvailable()) ?>"></span>
+ </a>
+ </div>
+ <div class="span l7">
+
+ <div>
+ <span style="color: #555; font-size: .8rem;"><?= ucfirst($user->getUsername()) ?></span>
+ </div>
+
+ <div>
+ <?php if ($notification->url): ?><a href="<?= $notification->url ?>" style="color: #000; padding: .2rem 0"><?php endif; ?>
+ <?= Mention::idToMentions($notification->content) ?>
+ <?php if ($notification->url): ?></a><?php endif; ?>
+ </div>
+ </div>
+ <div class="span l2 desktop-only" style="color: #666; font-size: .8rem; text-align: right">
+ <?= Time::relative($notification->created) ?>
+ </div>
+ </div>
+ </div>
+
+ <div class="spacer" style="height: 10px"></div>
+ <?php endforeach; ?>
+ <?php if ($notifications->isEmpty()): ?>
+ <div style="padding: 50px; text-align: center; color: #777; font-size: .8rem; font-style: italic; text-align: center">
+ Nothing here yet. Follow or interact with users to build your feed!
+ </div>
+ <?php endif; ?>
+
+ <div data-lysine-view="ping">
+ <div class="material">
+ <div class="row l10 fluid">
+ <div class="span l1" style="text-align: center">
+ <div class="spacer" style="height: 5px"></div>
+ <a data-lysine-href="{{userURL}}" class="notification-avatar">
+ <img data-lysine-src="{{avatar}}" style="width: 32px; border: solid 1px #777; border-radius: 50%; vertical-align: middle">
+ <span class="activity-type other" data-lysine-class="activity-type {{type}}"></span>
+ </a>
+ </div>
+ <div class="span l7">
+ <div>
+ <a data-for="userName" data-lysine-href="{{userURL}}" style="color: #555; font-size: .8rem;"></a>
+ <span data-for="userName" style="color: #555; font-size: .8rem;"></span>
+ </div>
+ <div>
+ <a data-lysine-href="{{notificationURL}}" style="color: #000; padding: .2rem 0" data-for="notificationContent"></a>
+ </div>
+ </div>
+ <div class="span l2 desktop-only" style="color: #666; font-size: .8rem; text-align: right" data-for="timeRelative"></div>
+ </div>
+ </div>
+
+ <div class="spacer" style="height: 10px;"></div>
+ </div>
+
+ <div class="spacer" style="height: 50px;"></div>
+ </div>
+
<!--Sidebar (secondary navigation) -->
<div class="span l1">
<div class="material unpadded user-card">
<?php $user = $sso->getUser($authUser->id); ?>
<a href="<?= url('user', $user->getUsername()) ?>">
<div class="banner">
<?php try { $banner = $user->getAttribute('banner')->getPreviewURL(320, 120) ?>
<?php if (!$banner) { throw new Exception(); } ?>
<img src="<?= $banner ?>" width="275" height="64">
<?php } catch (Exception$e) { } ?>
</div>
<div class="padded" style="margin-top: -35px;">
<img class="avatar" src="<?= $user->getAvatar(128) ?>">
<div class="user-info">
<span class="user-name">@<?= $user->getUsername() ?></span>
<span class="user-bio"><?= db()->table('follow')->get('prey__id', $user->getId())->count() ?> followers</span>
</div>
</div>
</a>
</div>
</div>
-
- <!-- Main content-->
- <div class="span l2">
- <div class="material unpadded">
-
- <div class="spacer" style="height: 10px"></div>
-
- <?php foreach($notifications as $notification): ?>
- <?php $user = $sso->getUser($notification->src->user->_id); ?>
- <div class="padded">
- <div class="row l10 fluid">
- <div class="span l8">
- <span class="notification-avatar">
- <img src="<?= $user->getAvatar(64) ?>" style="width: 24px; border: solid 1px #777; border-radius: 50%; vertical-align: middle">
- <span class="activity-type <?= array_search($notification->type, NotificationModel::getTypesAvailable()) ?>"></span>
- </span>
- <a href="<?= url('user', $user->getUsername()) ?>" style="color: #000; font-weight: bold;"><?= ucfirst($user->getUsername()) ?></a>
- <?php if ($notification->url): ?><a href="<?= $notification->url ?>" style="color: #000;"><?php endif; ?>
- <?= Mention::idToMentions($notification->content) ?>
- <?php if ($notification->url): ?></a><?php endif; ?>
- </div>
- <div class="span l2 desktop-only" style="color: #666; font-size: .8em; text-align: right">
- <?= Time::relative($notification->created) ?>
- </div>
- </div>
- </div>
-
- <div class="separator"></div>
- <?php endforeach; ?>
- <?php if ($notifications->isEmpty()): ?>
- <div style="padding: 50px; text-align: center; color: #777; font-size: .8em; font-style: italic; text-align: center">
- Nothing here yet. Follow or interact with users to build your feed!
- </div>
- <?php endif; ?>
-
- <div data-lysine-view="ping">
- <div class="padded">
- <div class="row10 fluid">
- <div class="span8">
- <span class="notification-avatar">
- <img data-lysine-src="{{avatar}}" style="width: 24px; border: solid 1px #777; border-radius: 50%; vertical-align: middle">
- <span class="activity-type other" data-lysine-class="activity-type {{type}}"></span>
- </span>
- <a data-for="userName" data-lysine-href="{{userURL}}" style="color: #000; font-weight: bold;"></a>
- <a data-lysine-href="{{notificationURL}}" style="color: #000;" data-for="notificationContent"></a>
- </div>
- <div class="span2 desktop-only" style="color: #666; font-size: .8em; text-align: right" data-for="timeRelative"></div>
- </div>
- </div>
-
- <div class="separator"></div>
- </div>
- </div>
-
- <div class="spacer" style="height: 50px;"></div>
- </div>
-
- <!-- Contextual menu-->
- <div class="span1"></div>
</div>
-<script type="text/javascript" src="<?= spitfire\core\http\URL::asset('js/lysine.js') ?>"></script>
-
<script type="text/javascript">
-(function() {
- var xhr = null;
- var current = <?= isset($notification) && $notification? $notification->_id : 0 ?>;
- var notifications = [];
-
- var request = function (callback) {
- if (xhr !== null) { return; }
- if (current === 0) { return; }
-
- xhr = new XMLHttpRequest();
- xhr.open('GET', '<?= url('activity')->setExtension('json') ?>?until=' + current);
-
- xhr.onreadystatechange = function () {
- if (xhr.readyState === 4 && xhr.status === 200) {
- var data = JSON.parse(xhr.responseText);
-
- if (data.payload.length === 0 || data.until === null) {
- current = 0;
- } else {
- current = data.until;
- }
-
- for (var i= 0; i < data.payload.length; i++) {
- var view = new Lysine.view('ping');
- notifications.push(view);
-
- view.setData({
- userName : data.payload[i].user.username,
- avatar : data.payload[i].user.avatar,
- userURL : '<?= url('user') ?>/' + data.payload[i].user.username,
- notificationURL : data.payload[i].url || '#',
- notificationContent: data.payload[i].content,
- timeRelative : data.payload[i].timeRelative
- });
- }
-
-
- xhr = null;
- callback();
- }
- };
-
- xhr.send();
- };
-
+depend(['m3/core/lysine', 'ping/ping'], function (lysine, Ping) {
+
+ var nextPage = null;
+ var token = '<?= (isset($_GET['token']) ? $this->sso->makeToken($_GET['token']) : \spitfire\io\session\Session::getInstance()->getUser())->getId() ?>';
+ var ping = new Ping('<?= spitfire()->baseUrl() ?>', token);
+
var height = function () {
var body = document.body,
- html = document.documentElement;
+ html = document.documentElement;
- return Math.max( body.scrollHeight, body.offsetHeight,
- html.clientHeight, html.scrollHeight, html.offsetHeight );
+ return Math.max(body.scrollHeight, body.offsetHeight,
+ html.clientHeight, html.scrollHeight, html.offsetHeight);
};
-
+
//This function listens to the scrolls
var listener = function () {
- var html = document.documentElement,
- scroll = Math.max(html.scrollTop, window.scrollY);
-
- if (height() - scroll < html.clientHeight + 700) { request(listener); }
+ var html = document.documentElement,
+ scroll = Math.max(html.scrollTop, window.scrollY);
+
+ if (height() - scroll < html.clientHeight + 700) {
+ nextPage && nextPage();
+ nextPage = null;
+ }
};
+ console.log(ping.activity());
+
+ ping.activity().read(function(pingList) {
+
+ console.log(pingList);
+ for (var i = 0; i < pingList._pings.length; i++) {
+
+ var view = new lysine.view('ping');
+ var data = pingList._pings[i];
+
+ /*
+ * This block should be possible to have refactored out of the feed,
+ * making it less pointless code that adapts stuff around.
+ */
+ view.setData({
+ userName : data.user.username,
+ avatar : data.user.avatar,
+ userURL : '<?= url('user') ?>/' + data.user.username,
+ notificationURL : data.url || '#',
+ notificationContent: data.content,
+ timeRelative : data.timeRelative
+ });
+
+ }
+
+ nextPage = pingList._next;
+ }, <?= isset($notification) && $notification? $notification->_id : 0 ?>);
+
//Attach the listener
- window.addEventListener('load', listener, false);
document.addEventListener('scroll', listener, false);
-}());
-</script>
+});
+</script>
diff --git a/bin/templates/elements/media/preview.php b/bin/templates/elements/media/preview.php
index 95bd8b1..2e73c69 100644
--- a/bin/templates/elements/media/preview.php
+++ b/bin/templates/elements/media/preview.php
@@ -1,41 +1,41 @@
<div class="media-preview">
<?php $count = $media->count(); ?>
<?php if ($count == 0): ?>
<?php elseif ($count == 1): ?>
- <div class="row l1">
- <div class="span l1 ng">
+ <div class="row l1 ng">
+ <div class="span l1">
<?= $media[0]->preview('m')->getEmbed() ?>
</div>
</div>
<?php elseif ($count == 2): ?>
- <div class="row l2 m2 s2">
- <div class="span l1 m1 s1 ng">
+ <div class="row l2 m2 s2 ng">
+ <div class="span l1 m1 s1">
<?= $media[0]->preview('t')->getEmbed() ?>
</div>
- <div class="span l1 m1 s1 ng">
+ <div class="span l1 m1 s1">
<?= $media[1]->preview('t')->getEmbed() ?>
</div>
</div>
<?php elseif ($count == 3): ?>
- <div class="row l3 m3 s3">
- <div class="span l2 m2 s2 ng">
+ <div class="row l3 m3 s3 ng">
+ <div class="span l2 m2 s2">
<?= $media[0]->preview('t')->getEmbed() ?>
</div>
- <div class="span l1 m1 s1 ng">
+ <div class="span l1 m1 s1">
<?= $media[1]->preview('t')->getEmbed() ?>
<?= $media[2]->preview('t')->getEmbed() ?>
</div>
</div>
<?php elseif ($count == 4): ?>
- <div class="row l2 m2 s2">
- <div class="span l1 m1 s1 ng">
+ <div class="row l2 m2 s2 ng">
+ <div class="span l1 m1 s1">
<?= $media[0]->preview('t')->getEmbed() ?>
<?= $media[2]->preview('t')->getEmbed() ?>
</div>
- <div class="span l1 m1 s1 ng">
+ <div class="span l1 m1 s1">
<?= $media[1]->preview('t')->getEmbed() ?>
<?= $media[3]->preview('t')->getEmbed() ?>
</div>
</div>
<?php endif; ?>
</div>
\ No newline at end of file
diff --git a/bin/templates/elements/ping/ping.php b/bin/templates/elements/ping/ping.php
index 177493b..47237cd 100644
--- a/bin/templates/elements/ping/ping.php
+++ b/bin/templates/elements/ping/ping.php
@@ -1,99 +1,99 @@
<?php $user = $ping->src->user ? $sso->getUser($ping->src->user->authId) : null; ?>
<div class="material unpadded">
<?php if ($ping->irt): ?>
<div class="source-ping" onclick="window.location = '<?= url('ping', 'detail', $ping->irt->_id) ?>'">
<div class="row l10 fluid">
<div class="span l1 desktop-only" style="text-align: center;">
<img src="<?= $sso->getUser($ping->irt->src->user->authId)->getAvatar(64) ?>" style="width: 32px; border: solid 1px #777; border-radius: 3px;">
</div>
<div class="span l9">
<a href="<?= url('user', 'show', $sso->getUser($ping->irt->src->user->authId)->getUsername()) ?>" style="color: #000; font-weight: bold; font-size: .8em;">
<?= $sso->getUser($ping->irt->src->user->authId)->getUsername() ?>
</a>
<p style="margin: 0;">
<?= Mention::idToMentions($ping->irt->content) ?>
</p>
</div>
</div>
</div>
<?php endif; ?>
<div class="padded">
<div class="row l10 fluid">
<div class="span l1 desktop-only" style="text-align: center">
<img src="<?= $user->getAvatar(64) ?>" style="width: 100%; border: solid 1px #777; border-radius: 3px;">
</div>
<div class="span l9">
<div class="row l4">
<div class="span l3">
<img src="<?= $user->getAvatar(64) ?>" class="not-desktop" style="width: 32px; border-radius: 50%; vertical-align: middle">
<a href="<?= url('user', 'show', $user->getUsername()) ?>" style="color: #000; font-weight: bold; font-size: .8em;"><?= $user->getUsername() ?></a>
<?php if ($ping->share): ?>
<a href="<?= url('ping', 'detail', $ping->share->_id) ?>" style="font-size: .8em; color: #777;"> from <?= $sso->getUser($ping->share->src->_id)->getUsername() ?></a>
<?php endif; ?>
</div>
<div class="span l1 desktop-only" style="text-align: right; font-size: .8em; color: #777;">
<?= Time::relative($ping->created) ?>
</div>
</div>
<div class="row l1 fluid" style="margin-top: 5px">
<div class="span l1">
<p style="margin: 0;">
<?= Mention::idToMentions($ping->content) ?>
</p>
<?php $poll = db()->table('poll\option')->get('ping', $ping->original())->all() ?>
<?php $resp = $authUser? db()->table('poll\reply')->get('ping', $ping->original())->where('author', AuthorModel::get(db()->table('user')->get('authId', $authUser->id)->first()))->first() : null ?>
<?php if ($poll->count() > 0): ?>
<div data-poll="<?= $ping->_id ?>">
<div class="spacer" style="height: 10px"></div>
<?php foreach ($poll as $option): ?>
<a href="<?= url('poll', 'vote', $option->_id) ?>"
data-option="<?= $option->_id ?>"
class="poll-open-response <?= $resp && $resp->option->_id == $option->_id ? 'selected-response' : '' ?>">
<?= __($option->text ?: "Untitled") ?>
</a>
<?php endforeach; ?>
</div>
<?php endif; ?>
<div class="spacer" style="height: 10px"></div>
<?php $media = $ping->original()->attached; ?>
<?= current_context()->view->element('media/preview')->set('media', collect($media->toArray()))->render() ?>
</div>
</div>
<div class="spacer" style="height: 20px;"></div>
<div class="row l3 fluid">
<div class="span l1">
<p style="margin: 0;">
<?php if ($ping->url): ?>
- <a href="<?= $ping->url ?>" style="font-weight: bold;"><?= __($ping->url, 25) ?></a>
+ <a href="<?= $ping->url ?>" style="font-weight: bold;">Open</a>
<?php endif; ?>
</p>
</div>
<div class="span l2" style="text-align: right">
<?php if (!$authUser): ?>
<?php elseif (db()->table('feedback')->get('ping', $ping)->where('author', AuthorModel::get(db()->table('user')->get('authId', $authUser->id)->first()))->first()): ?>
<a href="<?= url('feedback', 'revoke', $ping->_id) ?>" class="like-link like-active" data-ping="<?= $ping->_id ?>"><?= db()->table('feedback')->get('ping', $ping)->count() ?: 'Like' ?></a>
<?php else: ?>
<a href="<?= url('feedback', 'push', $ping->_id) ?>" class="like-link" data-ping="<?= $ping->_id ?>"><?= db()->table('feedback')->get('ping', $ping)->count() ?: 'Like' ?></a>
<?php endif; ?>
<a href="<?= url('ping', 'detail', $ping->_id) ?>#replies" class="reply-link"><?= $ping->replies->getQuery()->count() ?: 'Reply' ?></a>
<a href="<?= url('ping', 'share', $ping->_id); ?>" class="share-link"><?= $ping->original()->shared->getQuery()->count() ?: 'Share' ?></a>
</div>
</div>
</div>
</div>
</div>
</div>
diff --git a/bin/templates/feed/index.php b/bin/templates/feed/index.php
index 2fe79f0..9d415c5 100644
--- a/bin/templates/feed/index.php
+++ b/bin/templates/feed/index.php
@@ -1,197 +1,204 @@
<div class="spacer" style="height: 10px"></div>
<div class="row l3">
<!-- Main content-->
<div class="span l2">
<div class="material unpadded">
<?= current_context()->view->element('ping/editor.lysine.html')->render() ?>
<noscript>
<?= current_context()->view->element('ping/editor.php')->set('authUser', $authUser)->render() ?>
</noscript>
</div>
<?php if (db()->table('ping')->get('src', db()->table('author')->get('user', db()->table('user')->get('_id', $authUser->id)))->where('processed', 0)->first()): ?>
<div class="spacer" style="height: 10px"></div>
<div class="material" style="color: #0571B1">
<div class="row l1 fluid">
<div class="span l1">
Your latest ping is being processed...
</div>
</div>
</div>
<?php endif; ?>
<div class="spacer" style="height: 10px"></div>
<?php foreach ($notifications as $notification): ?>
<?= current_context()->view->element('ping/ping')->set('ping', $notification)->render() ?>
<div class="spacer" style="height: 10px"></div>
<?php endforeach; ?>
<?php if (empty($notifications)): ?>
<div style="padding: 50px; text-align: center; color: #777; font-size: .8em; font-style: italic; text-align: center">
Nothing here yet. Follow or interact with users to build your feed!
</div>
<?php endif; ?>
<div class="spacer" style="height: 20px;"></div>
<div class="row l3">
<div class="span l1">
<div style="color: #888; font-size: .8em">Users you may like to follow:</div>
</div>
</div>
<div class="spacer" style="height: 10px;"></div>
<div class="row l2 ng-lr">
<div class="span l1" data-lysine-view="whotofollow">
<div class="material unpadded user-card">
<a data-lysine-href="<?= url('user', 'show', '{{username}}') ?>?ref=whotofollow">
<div class="banner" style="height: 127px">
<img src="about:blank" data-lysine-src="{{banner}}" width="275" height="64">
</div>
<div class="padded" style="margin-top: -35px;">
<img class="avatar" data-lysine-src="{{avatar}}">
<div class="user-info">
<span class="user-name" data-for="username"></span>
<span class="user-bio"><span data-for="followers"></span> followers</span>
</div>
</div>
</a>
</div>
</div>
</div>
<div class="spacer" style="height: 30px;"></div>
<?= current_context()->view->element('ping/ping.lysine.html')->set('ping', $notification)->render() ?>
</div>
<!-- Contextual menu-->
<div class="span l1">
<div class="material unpadded user-card">
<?php $user = $sso->getUser($authUser->id); ?>
<a href="<?= url('user', 'show', $user->getUsername()) ?>">
<div class="banner">
<?php try { ?>
<?php $banner = $user->getAttribute('banner')->getPreviewURL(320, 120) ?>
<?php if (!$banner) { throw new Exception(); } ?>
<img src="<?= $banner ?>" width="275" height="64">
<?php } catch (Exception$e) {
} ?>
</div>
<div class="padded" style="margin-top: -35px;">
<img class="avatar" src="<?= $user->getAvatar(128) ?>">
<div class="user-info">
<span class="user-name">@<?= $user->getUsername() ?></span>
<span class="user-bio"><?= db()->table('follow')->get('prey__id', $user->getId())->count() ?> followers</span>
</div>
</div>
</a>
</div>
+
+ <div class="spacer" style="height: 500px"></div>
+ <p class="very secondary small">
+ Ping is developed by Magic3W and licensed under MIT License
+ &centerdot;
+ <a href="https://github.com/Csardelacal/Ping">Help and source code</a>
+ </p>
</div>
</div>
<script type="text/javascript">
depend(['m3/core/lysine', 'ping/ping'], function (lysine, Ping) {
var nextPage = null;
var token = '<?= (isset($_GET['token']) ? $this->sso->makeToken($_GET['token']) : \spitfire\io\session\Session::getInstance()->getUser())->getId() ?>';
var ping = new Ping('<?= spitfire()->baseUrl() ?>', token);
var height = function () {
var body = document.body,
html = document.documentElement;
return Math.max(body.scrollHeight, body.offsetHeight,
html.clientHeight, html.scrollHeight, html.offsetHeight);
};
//This function listens to the scrolls
var listener = function () {
var html = document.documentElement,
scroll = Math.max(html.scrollTop, window.scrollY);
if (height() - scroll < html.clientHeight + 700) {
nextPage();
nextPage = null;
}
};
ping.feed().read(function(pingList) {
for (var i = 0; i < pingList._pings.length; i++) {
var view = new lysine.view('ping');
var current = pingList._pings[i].payload;
/*
* This block should be possible to have refactored out of the feed,
* making it less pointless code that adapts stuff around.
*/
view.setData({
id: current.id,
userName: current.user.username,
avatar: current.user.avatar,
userURL: current.user.url,
notificationURL: current.url || '#',
notificationContent: current.content,
media: current.media,
poll: current.poll,
timeRelative: current.timeRelative,
feedback : current.feedback,
replyCount: current.replies || 'Reply',
shareCount: current.shares || 'Share',
irt: current.irt ? [current.irt] : []
});
}
nextPage = pingList._next;
}, <?= isset($notification) && $notification? $notification->_id : 0 ?>);
//Attach the listener
document.addEventListener('scroll', listener, false);
});
depend(['m3/core/request', 'm3/core/array/iterate', 'm3/core/lysine'], function (request, iterate, lysine) {
request('<?= url('people', 'whoToFollow')->setExtension('json') ?>')
.then(function (response) {
var json = JSON.parse(response).payload;
iterate(json, function (e) {
var view = new lysine.view('whotofollow');
view.setData(e);
});
})
.catch(function () {
console.log('Error loading suggestions');
});
});
</script>
<script type="text/javascript">
depend(['ping/feedback'], function (baseurl) { baseurl('<?= spitfire()->baseUrl() ?>', '<?= (isset($_GET['token']) ? $this->sso->makeToken($_GET['token']) : \spitfire\io\session\Session::getInstance()->getUser())->getId() ?>'); });
</script>
<script type="text/javascript">
depend(['ping/editor'], function (editor) {
console.log('editor.loaded');
editor(<?= json_encode([
'endpoint' => (string)url(),
'placeholder' => 'Message to broadcast...',
'user' => ['avatar' => $me->getAvatar() ]
]) ?>);
});
</script>
\ No newline at end of file

File Metadata

Mime Type
text/x-diff
Expires
Apr 13 2021, 12:25 PM (9 w, 9 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2247
Default Alt Text
(139 KB)

Event Timeline