diff --git a/.gitignore b/.gitignore deleted file mode 100644 index cd08f59..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.sass-cache -.*.swp diff --git a/Gemfile b/Gemfile deleted file mode 100644 index f56d699..0000000 --- a/Gemfile +++ /dev/null @@ -1,6 +0,0 @@ -source "https://rubygems.org" - -# gem "rails" -gem 'sass', '~> 3.2.14' -gem 'sass-globbing', '~> 1.1.0' -gem 'compass', '>= 0.12.2' diff --git a/LICENSE b/LICENSE deleted file mode 100644 index d645695..0000000 --- a/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..ec889a9 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +This project is no longer maintained. + +The contents of this repository are still available in the Git +source code management system. To see the contents of this +repository before it reached its end of life, please check out the +previous commit with "git checkout HEAD^1". + +For any further questions, please email +service-discuss@lists.opendev.org or join #opendev on OFTC. diff --git a/__init__.py b/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/config.rb b/config.rb deleted file mode 100644 index 23a02a2..0000000 --- a/config.rb +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 2013 OpenStack Foundation -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -# Require any additional compass plugins here. - -# Set this to the root of your project when deployed: -http_path = "/" -css_dir = "os/media/style" -sass_dir = "os/media/sass" -images_dir = "os/media/images" -#javascripts_dir = "javascripts" - -# You can select your preferred output style here (can be overridden via the command line): -# output_style = :expanded or :nested or :compact or :compressed - -# To enable relative paths to assets via compass helper functions. Uncomment: -# relative_assets = true - -# To disable debugging comments that display the original location of your selectors. Uncomment: -# line_comments = false - - -# If you prefer the indented syntax, you might want to regenerate this -# project again passing --syntax sass, or you can uncomment this: -# preferred_syntax = :sass -# and then run: -# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass diff --git a/launchpad.py b/launchpad.py deleted file mode 100644 index b2c694d..0000000 --- a/launchpad.py +++ /dev/null @@ -1,233 +0,0 @@ -import settings -import pickle -from askbot import models -from askbot.conf import settings as askbot_settings -from askbot.utils.console import ProgressBar -from askbot.utils.slug import slugify -from django.conf import settings as django_settings -from django.core.management.base import BaseCommand, CommandError -from django.db import transaction -from django.forms import EmailField, ValidationError -from datetime import datetime -from django.db.utils import IntegrityError -from django.utils import translation -import sys - -from launchpadlib.launchpad import Launchpad -from launchpadlib.uris import LPNET_SERVICE_ROOT - - -def no_credential(): - print "Can't proceed without Launchpad credential." - sys.exit() - -"""Logs into Launchpad """ -#cachedir = '/Users/evgenyfadeev/.launchadlib/cache' -launchpad = Launchpad.login_with( - 'Extract Answers', - version='devel', - credential_save_failed=no_credential -) - -user_mapping = {} - - -def get_questions(project_name): - """Retrieves all questions in project_name on Launchpad""" - project = launchpad.projects[project_name] - return project.searchQuestions() - -def get_user_data(user_link): - """returns dictionary with keys: - * username - * confirmed_email_addresses - """ - # check out user cache first - if user_link in user_mapping: - return user_mapping[user_link] - - username = user_link.split('~')[1] - - user_data = { - 'username': username, - 'confirmed_email_addresses': list() - } - - lp_user = launchpad.people[username] - - for email in lp_user.confirmed_email_addresses: - # search for the user based on their email - email = str(email).split('/')[-1] - user_data['confirmed_email_addresses'].append(email) - - user_mapping[user_link] = user_data - return user_data - -def get_or_create_user(user_data): - """returns Askbot user. - If user corresponding to the given data does not exist, - it is created - """ - username = user_data['username'] - - #check the cache by user name - if username in user_mapping: - return user_mapping[username] - - try: - # find using identical username first - user = models.User.objects.get(username=username) - except models.User.DoesNotExist: - # we haven't created the user yet - try: - user = models.User.objects.filter(email__in=user_data['confirmed_email_addresses'])[0] - except: - user = models.User(username=username) - if len(user_data['confirmed_email_addresses']): - user.email = user_data['confirmed_email_addresses'][0] - user.save() - - # cache the users we've seen so far to avoid API calls - user_mapping[username] = user - return user - - -def save_questions(questions, project_name, data_filename): - """gets data from the launchpad answers and then - saves it in the python pickled format - so that the data can be uploaded elsewhere - """ - - #create data file if not exists - data_file = open(data_filename, 'a+') - data_file.close() - - #read the data file - try: - data_file = open(data_filename, 'r') - question_data = pickle.load(data_file) - data_file.close() - except EOFError: - question_data = dict() - - try: - for question in questions: - print '"' + question.title + '",' + str(question.date_created) - - if question.self_link in question_data: - continue - - try: - responses = question.messages_collection.entries - print str(len(responses)) - except AttributeError: - print "No Answers for question" + str(question) - responses = None - - question_datum = { - 'owner': get_user_data(question.owner_link), - 'self_link': question.self_link, - 'title': question.title, - 'body_text': question.description, - 'timestamp': question.date_created.replace(tzinfo=None), - 'tags': project_name + ' migrated' - } - question_data[question.self_link] = question_datum - - answer_data = list() - for response in responses: - try: - timestamp=datetime.strptime(response['date_created'][0:-6], - '%Y-%m-%dT%H:%M:%S.%f') - except ValueError: - #some timestamps don't have the millisectons, thanks LP! - timestamp=datetime.strptime(response['date_created'][0:-6], - '%Y-%m-%dT%H:%M:%S') - if 'content' in response and len(response['content']) > 1: - #for some reason, Launchpad allows blank answers - answer = { - 'owner': get_user_data(response['owner_link']), - 'body_text': response['content'], - 'timestamp': timestamp - } - answer_data.append(answer) - question_datum['responses'] = answer_data - finally: - data_file = open(data_filename, 'w') - pickle.dump(question_data, data_file) - data_file.close() - - -def import_questions(data_filename): - """loops through all items in launchpad Question format, and - adds them as askbot Questions and Answers""" - - status_file = open('write.status', 'a') - try: - import_log = pickle.load(status_file) - if not isinstance(import_log, dict): - import_log = {} - except: - import_log = {} - - data_file = open(data_filename, 'r') - questions = pickle.load(data_file) - - for question in questions.values(): - print '"' + question['title'] + '",' + str(question['timestamp']) - - try: - responses = question['responses'] - print str(len(responses)) - except AttributeError: - responses = None - print "No Answers" - - if question['self_link'] in import_log: - print "Already imported - skipping the above question" - continue - - # post the question - question_user = get_or_create_user(question['owner']) - try: - ab_question = question_user.post_question( - title=question['title'], - body_text=question['body_text'], - timestamp=question['timestamp'], - tags=question['tags'] - ) - except IntegrityError: - # the question already exists, but we didn't find it somehow - print "Had an IntegrityError" - continue - - for response in question['responses']: - if len(response['body_text']) == 0: - continue - response_user = get_or_create_user(response['owner']) - #for some reason, Launchpad allows blank answers - - answer = response_user.post_answer( - question=ab_question, - body_text=response['body_text'], - timestamp=response['timestamp'] - ) - - import_log[question['self_link']] = 1 #mark as imported - status_file.close() - status_file = open('write.status', 'w') - pickle.dump(import_log, status_file) - - -def main_read(): - questions = get_questions('nova') - save_questions(questions, 'nova', 'launchpad.dat') - print str(len(questions)) + " found" - -def main_write(): - translation.activate('en') - setting_backup = askbot_settings.LIMIT_ONE_ANSWER_PER_USER - askbot_settings.update('LIMIT_ONE_ANSWER_PER_USER', False) - import_questions('launchpad.dat') - askbot_settings.update('LIMIT_ONE_ANSWER_PER_USER', setting_backup) - diff --git a/maintenance/maintenance.html b/maintenance/maintenance.html deleted file mode 100644 index 9da9156..0000000 --- a/maintenance/maintenance.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - Site Maintenance | OpenStack Open Source Cloud Computing Software - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-

