mirror of
https://github.com/Mistake35/Cedar-Django.git
synced 2026-07-17 16:11:14 +10:00
deez
This commit is contained in:
@@ -1,9 +1,8 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
#from django.contrib.auth.admin import UserAdmin
|
#from django.contrib.auth.admin import UserAdmin
|
||||||
from django.contrib.auth.models import Group
|
from django.contrib.auth.models import Group
|
||||||
from django.forms import ModelForm, PasswordInput
|
#from django.forms import ModelForm, PasswordInput
|
||||||
from closedverse_main import models
|
from django.conf import settings
|
||||||
from closedverse import settings
|
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
try:
|
from closedverse import settings
|
||||||
from closedverse.settings import brand_name
|
if not hasattr(settings, 'brand_name'):
|
||||||
except ImportError:
|
|
||||||
# use default app name by default as brand name
|
# use default app name by default as brand name
|
||||||
from closedverse_main import apps
|
from closedverse_main import apps
|
||||||
brand_name = apps.ClosedverseMainConfig.verbose_name
|
brand_name = apps.ClosedverseMainConfig.verbose_name
|
||||||
|
else:
|
||||||
|
brand_name = settings.brand_name
|
||||||
|
|
||||||
# for brand logo
|
|
||||||
from closedverse.settings import STATIC_URL
|
|
||||||
# variable for this and name are here for imports
|
# variable for this and name are here for imports
|
||||||
brand_logo = STATIC_URL + 'img/menu-logo.svg'
|
brand_logo = settings.STATIC_URL + 'img/menu-logo.svg'
|
||||||
|
|
||||||
# the name of the function is merely what's imported into settings.py
|
# the name of the function is merely what's imported into settings.py
|
||||||
def brand_name_universal(request):
|
def brand_name_universal(request):
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
from django.http import HttpResponseForbidden
|
from django.http import HttpResponseForbidden
|
||||||
from closedverse import settings
|
from closedverse import settings
|
||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
from django.contrib.auth import logout
|
|
||||||
from .models import Ban
|
from .models import Ban
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from re import compile
|
from re import compile
|
||||||
|
|||||||
+34
-19
@@ -2,13 +2,13 @@ from __future__ import unicode_literals
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from django.contrib.auth.base_user import AbstractBaseUser
|
from django.contrib.auth.base_user import AbstractBaseUser
|
||||||
from django.contrib.auth.models import BaseUserManager
|
from django.contrib.auth.models import BaseUserManager
|
||||||
from django.db.models import Q, QuerySet, Max, F, Count, Case, When, Exists, OuterRef, Subquery
|
from django.db.models import Q, Max, F, Count, Exists, OuterRef, Subquery #, QuerySet, Case, When,
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
from django.http import Http404
|
||||||
from django.core.validators import RegexValidator, URLValidator
|
from django.core.validators import RegexValidator, URLValidator
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from datetime import timedelta, time
|
from datetime import timedelta, time
|
||||||
#from passlib.hash import bcrypt_sha256
|
#from passlib.hash import bcrypt_sha256
|
||||||
# you may want to import django.conf.settings instead (then change checks for DEFAULT_FROM_EMAIL)
|
|
||||||
from closedverse import settings
|
from closedverse import settings
|
||||||
from closedverse_main.context_processors import brand_name, brand_logo
|
from closedverse_main.context_processors import brand_name, brand_logo
|
||||||
from . import util
|
from . import util
|
||||||
@@ -128,7 +128,7 @@ class Role(models.Model):
|
|||||||
organization = models.CharField(max_length=255, blank=True, null=True, help_text='Text that shows above one\'s username')
|
organization = models.CharField(max_length=255, blank=True, null=True, help_text='Text that shows above one\'s username')
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "role \"" + str(self.organization) + "\""
|
return "role \"" + str(self.organization) + "\", name " + str(self.image)
|
||||||
|
|
||||||
#mii_domain = 'https://mii-secure.cdn.nintendo.net'
|
#mii_domain = 'https://mii-secure.cdn.nintendo.net'
|
||||||
# as of writing, mii-secure is unstable, nintendo please do not f*ck me for this
|
# as of writing, mii-secure is unstable, nintendo please do not f*ck me for this
|
||||||
@@ -195,13 +195,17 @@ class User(AbstractBaseUser):
|
|||||||
return self.warned
|
return self.warned
|
||||||
def get_warned_reason(self):
|
def get_warned_reason(self):
|
||||||
return self.warned_reason
|
return self.warned_reason
|
||||||
def profile(self, thing=None):
|
def profile(self, attr=None):
|
||||||
# If thing is specified, that field is retrieved
|
# If attr is specified, that field is retrieved
|
||||||
if thing:
|
if attr:
|
||||||
# could this be shortened? or discontinued in general
|
# could this be shortened? or discontinued in general
|
||||||
return self.profile_set.all().values_list(thing, flat=True).first()
|
return self.profile_set.all().values_list(attr, flat=True).first()
|
||||||
# Otherwise just get full profile
|
# Otherwise just get full profile
|
||||||
return self.profile_set.filter().first()
|
result = self.profile_set.filter().first()
|
||||||
|
if not result:
|
||||||
|
# hacky but should make any page that requests this where it's not there, return a 404
|
||||||
|
raise Http404()
|
||||||
|
return result
|
||||||
def gravatar(self):
|
def gravatar(self):
|
||||||
g = util.get_gravatar(self.email)
|
g = util.get_gravatar(self.email)
|
||||||
if not g:
|
if not g:
|
||||||
@@ -344,7 +348,7 @@ class User(AbstractBaseUser):
|
|||||||
# trailing
|
# trailing
|
||||||
if UserBlock.objects.filter(source=source, target=self).exists():
|
if UserBlock.objects.filter(source=source, target=self).exists():
|
||||||
return False
|
return False
|
||||||
if not self.can_block(source):
|
if not self.can_block(source) or self == source:
|
||||||
return False
|
return False
|
||||||
fs = Friendship.find_friendship(self, source)
|
fs = Friendship.find_friendship(self, source)
|
||||||
if fs:
|
if fs:
|
||||||
@@ -378,18 +382,29 @@ class User(AbstractBaseUser):
|
|||||||
for post in posts:
|
for post in posts:
|
||||||
post.setup(request)
|
post.setup(request)
|
||||||
return posts
|
return posts
|
||||||
def get_yeahed(self, type=0, limit=20, offset=0):
|
def get_yeahed(self, type, limit, offset, user):
|
||||||
# 0 - post, 1 - comment, 2 - any
|
# 0 - post, 1 - comment, 2 - any
|
||||||
if type == 2:
|
yeahs = self.yeah_set.select_related('post', 'comment', 'comment__original_post', 'comment__original_post__creator').annotate(
|
||||||
yeahs = self.yeah_set.select_related('post').select_related('comment').select_related('comment__original_post').select_related('comment__original_post__creator').annotate(num_yeahs_post=Count('post__yeah', distinct=True), num_yeahs_comment=Count('comment__yeah', distinct=True), num_comments=Count('post__comment', distinct=True)).filter().order_by('-created')[offset:offset + limit]
|
# todo clean up all queries like this lmao
|
||||||
|
num_yeahs_post=Count('post__yeah', distinct=True),
|
||||||
|
num_yeahs_comment=Count('comment__yeah', distinct=True),
|
||||||
|
num_comments=Count('post__comment', distinct=True)
|
||||||
|
)
|
||||||
|
# add type= if NOT selecting all
|
||||||
|
type_query = Q(type=type) if type != 2 else Q()
|
||||||
|
if not user.is_authenticated:
|
||||||
|
# if user is not authenticated then only search yeahs in communities that don't require auth
|
||||||
|
require_auth_query = Q(post__community__require_auth=False) | Q(comment__community__require_auth=False)
|
||||||
else:
|
else:
|
||||||
yeahs = self.yeah_set.select_related('post').select_related('post__creator').annotate(num_yeahs_post=Count('post__yeah', distinct=True), num_comments=Count('post__comment', distinct=True)).filter(type=type, post__is_rm=False).order_by('-created')[offset:offset + limit]
|
require_auth_query = Q()
|
||||||
for thing in yeahs:
|
# sometimes is_rm'ed posts are searched so it's necessary to specifically specify non deleted
|
||||||
if thing.post:
|
yeahs = yeahs.filter(type_query, require_auth_query, Q(post__is_rm=False) | Q(comment__is_rm=False)).order_by('-created')[offset:offset + limit]
|
||||||
thing.post.num_yeahs = thing.num_yeahs_post
|
for yeah in yeahs:
|
||||||
thing.post.num_comments = thing.num_comments
|
if yeah.post:
|
||||||
elif thing.comment:
|
yeah.post.num_yeahs = yeah.num_yeahs_post
|
||||||
thing.comment.num_yeahs = thing.num_yeahs_comment
|
yeah.post.num_comments = yeah.num_comments
|
||||||
|
elif yeah.comment:
|
||||||
|
yeah.comment.num_yeahs = yeah.num_yeahs_comment
|
||||||
return yeahs
|
return yeahs
|
||||||
def get_following(self, limit=50, offset=0, request=None):
|
def get_following(self, limit=50, offset=0, request=None):
|
||||||
return self.follow_source.select_related('target').filter().order_by('-created')[offset:offset + limit]
|
return self.follow_source.select_related('target').filter().order_by('-created')[offset:offset + limit]
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if post.screenshot %}<a class="screenshot-container still-image" href="{% if post.is_reply %}{% url "main:comment-view" post.id %}{% else %}{% url "main:post-view" post.id %}{% endif %}"><img src="{{ post.screenshot }}"></a>{% endif %}
|
{% if post.screenshot %}<a class="screenshot-container still-image" href="{% if post.is_reply %}{% url "main:comment-view" post.id %}{% else %}{% url "main:post-view" post.id %}{% endif %}"><img src="{{ post.screenshot }}"></a>{% endif %}
|
||||||
{% if post.video %}<div class="screenshot-container still-image"><video class="vidya" controls src="{{ post.video }}" style="max-width:100%;max-height: 450px;"></video></div>{% endif %}
|
{% if post.video %}<div class="screenshot-container still-image"><video controls src="{{ post.video }}" style="max-width:100%;max-height: 450px;"></video></div>{% endif %}
|
||||||
{% if post.spoils and not post.is_mine and not post.creator.banned %}
|
{% if post.spoils and not post.is_mine and not post.creator.banned %}
|
||||||
<div class="hidden-content"><p>This post contains spoilers.</p>
|
<div class="hidden-content"><p>This post contains spoilers.</p>
|
||||||
<button type="button" class="hidden-content-button">View Post</button>
|
<button type="button" class="hidden-content-button">View Post</button>
|
||||||
|
|||||||
@@ -88,7 +88,7 @@
|
|||||||
{% if post.yt_vid %}
|
{% if post.yt_vid %}
|
||||||
<div class="screenshot-container video"><iframe class="youtube-player" type="text/html" style="max-width:100%;max-height: 450px;" src="https://www.youtube.com/embed/{{ post.yt_vid }}?rel=0&modestbranding=1&iv_load_policy=3" frameborder="0"></iframe></div>
|
<div class="screenshot-container video"><iframe class="youtube-player" type="text/html" style="max-width:100%;max-height: 450px;" src="https://www.youtube.com/embed/{{ post.yt_vid }}?rel=0&modestbranding=1&iv_load_policy=3" frameborder="0"></iframe></div>
|
||||||
{% elif post.video %}
|
{% elif post.video %}
|
||||||
<div class="screenshot-container video"><video class="vidya" controls src="{{ post.video }}" style="max-width:100%;max-height: 450px;"></video></div>
|
<div class="screenshot-container video"><video controls src="{{ post.video }}" style="max-width:100%;max-height: 450px;"></video></div>
|
||||||
{% elif post.discord_vid %}
|
{% elif post.discord_vid %}
|
||||||
<div class="DiscordCDN-container video">
|
<div class="DiscordCDN-container video">
|
||||||
<video class="discord-player" src="{{ post.url }}" style="max-width:100%;max-height: 450px;" controls></video>
|
<video class="discord-player" src="{{ post.url }}" style="max-width:100%;max-height: 450px;" controls></video>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div><a class="big-button" href="{% url "main:user-posts" user.username %}">View posts</a>
|
</div><a class="big-button" href="{% url "main:user-posts" user.username %}">View posts</a>
|
||||||
{% if profile.yeahs_visible and request.user.is_authenticated %}
|
{% if profile.yeahs_visible %}
|
||||||
<div class="post-list-outline">
|
<div class="post-list-outline">
|
||||||
<h2 class="label">Recently yeahed posts</h2>
|
<h2 class="label">Recently yeahed posts</h2>
|
||||||
{% if yeahed.count < 1 %}
|
{% if yeahed.count < 1 %}
|
||||||
@@ -37,4 +37,4 @@
|
|||||||
</div><a class="big-button" href="{% url "main:user-yeahs" user.username %}">View all yeahs</a>
|
</div><a class="big-button" href="{% url "main:user-yeahs" user.username %}">View all yeahs</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
|
|
||||||
@@ -1,9 +1,7 @@
|
|||||||
from django import template
|
from django import template
|
||||||
from closedverse_main.models import User
|
|
||||||
from closedverse_main.util import HumanTime
|
from closedverse_main.util import HumanTime
|
||||||
from closedverse_main.models import mii_domain
|
from closedverse_main.models import mii_domain
|
||||||
from closedverse import settings
|
from closedverse import settings
|
||||||
import re
|
|
||||||
|
|
||||||
register = template.Library()
|
register = template.Library()
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
from django.conf.urls import url, re_path
|
from django.conf.urls import url, re_path
|
||||||
from django.conf.urls.static import static
|
|
||||||
from django.views.static import serve
|
from django.views.static import serve
|
||||||
from django.shortcuts import redirect
|
#from django.conf.urls.static import static
|
||||||
|
#from django.shortcuts import redirect
|
||||||
|
|
||||||
from . import views
|
from . import views
|
||||||
from closedverse.settings import MEDIA_URL, MEDIA_ROOT
|
from django.conf import settings
|
||||||
|
|
||||||
username = r'(?P<username>[A-Za-z0-9-\'-._ ]+)'
|
username = r'(?P<username>[A-Za-z0-9-\'-._ ]+)'
|
||||||
community = r'(?P<community>[0-9]+)'
|
community = r'(?P<community>[0-9]+)'
|
||||||
@@ -113,4 +113,4 @@ urlpatterns = [
|
|||||||
]
|
]
|
||||||
# + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
# + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||||
# serve static and media i think???? mighTTT???????
|
# serve static and media i think???? mighTTT???????
|
||||||
urlpatterns += [re_path(r'^i/(?P<path>.*)$', serve, {'document_root': MEDIA_ROOT, }), ]
|
urlpatterns += [re_path(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT, }), ]
|
||||||
|
|||||||
@@ -2,22 +2,16 @@ import urllib.request, urllib.error
|
|||||||
# requests is only used for get_mii which is not being used currently
|
# requests is only used for get_mii which is not being used currently
|
||||||
#import requests
|
#import requests
|
||||||
from lxml import etree
|
from lxml import etree
|
||||||
from random import choice
|
|
||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
import os.path
|
import os.path
|
||||||
import random
|
from PIL import Image, ImageFile #, ExifTags,
|
||||||
from PIL import Image, ExifTags, ImageFile
|
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from binascii import crc32
|
|
||||||
from math import floor
|
from math import floor
|
||||||
from hashlib import md5, sha1
|
from hashlib import md5, sha1
|
||||||
import io
|
import io
|
||||||
from uuid import uuid4
|
|
||||||
import imghdr
|
|
||||||
import base64
|
import base64
|
||||||
from closedverse import settings
|
from closedverse import settings
|
||||||
import re
|
|
||||||
from os import remove, rename
|
from os import remove, rename
|
||||||
|
|
||||||
def HumanTime(date, full=False):
|
def HumanTime(date, full=False):
|
||||||
|
|||||||
@@ -208,7 +208,7 @@ def login_page(request):
|
|||||||
'title': 'Log in',
|
'title': 'Log in',
|
||||||
'form': form,
|
'form': form,
|
||||||
'allow_signups': settings.allow_signups,
|
'allow_signups': settings.allow_signups,
|
||||||
'reset_supported': hasattr(settings, 'DEFAULT_FROM_EMAIL'),
|
'reset_supported': settings.DEBUG or hasattr(settings, 'EMAIL_HOST_USER'),
|
||||||
})
|
})
|
||||||
|
|
||||||
def signup_page(request):
|
def signup_page(request):
|
||||||
@@ -369,8 +369,7 @@ def forgot_passwd(request):
|
|||||||
if not request.POST['password'] == request.POST['password_again']:
|
if not request.POST['password'] == request.POST['password_again']:
|
||||||
return HttpResponseBadRequest("Your passwords don't match.")
|
return HttpResponseBadRequest("Your passwords don't match.")
|
||||||
try:
|
try:
|
||||||
new = request.POST['password']
|
validate_password(request.POST['password'], user=user)
|
||||||
validate_password(new, user=user)
|
|
||||||
except ValidationError as error:
|
except ValidationError as error:
|
||||||
return HttpResponseBadRequest(error)
|
return HttpResponseBadRequest(error)
|
||||||
user.set_password(request.POST['password'])
|
user.set_password(request.POST['password'])
|
||||||
@@ -383,7 +382,7 @@ def forgot_passwd(request):
|
|||||||
})
|
})
|
||||||
return render(request, 'closedverse_main/forgot_page.html', {
|
return render(request, 'closedverse_main/forgot_page.html', {
|
||||||
'title': 'Reset password',
|
'title': 'Reset password',
|
||||||
'reset_supported': hasattr(settings, 'DEFAULT_FROM_EMAIL'),
|
'reset_supported': settings.DEBUG or hasattr(settings, 'EMAIL_HOST_USER'),
|
||||||
#'classes': ['no-login-btn'],
|
#'classes': ['no-login-btn'],
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -586,7 +585,7 @@ def user_view(request, username):
|
|||||||
user.save()
|
user.save()
|
||||||
return HttpResponse()
|
return HttpResponse()
|
||||||
posts = user.get_posts(3, 0, request, timezone.now())
|
posts = user.get_posts(3, 0, request, timezone.now())
|
||||||
yeahed = user.get_yeahed(0, 3)
|
yeahed = user.get_yeahed(0, 3, 0, request.user)
|
||||||
for yeah in yeahed:
|
for yeah in yeahed:
|
||||||
if user.is_me(request):
|
if user.is_me(request):
|
||||||
yeah.post.yeah_given = True
|
yeah.post.yeah_given = True
|
||||||
@@ -668,8 +667,6 @@ def user_yeahs(request, username):
|
|||||||
user = get_object_or_404(User, username__iexact=username)
|
user = get_object_or_404(User, username__iexact=username)
|
||||||
if user.is_me(request):
|
if user.is_me(request):
|
||||||
title = 'My yeahs'
|
title = 'My yeahs'
|
||||||
elif not request.user.is_authenticated:
|
|
||||||
raise Http404()
|
|
||||||
else:
|
else:
|
||||||
if request.user.is_authenticated and not user.can_view(request.user):
|
if request.user.is_authenticated and not user.can_view(request.user):
|
||||||
raise Http404()
|
raise Http404()
|
||||||
@@ -686,10 +683,7 @@ def user_yeahs(request, username):
|
|||||||
if not profile.yeahs_visible:
|
if not profile.yeahs_visible:
|
||||||
raise Http404()
|
raise Http404()
|
||||||
|
|
||||||
if request.GET.get('offset'):
|
yeahs = user.get_yeahed(2, 20, int(request.GET.get('offset', 0)), request.user)
|
||||||
yeahs = user.get_yeahed(2, 20, int(request.GET['offset']))
|
|
||||||
else:
|
|
||||||
yeahs = user.get_yeahed(2, 20, 0)
|
|
||||||
if yeahs.count() > 19:
|
if yeahs.count() > 19:
|
||||||
if request.GET.get('offset'):
|
if request.GET.get('offset'):
|
||||||
next_offset = int(request.GET['offset']) + 20
|
next_offset = int(request.GET['offset']) + 20
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ input[type=text], input[type=password], input[type=email], input:not([type]), se
|
|||||||
}
|
}
|
||||||
.guest .guest-message p {
|
.guest .guest-message p {
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
background: #1b1b1b;
|
background: #15151f;
|
||||||
}
|
}
|
||||||
.guest-message .arrow-button {
|
.guest-message .arrow-button {
|
||||||
border-top: 1px solid #000 !important;
|
border-top: 1px solid #000 !important;
|
||||||
|
|||||||
+32
-18
@@ -616,10 +616,18 @@ var Olv = Olv || {};
|
|||||||
a(window).on("click submit", this.onMayLeavePage)
|
a(window).on("click submit", this.onMayLeavePage)
|
||||||
},
|
},
|
||||||
onDataHrefClick: function(c) {
|
onDataHrefClick: function(c) {
|
||||||
if (a(c.target).attr("data-href")) {
|
// if is video then don't navigate
|
||||||
|
// bc most of the time you click on a video it plays in the background while navigating to the next post
|
||||||
|
// this may make it more inconvenient to click on the post but it's a win to me
|
||||||
|
//if (a(c.target).is('video')) {
|
||||||
|
if (a(c.target).attr('controls')) {
|
||||||
|
// ignore
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (a(c.target).attr("data-href")) {
|
||||||
b.Net.go($(this).attr("data-href"));
|
b.Net.go($(this).attr("data-href"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!c.isDefaultPrevented() && !a(c.target).closest("a,button").length) {
|
if (!c.isDefaultPrevented() && !a(c.target).closest("a,button").length) {
|
||||||
var d = a(this);
|
var d = a(this);
|
||||||
if (!d.hasClass("disabled")) {
|
if (!d.hasClass("disabled")) {
|
||||||
@@ -1118,10 +1126,15 @@ var Olv = Olv || {};
|
|||||||
b.ModalWindowManager.setup()
|
b.ModalWindowManager.setup()
|
||||||
}),
|
}),
|
||||||
a(document).on("olv:pagechange", function() {
|
a(document).on("olv:pagechange", function() {
|
||||||
b.ModalWindowManager.closeAll();
|
// hackily re-add modals that were open on page forward/backwards, restoring their functionality
|
||||||
if(!Olv.ModalWindowManager._windows.length && $('.mask').length) {
|
b.ModalWindowManager._windows = [];
|
||||||
b.ModalWindowManager.toggleMask();
|
a('.modal-window-open').each(function(i, v) {
|
||||||
}
|
var modal = new b.ModalWindow(v);
|
||||||
|
modal.triggerOpenHandlers(a.Deferred());
|
||||||
|
b.ModalWindowManager._windows.push(modal);
|
||||||
|
b.ModalWindowManager.currentWindow = modal;
|
||||||
|
});
|
||||||
|
//b.ModalWindowManager.closeAll()
|
||||||
}),
|
}),
|
||||||
b.ModalWindow = function(b, c) {
|
b.ModalWindow = function(b, c) {
|
||||||
this.element = a(b),
|
this.element = a(b),
|
||||||
@@ -1949,23 +1962,25 @@ var Olv = Olv || {};
|
|||||||
|
|
||||||
var handleFileChange = function(event) {
|
var handleFileChange = function(event) {
|
||||||
//var fileList;
|
//var fileList;
|
||||||
console.log('handleFileChange: files is being assigned...');
|
//console.log('handleFileChange: files is being assigned...');
|
||||||
|
var files;
|
||||||
switch(true) {
|
switch(true) {
|
||||||
case event.target.files !== undefined:
|
case event.target.files !== undefined:
|
||||||
uploadFile[0].files = event.target.files;
|
files = event.target.files;
|
||||||
break;
|
break;
|
||||||
case event.originalEvent.dataTransfer !== undefined:
|
case event.originalEvent.dataTransfer !== undefined:
|
||||||
uploadFile[0].files = event.originalEvent.dataTransfer.files;
|
files = event.originalEvent.dataTransfer.files;
|
||||||
break;
|
break;
|
||||||
case event.originalEvent.clipboardData !== undefined:
|
case event.originalEvent.clipboardData !== undefined:
|
||||||
uploadFile[0].files = event.originalEvent.clipboardData.files;
|
files = event.originalEvent.clipboardData.files;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(null === uploadFile[0].files || uploadFile[0].files.length < 1 || void 0 === uploadFile[0].files[0] || uploadFile[0].files[0].type.indexOf("image") < 0)) {
|
if (!(null === files || files.length < 1 || void 0 === files[0] || files[0].type.indexOf("image") < 0)) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
uploadFile[0].files = files;
|
||||||
Olv.Form.toggleDisabled($("input.black-button"), false);
|
Olv.Form.toggleDisabled($("input.black-button"), false);
|
||||||
uploadPreview.hide();
|
uploadPreview.hide();
|
||||||
uploadPreviewContainer.hide();
|
uploadPreviewContainer.hide();
|
||||||
@@ -1977,7 +1992,7 @@ var Olv = Olv || {};
|
|||||||
console.log('here is your fileList, and uploadFile')
|
console.log('here is your fileList, and uploadFile')
|
||||||
*/
|
*/
|
||||||
var blobURL = URL.createObjectURL(uploadFile[0].files[0]);
|
var blobURL = URL.createObjectURL(uploadFile[0].files[0]);
|
||||||
console.log(uploadFile[0].files[0])
|
//console.log(uploadFile[0].files[0])
|
||||||
uploadPreview.attr("src", blobURL);
|
uploadPreview.attr("src", blobURL);
|
||||||
uploadPreview.show();
|
uploadPreview.show();
|
||||||
|
|
||||||
@@ -2021,9 +2036,7 @@ var Olv = Olv || {};
|
|||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
});
|
});
|
||||||
|
|
||||||
c.on("drop", handleFileChange);
|
c.on("drop paste", handleFileChange);
|
||||||
// upon choosing an image, and pasting plain text after, no image would be uploaded for some reason.
|
|
||||||
// yeah i got no fucking clue how to fix this shit.
|
|
||||||
|
|
||||||
c.on("olv:entryform:post:done", function() {
|
c.on("olv:entryform:post:done", function() {
|
||||||
imageDimensions.text(b.EntryForm.tempPollutionButImageFormAllowedText);
|
imageDimensions.text(b.EntryForm.tempPollutionButImageFormAllowedText);
|
||||||
@@ -2597,7 +2610,6 @@ var Olv = Olv || {};
|
|||||||
b.Closed.changesel("news");
|
b.Closed.changesel("news");
|
||||||
$('.received-request-button').on('click', function(a) {
|
$('.received-request-button').on('click', function(a) {
|
||||||
a.preventDefault()
|
a.preventDefault()
|
||||||
window.ass = a
|
|
||||||
fr = new b.ModalWindow($('div[data-modal-types=accept-friend-request][data-action="'+ $(this).parent().parent().data('action') +'"]'));fr.open();
|
fr = new b.ModalWindow($('div[data-modal-types=accept-friend-request][data-action="'+ $(this).parent().parent().data('action') +'"]'));fr.open();
|
||||||
})
|
})
|
||||||
$('div[data-modal-types=accept-friend-request] .ok-button.post-button').on('click', function(a){
|
$('div[data-modal-types=accept-friend-request] .ok-button.post-button').on('click', function(a){
|
||||||
@@ -2916,7 +2928,7 @@ $('.post-poll .poll-votes').on('click', function() {
|
|||||||
$('.edit-post-button').on('click',function(){
|
$('.edit-post-button').on('click',function(){
|
||||||
if($('.post-content-memo').length) {
|
if($('.post-content-memo').length) {
|
||||||
b.showMessage("", "You can't edit a drawing, sorry.");
|
b.showMessage("", "You can't edit a drawing, sorry.");
|
||||||
} else if($('.vidya').length) {
|
} if($('.screenshot-container > video').length) {
|
||||||
b.showMessage("", "You can't edit your uploaded video, sorry. But you can edit the contents of the post.");
|
b.showMessage("", "You can't edit your uploaded video, sorry. But you can edit the contents of the post.");
|
||||||
et();
|
et();
|
||||||
b.Form.toggleDisabled(submit_btn, true);
|
b.Form.toggleDisabled(submit_btn, true);
|
||||||
@@ -2948,7 +2960,9 @@ $('.post-poll .poll-votes').on('click', function() {
|
|||||||
lock_comments_button.on('click',function(){
|
lock_comments_button.on('click',function(){
|
||||||
b.showConfirm("Lock comments", "Really lock up the comments? This cannot be undone.")
|
b.showConfirm("Lock comments", "Really lock up the comments? This cannot be undone.")
|
||||||
$('.ok-button').on('click',function(){
|
$('.ok-button').on('click',function(){
|
||||||
b.Form.post(lock_comments_button.attr('data-action')).done
|
b.Form.post(lock_comments_button.attr('data-action')).done(function() {
|
||||||
|
b.Net.reload();
|
||||||
|
});
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user