Compare commits

..

No commits in common. "develop" and "remove-extra-space" have entirely different histories.

9 changed files with 4576 additions and 688 deletions

View File

@ -37,7 +37,6 @@
· ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
require_once INSTALLDIR . '/lib/util/tempfile.php';
if (!defined('GNUSOCIAL')) {
exit(1);
@ -94,13 +93,12 @@ class ApiAccountUpdateProfileBannerAction extends ApiAuthAction
$this->img = str_replace(' ', '+', $this->img);
$this->img = base64_decode($this->img, true);
$fh = new TemporaryFile('gs-mediaupload');
fwrite($fh->getResource(), $this->img);
$fh = tmpfile();
fwrite($fh, $this->img);
unset($this->img);
fseek($fh, 0);
fflush($fh->getResouce());
$mediafile = MediaFile::fromFileInfo($fh, $this->scoped);
unset($fh);
$mediafile = MediaFile::fromFilehandle($fh, $this->scoped);
}
// maybe resize

View File

@ -37,7 +37,6 @@
· ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
require_once INSTALLDIR . '/lib/util/tempfile.php';
if (!defined('GNUSOCIAL')) {
exit(1);
@ -91,14 +90,15 @@ class ApiUpdateAvatarAction extends ApiAuthAction
$imagefile = null;
// write the image to a temporary file
$fh = new TemporaryFile('gs-mediaupload');
fwrite($fh->getResource(), $this->img);
$fh = tmpfile();
fwrite($fh, $this->img);
unset($this->img); // no need to keep it in memory
// seek back to position 0, so we don't read EOF directly
fseek($fh, 0);
// read the temporary file as an uploaded image, will store File object
fflush($fh->getResource());
$mediafile = MediaFile::fromFileInfo($fh, $this->scoped);
// Deletes the temporary file, if it was needed we stored it in fromFileInfo
unset($fh);
$mediafile = MediaFile::fromFilehandle($fh, $this->scoped);
// Deletes the temporary file, if it was needed we stored it in fromFilehandle
fclose($fh);
// Now try to get it as an ImageFile since it has some handy functions
$imagefile = ImageFile::fromFileObject($mediafile->fileRecord);

View File

@ -37,7 +37,6 @@
· ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
require_once INSTALLDIR . '/lib/util/tempfile.php';
if (!defined('GNUSOCIAL')) {
exit(1);
@ -92,15 +91,15 @@ class ApiUpdateBackgroundImageAction extends ApiAuthAction
$imagefile = null;
// put the image data in a temporary file
$fh = new TemporaryFile('gs-mediaupload')
fwrite($fh->getResource(), $this->img);
$fh = tmpfile();
fwrite($fh, $this->img);
unset($this->img);
fseek($fh, 0); // go to beginning just to be sure the content is read properly
// We get a MediaFile with a File object using the filehandle
fflush($fh->getResource());
$mediafile = MediaFile::fromFileInfo($fh, $this->scoped);
$mediafile = MediaFile::fromFilehandle($fh, $this->scoped);
// and can dispose of the temporary filehandle since we're certain we have a File on disk now
unset($fh);
fclose($fh);
$imagefile = ImageFile::fromFileObject($mediafile->fileRecord);
unset($mediafile); // No need to keep the MediaFile around anymore, everything we need is in ImageFile

View File

@ -430,9 +430,6 @@ class QvitterAction extends ApiAction
if($disable_keyboard_shortcuts == '1' || $disable_keyboard_shortcuts == 1) {
$disable_keyboard_shortcuts = true;
}
if (is_null($disable_keyboard_shortcuts)) {
$disable_keyboard_shortcuts = false;
}
} catch (Exception $e) {
//
}

View File

@ -40,11 +40,8 @@
font-style: normal;
}
@import url(https://fonts.bunny.net/css?family=noto-sans-jp:400,500,700);
body {
font-family:"Helvetica Neue",Arial,"Noto Sans JP",sans-serif;
font-family:"Helvetica Neue",Arial,sans-serif;
}
html {
@ -242,8 +239,10 @@ body.rtl .discard-error-message {
}
#top-compose {
border: 1px solid rgba(0, 0, 0, 0.0);
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 4px;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.15) inset;
box-sizing: border-box;
cursor: pointer;
display: block;
height: 32px;
@ -259,7 +258,7 @@ body.rtl .discard-error-message {
cursor: pointer;
display: block;
height: 32px;
margin-top: -4px;
margin-top: -3px;
position: absolute;
width: 32px;
z-index: 101;
@ -276,6 +275,7 @@ body.rtl .discard-error-message {
background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
}
.topbar {
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
left: 0;
position: fixed;
right: 0;
@ -506,7 +506,7 @@ body.rtl .dropdown-menu li:not(.dropdown-caret) {
font-weight: normal;
line-height: 18px;
overflow: hidden;
padding: 3px 12px 3px 22px;
padding: 3px 0 3px 22px;
position: relative;
text-decoration: none;
text-overflow: ellipsis;
@ -655,12 +655,13 @@ body.rtl .dropdown-menu .row-type-profile-prefs-toggle::before {
#site-notice {
color: #EEEEEE;
font-size: 20px;
font-size: 30px;
font-weight: 300;
line-height: 25px;
line-height: 32px;
margin: 0;
padding: 20px;
text-align: left;
text-shadow: 0 1px 2px #000000;
display:none;
}
@ -811,11 +812,17 @@ body.rtl #login-register-container {
}
#login-content,
.front-signup {
font-family: Arial,âsans-serif;
font-family: Arial,sans-serif;
font-size: 14px;
color: #333333;
line-height: 18px;
background: #ffffff; /* Old browsers */
background: -moz-linear-gradient(top, #ffffff 0px, #dddddd 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0px,#ffffff), color-stop(100%,#dddddd)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #ffffff 0px,#dddddd 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #ffffff 0px,#dddddd 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #ffffff 0px,#dddddd 100%); /* IE10+ */
background: linear-gradient(to bottom, #ffffff 0px,#dddddd 100%); /* W3C */
background-clip: border-box;
background-origin: padding-box;
background-size: auto auto;
@ -850,7 +857,7 @@ body.rtl #login-register-container {
.front-signup input,
#login-content input#nickname,
#login-content input#password {
font-family: Arial,âsans-serif;
font-family: Arial,sans-serif;
font-size: 13px;
color: #000000;
line-height: 15.4333px;
@ -967,7 +974,19 @@ button#submit-login {
font-weight: 700;
color: #FFFFFF;
line-height: 18px;
background: #019ad2;
background: -moz-linear-gradient(top, #33bcef 0%, #019ad2 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#33bcef), color-stop(100%,#019ad2)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #33bcef 0%,#019ad2 100%); /* IE10+ */
background: linear-gradient(to bottom, #33bcef 0%,#019ad2 100%); /* W3C */
background-repeat: repeat-x;
height: 30px;
margin-top: 0px;
margin-right: 0px;
@ -977,7 +996,18 @@ button#submit-login {
padding-right: 10px;
padding-bottom: 5px;
padding-left: 10px;
border: none;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-top-color: #057ED0;
border-right-color: #057ED0;
border-bottom-color: #057ED0;
border-left-color: #057ED0;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom-left-radius: 4px;
@ -994,11 +1024,23 @@ button#submit-login {
border-image-width: 1 1 1 1;
border-spacing: 0px 0px;
cursor: pointer;
transition-duration: 200ms;
text-shadow: rgba(0, 0, 0, 0.25) 0px -1px 1px;
}
button#submit-login:hover {
background: #0271bf;
background: -moz-linear-gradient(top, #2daddc 0%, #0271bf 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2daddc), color-stop(100%,#0271bf)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #2daddc 0%,#0271bf 100%); /* IE10+ */
background: linear-gradient(to bottom, #2daddc 0%,#0271bf 100%); /* W3C */
background-repeat: repeat-x;
border-color:#096eb3;
color:#fff;
}
@ -1053,7 +1095,7 @@ button#submit-login:hover {
text-decoration:none;
}
#remember-forgot #openid-login:before {
content: " · ";
content: " · ";
font-size:11px;
}
#remember-forgot #openid-login:after {
@ -1105,9 +1147,16 @@ button#submit-login:hover {
}
.front-signup .signup-btn {
background: #FFAA22;
border: none;
background-color: #FD9A0F;
background: -moz-linear-gradient(top, rgba(254,233,79,1) 0px, rgba(253,154,15,1) 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0px,rgba(254,233,79,1)), color-stop(100%,rgba(253,154,15,1)));
background: -webkit-linear-gradient(top, rgba(254,233,79,1) 0px,rgba(253,154,15,1) 100%);
background: -o-linear-gradient(top, rgba(254,233,79,1) 0px,rgba(253,154,15,1) 100%);
background: -ms-linear-gradient(top, rgba(254,233,79,1) 0px,rgba(253,154,15,1) 100%);
background: linear-gradient(to bottom, rgba(254,233,79,1) 0px,rgba(253,154,15,1) 100%);
border: 1px solid #ffaa22;
border-radius: 4px;
box-shadow: 0 1px 0 #ffffff;
color: #333333;
cursor: pointer;
display: inline-block;
@ -1120,10 +1169,17 @@ button#submit-login:hover {
padding-right: 12px;
position: relative;
right: 12px;
transition-duration: 200ms;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
}
.front-signup .signup-btn:hover, .front-signup .signup-btn:focus {
background: #EC8B11;
background-color: #FD9512;
background: -moz-linear-gradient(top, rgba(254,220,77,1) 0px, rgba(253,149,18,1) 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0px,rgba(254,220,77,1)), color-stop(100%,rgba(253,149,18,1)));
background: -webkit-linear-gradient(top, rgba(254,220,77,1) 0px,rgba(253,149,18,1) 100%);
background: -o-linear-gradient(top, rgba(254,220,77,1) 0px,rgba(253,149,18,1) 100%);
background: -ms-linear-gradient(top, rgba(254,220,77,1) 0px,rgba(253,149,18,1) 100%);
background: linear-gradient(to bottom, rgba(254,220,77,1) 0px,rgba(253,149,18,1) 100%);
border-color: #EC8B11;
}
@ -1212,7 +1268,7 @@ button#submit-login:hover {
#page-container {
width:890px;
padding:17px 14px 0 14px;
background-color:rgba(0,0,0,0.5);
background-color:rgba(0,0,0,0.2);
margin-left:-459px;
opacity:0;
}
@ -1285,8 +1341,8 @@ body.rtl #footer-spinner-container {
position: relative;
background-color: #F9F9F9;
border-top: 1px solid #E8E8E8;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25) inset;
font-size: 14px;
transition-duration: 200ms;
}
.menu-container a:first-child {
border-top:0 none;
@ -1849,7 +1905,6 @@ body.rtl .profile-card.user-muted .user-menu-cog::after,
list-style-image: none;
list-style-position: outside;
list-style-type: none;
transition-duration: 200ms;
height:auto;
position:relative;
}
@ -2380,7 +2435,7 @@ body.rtl .queet.rtl .expanded-content {
font-style:italic;
}
.oembed-item-provider-url:not(:empty)::before {
content:' · ';
content:' · ';
}
.oembed-item-header,
.oembed-item-body,
@ -2848,7 +2903,7 @@ body.rtl .view-more-container-bottom { direction:rtl; }
text-decoration: underline;
}
.stream-item-header .created-at:before {
content: "·";
content: "·";
display: inline-block;
margin-left: 4px;
}
@ -3028,7 +3083,6 @@ ul.queet-actions > li .icon:before {
text-align: center;
vertical-align:text-top;
width:21px;
transition-duration: 200ms;
}
.stream-item.temp-post ul.queet-actions > li .icon:before {
color:rgba(0,0,0,0.05);
@ -3217,7 +3271,6 @@ ul.queet-actions > li .icon.is-mine:before {
top: 0;
width: 30px;
outline:none;
transition-duration: 200ms;
}
.queet.rtl .ostatus-link {
right:auto;
@ -4008,8 +4061,9 @@ body.rtl .queet-box-extras {
font-weight: 700;
color: #FFFFFF;
line-height: 16px;
border: 1px solid rgba(0, 0, 0, 0.0);
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 4px;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.15) inset;
box-sizing: border-box;
margin-top: 0px;
margin-right: 0px;
@ -4027,7 +4081,7 @@ body.rtl .queet-box-extras {
border-image-source: none;
border-image-width: 1 1 1 1;
cursor: pointer;
transition-duration: 200ms;
text-shadow: rgba(0, 0, 0, 0.25) 0px -1px 1px;
}
button.signup-btn.disabled:hover,
button.signup-btn.disabled:focus,
@ -4045,7 +4099,7 @@ button.signup-btn.disabled {
cursor: default;
}
.queet-toolbar button.enabled:hover {
background: #005D7F;
background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
}
#settingslink .dropdown-toggle {
@ -4361,7 +4415,7 @@ div.nav-session {
float:left;
}
.profile-banner-footer ul.stats li a {
padding: 0 9px 8px 12px;
padding: 0 15px 8px 12px;
}
.hover-card .profile-banner-footer ul.stats li a {
padding-bottom: 5px;
@ -4401,8 +4455,9 @@ div.clearfix {
font-weight: 700;
color: #333;
line-height: 16px;
border: 1px solid rgba(0, 0, 0, 0);
border: 1px solid rgba(0, 0, 0, 0.1);
border-radius: 4px;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.15) inset;
box-sizing: border-box;
margin-top: 0px;
margin-right: 0px;
@ -4420,21 +4475,16 @@ div.clearfix {
border-image-source: none;
border-image-width: 1 1 1 1;
cursor: pointer;
transition-duration: 200ms;
text-shadow: rgba(0, 0, 0, 0.15) 0px -1px 1px;
}
.qvitter-follow-button,
.edit-profile-button,
.abort-edit-profile-button,
.member-button {
background-color:#e2e2e2;
text-shadow: rgba(255, 255, 255, 0.15) 0px -1px 1px;
color:#333;
}
.member-button:not(.disabled):not(.member):hover,
.qvitter-follow-button:not(.disabled):not(.following):hover,
.edit-profile-button:hover,
.abort-edit-profile-button:hover {
background-color:#c9c9c9;
}
.external-member-button.disabled,
.member-button.disabled,
.external-follow-button.disabled,
@ -4451,6 +4501,17 @@ div.clearfix {
.qvitter-follow-button.disabled i {
opacity:0.2;
}
.external-member-button:not(.disabled):not(.member):hover,
.member-button:not(.disabled):not(.member):hover,
.external-follow-button:not(.disabled):not(.following):hover,
.qvitter-follow-button:not(.disabled):not(.following):hover,
.edit-profile-button:hover,
.abort-edit-profile-button:hover,
button.shorten:not(.disabled):hover,
.save-profile-button:not(.disabled):hover,
.crop-and-save-button:not(.disabled):hover {
background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
}
.external-member-button:not(.disabled):not(.member):active,
.member-button:not(.disabled):not(.member):active,
.external-follow-button:not(.disabled):not(.following):active,
@ -4673,7 +4734,6 @@ body.rtl #feed-header-inner .loader {
top:5px;
opacity:0.5;
cursor:pointer;
transition-duration: 200ms;
}
.reload-stream:hover {
opacity:1;
@ -5011,7 +5071,7 @@ body.rtl .modal-footer button {
box-shadow: 0 1px 0 #EEEEEE inset, 0 1px 0 #FFFFFF;
color: #000000;
display: block;
font-family: Arial,âsans-serif;
font-family: Arial,sans-serif;
font-size: 13px;
height: 20px;
line-height: 15.4333px;
@ -5362,8 +5422,11 @@ content:"\f068";
}
#popup-shortcuts #shortcuts-container span.shortcut {
background-color: #eee;
background-image: linear-gradient(#fff, #eee);
background-repeat: repeat-x;
border: 1px solid #ccc;
border-radius: 3px;
box-shadow: 0 1px 0 #fff inset, 0 0.5px 0 #ccc;
color: #666;
display: inline-block;
font-size: 12px;
@ -5671,6 +5734,11 @@ body.rtl #feed-header-inner h2 {
}
@media (max-width: 910px) {
body {
background:none !important;
}
.upload-background-image {
display:none;
}
@ -5680,12 +5748,7 @@ body.rtl #feed-header-inner h2 {
}
.topbar .global-nav:before {
top: 8px;
margin-left: -40px;
background-position: 0 0;
width: 83px;
height: 34px;
border-radius: 10px;
background:none !important;
}
#site-notice,
@ -5701,7 +5764,7 @@ body.rtl #feed-header-inner h2 {
.language-dropdown {
width:170px;
right:50%;
margin-right:-95px;
margin-right:-85px;
margin-top:5px;
}
@ -5722,7 +5785,7 @@ body.rtl #feed-header-inner h2 {
height:35px;
}
#page-container {
margin-top:59px;
margin-top:69px;
background-color:transparent;
}
@ -5761,7 +5824,7 @@ body.rtl #feed-header-inner h2 {
outline: 0 none;
padding: 6px 27px 6px 12px;
position: fixed;
right: 45px;
right: 60px;
top: 0;
transition: all 0.2s ease-in-out 0s;
width: 60px;
@ -5805,16 +5868,16 @@ body.rtl #feed-header-inner h2 {
#top-compose {
border: 2px solid #fff;
border: 3px solid #fff;
box-shadow: none;
cursor: pointer;
display: block;
height: 35px;
height: 41px;
margin: 0;
position: fixed;
right: 6px;
top: 5px;
width: 35px;
width: 41px;
z-index: 100;
}
#top-compose.hidden {
@ -5822,7 +5885,7 @@ body.rtl #feed-header-inner h2 {
}
#top-compose:before {
font-size:25px;
line-height: 44px;
line-height: 41px;
padding-left: 2px;
}
@ -5949,7 +6012,7 @@ body.rtl #feed-header-inner h2 {
}
body {
background-color:#fff !important;
background-color:#000 !important;
}
#logo {
display:none;
@ -6023,7 +6086,7 @@ body.rtl #feed-header-inner h2 {
}
.menu-container {
margin:0;
height:47px;
height:59px;
border:0 none !important;
border-radius:0 0 0 0 !important;
box-shadow: 0 25px 55px 0 rgba(255, 255, 255, 0.5) inset;
@ -6046,7 +6109,7 @@ body.rtl #feed-header-inner h2 {
float:left;
font-size:0;
color:transparent;
height:47px;
height:55px;
padding:0 !important;
margin:0;
border-radius:0 0 0 0 !important;
@ -6062,7 +6125,7 @@ body.rtl #feed-header-inner h2 {
border:0 none !important;
}
.menu-container a:not(.current) {
height:47px;
height:63px;
}
.menu-container a:after,
.menu-container a.current:after {
@ -6082,7 +6145,7 @@ body.rtl #feed-header-inner h2 {
left: 50%;
margin-left: -35px;
width: 70px;
height: 47px;
height: 55px;
background-size: 500px 1329px;
background-color:#ccc;
}

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 48 KiB

