From 3db07bca5f0729825306aed683758104ed63fa60 Mon Sep 17 00:00:00 2001 From: kimth Date: Mon, 13 Aug 2012 19:42:08 -0400 Subject: [PATCH 01/31] Frontend polling rate aware of queue length at time of submission --- .../lib/xmodule/xmodule/js/src/capa/display.coffee | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/common/lib/xmodule/xmodule/js/src/capa/display.coffee b/common/lib/xmodule/xmodule/js/src/capa/display.coffee index 6b39805d1a..9af48cce64 100644 --- a/common/lib/xmodule/xmodule/js/src/capa/display.coffee +++ b/common/lib/xmodule/xmodule/js/src/capa/display.coffee @@ -35,8 +35,18 @@ class @Problem if @queued_items.length > 0 if window.queuePollerID # Only one poller 'thread' per Problem window.clearTimeout(window.queuePollerID) - window.queuePollerID = window.setTimeout(@poll, 100) + queuelen = @get_queuelen() + window.queuePollerID = window.setTimeout(@poll, queuelen*10) + # Retrieves the minimum queue length of all queued items + get_queuelen: => + minlen = Infinity + @queued_items.each (index, qitem) -> + len = parseInt($.text(qitem)) + if len < minlen + minlen = len + return minlen + poll: => $.postWithPrefix "#{@url}/problem_get", (response) => @queued_items = $(response.html).find(".xqueue") @@ -47,7 +57,7 @@ class @Problem @bind() delete window.queuePollerID else - # TODO: Dynamically adjust timeout interval based on @queued_items.value + # TODO: Some logic to dynamically adjust polling rate based on queuelen window.queuePollerID = window.setTimeout(@poll, 1000) render: (content) -> From a4e283e975bceeff574baa706698e6af9a8c141e Mon Sep 17 00:00:00 2001 From: kimth Date: Mon, 13 Aug 2012 20:20:19 -0400 Subject: [PATCH 02/31] File submission frontend checks for filesize --- common/lib/xmodule/xmodule/js/src/capa/display.coffee | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/common/lib/xmodule/xmodule/js/src/capa/display.coffee b/common/lib/xmodule/xmodule/js/src/capa/display.coffee index 9af48cce64..9fe6f5e80e 100644 --- a/common/lib/xmodule/xmodule/js/src/capa/display.coffee +++ b/common/lib/xmodule/xmodule/js/src/capa/display.coffee @@ -151,9 +151,16 @@ class @Problem fd = new FormData() + # Sanity check of file size + file_too_large = false + max_filesize = 10*1000*1000 # 10 MB + @inputs.each (index, element) -> if element.type is 'file' if element.files[0] instanceof File + if element.files[0].size > max_filesize + file_too_large = true + alert 'Submission aborted! Your file "' + element.files[0].name + '" is too large (max size: ' + max_filesize/(1000*1000) + ' MB)' fd.append(element.id, element.files[0]) else fd.append(element.id, '') @@ -173,7 +180,8 @@ class @Problem else alert(response.success) - $.ajaxWithPrefix("#{@url}/problem_check", settings) + if not file_too_large + $.ajaxWithPrefix("#{@url}/problem_check", settings) check: => Logger.log 'problem_check', @answers From d19244c48b9b669ac2c6365205fec98e119ae828 Mon Sep 17 00:00:00 2001 From: kimth Date: Mon, 13 Aug 2012 20:41:16 -0400 Subject: [PATCH 03/31] Polling rerenders problem when individual queued items return --- common/lib/xmodule/xmodule/js/src/capa/display.coffee | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/common/lib/xmodule/xmodule/js/src/capa/display.coffee b/common/lib/xmodule/xmodule/js/src/capa/display.coffee index 9fe6f5e80e..9d725a67ee 100644 --- a/common/lib/xmodule/xmodule/js/src/capa/display.coffee +++ b/common/lib/xmodule/xmodule/js/src/capa/display.coffee @@ -32,7 +32,8 @@ class @Problem queueing: => @queued_items = @$(".xqueue") - if @queued_items.length > 0 + @num_queued_items = @queued_items.length + if @num_queued_items > 0 if window.queuePollerID # Only one poller 'thread' per Problem window.clearTimeout(window.queuePollerID) queuelen = @get_queuelen() @@ -49,12 +50,16 @@ class @Problem poll: => $.postWithPrefix "#{@url}/problem_get", (response) => - @queued_items = $(response.html).find(".xqueue") - if @queued_items.length == 0 + # If queueing status changed, then render + @new_queued_items = $(response.html).find(".xqueue") + if @new_queued_items.length isnt @num_queued_items @el.html(response.html) @executeProblemScripts () => @setupInputTypes() @bind() + + @num_queued_items = @new_queued_items.length + if @num_queued_items == 0 delete window.queuePollerID else # TODO: Some logic to dynamically adjust polling rate based on queuelen From 936f2c49f5b9ccaf401e569c3ec94cda201b4eb3 Mon Sep 17 00:00:00 2001 From: kimth Date: Mon, 13 Aug 2012 21:00:29 -0400 Subject: [PATCH 04/31] Server-side (LMS) checking of uploaded filesize --- lms/djangoapps/courseware/module_render.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/courseware/module_render.py b/lms/djangoapps/courseware/module_render.py index 3bb1c477cb..bb69dfcc6f 100644 --- a/lms/djangoapps/courseware/module_render.py +++ b/lms/djangoapps/courseware/module_render.py @@ -336,11 +336,20 @@ def modx_dispatch(request, dispatch=None, id=None, course_id=None): - id -- the module id. Used to look up the XModule instance ''' # ''' (fix emacs broken parsing) + + # TODO: Should be in settings.py + MAX_UPLOAD_FILE_SIZE = 4*1000*1000 # 4 MB + # Check for submitted files p = request.POST.copy() if request.FILES: for inputfile_id in request.FILES.keys(): - p[inputfile_id] = request.FILES[inputfile_id] + inputfile = request.FILES[inputfile_id] + if inputfile.size > MAX_UPLOAD_FILE_SIZE: + file_too_big_msg = 'Submission aborted! Your file "%s" is too large (max size: %d MB)' %\ + (inputfile.name, MAX_UPLOAD_FILE_SIZE/(1000**2)) + return HttpResponse(json.dumps({'success': file_too_big_msg})) + p[inputfile_id] = inputfile student_module_cache = StudentModuleCache.cache_for_descriptor_descendents(request.user, modulestore().get_item(id)) instance = get_module(request.user, request, id, student_module_cache) From 1c2d034283816f2e2d496d4167599da9f4d1e5c8 Mon Sep 17 00:00:00 2001 From: kimth Date: Mon, 13 Aug 2012 21:17:47 -0400 Subject: [PATCH 05/31] LMS-side MAX_FILESIZE set in settings.py --- lms/djangoapps/courseware/module_render.py | 9 +++------ lms/envs/common.py | 1 + 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/lms/djangoapps/courseware/module_render.py b/lms/djangoapps/courseware/module_render.py index bb69dfcc6f..85eeb72c24 100644 --- a/lms/djangoapps/courseware/module_render.py +++ b/lms/djangoapps/courseware/module_render.py @@ -337,17 +337,14 @@ def modx_dispatch(request, dispatch=None, id=None, course_id=None): ''' # ''' (fix emacs broken parsing) - # TODO: Should be in settings.py - MAX_UPLOAD_FILE_SIZE = 4*1000*1000 # 4 MB - - # Check for submitted files + # Check for submitted files and basic file size checks p = request.POST.copy() if request.FILES: for inputfile_id in request.FILES.keys(): inputfile = request.FILES[inputfile_id] - if inputfile.size > MAX_UPLOAD_FILE_SIZE: + if inputfile.size > settings.STUDENT_FILEUPLOAD_MAX_SIZE: # Bytes file_too_big_msg = 'Submission aborted! Your file "%s" is too large (max size: %d MB)' %\ - (inputfile.name, MAX_UPLOAD_FILE_SIZE/(1000**2)) + (inputfile.name, settings.STUDENT_FILEUPLOAD_MAX_SIZE/(1000**2)) return HttpResponse(json.dumps({'success': file_too_big_msg})) p[inputfile_id] = inputfile diff --git a/lms/envs/common.py b/lms/envs/common.py index 8ebf72f22a..24a70e3e45 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -128,6 +128,7 @@ TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.csrf', #necessary for csrf protection ) +STUDENT_FILEUPLOAD_MAX_SIZE = 4*1000*1000 # 4 MB # FIXME: # We should have separate S3 staged URLs in case we need to make changes to From 895cf2c2ed941df877e1b6080d8c1e60d47ef3a9 Mon Sep 17 00:00:00 2001 From: kimth Date: Mon, 13 Aug 2012 21:18:49 -0400 Subject: [PATCH 06/31] Front end file size limit matches server-end limit --- common/lib/xmodule/xmodule/js/src/capa/display.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/lib/xmodule/xmodule/js/src/capa/display.coffee b/common/lib/xmodule/xmodule/js/src/capa/display.coffee index 9d725a67ee..c00b680eba 100644 --- a/common/lib/xmodule/xmodule/js/src/capa/display.coffee +++ b/common/lib/xmodule/xmodule/js/src/capa/display.coffee @@ -158,7 +158,7 @@ class @Problem # Sanity check of file size file_too_large = false - max_filesize = 10*1000*1000 # 10 MB + max_filesize = 4*1000*1000 # 4 MB @inputs.each (index, element) -> if element.type is 'file' From 137d4856cc06597ded53af4eb55c9fd4c56cb2db Mon Sep 17 00:00:00 2001 From: David Ormsbee Date: Tue, 14 Aug 2012 11:54:02 -0400 Subject: [PATCH 07/31] We're loading static assets from the askbot theme directory in the lms proj now. --- lms/envs/common.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lms/envs/common.py b/lms/envs/common.py index 8ebf72f22a..a657949a3c 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -221,8 +221,7 @@ STATIC_ROOT = ENV_ROOT / "staticfiles" STATICFILES_DIRS = [ COMMON_ROOT / "static", PROJECT_ROOT / "static", - ASKBOT_ROOT / "askbot" / "skins", - + PROJECT_ROOT / "askbot" / "skins", ] if os.path.isdir(DATA_DIR): STATICFILES_DIRS += [ From 91b6bb649c8d0d0fbd54d18293d5ce6244391c42 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Thu, 9 Aug 2012 13:28:13 -0400 Subject: [PATCH 08/31] Move queue interface url and auth into configuration, rather than hardcoding it --- cms/envs/common.py | 9 +++++++++ common/lib/capa/capa/xqueue_interface.py | 9 ++------- lms/djangoapps/courseware/module_render.py | 14 ++++++++++---- lms/envs/aws.py | 2 ++ 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/cms/envs/common.py b/cms/envs/common.py index 6faecafec1..3226d99005 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -90,6 +90,15 @@ TEMPLATE_CONTEXT_PROCESSORS = ( ################################# Jasmine ################################### JASMINE_TEST_DIRECTORY = PROJECT_ROOT + '/static/coffee' + +#################### CAPA External Code Evaluation ############################# +XQUEUE_INTERFACE = { + 'url': 'http://localhost:8888', + 'auth': {'username': 'local', + 'password': 'local'} +} + + ################################# Middleware ################################### # List of finder classes that know how to find static files in # various locations. diff --git a/common/lib/capa/capa/xqueue_interface.py b/common/lib/capa/capa/xqueue_interface.py index 70f086120e..399cce9b6d 100644 --- a/common/lib/capa/capa/xqueue_interface.py +++ b/common/lib/capa/capa/xqueue_interface.py @@ -7,13 +7,10 @@ import logging import requests import time -# TODO: Collection of parameters to be hooked into rest of edX system -XQUEUE_LMS_AUTH = { 'username': 'LMS', - 'password': 'PaloAltoCA' } -XQUEUE_URL = 'http://xqueue.edx.org' log = logging.getLogger('mitx.' + __name__) + def make_hashkey(seed=None): ''' Generate a string key by hashing @@ -63,7 +60,7 @@ class XqueueInterface: Interface to the external grading system ''' - def __init__(self, url=XQUEUE_URL, auth=XQUEUE_LMS_AUTH): + def __init__(self, url, auth): self.url = url self.auth = auth self.session = requests.session() @@ -117,5 +114,3 @@ class XqueueInterface: return (1, 'unexpected HTTP status code [%d]' % r.status_code) return parse_xreply(r.text) - -qinterface = XqueueInterface() diff --git a/lms/djangoapps/courseware/module_render.py b/lms/djangoapps/courseware/module_render.py index 85eeb72c24..46889c878b 100644 --- a/lms/djangoapps/courseware/module_render.py +++ b/lms/djangoapps/courseware/module_render.py @@ -7,9 +7,9 @@ from django.http import Http404 from django.http import HttpResponse from django.views.decorators.csrf import csrf_exempt +from capa.xqueue_interface import XQueueInterface from django.contrib.auth.models import User from xmodule.modulestore.django import modulestore -from capa.xqueue_interface import qinterface from mitxmako.shortcuts import render_to_string from models import StudentModule, StudentModuleCache from static_replace import replace_urls @@ -23,6 +23,12 @@ from courseware.courses import (has_staff_access_to_course, log = logging.getLogger("mitx.courseware") +xqueue_interface = XQueueInterface( + settings.XQUEUE_INTERFACE['url'], + settings.XQUEUE_INTERFACE['auth'] +) + + def make_track_function(request): ''' Make a tracking function that logs what happened. @@ -172,9 +178,9 @@ def get_module(user, request, location, student_module_cache, position=None): # TODO: Queuename should be derived from 'course_settings.json' of each course xqueue_default_queuename = descriptor.location.org + '-' + descriptor.location.course - xqueue = { 'interface': qinterface, - 'callback_url': xqueue_callback_url, - 'default_queuename': xqueue_default_queuename.replace(' ','_') } + xqueue = {'interface': xqueue_interface, + 'callback_url': xqueue_callback_url, + 'default_queuename': xqueue_default_queuename.replace(' ', '_')} def _get_module(location): return get_module(user, request, location, diff --git a/lms/envs/aws.py b/lms/envs/aws.py index 460ec18d27..c704fd164e 100644 --- a/lms/envs/aws.py +++ b/lms/envs/aws.py @@ -54,3 +54,5 @@ AWS_ACCESS_KEY_ID = AUTH_TOKENS["AWS_ACCESS_KEY_ID"] AWS_SECRET_ACCESS_KEY = AUTH_TOKENS["AWS_SECRET_ACCESS_KEY"] DATABASES = AUTH_TOKENS['DATABASES'] + +XQUEUE_INTERFACE = AUTH_TOKENS['XQUEUE_INTERFACE'] From 09fc932a207d3560949654387dc3ede77ccea04c Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Tue, 14 Aug 2012 09:14:31 -0400 Subject: [PATCH 09/31] Add default XQUEUE_INTERFACE to the dev environment --- lms/envs/dev.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lms/envs/dev.py b/lms/envs/dev.py index 85850e81e3..38d38034b5 100644 --- a/lms/envs/dev.py +++ b/lms/envs/dev.py @@ -53,6 +53,14 @@ CACHES = { } } +XQUEUE_INTERFACE = { + "url": "http://xqueue.sandbox.edx.org", + "auth": { + "username": "lms", + "password": "***REMOVED***" + } +} + # Make the keyedcache startup warnings go away CACHE_TIMEOUT = 0 From f09aca917fdb51e6a02303b4f9eb464bb656c939 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Tue, 14 Aug 2012 09:17:37 -0400 Subject: [PATCH 10/31] Fix name of XQueueInterface --- common/lib/capa/capa/xqueue_interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/lib/capa/capa/xqueue_interface.py b/common/lib/capa/capa/xqueue_interface.py index 399cce9b6d..9573599245 100644 --- a/common/lib/capa/capa/xqueue_interface.py +++ b/common/lib/capa/capa/xqueue_interface.py @@ -55,7 +55,7 @@ def parse_xreply(xreply): return (return_code, content) -class XqueueInterface: +class XQueueInterface: ''' Interface to the external grading system ''' From 43745dacca737453a2f4691e7d456b538848a7b4 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Tue, 14 Aug 2012 09:31:42 -0400 Subject: [PATCH 11/31] Add queue interface for test purposes --- lms/envs/test.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lms/envs/test.py b/lms/envs/test.py index cd0e984940..7af7acfc37 100644 --- a/lms/envs/test.py +++ b/lms/envs/test.py @@ -50,6 +50,15 @@ COMMON_TEST_DATA_ROOT = COMMON_ROOT / "test" / "data" GITHUB_REPO_ROOT = ENV_ROOT / "data" +XQUEUE_INTERFACE = { + "url": "http://xqueue.sandbox.edx.org", + "auth": { + "username": "lms", + "password": "***REMOVED***" + } +} + + # TODO (cpennington): We need to figure out how envs/test.py can inject things # into common.py so that we don't have to repeat this sort of thing STATICFILES_DIRS = [ From c4bed2c1281b0f9dc3bdcc0a60cda18b29e806be Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Tue, 14 Aug 2012 11:32:39 -0400 Subject: [PATCH 12/31] Add basic authentication support for requests made to the xqueue server --- cms/envs/common.py | 5 +++-- common/lib/capa/capa/xqueue_interface.py | 6 +++--- lms/djangoapps/courseware/module_render.py | 3 ++- lms/envs/dev.py | 5 +++-- lms/envs/test.py | 5 +++-- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/cms/envs/common.py b/cms/envs/common.py index 3226d99005..1767202141 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -94,8 +94,9 @@ JASMINE_TEST_DIRECTORY = PROJECT_ROOT + '/static/coffee' #################### CAPA External Code Evaluation ############################# XQUEUE_INTERFACE = { 'url': 'http://localhost:8888', - 'auth': {'username': 'local', - 'password': 'local'} + 'django_auth': {'username': 'local', + 'password': 'local'}, + 'basic_auth': None, } diff --git a/common/lib/capa/capa/xqueue_interface.py b/common/lib/capa/capa/xqueue_interface.py index 9573599245..d9822d24f3 100644 --- a/common/lib/capa/capa/xqueue_interface.py +++ b/common/lib/capa/capa/xqueue_interface.py @@ -60,10 +60,10 @@ class XQueueInterface: Interface to the external grading system ''' - def __init__(self, url, auth): + def __init__(self, url, django_auth, basic_auth=None): self.url = url - self.auth = auth - self.session = requests.session() + self.auth = django_auth + self.session = requests.session(auth=basic_auth) def send_to_queue(self, header, body, file_to_upload=None): ''' diff --git a/lms/djangoapps/courseware/module_render.py b/lms/djangoapps/courseware/module_render.py index 46889c878b..08c11b50b7 100644 --- a/lms/djangoapps/courseware/module_render.py +++ b/lms/djangoapps/courseware/module_render.py @@ -25,7 +25,8 @@ log = logging.getLogger("mitx.courseware") xqueue_interface = XQueueInterface( settings.XQUEUE_INTERFACE['url'], - settings.XQUEUE_INTERFACE['auth'] + settings.XQUEUE_INTERFACE['django_auth'], + settings.XQUEUE_INTERFACE['basic_auth'], ) diff --git a/lms/envs/dev.py b/lms/envs/dev.py index 38d38034b5..882a82b8f0 100644 --- a/lms/envs/dev.py +++ b/lms/envs/dev.py @@ -55,10 +55,11 @@ CACHES = { XQUEUE_INTERFACE = { "url": "http://xqueue.sandbox.edx.org", - "auth": { + "django_auth": { "username": "lms", "password": "***REMOVED***" - } + }, + "basic_auth": ('anant', 'agarwal'), } # Make the keyedcache startup warnings go away diff --git a/lms/envs/test.py b/lms/envs/test.py index 7af7acfc37..187cb5c68e 100644 --- a/lms/envs/test.py +++ b/lms/envs/test.py @@ -52,10 +52,11 @@ GITHUB_REPO_ROOT = ENV_ROOT / "data" XQUEUE_INTERFACE = { "url": "http://xqueue.sandbox.edx.org", - "auth": { + "django_auth": { "username": "lms", "password": "***REMOVED***" - } + }, + "basic_auth": ('anant', 'agarwal'), } From 9687dc83979f7c0505720ea1313c056fc6b26af9 Mon Sep 17 00:00:00 2001 From: David Ormsbee Date: Tue, 14 Aug 2012 12:20:58 -0400 Subject: [PATCH 13/31] Add social images to Askbot theme --- .../skins/mitx/media/images/email-sharing.png | Bin 0 -> 1095 bytes .../mitx/media/images/facebook-sharing.png | Bin 0 -> 1085 bytes .../mitx/media/images/google-plus-sharing.png | Bin 0 -> 1161 bytes .../mitx/media/images/lrg/email-sharing.png | Bin 0 -> 8874 bytes .../mitx/media/images/lrg/facebook-sharing.png | Bin 0 -> 8433 bytes .../skins/mitx/media/images/lrg/facebook.png | Bin 0 -> 205 bytes .../media/images/lrg/google-plus-sharing.png | Bin 0 -> 9367 bytes .../skins/mitx/media/images/lrg/linkedin.png | Bin 0 -> 229 bytes .../mitx/media/images/lrg/twitter-sharing.png | Bin 0 -> 8867 bytes .../skins/mitx/media/images/lrg/twitter.png | Bin 0 -> 235 bytes .../mitx/media/images/lrg/youtube-sharing.png | Bin 0 -> 14387 bytes .../mitx/media/images/social/email-sharing.png | Bin 0 -> 1095 bytes .../media/images/social/facebook-sharing.png | Bin 0 -> 1085 bytes .../media/images/social/google-plus-sharing.png | Bin 0 -> 1161 bytes .../media/images/social/twitter-sharing.png | Bin 0 -> 1065 bytes .../media/images/social/youtube-sharing.png | Bin 0 -> 1396 bytes .../skins/mitx/media/images/twitter-sharing.png | Bin 0 -> 1065 bytes .../skins/mitx/media/images/youtube-sharing.png | Bin 0 -> 1396 bytes 18 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 lms/askbot/skins/mitx/media/images/email-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/facebook-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/google-plus-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/lrg/email-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/lrg/facebook-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/lrg/facebook.png create mode 100644 lms/askbot/skins/mitx/media/images/lrg/google-plus-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/lrg/linkedin.png create mode 100644 lms/askbot/skins/mitx/media/images/lrg/twitter-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/lrg/twitter.png create mode 100644 lms/askbot/skins/mitx/media/images/lrg/youtube-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/social/email-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/social/facebook-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/social/google-plus-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/social/twitter-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/social/youtube-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/twitter-sharing.png create mode 100644 lms/askbot/skins/mitx/media/images/youtube-sharing.png diff --git a/lms/askbot/skins/mitx/media/images/email-sharing.png b/lms/askbot/skins/mitx/media/images/email-sharing.png new file mode 100644 index 0000000000000000000000000000000000000000..57fcee00e9fe761674706aa60e8c699c9ca87fee GIT binary patch literal 1095 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 buwVZI>rjb<6xVPw00000NkvXXu0mjfEyo+L literal 0 HcmV?d00001 diff --git a/lms/askbot/skins/mitx/media/images/lrg/email-sharing.png b/lms/askbot/skins/mitx/media/images/lrg/email-sharing.png new file mode 100644 index 0000000000000000000000000000000000000000..2e5e972c2b03e3e3215a609af452aca9e02ec177 GIT binary patch literal 8874 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 WUm6n{|NG;^K=;Pgvdd1fVwpR literal 0 HcmV?d00001 diff --git a/lms/askbot/skins/mitx/media/images/lrg/facebook-sharing.png b/lms/askbot/skins/mitx/media/images/lrg/facebook-sharing.png new file mode 100644 index 0000000000000000000000000000000000000000..782e8306802b663ae61b2be1c0df595807987e81 GIT binary patch literal 8433 zcmcIp2U}B1w4D?nA_$^L6Nn%kLlNmEsHpS~qLk1PL=>f$1W>VDL5g%t=z<6+O^PJg z5RjsPNKxXY*MugJkmTjQ_Z!~%zVl66d(E7E=FH4l`=O21MP6=EZU6wU>80~_06^JU zC_r$sldZ^M8aolWV{-Y9eTd(k2+vSoVC)m(<%={8_Vo9)^Y!$Jy4CHg4*)XV^t`b{ zP1nLa8AWg#P5KC3xwz3 z!}ZfRYn<&IPkXNTwTip<0jVMViX7q?4n(d8+7h*r_o9KI9-h>djt+x0T=-oCFIXea$QmJDM zzH@I>K#1D^dyQv5*PB8cn^hk`KP{U5u62{?Ng zT1FH`EY^<j?hd@+T>(~ymgCB zK+Ob@>fI@wAXmt1a;vKiI6z?6zOUw$_aFSb6Yl0-+k4T`*kc7k2#G3WVQYJ%-t_au zb<<(Y`PTi>)_tRq1Rh{NB&(O}8PJOoyIH3A6oTQdXR_*1tgP5Wg7<&i8N>N^UxWAn zZNl`8A0g!A^;bV;=_vNYZMX{7byc(4l{m55u9`^vQSEIBDHzVh=nE%~2lz3NVn7|_ zY@g$;X}ylifa>=sfTrAS)^cmROE%G2oc}%R65fhi*^x^f=#NzAZx1+d+FsyekzOtFu#{(H5+bUg5Rj^~lUXaKM`?{CJ&r5 zl&@A1FK zNKFz-@}re0Hz?`;1UWy8jNU^9cObd`cZljc+Qu$xhBGBe6R%wFh?m$4BqoUVRCXbH zME1k(x0UVmZB28*vJQkR88SIK`|iYByK@;>{@5}f4o}LP-@j&DhXjd-nBnF|r#@MW zi@a_j?V1|naKg}BvHfPlrqM`OACAo04y8nZP~Tl{kWh)5i%2ik+&jsYaL~BkI}t<8 zo~y9R;yQlh?$c6rNy*(l*Pk*u#}Ei8i5x<%unXQ%j;eq|FjOt7G{4RNW$ZJieXgPT z0Vk__Wl4*Ax~T>Izoif2=HJ(EUfLTbN$D8MBR~=>z&EX6+W$%dZpZFFIK-S;>^ZH5 zDc%T}Zk2A6kJGBl;ec?+bn)YvhD2%F-TaGAi z`Lh$Kb2>Jy6#AzlPZKdtfr(iuMy(6wiAp#Q%^I&Ea1LF!j1;gxf9vZ=AU?hH?7~_F zY37M;@h97-K(SAO4DK(GESRRM_PRACcn;Dd$VbLA`s6<~#DxjxM0ZVOMIeqCA+9 zZjJbQMny&;?AH{TFPRr=rf=zE1U?1We?U?Y%L?l|0}`lZNOCgA`L;fxFNCG75bmk) zD%!_0IRIYij}Pv;Y)Qbu2U)=do|g_n(AqNB18!(YpL@)Fjc<|lA&;?!{WGArWRt1U znfqwYFoAuJTU|!y^0^}U;2`yJM|)*(Ww_sTxslHo9)UAEw>7mw7F!e}H&%?6Kwb!q z-a$WbuAeD3!hdB=x`TJ0-rTJ&SM0US{0C)5yUa;mmZEUI{Smvhs5~YN^T>~Kkwcl! z&>jT|${)+hwbH?c`L(MO1>Ti{Oz=cAD zi5vG*4$OSA`;uhG^{J!lH6of2bai->5U6Jzew6B^S{|pu%smL+KZrIbCR}B zfB3uuV