Site is down for maintenance

- -

We expect to be back in an hour. Thanks for your patience. -

- -

Maybe go home or try one of these instead. -

- - -
-
- - - - - - - - - - - - - - - diff --git a/os/media/images/favicon.gif b/os/media/images/favicon.gif deleted file mode 100644 index 64c9a9e..0000000 Binary files a/os/media/images/favicon.gif and /dev/null differ diff --git a/os/media/images/open-stack-cloud-computing-logo-2.png b/os/media/images/open-stack-cloud-computing-logo-2.png deleted file mode 100644 index 146faec..0000000 Binary files a/os/media/images/open-stack-cloud-computing-logo-2.png and /dev/null differ diff --git a/os/media/images/sprites.png b/os/media/images/sprites.png deleted file mode 100644 index 9b8022d..0000000 Binary files a/os/media/images/sprites.png and /dev/null differ diff --git a/os/media/sass/extra.scss b/os/media/sass/extra.scss deleted file mode 100644 index c5f4d92..0000000 --- a/os/media/sass/extra.scss +++ /dev/null @@ -1,469 +0,0 @@ -/* -Copyright 2013 OpenStack Foundation - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -*/ -@import "compass/css3"; -$body-font: 'Helvetica Neue', Arial, Helvetica, sans-serif; -$heading-font: 'PT Sans', serif; - -body, -p, -.short-summary .counts, -#footer ul, -.short-summary .userinfo { - font-family: $body-font; -} -#secondaryHeader, -#questionCount, -#header, -#footer h3, -h1, -h1.section-title, -.box h2, -.question-page h1, -.short-summary h2, -.short-summary .counts .item-count, -.tag-right, -.tabBar, -.question-page .vote-number { - font-family: $heading-font; -} -.question-page { - .post-update-info { - line-height: 12px; - } -} -.post-update-info .user-info { - margin-top: 0px; -} -.user-profile-page ul.avatars .avatar-delete { - line-height: 7px; - padding: 8px; -} -.user-info-table .js-avatar { - height: 128px; - width: 128px; -} -.js-avatar { - height: 48px; - width: 48px; -} -.inbox .js-avatar { - height: 16px; - width: 16px; -} -.user-card { - .js-avatar-box { - margin-right: 10px; - } - .js-avatar { - height: 32px; - width: 32px; - } -} -.users-page .user-card .js-avatar-box { - margin: 3px 6px 0 0; -} -.comment-controls .js-avatar { - height: 16px; - width: 16px; -} -#header { - background: #e4eef1; - border-top: 3px solid #255e6e; - @include box-shadow(1px 1px 1px 1px #ccc); -} -.openid-signin { - #metaNav a.signin { - background: none; - @include box-shadow(0 0 0 0); - } -} -#metaNav { - position: absolute; - left: 200px; - bottom: 25px; - width: 750px; - - a { - color: #255e6e; - font-size: 16px; - line-height: 16px; - height: 16px; - @include text-shadow(#fff 0 1px 1px); - } - - a.signin { - background: #e8d895; - padding: 5px 8px; - @include border-radius(4px); - @include box-shadow(0 0 2px 2px white); - } - - a.on { - font-weight: normal; - color: #e4eef1; - background: #255e6e !important; - @include border-radius(5px); - @include text-shadow(0 0 0); - @include box-shadow(0 0 2px 2px white); - } - - #navTags, - #navBadges, - #navUsers, - #navGroups, - .help { - background: none; - padding: 3px 10px 6px 10px; - margin: 0 0 0 30px; - } - - .dropdown, - a { - display: inline; - float: none; - padding: 0; - margin: 5px 0 0 0; - } - span.dropdown-toggle { - padding: 10px; - border-left: 1px solid #e4eef1; - /*background: url(../images/sprites.png) no-repeat -7px -242px;*/ - position: relative; - &.lang-nav { - padding: 0; - } - } - span.dropdown-toggle:hover { - background: #e4eef1; - /*background: url(../images/sprites.png) no-repeat -7px -274px;*/ - .dropdown-menu { - background: #e4eef1; - border-left: 1px solid #e4eef1; - display: block; - left: -1px; - padding: 4px 0 10px 0; - top: 36px; - } - &.lang-nav { - .dropdown-menu { - left: -14px; - min-width: auto !important; - top: 27px; - } - } - } - .dropdown-menu { - background: #e4eef1; - left: 26px; - top: 22px; - li { - line-height: 1.9; - padding: 0 0 0 13px; - margin: 0; - img { - margin-bottom: 3px; - } - } - li:hover { - background: #666 !important; - a { - color: lighten(#255e6e, 50%); - } - } - a { - margin: 0; - padding: 0; - @include text-shadow(none); - } - a:hover { - background: inherit; - text-decoration: none; - color: lighten(#255e6e, 50%); - @include text-shadow(none); - } - } -} - -#userToolsNav { - .lang-nav { - float: right; - color: #255e6e; - font-size: 16px; - line-height: 16px; - height: 30px; - position: absolute !important; - right: 0; - ul, li { - background: #e4eef1; - } - a { - color: #255e6e; - background: transparent; - &:hover { - color: lighten(#255e6e, 50%); - } - } - .dropdown-menu li:hover { - background: transparent !important; - } - } -} - -#metaNav a:hover { - color: #255e6e; -} -#header.with-logo #userToolsNav { - bottom: 19px; -} -#secondaryHeader { - background: #fff; - border: none; - margin-bottom: 7px; - td.search-bar { - padding-right: 62px; - } -} -.scope-selector { - font-size: 16px; - height: 37px; - border-bottom: 3px solid white; - &.on, - &:hover { - background: none; - border-bottom: 3px solid; - color: #cf2f19; - text-decoration: none; - @include transition(0.07s, ease); - } - &:hover { - color: #264D69; - } - &.ask-message:hover { - color: #7a7a6b; - border: none; - } - &:first-child { - margin-left: 0; - } -} -#homeButton { - display: none; -} -#askButton { - height: 42px; - font-size: 15px; - line-height: 42px; - padding: 0; - width: 168px; - @include box-shadow(0 0 0); -} -.tabBar { - background: none; -} -#logo img { - height: 56px; - margin-left: -10px; -} -#searchBar { - @include box-shadow(inset #eee 1px 1px 2px 1px); -} -.search-drop-menu { - position: relative; - bottom: -42px; - &.waiting { - bottom: -42px; - height: 25px; - } - .footer button { - padding: 2px 6px 3px; - @include background(linear-gradient(white, #F3F3F3 5%, rgb(245, 133, 12))); - @include box-shadow(0 0 2px 2px white); - @include text-shadow(0 0 0); - } -} - -#ContentRight { - margin-top: -58px; - margin-bottom: 58px; -} -.main-page, -.question-page { - #ContentRight { - background: white; - padding-top: 2px; - } -} -#ContentLeft { - padding-bottom: 0; -} - -.box { - h2, - .contributorback { - background: none; - text-align: left; - } - .inputs { - #interestingTagInput, - #ignoredTagInput, - #subscribedTagInput, - #ab-tag-search { - width: 128px; - height: 23px; - line-height: 23px; - } - } -} - -input[type="submit"].searchBtn, -input.cancelSearchBtn { - border: 0; - display: none; - height: 0; - margin: 0; - padding: 0; - right: -500px; -} -#searchBar input[type="button"].cancelSearchBtn { - right: 8px; - border: none !important; - color: #888 !important; - background: transparent !important; - font-size: 23px !important; - height: 32px !important; - line-height: 36px !important; - width: 32px !important; -} -button, -input[type="submit"], -input[type="button"], -input[type="reset"], -.button { - font-family: $heading-font; - font-weight: normal; - border: 1px solid #e2e2e2 !important; - padding: 4px 15px; - color: #404040 !important; - text-decoration: none!important; - font-size: 12.5px; - background: #FFFFFF; - @include background(linear-gradient(#FFFFFF 0%, #F3F3F3 50%, #EBEBEB 100%)); - @include box-shadow(0px 1px 1px rgba(0,0,0,.5)); - @include text-shadow(#fff 0px 1px 1px); - @include border-radius(3px); - border-bottom-color: #a0a0a0 !important; - border-right-color: #bababa !important; - border-left-color: #bababa !important; -} - -.comments { - input[type="submit"], - .controls a.button { - color: #4b4b4b !important; - border: none !important; - &:hover { - text-decoration: underline; - } - } - input[type="submit"] { - color: #1b71bd; - } -} -input[type="submit"].link { - border: none !important; - color: 4b4b4b !important; -} - -#footer { - margin-top: 10px; - .span-4, - .span-8 { - margin: 0; - } - .span-4 { - width: 17%; - } - .span-8 { - width: 32% - } - a, - a:active, - a:hover, - a:visited, - p { - color: #666; - font-size: 12px; - line-height: 18px; - } - p { - margin-top: 14px; - } - h3 { - color: #de0000; - font-size: 16px; - margin: 0 0 8px 0; - padding: 0; - } - ul { - list-style: none; - margin: 0; - } - textarea { - display: block; - margin: 12px 0 10px; - width: 80%; - } -} -.pager, -.paginator { - margin-bottom: 0; - padding-bottom: 0; -} - -.post-comments .submit { - line-height: inherit; -} - -.question-instructions { - margin-top: -7px; -} - -body.lang-zh_CN, -body.lang-zh-cn, -body.lang-zh { - .box { - .inputs { - #interestingTagInput, - #ignoredTagInput, - #subscribedTagInput, - #ab-tag-search { - width: 121px; - } - } - } - .scopes-True-True-True { - #searchBar, - .search-drop-menu { - margin-left: 185px; - } - } - .scopes-True-True-False { - #searchBar, - .search-drop-menu { - margin-left: 114px; - } - } -} diff --git a/os/media/style/extra.css b/os/media/style/extra.css deleted file mode 100644 index 75d824f..0000000 --- a/os/media/style/extra.css +++ /dev/null @@ -1,588 +0,0 @@ -/* -Copyright 2013 OpenStack Foundation - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. -*/ -/* line 20, ../sass/extra.scss */ -body, -p, -.short-summary .counts, -#footer ul, -.short-summary .userinfo { - font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; -} - -/* line 27, ../sass/extra.scss */ -#secondaryHeader, -#questionCount, -#header, -#footer h3, -h1, -h1.section-title, -.box h2, -.question-page h1, -.short-summary h2, -.short-summary .counts .item-count, -.tag-right, -.tabBar, -.question-page .vote-number { - font-family: "PT Sans", serif; -} - -/* line 43, ../sass/extra.scss */ -.question-page .post-update-info { - line-height: 12px; -} - -/* line 47, ../sass/extra.scss */ -.post-update-info .user-info { - margin-top: 0px; -} - -/* line 50, ../sass/extra.scss */ -.user-profile-page ul.avatars .avatar-delete { - line-height: 7px; - padding: 8px; -} - -/* line 54, ../sass/extra.scss */ -.user-info-table .js-avatar { - height: 128px; - width: 128px; -} - -/* line 58, ../sass/extra.scss */ -.js-avatar { - height: 48px; - width: 48px; -} - -/* line 62, ../sass/extra.scss */ -.inbox .js-avatar { - height: 16px; - width: 16px; -} - -/* line 67, ../sass/extra.scss */ -.user-card .js-avatar-box { - margin-right: 10px; -} -/* line 70, ../sass/extra.scss */ -.user-card .js-avatar { - height: 32px; - width: 32px; -} - -/* line 75, ../sass/extra.scss */ -.users-page .user-card .js-avatar-box { - margin: 3px 6px 0 0; -} - -/* line 78, ../sass/extra.scss */ -.comment-controls .js-avatar { - height: 16px; - width: 16px; -} - -/* line 82, ../sass/extra.scss */ -#header { - background: #e4eef1; - border-top: 3px solid #255e6e; - -moz-box-shadow: 1px 1px 1px 1px #ccc; - -webkit-box-shadow: 1px 1px 1px 1px #ccc; - box-shadow: 1px 1px 1px 1px #ccc; -} - -/* line 88, ../sass/extra.scss */ -.openid-signin #metaNav a.signin { - background: none; - -moz-box-shadow: 0 0 0 0; - -webkit-box-shadow: 0 0 0 0; - box-shadow: 0 0 0 0; -} - -/* line 93, ../sass/extra.scss */ -#metaNav { - position: absolute; - left: 200px; - bottom: 25px; - width: 750px; -} -/* line 99, ../sass/extra.scss */ -#metaNav a { - color: #255e6e; - font-size: 16px; - line-height: 16px; - height: 16px; - text-shadow: #fff 0 1px 1px; -} -/* line 107, ../sass/extra.scss */ -#metaNav a.signin { - background: #e8d895; - padding: 5px 8px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: 0 0 2px 2px white; - -webkit-box-shadow: 0 0 2px 2px white; - box-shadow: 0 0 2px 2px white; -} -/* line 114, ../sass/extra.scss */ -#metaNav a.on { - font-weight: normal; - color: #e4eef1; - background: #255e6e !important; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - text-shadow: 0 0 0; - -moz-box-shadow: 0 0 2px 2px white; - -webkit-box-shadow: 0 0 2px 2px white; - box-shadow: 0 0 2px 2px white; -} -/* line 123, ../sass/extra.scss */ -#metaNav #navTags, -#metaNav #navBadges, -#metaNav #navUsers, -#metaNav #navGroups, -#metaNav .help { - background: none; - padding: 3px 10px 6px 10px; - margin: 0 0 0 30px; -} -/* line 133, ../sass/extra.scss */ -#metaNav .dropdown, -#metaNav a { - display: inline; - float: none; - padding: 0; - margin: 5px 0 0 0; -} -/* line 140, ../sass/extra.scss */ -#metaNav span.dropdown-toggle { - padding: 10px; - border-left: 1px solid #e4eef1; - /*background: url(../images/sprites.png) no-repeat -7px -242px;*/ - position: relative; -} -/* line 145, ../sass/extra.scss */ -#metaNav span.dropdown-toggle.lang-nav { - padding: 0; -} -/* line 149, ../sass/extra.scss */ -#metaNav span.dropdown-toggle:hover { - background: #e4eef1; - /*background: url(../images/sprites.png) no-repeat -7px -274px;*/ -} -/* line 152, ../sass/extra.scss */ -#metaNav span.dropdown-toggle:hover .dropdown-menu { - background: #e4eef1; - border-left: 1px solid #e4eef1; - display: block; - left: -1px; - padding: 4px 0 10px 0; - top: 36px; -} -/* line 161, ../sass/extra.scss */ -#metaNav span.dropdown-toggle:hover.lang-nav .dropdown-menu { - left: -14px; - min-width: auto !important; - top: 27px; -} -/* line 168, ../sass/extra.scss */ -#metaNav .dropdown-menu { - background: #e4eef1; - left: 26px; - top: 22px; -} -/* line 172, ../sass/extra.scss */ -#metaNav .dropdown-menu li { - line-height: 1.9; - padding: 0 0 0 13px; - margin: 0; -} -/* line 176, ../sass/extra.scss */ -#metaNav .dropdown-menu li img { - margin-bottom: 3px; -} -/* line 180, ../sass/extra.scss */ -#metaNav .dropdown-menu li:hover { - background: #666 !important; -} -/* line 182, ../sass/extra.scss */ -#metaNav .dropdown-menu li:hover a { - color: #aed8e4; -} -/* line 186, ../sass/extra.scss */ -#metaNav .dropdown-menu a { - margin: 0; - padding: 0; - text-shadow: none; -} -/* line 191, ../sass/extra.scss */ -#metaNav .dropdown-menu a:hover { - background: inherit; - text-decoration: none; - color: #aed8e4; - text-shadow: none; -} - -/* line 201, ../sass/extra.scss */ -#userToolsNav .lang-nav { - float: right; - color: #255e6e; - font-size: 16px; - line-height: 16px; - height: 30px; - position: absolute !important; - right: 0; -} -/* line 209, ../sass/extra.scss */ -#userToolsNav .lang-nav ul, #userToolsNav .lang-nav li { - background: #e4eef1; -} -/* line 212, ../sass/extra.scss */ -#userToolsNav .lang-nav a { - color: #255e6e; - background: transparent; -} -/* line 215, ../sass/extra.scss */ -#userToolsNav .lang-nav a:hover { - color: #aed8e4; -} -/* line 219, ../sass/extra.scss */ -#userToolsNav .lang-nav .dropdown-menu li:hover { - background: transparent !important; -} - -/* line 225, ../sass/extra.scss */ -#metaNav a:hover { - color: #255e6e; -} - -/* line 228, ../sass/extra.scss */ -#header.with-logo #userToolsNav { - bottom: 19px; -} - -/* line 231, ../sass/extra.scss */ -#secondaryHeader { - background: #fff; - border: none; - margin-bottom: 7px; -} -/* line 235, ../sass/extra.scss */ -#secondaryHeader td.search-bar { - padding-right: 62px; -} - -/* line 239, ../sass/extra.scss */ -.scope-selector { - font-size: 16px; - height: 37px; - border-bottom: 3px solid white; -} -/* line 243, ../sass/extra.scss */ -.scope-selector.on, .scope-selector:hover { - background: none; - border-bottom: 3px solid; - color: #cf2f19; - text-decoration: none; - -moz-transition: 0.07s, ease; - -o-transition: 0.07s, ease; - -webkit-transition: 0.07s, ease; - transition: 0.07s, ease; -} -/* line 251, ../sass/extra.scss */ -.scope-selector:hover { - color: #264D69; -} -/* line 254, ../sass/extra.scss */ -.scope-selector.ask-message:hover { - color: #7a7a6b; - border: none; -} -/* line 258, ../sass/extra.scss */ -.scope-selector:first-child { - margin-left: 0; -} - -/* line 262, ../sass/extra.scss */ -#homeButton { - display: none; -} - -/* line 265, ../sass/extra.scss */ -#askButton { - height: 42px; - font-size: 15px; - line-height: 42px; - padding: 0; - width: 168px; - -moz-box-shadow: 0 0 0; - -webkit-box-shadow: 0 0 0; - box-shadow: 0 0 0; -} - -/* line 273, ../sass/extra.scss */ -.tabBar { - background: none; -} - -/* line 276, ../sass/extra.scss */ -#logo img { - height: 56px; - margin-left: -10px; -} - -/* line 280, ../sass/extra.scss */ -#searchBar { - -moz-box-shadow: inset #eee 1px 1px 2px 1px; - -webkit-box-shadow: inset #eee 1px 1px 2px 1px; - box-shadow: inset #eee 1px 1px 2px 1px; -} - -/* line 283, ../sass/extra.scss */ -.search-drop-menu { - position: relative; - bottom: -42px; -} -/* line 286, ../sass/extra.scss */ -.search-drop-menu.waiting { - bottom: -42px; - height: 25px; -} -/* line 290, ../sass/extra.scss */ -.search-drop-menu .footer button { - padding: 2px 6px 3px; - background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjxzdG9wIG9mZnNldD0iNSUiIHN0b3AtY29sb3I9IiNmM2YzZjMiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNTg1MGMiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA='); - background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(5%, #f3f3f3), color-stop(100%, #f5850c)); - background: -moz-linear-gradient(#ffffff, #f3f3f3 5%, #f5850c); - background: -webkit-linear-gradient(#ffffff, #f3f3f3 5%, #f5850c); - background: linear-gradient(#ffffff, #f3f3f3 5%, #f5850c); - -moz-box-shadow: 0 0 2px 2px white; - -webkit-box-shadow: 0 0 2px 2px white; - box-shadow: 0 0 2px 2px white; - text-shadow: 0 0 0; -} - -/* line 298, ../sass/extra.scss */ -#ContentRight { - margin-top: -58px; - margin-bottom: 58px; -} - -/* line 304, ../sass/extra.scss */ -.main-page #ContentRight, -.question-page #ContentRight { - background: white; - padding-top: 2px; -} - -/* line 309, ../sass/extra.scss */ -#ContentLeft { - padding-bottom: 0; -} - -/* line 314, ../sass/extra.scss */ -.box h2, -.box .contributorback { - background: none; - text-align: left; -} -/* line 320, ../sass/extra.scss */ -.box .inputs #interestingTagInput, -.box .inputs #ignoredTagInput, -.box .inputs #subscribedTagInput, -.box .inputs #ab-tag-search { - width: 128px; - height: 23px; - line-height: 23px; -} - -/* line 331, ../sass/extra.scss */ -input[type="submit"].searchBtn, -input.cancelSearchBtn { - border: 0; - display: none; - height: 0; - margin: 0; - padding: 0; - right: -500px; -} - -/* line 340, ../sass/extra.scss */ -#searchBar input[type="button"].cancelSearchBtn { - right: 8px; - border: none !important; - color: #888 !important; - background: transparent !important; - font-size: 23px !important; - height: 32px !important; - line-height: 36px !important; - width: 32px !important; -} - -/* line 350, ../sass/extra.scss */ -button, -input[type="submit"], -input[type="button"], -input[type="reset"], -.button { - font-family: "PT Sans", serif; - font-weight: normal; - border: 1px solid #e2e2e2 !important; - padding: 4px 15px; - color: #404040 !important; - text-decoration: none !important; - font-size: 12.5px; - background: #FFFFFF; - background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjxzdG9wIG9mZnNldD0iNTAlIiBzdG9wLWNvbG9yPSIjZjNmM2YzIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjZWJlYmViIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCNncmFkKSIgLz48L3N2Zz4g'); - background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(50%, #f3f3f3), color-stop(100%, #ebebeb)); - background: -moz-linear-gradient(#ffffff 0%, #f3f3f3 50%, #ebebeb 100%); - background: -webkit-linear-gradient(#ffffff 0%, #f3f3f3 50%, #ebebeb 100%); - background: linear-gradient(#ffffff 0%, #f3f3f3 50%, #ebebeb 100%); - -moz-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5); - -webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5); - box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5); - text-shadow: #fff 0px 1px 1px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - border-bottom-color: #a0a0a0 !important; - border-right-color: #bababa !important; - border-left-color: #bababa !important; -} - -/* line 373, ../sass/extra.scss */ -.comments input[type="submit"], -.comments .controls a.button { - color: #4b4b4b !important; - border: none !important; -} -/* line 377, ../sass/extra.scss */ -.comments input[type="submit"]:hover, -.comments .controls a.button:hover { - text-decoration: underline; -} -/* line 381, ../sass/extra.scss */ -.comments input[type="submit"] { - color: #1b71bd; -} - -/* line 385, ../sass/extra.scss */ -input[type="submit"].link { - border: none !important; - color: 4b4b4b !important; -} - -/* line 390, ../sass/extra.scss */ -#footer { - margin-top: 10px; -} -/* line 392, ../sass/extra.scss */ -#footer .span-4, -#footer .span-8 { - margin: 0; -} -/* line 396, ../sass/extra.scss */ -#footer .span-4 { - width: 17%; -} -/* line 399, ../sass/extra.scss */ -#footer .span-8 { - width: 32%; -} -/* line 402, ../sass/extra.scss */ -#footer a, -#footer a:active, -#footer a:hover, -#footer a:visited, -#footer p { - color: #666; - font-size: 12px; - line-height: 18px; -} -/* line 411, ../sass/extra.scss */ -#footer p { - margin-top: 14px; -} -/* line 414, ../sass/extra.scss */ -#footer h3 { - color: #de0000; - font-size: 16px; - margin: 0 0 8px 0; - padding: 0; -} -/* line 420, ../sass/extra.scss */ -#footer ul { - list-style: none; - margin: 0; -} -/* line 424, ../sass/extra.scss */ -#footer textarea { - display: block; - margin: 12px 0 10px; - width: 80%; -} - -/* line 430, ../sass/extra.scss */ -.pager, -.paginator { - margin-bottom: 0; - padding-bottom: 0; -} - -/* line 436, ../sass/extra.scss */ -.post-comments .submit { - line-height: inherit; -} - -/* line 440, ../sass/extra.scss */ -.question-instructions { - margin-top: -7px; -} - -/* line 449, ../sass/extra.scss */ -body.lang-zh_CN .box .inputs #interestingTagInput, -body.lang-zh_CN .box .inputs #ignoredTagInput, -body.lang-zh_CN .box .inputs #subscribedTagInput, -body.lang-zh_CN .box .inputs #ab-tag-search, -body.lang-zh-cn .box .inputs #interestingTagInput, -body.lang-zh-cn .box .inputs #ignoredTagInput, -body.lang-zh-cn .box .inputs #subscribedTagInput, -body.lang-zh-cn .box .inputs #ab-tag-search, -body.lang-zh .box .inputs #interestingTagInput, -body.lang-zh .box .inputs #ignoredTagInput, -body.lang-zh .box .inputs #subscribedTagInput, -body.lang-zh .box .inputs #ab-tag-search { - width: 121px; -} -/* line 458, ../sass/extra.scss */ -body.lang-zh_CN .scopes-True-True-True #searchBar, -body.lang-zh_CN .scopes-True-True-True .search-drop-menu, -body.lang-zh-cn .scopes-True-True-True #searchBar, -body.lang-zh-cn .scopes-True-True-True .search-drop-menu, -body.lang-zh .scopes-True-True-True #searchBar, -body.lang-zh .scopes-True-True-True .search-drop-menu { - margin-left: 185px; -} -/* line 464, ../sass/extra.scss */ -body.lang-zh_CN .scopes-True-True-False #searchBar, -body.lang-zh_CN .scopes-True-True-False .search-drop-menu, -body.lang-zh-cn .scopes-True-True-False #searchBar, -body.lang-zh-cn .scopes-True-True-False .search-drop-menu, -body.lang-zh .scopes-True-True-False #searchBar, -body.lang-zh .scopes-True-True-False .search-drop-menu { - margin-left: 114px; -} diff --git a/os/templates/maintenance.html b/os/templates/maintenance.html deleted file mode 100644 index 259fc04..0000000 --- a/os/templates/maintenance.html +++ /dev/null @@ -1,17 +0,0 @@ - - - Site is in the maintenance - - - -
- Ask OpenStack Logo
-