View File

@ -2615,11 +2615,6 @@ function buildAttachmentHTML(attachments){
noCoverClass=' no-cover';
}
// After uploading media, until creating thumbnail, thumbnail url is null.
if (!this.url) {
this.url = '';
}
// play button for videos and animated gifs
var playButtonClass = '';
if(typeof this.animated != 'undefined' && this.animated === true

View File

@ -979,7 +979,7 @@ function proceedToSetLanguageAndLogin(data){
// suggest user to help translate if their browsers language does't exist
if(typeof window.availableLanguages[window.usersLanguageCode] == 'undefined' && !localStorageObjectCache_GET('languageErrorMessageDiscarded',window.usersLanguageNameInEnglish)) { // but don't nag
$('#page-container').prepend('<div class="language-error-message" data-language-name="' + window.usersLanguageNameInEnglish + '">' + window.siteTitle + ' is not availible in your language (' + replaceHtmlSpecialChars(window.usersLanguageNameInEnglish) + '). Visit <a href="https://git.wmsci.com/wamo/Qvitter/src/branch/develop/locale">Qvitter\'s repository homepage</a> if you want to help us to translate the interface. <span class="discard-error-message"></span></div>');
$('#page-container').prepend('<div class="language-error-message" data-language-name="' + window.usersLanguageNameInEnglish + '">' + window.siteTitle + ' is not availible in your language (' + replaceHtmlSpecialChars(window.usersLanguageNameInEnglish) + '). Visit <a href="https://git.gnu.io/h2p/Qvitter/tree/master/locale">Qvitter\'s repository homepage</a> if you want to help us to translate the interface. <span class="discard-error-message"></span></div>');
}
// if selected language is too similar to english, we display a message telling people to help with the translation
@ -3213,10 +3213,6 @@ $('body').on('keyup paste input', 'div.queet-box-syntax', function() {
currentVal = currentVal.replace(/<br>$/, '').replace(/&nbsp;$/, '').replace(/ $/, ''); // fix
$(this).siblings('.syntax-two').html(currentVal);
// If user click post area before load finished (top gnu logo), this is undefined.
if (!window.syntaxHighlightingRegexps) {
window.syntaxHighlightingRegexps = Object();
}
// loop through the regexps and highlight
$.each(window.syntaxHighlightingRegexps,function(k,v){