;L~u`~-1%q1(IU84=i4`p2591Y(%)BD!CEDgBY2I@&hsllqAtL!kfEX> zE*()$H>|HWz$WLzn9UDcOlfxY>oS`s8#z4ce{Saf+R1ozn)0~Y?#=$Wff|EB)rFO| zRKCWQBRFl@3H*Zy*iWTTNhtip_{veq?Ra}ibsB&s8QZQpSDPlUF0@;d^-?hvNm! z5TOP6O`FFMDXHCYtbanL@>$IB4-{%>DmJ|G09T_~bF=BYDkNncal5j({v%gk7IVfO zPYaHr85}B1AWSOb%tsVgeiqP^Rq`vYDPPrL3R#!F16j^t*Zo*G2RbC9bFDF|I^X`` zI=p(<@n!eYt=!TIvibM{jv6{#>a=B)YFfu(Oi6%D9wzNtNw+pGZs*IE;M=v+8JXix z#LuS`UMqvjB}kZgs7MDsopdI*4j{dpA|gi>tgtbz_8*3$d8ln@;<7c3?+`iJfVJn_ zYH%n#fEdt|^!QHfo>-r+pSQo_ndRvP5B%xMICXHa&*kH$j|iHRAe3gOk7EAexB4ER zzq9d`RTx;hsW!NIGgI*j=L|QBNFAlXdIC zj`vhU1?gGsUeMF2`bXCA(WBt}!-cQK+IJ06OqZ$)O_5f`TOqFip<2WWZnP||O=^2h zp|3lSd^sYkbGUuj!8gFJV1gCNcHuMd|)mxd%E+}6!&FwPGrx@)L})b ze&*`_yu!wT3P;@3ro3SM@wzO4G*i4t!?W!g+b7eAj!#xp$JC;Zf`E@W6%OB=3PyzP z#NGg^ctzwjAM)*Fr^)3I-BE{su1`@K=Ffar`&-@6Edd7baqKf7#{jd8B{Ec8F-9~{ zT2VavxqcxIoPh&dJ8g3YL^?c>{+pJ~#nh@w=aw}HuH;3+RC#T~KiSVvX5+P9#jkPV)>WC^Ch4MvIeOXLxPkc<;k(gz&s zrx|&F(PFN)t%r!*{LA|F;7CHd+V{}kHwH$A=}WnOkF<6#z6CG7Iq3{s}b zwIw%ocdU%YZar<1c^ZY|TDo#t?JP1j!)wYxL;<{QGg$jr(%e{rT)pCYj4)#W4i{6) zBJc@%KMd_yQ6)=3BYUOM0~M!GKCq_v4yhFwKY$B(!pK|{LzwPr37VO2y%0ztDJcKnJewI z59`jDFD%8O3wu@c>SxC#6Ev2as`n$3K{+eAliOTL>{P`1AIV6IFR@{o&lgIC9m2#~dWD ztLZp>((q^MoR--(>c~Jn2vVv^Ld1F5nu9VXcJ*k zC4q7ysfErtyfV0p~`Jpe3zA!0^lt%}? znDGFnJRl6Zu=w*oZsaXDcek=o+gUs2?PecB+l$RDqXJ?%ve zq)Iv&TCSsh#b*~eihuHj#D2NX{aZ2DK7ke1oRg*;n= z0KzfUsAnry_{1_r_UgITFZ{W{RAm3K{PutV32w6$ZH+kuaOQGDXaQ%QtJkeYOs;^t3jOp))qgo@|8O zT;?0Gt*PAA4>Ju=K;UzB+Z*KFM^TEx_Y8K8&mch4NPt!1p5~s}@ta7QLg)j2kTdq$ zG*FTsEKnhAH3T5oH-s(xuoE}{ICjF%zS-&#KTvIuc4XHOJYE9g^jB#vcDCdHU{suw zAlncVn8gO70m-?sip_#%IprNiwhL9E|D$^`Fif%7lLzEVW+^v#Pe-zIqK<%2dlYO@ z%rc+|@InRbPJF}~IYVGM*SUe>j5iv1{NUUb4~8CnwpzL#4@0ssibnv@N4>YJl=*Lf z29N6;0uNvk*&X8s%i|A{yX@He7A6)2gFeWI$j`lvdI%v6i(TXdoHxQyaofR#sXk#B}5_=KuBmdmk8SjXrk2h^l)zU^ikGRSkCcJ1wKw< zK-pjhKyi?2v#J$43go5$KxWBWVv`yG5{Hn3h*I=O{t(=26JTQ^-3K-heO(4TkTd%*#s$8BoJ;ICalO4AKDclY*Tcyw0mON_ofzRhAjc81A%tVL z>UedwAKf`|5+*?6UG01@!QII}y22ggHtp>od`5PWREvrKAP>@B_;dZyGD$Y+q5PMKS* zw(ny9Mw#%rWh&#?mA9!x8{Q&W9g2C#10#p6K}I`D&e%OgRxo<|BwmCr#&2tw=H{j6 z@dfOcTi!w$Tn()GPx`8b^q3ZHvtEV{rsG-nZeX?`wW;wHnJb+xPa|f(mt1|miR7DV z1Za`ny*Hyik(&||)pr3|e(+@VBlKRBugc7Tar}Vn-g(szh92|32>_s%XQ)DOM`iFRbA_k@vq7Md5tRRb^mG)=FYJN@j9b&Oq$fU?{>DFKec7} z{9dhjDb;Iyoolj#zP^;tx}o1c`}obV?I6#>x`Z?CI@W)=Voigntg5JVrvF)~Q?LRd z2MXu#+gXhv0=A#L`{Yq^MLvc;n zDISG2^Nlw?#WxrwQnR=>MGtrDP}zzKNaU>w`7zrF2&gWFA1FGd&FUPmxqrfFVB%!g zPWeig!(T4{jTNlK!cJet%V%A03~f;_i?=UFuKb204;e4k32xZ5vg)o-lWh49E6;|Pj@NL_d zJm{+B$y>}2kH93`AK5{bu7mL#Z*ZPI0!$SC(&uHpr9* zYO&U1D&DZy7H$|$@A1q>T##>smbsNTGHzB30>#xir%Hq+;F{J~Qz}|7$=XCdh*Piu z{LHm=SsgWuQ_DN2r^kj)J5qB4v|xTwLd(qwP-Vkz=TxgG|J~|k`Ky+V&la@8)|PZX zwS|4}!|Kyi^G)B+pVk-SC|t*WF(v)g-7(wDi6U{)uGFi2Z#%)Sx;ynSGP>vPLn+Cn zd*$AxJKkvp!Y@|;VV&zwY!VTV0TNkyZv(Wh%uZA@)2oBj+>z9CpX#UfJL2$5?@Ukw z#nNkwm0@^JK_5tUFvR;omP0N_9edw65x6w9 zf)A``>oK@E6H7)u!#?g9$qv-Lba|9d)1qHIhHOD1ep-G!h%KO3MA(LKZK;DcZOhlE z@q;f-$U?<)wOJ7BA6&~%xg*TmZBX=%rY+#5jnS|kxPf*^wI|CZF`yD&TyRX)$9dPQv7@E zM02e6gN0?^Vn1>_F8+Frh|c+$*y&k_g_n2{s)9;rn{sA4`?t5YoqIZ$cEZz5BW|U5~MKBFlq4$M?5wRi8FJ z&FDtR(LqQA+SU5#tQ^m+FuO;$^WYFPHi_k16xZXrX;*CLad}Z!*xLT4 zhu2x-Zz^k+0&vilyLb*+W48ml+?Mo*o+1{<^|47_A8|8Wh!$pd6Yu#8zvOz9dA6-h zjCRW@(&JCN(TGBn5M}PZL{Ky#mHN=*ZN&_)LB3dws3kA$e$4DRJYig1h?zdMdNAP3 znd`pprg+SdWa)<1?&Pz3<@Ybnj!|7?;u4;`uPe$DVo90OJL94>V_i%oF-fZWgselP zbP%g-?k&W7~7JhZa5P6wwUpxyFh){TcVaWa_2AjJiw(q-(;o9U*0%O1|!=L!rY|1yu z2muZ6;at#vP-7YPYFlra&p_{01FWS@{|oKJVSk3dAhG#&D%h%+>z~nW(ZXGJY0LMa za={_*p2hmLt_!Q$Ms+V0Z$u1}`4T}d)M5Hd%rz>PG3l+|KVjO(qsbnntwW6eWXYeB zXvewA-@pF1V6pa-fW{Sxi|z6C*o-!XdtRQEk(;!{iKEo&M&&*H?2j5CZUpuN}XO3T3no{;0Oh>W>}a z{l}1EF3bg+xRXUap!>=C*z1Q#eH_z8$PQu(z3l_>Xi#g>hO+7Yu_$(t?h+B z_8B0ZXfTbQQZpiV7w`+OUH;=5j;V8Dw)c`E!|8lJ2KCRP%DJnuM(b6+x^vxbMD>P6 zO);X%%%1C$=S3FTF*8V@Fohkt3EO+2$c|Rb-}uo}=j4W_7SY)t!=dobh5s6*Iug*LknXR zr7eXPI88B$d7jdm%aGLKj5eP0oSk2EOy3X!FQ5`Rg|jjV-i~UEWMsr|NzFHi#RMZh zgCrtrUPufZ{1jhau!eml$`7bAdlrqoXs@=~@{cg4()Oi-sl!e>xg`FO9Di3%Au}OB+TK1^o_5n|ManXJZtlF+L40oL!v`YHlW`blN zEe(QE97l-_zTg(Nkf3e`$7}Ar7TN)W6(gc_aT348w~AI|owvx)6RO-d6iSjUOeu>jUxxGdG;Vv}pt9phw` zelQkXNYk6xYjqXHW!`za&G4?3BK>LT-oUB5=dmjH>%?V@2!}@P$8!WIU8E^=o<~H^6%;0NoKUod*CK2t#kpLHbW(Nu# zOSpFRRj<0~Y7zj^n#<6HY-nOP?{4o}Ed&Do5#ax-2~E84jAyAzY{5vF%BHptZAg=e z{KjyxsiR|vOMW{MFe5hEP2I<@_ddZCo$tL- z#~SQgasGt~DUm<`T#QRnL)xjxG{a!s0z1w>H#qUF#te2`eBinS9FTzD;^q*-atS-t r$;hSs;*ntg3jY6I1Xq>^4gwNROnXv2iaz|;nW>4@`I@tsMDG6qxLkG@ literal 0 HcmV?d00001 diff --git a/lms/askbot/skins/mitx/media/images/lrg/facebook.png b/lms/askbot/skins/mitx/media/images/lrg/facebook.png new file mode 100644 index 0000000000000000000000000000000000000000..f024b7c8ae509831e6fd5b8e6b9dd05922c587e8 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZL!3HFE2J#pJsVSZ=jv*Dd-d@|t*j)v?AAh>1Gp1nla@!+k6d(<~_W|gnsbwGZRnEVORi2_WfIZMs5W|v8ARb9+- zWxd)Cc{0AFnHs`;Mn%loywL?|MAnOpza~{cg`63spGNRU=bggTe~DWM4f D;wDOf literal 0 HcmV?d00001 diff --git a/lms/askbot/skins/mitx/media/images/lrg/google-plus-sharing.png b/lms/askbot/skins/mitx/media/images/lrg/google-plus-sharing.png new file mode 100644 index 0000000000000000000000000000000000000000..ddf2abef837b3ed15c02faa72ea88b03ff22b47e GIT binary patch literal 9367 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 literal 0 HcmV?d00001 diff --git a/lms/askbot/skins/mitx/media/images/lrg/twitter-sharing.png b/lms/askbot/skins/mitx/media/images/lrg/twitter-sharing.png new file mode 100644 index 0000000000000000000000000000000000000000..55b29fafc0fa96a29a8dc77de2a2a3ecc3caa922 GIT binary patch literal 8867 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

lKiGtb72vJii0@8dk0KbsVCY; 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 F{{g69hmZgO literal 0 HcmV?d00001 diff --git a/lms/askbot/skins/mitx/media/images/lrg/twitter.png b/lms/askbot/skins/mitx/media/images/lrg/twitter.png new file mode 100644 index 0000000000000000000000000000000000000000..3d1856f834af5b95c587830de81c0e60e02b3796 GIT binary patch literal 235 zcmV*GqW2+_HV2W0ZiC0&j!C21@}{uV}j_( z1{*f`DFOED;A{(*nNr6F)%sW4C-u3&7odZg9H5ufQ8WjL98e~Rf@F4JdvE+xz>x?J l09zv10<01m3PK?n)dH{W?EEpQVr>8b002ovPDHLkV1hlLS+)QG literal 0 HcmV?d00001 diff --git a/lms/askbot/skins/mitx/media/images/lrg/youtube-sharing.png b/lms/askbot/skins/mitx/media/images/lrg/youtube-sharing.png new file mode 100644 index 0000000000000000000000000000000000000000..111aa685a85524cb646508e3f92c83082bd3aa2b GIT binary patch literal 14387 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 U*|ijlW33qLU($Q2<8bqT0T*p%aR2}S literal 0 HcmV?d00001 diff --git a/lms/askbot/skins/mitx/media/images/social/email-sharing.png b/lms/askbot/skins/mitx/media/images/social/email-sharing.png new file mode 100644 index 0000000000000000000000000000000000000000..57fcee00e9fe761674706aa60e8c699c9ca87fee GIT binary patch literal 1095 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 buwVZI>rjb<6xVPw00000NkvXXu0mjfEyo+L literal 0 HcmV?d00001 diff --git a/lms/askbot/skins/mitx/media/images/social/twitter-sharing.png b/lms/askbot/skins/mitx/media/images/social/twitter-sharing.png new file mode 100644 index 0000000000000000000000000000000000000000..7d171d0fefa3f5dfbff33538098deb100ac5fbaf GIT binary patch literal 1065 zcmV+^1lIeBP)Jd{pvbu~9Q04K%o@#gf3#ShK`gd%r<((>U>f#M>Y#00 z8^v}0(f+wo3H+lqw7+apP^gfSIh0Y7BG->~F7wBIdj8QLZ$5l~-|dfRFL=QI*nPjx z{kZ#ncT-yH|CGhx#bCGK(a}-W(b3`8{n&^;yoZmF#wd274Ruh`$jC_H!EJ4A%Ht~W z3MTOzw2SLFfgPxY;#`FX^Od`WF2y#?KnHXcdpXzgg$`beX_xQfC7k)!4E}(&Qe9nr zzM-LE6O@(C&d!2@U&0);;WEbYJl0^DcuXl)VFUKzJhUN?gtAy95(ymKWAkGjz`gLg zW!Q=zpbbOHSbcqcpx_sw4WD5(g02clXv6M8gC9cda8_ z@h0=R;wN}YJn#ytVD3SzgVP?zcj8!o;vKXiiItF(&zXw^mwO3bXCao~A8 z0IO{x;vbO`>{=E4)g1reO~5~=TO$oYsphf-MWE}Rv?6JCNh8z*?uCHMri5ACqqYRrq^ zx4ZURevixGwmrD%5Su{=wli-D2(I)R zyaQU;0=ZJO;8h&JDTmN`yp0k#tr557D+$4#-wB0VLUn3W5VH8Vix0g6kc}B z_`|dz91gn&kByC~SS+TRnws`n+*Dhw5{-x=h8M6774W)Vc`iba(4Ynf2c3hZR4R3k z#obm9ioK_BL!2WQkH^El-waG9lZri!yz!%Y4aM3 z8(KIB6*yRI$mRy76@J%@Nod0ngbEFo+YN1D8oh|vTymG74qNd#^3aB~e2wnv>Ixie zE{dOQ!f)XMzQkc1!W7QpI<%>*tZc5PrX~(04Gatv94uFh_eDeyd3@5|-X6(jv&xjq z<@^T^4-YGsJ%WAs(MRad_z+D{(P*@I|KrGHGKx#17v*S1A5xgaSD3~ze2h2If-3pg jL?W^HU!=w0|6TAuu>;j?=9u~f00000NkvXXu0mjfR7eE# literal 0 HcmV?d00001 diff --git a/lms/askbot/skins/mitx/media/images/social/youtube-sharing.png b/lms/askbot/skins/mitx/media/images/social/youtube-sharing.png new file mode 100644 index 0000000000000000000000000000000000000000..a26b18121b8ac99b19bec12d907a0840bd18b208 GIT binary patch literal 1396 zcmV-)1&jKLP)wb%bGfoP)4K!F|Djf@^AOL{U*uutp#k<@f-*(TEzng*=RbQ0>^UBmCgJygXrZ zqObtR@H>nEy3vf~7!JX{!Vl&*4;1q;I+q8Yv2OB&Xw_r$j zF~Z?+h=ha$k(ih$A|oRO^9(NGM-<`^uEC9^ScO^?=!Nm|@xFB;A|lLplS?q9Kamtn zup5SA1$;Z`?(P;nJv|~TD@({ZgI|y-cUp?Cu>qTL2n+P!=H_O>I==T?IkU8VZV4v% zgmz3tLnI|739r}d+ivRAsY1>M97h7$;Fgi=@h(0`u^xQk!Uf+tlP6DB?{0-5-5@y9 zPVg}81hEUk41W0Vp>MmKoE#x%4UQlYKcEO-p-O7<7u?#~>RTs0Jzc$f2@Dg#nRbHp zm&O$!cpXk58dq=;+p!Eca0f*;gH!N839hgcT%p9?$H)M|@t7cQk4G{3VK8zq5z#h- z9k`|hH`)oVR)TLLB0%skjFi!1k&HA@tVQqvCHTCZ;5udD z>u^{EpO$C235ddbTGSFOhv5&w<1B)YE5WDi1bdW)J2BiM*gV#1k%znT_DSr=CQLyo z?%^R?mzChp>;&g)&&Ep@!OhCmTRzUqZMUFA{(Kcqd?Mp3F+m1r`3W9{ z`%3T{JHeynx!jQ6w+KF`1m~d*E>xoe8?gb!sKt2X;zb#p?I(D?cH)?B_tbn|JB}m# z1b?Rmw;~@Oq8tQ+VAQ~gZ?O+vf~Tm#`tgf91V`Bo*8f=Mo58)ky=L%H`PfFxz(pj= z+sjY|7oJxRiB*^cZ(Cd2L@n5fUKmmX!M4AbcnTfbvphICIr*RMrcIl+S3Y(IALAY> zun9+T7OPQ?PJDrU`Iyn(-X707A|oTi3_huSFm&>%_#w2xh7JIH8AW5S5jc*1@`lhK48Q#fzaRfjUWe zUAb6)8|$!MT8Bz_P>#iz33X-qUhSoN6OU_h{e01~bkU+k zBBWqB9vGUfh(tJ3rarUM9*B^G^$&@fi*O;>$;2@jn!|8}6|Bu#7=E;%6sZ^hefnbz z+&Bs^3{9hY&9ZRe!tjIT6yj%#@CUex(>R2KIF8HchN0sVbLWsDL&_jjD_5=zD_Ec5 z*l9+D$cz021qG=c9UVf~)zuYzaCLRH2ry%@8CQb{y^W8M0Z~|3`1t4Z})EE4}3;r9G(Uv=hjtIX10000Ci literal 0 HcmV?d00001 diff --git a/lms/askbot/skins/mitx/media/images/twitter-sharing.png b/lms/askbot/skins/mitx/media/images/twitter-sharing.png new file mode 100644 index 0000000000000000000000000000000000000000..7d171d0fefa3f5dfbff33538098deb100ac5fbaf GIT binary patch literal 1065 zcmV+^1lIeBP)Jd{pvbu~9Q04K%o@#gf3#ShK`gd%r<((>U>f#M>Y#00 z8^v}0(f+wo3H+lqw7+apP^gfSIh0Y7BG->~F7wBIdj8QLZ$5l~-|dfRFL=QI*nPjx z{kZ#ncT-yH|CGhx#bCGK(a}-W(b3`8{n&^;yoZmF#wd274Ruh`$jC_H!EJ4A%Ht~W z3MTOzw2SLFfgPxY;#`FX^Od`WF2y#?KnHXcdpXzgg$`beX_xQfC7k)!4E}(&Qe9nr zzM-LE6O@(C&d!2@U&0);;WEbYJl0^DcuXl)VFUKzJhUN?gtAy95(ymKWAkGjz`gLg zW!Q=zpbbOHSbcqcpx_sw4WD5(g02clXv6M8gC9cda8_ z@h0=R;wN}YJn#ytVD3SzgVP?zcj8!o;vKXiiItF(&zXw^mwO3bXCao~A8 z0IO{x;vbO`>{=E4)g1reO~5~=TO$oYsphf-MWE}Rv?6JCNh8z*?uCHMri5ACqqYRrq^ zx4ZURevixGwmrD%5Su{=wli-D2(I)R zyaQU;0=ZJO;8h&JDTmN`yp0k#tr557D+$4#-wB0VLUn3W5VH8Vix0g6kc}B z_`|dz91gn&kByC~SS+TRnws`n+*Dhw5{-x=h8M6774W)Vc`iba(4Ynf2c3hZR4R3k z#obm9ioK_BL!2WQkH^El-waG9lZri!yz!%Y4aM3 z8(KIB6*yRI$mRy76@J%@Nod0ngbEFo+YN1D8oh|vTymG74qNd#^3aB~e2wnv>Ixie zE{dOQ!f)XMzQkc1!W7QpI<%>*tZc5PrX~(04Gatv94uFh_eDeyd3@5|-X6(jv&xjq z<@^T^4-YGsJ%WAs(MRad_z+D{(P*@I|KrGHGKx#17v*S1A5xgaSD3~ze2h2If-3pg jL?W^HU!=w0|6TAuu>;j?=9u~f00000NkvXXu0mjfR7eE# literal 0 HcmV?d00001 diff --git a/lms/askbot/skins/mitx/media/images/youtube-sharing.png b/lms/askbot/skins/mitx/media/images/youtube-sharing.png new file mode 100644 index 0000000000000000000000000000000000000000..a26b18121b8ac99b19bec12d907a0840bd18b208 GIT binary patch literal 1396 zcmV-)1&jKLP)wb%bGfoP)4K!F|Djf@^AOL{U*uutp#k<@f-*(TEzng*=RbQ0>^UBmCgJygXrZ zqObtR@H>nEy3vf~7!JX{!Vl&*4;1q;I+q8Yv2OB&Xw_r$j zF~Z?+h=ha$k(ih$A|oRO^9(NGM-<`^uEC9^ScO^?=!Nm|@xFB;A|lLplS?q9Kamtn zup5SA1$;Z`?(P;nJv|~TD@({ZgI|y-cUp?Cu>qTL2n+P!=H_O>I==T?IkU8VZV4v% zgmz3tLnI|739r}d+ivRAsY1>M97h7$;Fgi=@h(0`u^xQk!Uf+tlP6DB?{0-5-5@y9 zPVg}81hEUk41W0Vp>MmKoE#x%4UQlYKcEO-p-O7<7u?#~>RTs0Jzc$f2@Dg#nRbHp zm&O$!cpXk58dq=;+p!Eca0f*;gH!N839hgcT%p9?$H)M|@t7cQk4G{3VK8zq5z#h- z9k`|hH`)oVR)TLLB0%skjFi!1k&HA@tVQqvCHTCZ;5udD z>u^{EpO$C235ddbTGSFOhv5&w<1B)YE5WDi1bdW)J2BiM*gV#1k%znT_DSr=CQLyo z?%^R?mzChp>;&g)&&Ep@!OhCmTRzUqZMUFA{(Kcqd?Mp3F+m1r`3W9{ z`%3T{JHeynx!jQ6w+KF`1m~d*E>xoe8?gb!sKt2X;zb#p?I(D?cH)?B_tbn|JB}m# z1b?Rmw;~@Oq8tQ+VAQ~gZ?O+vf~Tm#`tgf91V`Bo*8f=Mo58)ky=L%H`PfFxz(pj= z+sjY|7oJxRiB*^cZ(Cd2L@n5fUKmmX!M4AbcnTfbvphICIr*RMrcIl+S3Y(IALAY> zun9+T7OPQ?PJDrU`Iyn(-X707A|oTi3_huSFm&>%_#w2xh7JIH8AW5S5jc*1@`lhK48Q#fzaRfjUWe zUAb6)8|$!MT8Bz_P>#iz33X-qUhSoN6OU_h{e01~bkU+k zBBWqB9vGUfh(tJ3rarUM9*B^G^$&@fi*O;>$;2@jn!|8}6|Bu#7=E;%6sZ^hefnbz z+&Bs^3{9hY&9ZRe!tjIT6yj%#@CUex(>R2KIF8HchN0sVbLWsDL&_jjD_5=zD_Ec5 z*l9+D$cz021qG=c9UVf~)zuYzaCLRH2ry%@8CQb{y^W8M0Z~|3`1t4Z})EE4}3;r9G(Uv=hjtIX10000Ci literal 0 HcmV?d00001 From e85db61407f545e40095a22c787e90ed1b293b6a Mon Sep 17 00:00:00 2001 From: David Ormsbee Date: Tue, 14 Aug 2012 12:21:20 -0400 Subject: [PATCH 14/31] Fix simple navigation and JS includes on askbot --- lms/askbot/skins/mitx/templates/base.html | 2 +- .../mitx/templates/meta/bottom_scripts.html | 8 +++++- .../mitx/templates/navigation.jinja.html | 14 +++++----- .../skins/mitx/templates/widgets/footer.html | 26 +++++++++---------- 4 files changed, 28 insertions(+), 22 deletions(-) diff --git a/lms/askbot/skins/mitx/templates/base.html b/lms/askbot/skins/mitx/templates/base.html index 18ca213cb7..a344009c60 100644 --- a/lms/askbot/skins/mitx/templates/base.html +++ b/lms/askbot/skins/mitx/templates/base.html @@ -3,7 +3,7 @@ {% spaceless %} - {% block title %}{% endblock %} - MITX 6.002 + {% block title %}{% endblock %} {% include "meta/html_head_meta.html" %} {% include "meta/html_head_stylesheets.html" %} diff --git a/lms/askbot/skins/mitx/templates/meta/bottom_scripts.html b/lms/askbot/skins/mitx/templates/meta/bottom_scripts.html index d9d5eb97dd..4e189f598c 100644 --- a/lms/askbot/skins/mitx/templates/meta/bottom_scripts.html +++ b/lms/askbot/skins/mitx/templates/meta/bottom_scripts.html @@ -33,8 +33,14 @@ +{# + +#} diff --git a/lms/askbot/skins/mitx/templates/navigation.jinja.html b/lms/askbot/skins/mitx/templates/navigation.jinja.html index 59c7148184..686ae3a724 100644 --- a/lms/askbot/skins/mitx/templates/navigation.jinja.html +++ b/lms/askbot/skins/mitx/templates/navigation.jinja.html @@ -1,25 +1,25 @@