Ask.OpenStack is in the maintenance, please come back later

-
- - diff --git a/os/templates/meta/fonts.html b/os/templates/meta/fonts.html deleted file mode 100644 index 3f8634a..0000000 --- a/os/templates/meta/fonts.html +++ /dev/null @@ -1,29 +0,0 @@ - -{% if settings.USE_LOCAL_FONTS %} - {# this version is for serving fonts locally - e.g. for intranet sites #} - -{% else %} - {# note: for IE8 we ask for fonts separately #} - -{% endif %} diff --git a/os/templates/widgets/footer.html b/os/templates/widgets/footer.html deleted file mode 100644 index 2ed582f..0000000 --- a/os/templates/widgets/footer.html +++ /dev/null @@ -1,65 +0,0 @@ - -
-
- -
diff --git a/os/templates/widgets/meta_nav.html b/os/templates/widgets/meta_nav.html deleted file mode 100644 index 1bf3c6a..0000000 --- a/os/templates/widgets/meta_nav.html +++ /dev/null @@ -1,139 +0,0 @@ - -{% import "macros.html" as macros%} -{%- if request.user.is_authenticated() -%} - {% set user=request.user %} - - - {{ request.user.username|escape }} - -{% elif settings.USE_ASKBOT_LOGIN_SYSTEM %} - {% trans %}Hi there! Please sign in{% endtrans %} -{% endif %} -{% trans %}tags{% endtrans %} -{% if settings.GROUPS_ENABLED %} - - - {% trans %}people & groups{% endtrans %} - - -{%else%} -{% trans %}users{% endtrans %} -{% endif %} -{% if settings.BADGES_MODE == 'public' %} -{% trans %}badges{% endtrans %} -{% endif %} -{% trans %}help{% endtrans %} diff --git a/os/templates/widgets/user_navigation.html b/os/templates/widgets/user_navigation.html deleted file mode 100644 index efd9906..0000000 --- a/os/templates/widgets/user_navigation.html +++ /dev/null @@ -1 +0,0 @@ -{# this file is empty on purpose #}