From 986411efc503c8a3494a2606188ec99a04e66fce Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Thu, 17 Feb 2022 13:04:07 -0800 Subject: [PATCH] Retire this repo The opendev project stopped runnin askbot a while ago. This theme is no longer needed or used. To simplify things for us we are taking the extra step of retiring this repo. Change-Id: Ia45819d809cf1fde20d6d8cdd3d8f57a0341b594 --- .gitignore | 2 - Gemfile | 6 - LICENSE | 202 ------ README.md | 9 + __init__.py | 0 config.rb | 38 -- launchpad.py | 233 ------- maintenance/maintenance.html | 73 --- os/media/images/favicon.gif | Bin 1072 -> 0 bytes .../open-stack-cloud-computing-logo-2.png | Bin 3670 -> 0 bytes os/media/images/sprites.png | Bin 19859 -> 0 bytes os/media/sass/extra.scss | 469 -------------- os/media/style/extra.css | 588 ------------------ os/templates/maintenance.html | 17 - os/templates/meta/fonts.html | 29 - os/templates/widgets/footer.html | 65 -- os/templates/widgets/meta_nav.html | 139 ----- os/templates/widgets/user_navigation.html | 1 - 18 files changed, 9 insertions(+), 1862 deletions(-) delete mode 100644 .gitignore delete mode 100644 Gemfile delete mode 100644 LICENSE create mode 100644 README.md delete mode 100644 __init__.py delete mode 100644 config.rb delete mode 100644 launchpad.py delete mode 100644 maintenance/maintenance.html delete mode 100644 os/media/images/favicon.gif delete mode 100644 os/media/images/open-stack-cloud-computing-logo-2.png delete mode 100644 os/media/images/sprites.png delete mode 100644 os/media/sass/extra.scss delete mode 100644 os/media/style/extra.css delete mode 100644 os/templates/maintenance.html delete mode 100644 os/templates/meta/fonts.html delete mode 100644 os/templates/widgets/footer.html delete mode 100644 os/templates/widgets/meta_nav.html delete mode 100644 os/templates/widgets/user_navigation.html 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 64c9a9eaef214eb074c67f23c9cfa0df3d7b9152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1072 zcmZ?wbhEHb6krfwc;3NKEy~v<#$P5SR4FA?AuZf3E>I&YS}iBqFC{Voh@?g96eZgf z#OF&1FOn9WB`2|1R(zhk)LaFL6|!P$6r`3a$+YMwE?1J>A}_I3UZO=;d8>lNHU+6| zic;H^q_-%`ELB%ruA#I;MP`?Z%nD8A9jdacG*!BdHG7P;&M3+5&`>y|EPGa2_N1!Z zSrxf`8mgyN0pI4DPt15p+O@6nw@>w;7UJJd$+Nwvi)pzTup4U`5s;j=#Oz*so z>O?!^lLp!s^wlpIX`M0Fy>6g;(?IX0q22{E!^;*Xmn;o0TA5$AHo9(Oans)Bw!O_( zFXuZBwtKvt?m5}rado`q=Cn7^{f?*WT~F7Oq23q50w!c6JqQVS7!mv+KKguS!kw&y zr-iwfD+;dFl|HL3dt6_BuetU`Q~lGvuDg?aPRyEmcWU38DHC2ypYV3cqNi(?ZQr%) z?S@r{4j*}QaL{5dCR@Sj140SG`jhJoWfgP^F>m*@WTZ7bfKC~Ri)onhIbGr8pO$m$5jdE{ znR0T9Zt}G=m7NPLm}D#_FfMlGkur`s5jQbq!8A7Bh$S8y4;|x^w`=0~X(SLZ%OvH- SfrZ8D{PK2nOtM@Y4AubFRhVJ` 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 146faec5cfe3773824f4caf39e4480e4974d10df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3670 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 diff --git a/os/media/images/sprites.png b/os/media/images/sprites.png deleted file mode 100644 index 9b8022d812dad72b53f2b5f09065794a74df79a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19859 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 Jzn}2E_HVef6ZZfB 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 %} - -{% 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 #}