From e188782a9a18fae0b2fbd4690f25e56807e69625 Mon Sep 17 00:00:00 2001 From: Steffen van Bergerem Date: Sun, 1 Mar 2015 18:53:37 +0100 Subject: [PATCH] Remove blueprint code --- app/assets/javascripts/app/app.js | 1 - .../views/aspect_membership_blueprint_view.js | 172 -- .../javascripts/app/views/contact_view.js | 1 - .../javascripts/app/views/content_view.js | 2 +- .../javascripts/app/views/hovercard_view.js | 3 - .../app/views/profile_header_view.js | 1 - .../aspect_selector_blueprint_view.js | 94 - app/assets/stylesheets/application.scss | 1859 +---------------- app/assets/stylesheets/blueprint.css | 3 - app/assets/stylesheets/new-templates.scss | 86 - .../stylesheets/new_styles/_buttons.scss | 26 - .../stylesheets/new_styles/_registration.scss | 2 +- .../vendor/blueprint/AUTHORS.textile | 42 - .../stylesheets/vendor/blueprint/LICENSE.txt | 22 - .../stylesheets/vendor/blueprint/ie.css | 35 - .../blueprint/plugins/buttons/icons/cross.png | Bin 655 -> 0 bytes .../blueprint/plugins/buttons/icons/key.png | Bin 455 -> 0 bytes .../blueprint/plugins/buttons/icons/tick.png | Bin 537 -> 0 bytes .../blueprint/plugins/buttons/readme.txt | 32 - .../blueprint/plugins/buttons/screen.css | 97 - .../blueprint/plugins/fancy-type/readme.txt | 14 - .../blueprint/plugins/fancy-type/screen.css | 71 - .../plugins/link-icons/icons/doc.png | Bin 777 -> 0 bytes .../plugins/link-icons/icons/email.png | Bin 641 -> 0 bytes .../plugins/link-icons/icons/external.png | Bin 46828 -> 0 bytes .../plugins/link-icons/icons/feed.png | Bin 691 -> 0 bytes .../blueprint/plugins/link-icons/icons/im.png | Bin 741 -> 0 bytes .../plugins/link-icons/icons/pdf.png | Bin 591 -> 0 bytes .../plugins/link-icons/icons/visited.png | Bin 46925 -> 0 bytes .../plugins/link-icons/icons/xls.png | Bin 663 -> 0 bytes .../blueprint/plugins/link-icons/readme.txt | 18 - .../blueprint/plugins/link-icons/screen.css | 40 - .../vendor/blueprint/plugins/rtl/readme.txt | 10 - .../vendor/blueprint/plugins/rtl/screen.css | 110 - .../stylesheets/vendor/blueprint/print.css | 29 - .../stylesheets/vendor/blueprint/screen.css | 258 --- .../vendor/blueprint/src/forms.css | 65 - .../stylesheets/vendor/blueprint/src/grid.css | 280 --- .../stylesheets/vendor/blueprint/src/grid.png | Bin 132 -> 0 bytes .../stylesheets/vendor/blueprint/src/ie.css | 76 - .../vendor/blueprint/src/print.css | 85 - .../vendor/blueprint/src/reset.css | 45 - .../vendor/blueprint/src/typography.css | 106 - app/controllers/admins_controller.rb | 2 - app/controllers/application_controller.rb | 7 - app/controllers/contacts_controller.rb | 1 - app/controllers/conversations_controller.rb | 2 - app/controllers/help_controller.rb | 3 +- app/controllers/home_controller.rb | 1 - app/controllers/notifications_controller.rb | 1 - app/controllers/passwords_controller.rb | 1 - app/controllers/people_controller.rb | 4 +- app/controllers/photos_controller.rb | 1 - app/controllers/posts_controller.rb | 4 +- app/controllers/profiles_controller.rb | 6 +- app/controllers/registrations_controller.rb | 1 - app/controllers/report_controller.rb | 2 - app/controllers/services_controller.rb | 13 +- app/controllers/sessions_controller.rb | 1 - app/controllers/statistics_controller.rb | 3 +- app/controllers/status_messages_controller.rb | 2 - app/controllers/streams_controller.rb | 3 +- app/controllers/tags_controller.rb | 1 - app/controllers/terms_controller.rb | 3 +- app/controllers/users_controller.rb | 4 - app/helpers/aspect_global_helper.rb | 25 +- app/helpers/layout_helper.rb | 12 +- app/views/aspects/new.haml | 3 +- app/views/layouts/application.html.haml | 7 +- ...centered_with_header_with_footer.html.haml | 9 +- .../people/_aspect_membership_dropdown.haml | 2 +- app/views/publisher/_publisher.html.haml | 81 +- .../publisher/_publisher_blueprint.html.haml | 104 - .../publisher/_publisher_bootstrap.html.haml | 80 - app/views/status_messages/new.html.haml | 2 +- app/views/streams/main_stream.html.haml | 3 +- config/application.rb | 2 - .../jasmine_fixtures/people_spec.rb | 9 +- .../aspect_membership_blueprint_view_spec.js | 126 -- .../app/views/aspect_membership_view_spec.js | 2 +- spec/javascripts/support/jasmine.yml | 3 +- 81 files changed, 182 insertions(+), 4039 deletions(-) delete mode 100644 app/assets/javascripts/app/views/aspect_membership_blueprint_view.js delete mode 100644 app/assets/javascripts/app/views/publisher/aspect_selector_blueprint_view.js delete mode 100644 app/assets/stylesheets/blueprint.css delete mode 100644 app/assets/stylesheets/new-templates.scss delete mode 100644 app/assets/stylesheets/vendor/blueprint/AUTHORS.textile delete mode 100644 app/assets/stylesheets/vendor/blueprint/LICENSE.txt delete mode 100644 app/assets/stylesheets/vendor/blueprint/ie.css delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/buttons/icons/cross.png delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/buttons/icons/key.png delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/buttons/icons/tick.png delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/buttons/readme.txt delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/buttons/screen.css delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/fancy-type/readme.txt delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/fancy-type/screen.css delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/doc.png delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/email.png delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/external.png delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/feed.png delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/im.png delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/pdf.png delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/visited.png delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/xls.png delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/link-icons/readme.txt delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/link-icons/screen.css delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/rtl/readme.txt delete mode 100644 app/assets/stylesheets/vendor/blueprint/plugins/rtl/screen.css delete mode 100644 app/assets/stylesheets/vendor/blueprint/print.css delete mode 100644 app/assets/stylesheets/vendor/blueprint/screen.css delete mode 100644 app/assets/stylesheets/vendor/blueprint/src/forms.css delete mode 100644 app/assets/stylesheets/vendor/blueprint/src/grid.css delete mode 100644 app/assets/stylesheets/vendor/blueprint/src/grid.png delete mode 100644 app/assets/stylesheets/vendor/blueprint/src/ie.css delete mode 100644 app/assets/stylesheets/vendor/blueprint/src/print.css delete mode 100644 app/assets/stylesheets/vendor/blueprint/src/reset.css delete mode 100644 app/assets/stylesheets/vendor/blueprint/src/typography.css delete mode 100644 app/views/publisher/_publisher_blueprint.html.haml delete mode 100644 app/views/publisher/_publisher_bootstrap.html.haml delete mode 100644 spec/javascripts/app/views/aspect_membership_blueprint_view_spec.js diff --git a/app/assets/javascripts/app/app.js b/app/assets/javascripts/app/app.js index a3aa65c5e..de6913f21 100644 --- a/app/assets/javascripts/app/app.js +++ b/app/assets/javascripts/app/app.js @@ -111,7 +111,6 @@ var app = { setupGlobalViews: function() { app.hovercard = new app.views.Hovercard(); - app.aspectMembershipsBlueprint = new app.views.AspectMembershipBlueprint(); $('.aspect_membership_dropdown').each(function(){ new app.views.AspectMembership({el: this}); }); diff --git a/app/assets/javascripts/app/views/aspect_membership_blueprint_view.js b/app/assets/javascripts/app/views/aspect_membership_blueprint_view.js deleted file mode 100644 index d7e95bdac..000000000 --- a/app/assets/javascripts/app/views/aspect_membership_blueprint_view.js +++ /dev/null @@ -1,172 +0,0 @@ -// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later - -/** - * this view lets the user (de-)select aspect memberships in the context - * of another users profile or the contact page. - * - * updates to the list of aspects are immediately propagated to the server, and - * the results are dislpayed as flash messages. - */ -app.views.AspectMembershipBlueprint = Backbone.View.extend({ - - initialize: function() { - // attach event handler, removing any previous instances - var selector = '.dropdown.aspect_membership .dropdown_list > li'; - $('body') - .off('click', selector) - .on('click', selector, _.bind(this._clickHandler, this)) - .on('keypress', selector, _.bind(this._clickHandler, this)); - - this.list_item = null; - this.dropdown = null; - }, - - // decide what to do when clicked - // -> addMembership - // -> removeMembership - _clickHandler: function(evt) { - var promise = null; - this.list_item = $(evt.target); - this.dropdown = this.list_item.parent(); - - this.list_item.addClass('loading'); - - if( this.list_item.is('.selected') ) { - var membership_id = this.list_item.data('membership_id'); - promise = this.removeMembership(membership_id); - } else { - var aspect_id = this.list_item.data('aspect_id'); - var person_id = this.dropdown.data('person_id'); - promise = this.addMembership(person_id, aspect_id); - } - - promise && promise.always(function() { - // trigger a global event - app.events.trigger('aspect_membership:update'); - }); - - return false; // stop the event - }, - - // return the (short) name of the person associated with the current dropdown - _name: function() { - return this.dropdown.data('person-short-name'); - }, - - // create a membership for the given person in the given aspect - addMembership: function(person_id, aspect_id) { - var aspect_membership = new app.models.AspectMembership({ - 'person_id': person_id, - 'aspect_id': aspect_id - }); - - aspect_membership.on('sync', this._successSaveCb, this); - aspect_membership.on('error', function() { - this._displayError('aspect_dropdown.error'); - }, this); - - return aspect_membership.save(); - }, - - _successSaveCb: function(aspect_membership) { - var aspect_id = aspect_membership.get('aspect_id'); - var membership_id = aspect_membership.get('id'); - var li = this.dropdown.find('li[data-aspect_id="'+aspect_id+'"]'); - - // the user didn't have this person in any aspects before, congratulate them - // on their newly found friendship ;) - if( this.dropdown.find('li.selected').length === 0 ) { - var msg = Diaspora.I18n.t('aspect_dropdown.started_sharing_with', { 'name': this._name() }); - Diaspora.page.flashMessages.render({ 'success':true, 'notice':msg }); - } - - li.attr('data-membership_id', membership_id) // just to be sure... - .data('membership_id', membership_id) - .addClass('selected'); - - this.updateSummary(); - this._done(); - }, - - // show an error flash msg - _displayError: function(msg_id) { - this._done(); - this.dropdown.removeClass('active'); // close the dropdown - - var msg = Diaspora.I18n.t(msg_id, { 'name': this._name() }); - Diaspora.page.flashMessages.render({ 'success':false, 'notice':msg }); - }, - - // remove the membership with the given id - removeMembership: function(membership_id) { - var aspect_membership = new app.models.AspectMembership({ - 'id': membership_id - }); - - aspect_membership.on('sync', this._successDestroyCb, this); - aspect_membership.on('error', function() { - this._displayError('aspect_dropdown.error_remove'); - }, this); - - return aspect_membership.destroy(); - }, - - _successDestroyCb: function(aspect_membership) { - var membership_id = aspect_membership.get('id'); - var li = this.dropdown.find('li[data-membership_id="'+membership_id+'"]'); - - li.removeAttr('data-membership_id') - .removeData('membership_id') - .removeClass('selected'); - - // we just removed the last aspect, inform the user with a flash message - // that he is no longer sharing with that person - if( this.dropdown.find('li.selected').length === 0 ) { - var msg = Diaspora.I18n.t('aspect_dropdown.stopped_sharing_with', { 'name': this._name() }); - Diaspora.page.flashMessages.render({ 'success':true, 'notice':msg }); - } - - this.updateSummary(); - this._done(); - }, - - // cleanup tasks after aspect selection - _done: function() { - if( this.list_item ) { - this.list_item.removeClass('loading'); - } - }, - - // refresh the button text to reflect the current aspect selection status - updateSummary: function() { - var btn = this.dropdown.parents('div.aspect_membership').find('.button.toggle'); - var aspects_cnt = this.dropdown.find('li.selected').length; - var txt; - - if( aspects_cnt === 0 ) { - btn.removeClass('in_aspects'); - txt = Diaspora.I18n.t('aspect_dropdown.toggle.zero'); - } else { - btn.addClass('in_aspects'); - txt = this._pluralSummaryTxt(aspects_cnt); - } - - btn.text(txt + ' ▼'); - }, - - _pluralSummaryTxt: function(cnt) { - var all_aspects_cnt = this.dropdown.find('li').length; - - if( cnt === 1 ) { - return this.dropdown.find('li.selected').first().text(); - } - - if( cnt === all_aspects_cnt ) { - return Diaspora.I18n.t('aspect_dropdown.all_aspects'); - } - - return Diaspora.I18n.t('aspect_dropdown.toggle', { 'count':cnt.toString() }); - } -}); -// @license-end - diff --git a/app/assets/javascripts/app/views/contact_view.js b/app/assets/javascripts/app/views/contact_view.js index 2ac8dc772..840edfe46 100644 --- a/app/assets/javascripts/app/views/contact_view.js +++ b/app/assets/javascripts/app/views/contact_view.js @@ -27,7 +27,6 @@ app.views.Contact = app.views.Base.extend({ // TODO render me client side!!! var href = this.model.person.url() + '/aspect_membership_button?size=small'; - if( gon.bootstrap ) href += '&bootstrap=true'; $.get(href, function(resp) { dropdownEl.html(resp); diff --git a/app/assets/javascripts/app/views/content_view.js b/app/assets/javascripts/app/views/content_view.js index 73c86c24b..75a4632cc 100644 --- a/app/assets/javascripts/app/views/content_view.js +++ b/app/assets/javascripts/app/views/content_view.js @@ -113,7 +113,7 @@ app.views.OEmbed = app.views.Base.extend({ clickedThumb = $(evt.target); } else { clickedThumb = $(evt.target).parent(".thumb"); - } + } var insertHTML = $(app.helpers.oEmbed.html(this.model.get("o_embed_cache"))); var paramSeparator = ( /\?/.test(insertHTML.attr("src")) ) ? "&" : "?"; insertHTML.attr("src", insertHTML.attr("src") + paramSeparator + "autoplay=1&wmode=opaque"); diff --git a/app/assets/javascripts/app/views/hovercard_view.js b/app/assets/javascripts/app/views/hovercard_view.js index 6e3ad43e8..92a89529a 100644 --- a/app/assets/javascripts/app/views/hovercard_view.js +++ b/app/assets/javascripts/app/views/hovercard_view.js @@ -123,9 +123,6 @@ app.views.Hovercard = app.views.Base.extend({ // TODO render me client side!!! var href = this.href(); href += "/aspect_membership_button"; - if(gon.bootstrap === true){ - href += "?bootstrap=true"; - } $.get(href, function(response) { self.dropdown_container.html(response); }); diff --git a/app/assets/javascripts/app/views/profile_header_view.js b/app/assets/javascripts/app/views/profile_header_view.js index e44300b29..7a460e182 100644 --- a/app/assets/javascripts/app/views/profile_header_view.js +++ b/app/assets/javascripts/app/views/profile_header_view.js @@ -49,7 +49,6 @@ app.views.ProfileHeader = app.views.Base.extend({ // TODO render me client side!!! var href = this.model.url() + '/aspect_membership_button?create=true&size=normal'; - if( gon.bootstrap ) href += '&bootstrap=true'; $.get(href, function(resp) { dropdownEl.html(resp); diff --git a/app/assets/javascripts/app/views/publisher/aspect_selector_blueprint_view.js b/app/assets/javascripts/app/views/publisher/aspect_selector_blueprint_view.js deleted file mode 100644 index 03f15f93d..000000000 --- a/app/assets/javascripts/app/views/publisher/aspect_selector_blueprint_view.js +++ /dev/null @@ -1,94 +0,0 @@ -// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later - -/* Copyright (c) 2010-2012, Diaspora Inc. This file is - * licensed under the Affero General Public License version 3 or later. See - * the COPYRIGHT file. - */ - -// Aspects view for the publisher. -// Provides the ability to specify the visibility of posted content as public -// or limited to selected aspects -app.views.PublisherAspectSelectorBlueprint = Backbone.View.extend({ - /* global AspectsDropdown */ - - events: { - "click .dropdown_list > li": "toggleAspect" - }, - - initialize: function(opts) { - this.form = opts.form; - }, - - // event handler for aspect selection - toggleAspect: function(evt) { - var el = $(evt.target); - - // visually toggle the aspect selection - if( el.is('.radio') ) { - AspectsDropdown.toggleRadio(el); - } else { - AspectsDropdown.toggleCheckbox(el); - } - - // update the selection summary - this._updateAspectsNumber(el); - this._updateSelectedAspectIds(); - }, - - // select a (list of) aspects in the dropdown selector by the given list of ids - updateAspectsSelector: function(ids){ - var el = this.$("ul.dropdown_list"); - this.$('.dropdown_list > li').each(function(){ - var el = $(this); - var aspectId = el.data('aspect_id'); - if (_.contains(ids, aspectId)) { - el.addClass('selected'); - } - else { - el.removeClass('selected'); - } - }); - - this._updateAspectsNumber(el); - this._updateSelectedAspectIds(); - }, - - // take care of the form fields that will indicate the selected aspects - _updateSelectedAspectIds: function() { - var self = this; - - // remove previous selection - this.form.find('input[name="aspect_ids[]"]').remove(); - - // create fields for current selection - this.$('.dropdown_list li.selected').each(function() { - var el = $(this); - var aspectId = el.data('aspect_id'); - - self._addHiddenAspectInput(aspectId); - - // close the dropdown when a radio item was selected - if( el.is('.radio') ) { - el.closest('.dropdown').removeClass('active'); - } - }); - }, - - _updateAspectsNumber: function(el){ - AspectsDropdown.updateNumber( - el.closest(".dropdown_list"), - null, - el.parent().find('li.selected').length, - '' - ); - }, - - _addHiddenAspectInput: function(id) { - var uid = _.uniqueId('aspect_ids_'); - this.form.append( - '' - ); - } -}); -// @license-end - diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 65f0771cd..1c982d810 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -1,1817 +1,86 @@ -@import "compass"; -@import "perfect-scrollbar"; +@import 'bootstrap-fix'; + +@import 'perfect-scrollbar'; @import "colors"; -@import "ui"; -@import "_mixins"; -@import "_flash_messages"; -@import "new_styles/_spinner"; +@import 'mixins'; +@import 'new_styles/new_mixins'; +@import 'new_styles/variables'; -@import "sidebar"; -@import "leftnavbar"; -@import "sprites"; -@import "header"; -@import "footer"; -@import "opengraph"; -@import "poll"; -@import "help"; -@import "publisher_blueprint"; -@import "facebox"; -@import "aspects"; -@import "stream-faces"; -@import "popover"; -@import "stream_element_blueprint"; -@import "report"; -@import "new_styles/_forms"; -@import "tag"; -@import "photo"; -@import "chat"; +/* core */ +@import 'flash_messages'; +@import 'sprites'; -/* ====== media ====== */ -.media { - margin: 10px; -} +@import 'new_styles/base'; +@import 'new_styles/buttons'; +@import 'new_styles/interactions'; +@import 'new_styles/spinner'; -.media, .bd { - overflow: hidden; - zoom: 1; -} +/* font overrides */ +@import 'new_styles/typography'; -.media .img { - float: left; - margin-right: 10px; -} +/* login */ +@import 'new_styles/login'; +@import 'new_styles/registration'; +@import 'new_styles/landing'; -.media .img img { - display: block; -} +@import 'new_styles/forms'; -.media .imgEt { - float: right; - margin-left: 10px; -} +/* navs */ +@import 'new_styles/navs'; -/* ====== ----- ====== */ +/* profile and settings pages */ +@import 'new_styles/settings'; -body { - padding: 2em; - margin: 0 { - top: 33px; - }; - background-color: $background-white; - font: { - family: "Helvetica Neue", Helvetica, Arial, sans-serif; - size: 13px; - }; -} +/* new SPV */ +@import 'header'; +@import 'footer'; +@import 'bootstrap-headerfix'; +@import 'opengraph'; +@import 'single-post-view'; +@import 'new_styles/poll'; -header { - line-height: 20px; -} +/* conversations */ +@import 'conversations'; +@import 'facebox'; -a { - color: $blue; - text: { - decoration: none; - }; - &:hover { - color: $blue; - text: { - decoration: underline; - }; - } - &.disabled { - color: $link-disabled-grey; - cursor: default; - } - &.disabled.button:hover { - color: $link-disabled-grey; - cursor: default; - background: #f7f7f7; - } -} +/* publisher */ +@import 'publisher'; +@import 'aspects'; -p { - word-wrap: break-word; -} +/* bookmarklet */ +@import 'bookmarklet'; -h1, h2, h3, h4 { - margin: { - bottom: 5px; - }; - small { - font-size: small; - color: $text-grey; - } -} +/* notifications */ +@import 'notifications'; -ul > li { - list-style: none; -} +/* help */ +@import 'help'; -.content ul li { - list-style: disc; -} +/* getting started */ +@import 'getting-started'; -.rtl { - direction: rtl; - text-align: right; -} +/* people */ +@import 'people'; +@import 'invitations'; +@import 'profile'; -.hidden { - display: none; -} +/* stream */ +@import 'tag'; +@import 'stream-faces'; +@import 'stream'; +@import 'stream_element'; +@import 'comments'; -.avatar { - box-shadow: rgba(0, 0, 0, 0.12) 0px 0px 5px inset; - background: { - color: $background-grey; - }; - width: 50px; - height: 50px; - overflow: hidden; -} +/* right bar */ +@import 'sidebar'; -#content { - background: { - color: white; - }; - border: 1px solid #cccccc; - height: 100%; -} +/* contacts */ +@import 'contacts'; +@import 'leftnavbar'; -.login_error, -.login_alert { - color: rgb(208, 49, 43); - text-shadow: 1px 1px 20px rgb(208, 49, 43); -} +/* code */ +@import 'new_styles/code'; -.login_notice { - color: rgb(10, 150, 10); - text-shadow: 1px 1px 20px rgb(126, 240, 77); -} - -.fieldWithErrors { - display: inline; -} - -.error_messages { - width: 400px; - border: 2px solid #cf0000; - padding: 0; - padding-bottom: 12px; - margin-bottom: 20px; - background-color: #f0f0f0; - font: { - size: 12px; - }; - h2 { - text-align: left; - padding: 5px 5px 5px 15px; - margin: 0; - font: { - weight: bold; - size: 12px; - }; - background-color: #cc0000; - } - p { - margin: 8px 10px; - } - ul { - margin: 0; - } -} - -////////////////////////////////// - -////////////////////////////////// -//hacks for tagging plugin... -ul.as-selections { - width: 100% !important; -} - -////////////////////////////////// - -.unread { - background-color: #e6e6e6; - color: #333333 !important; - time { - color: #333333 !important; - } -} - -#author_info { - position: relative; - .avatar img { - position: relative; - top: 0px; - display: inline-block; - height: 30px; - width: 30px; - } - .from { - display: inline-block; - } - &.profile { - .from { - padding: 0; - } - } - h2, - h3, - h4, - h5 { - display: inline-block; - margin: { - bottom: 10px; - right: 10px; - }; - } - h2 { - margin: { - bottom: 0; - }; - } - &.show { - a { - margin: { - right: 1em; - }; - font: { - weight: normal; - }; - } - h4, - h5 { - margin: 0; - padding: 0; - } - } - .right { - top: 10px; - } - .description { - margin: { - bottom: 10px; - }; - } -} - -.info { - font-size: smaller; -} - -.controls { - z-index: 6; - float: right; - .post_report, .comment_report { - display: inline-block; - .icons-report { - height: 14px; - width: 14px; - } - } - .block_user { - display: inline-block; - .icons-ignoreuser { - height: 14px; - width: 14px; - } - } - .create_participation { - display: inline-block; - .icons-create_participation { - height: 14px; - width: 14px; - } - } - .destroy_participation { - display: inline-block; - .icons-destroy_participation { - height: 14px; - width: 14px; - } - } - .delete { - display: inline-block; - .icons-deletelabel { - height: 14px; - width: 14px; - } - } - a:hover { - text-decoration: none; - } -} - -.grey, -.grey * { - color: $text-grey; -} - -.pull-left { - float: left; -} - -.pull-right { - float: right; -} - -.details, -.details * { - font: { - weight: normal; - }; -} - -.time, -.via { - color: #aaaaaa; - a { - color: $text-grey; - } - text: { - decoration: none; - }; - border: none; -} - -#user_name { - margin: { - bottom: 20px; - }; - img { - margin: { - right: 10px; - }; - display: inline-block; - float: left; - height: 40px; - } - h1 { - margin: { - bottom: 7px; - }; - line-height: 18px; - a { - color: black; - } - } - span { - size: small; - font: { - weight: normal; - }; - color: $text-grey; - } - #latest_message_time { - font-style: italic; - } - ul { - display: inline; - margin: 0; - padding: 0; - > li { - display: inline; - margin: { - right: 1em; - }; - } - } -} - -.stream.show { - &:hover { - > li { - background: none; - border: none; - } - } -} - -.submit_button { - input { - float: right; - } -} - -#photo_container { - text: { - align: center; - }; -} - -#show_photo { - z-index: 11; - position: relative; - display: inline-block; - max-width: 100%; - img { - max-width: 100%; - } - #photo_spinner { - z-index: 1; - position: absolute; - height: 100px; - width: 100px; - } - #caption { - min-height: 20px; - padding: 0 10px; - font: { - size: 16px; - }; - color: #333333; - } -} - -input:not([type='submit']):not([type='reset']):not([type='hidden']):not(.as-input), -textarea { - border-radius: 2px; - background-color: white; - color: black; - margin-top: 1px; - font: { - family: "Arial", "Helvetica", sans-serif; - size: 14px; - }; - padding: 0.3em; - display: block; - border: 1px solid #cccccc; - height: auto; -} - -input[type='checkbox'] { - width: auto !important; -} - -form p { - position: relative; - padding: 0; - margin: 0; -} - -form#update_profile_form p.checkbox_select { - label { - top: 0; - } -} - -form p.checkbox_select { - label { - left: 25px; - top: 3px; - position: absolute; - font-size: 1em; - } - img { - position: relative; - top: 6px; - } -} - -@mixin placeholder_styles { - color: $text-grey; - text-shadow: 0 1px 1px #eeeeee; - font-weight: normal; -} - -.placeholder { - @include placeholder_styles; -} - -/* those can't be combined, see: http://stackoverflow.com/questions/2610497 */ -*::input-placeholder { - @include placeholder_styles; -} - -.field_with_submit { - input[type='text'] { - width: 82%; - display: inline; - } -} - -.dim { - opacity: 0.3; -} - -img.thumb_small { - max-height: 50px; - max-width: 50px; -} - -img.thumb_medium { - max-height: 100px; - max-width: 100px; -} - -img.thumb_large { - max-height: 300px; - max-width: 300px; -} - -img.scaled_full { - max-height: 700px; - max-width: 700px; -} - -#thumbnails { - a { - display: inline-block; - height: 140px; - min-height: 100px; - margin: { - bottom: 5px; - right: 2px; - }; - img { - height: 140px; - } - } -} - -ul#settings_nav { - display: inline; - padding: 0; - font: { - size: large; - }; - position: absolute; - left: 198px; - top: 5px; - > li { - display: inline; - margin: { - right: 1em; - }; - font: { - weight: 700; - }; - a { - padding: 2px; - font: { - weight: normal; - }; - } - } -} - -.settings_pane { - display: none; -} - -#account_data { - a { - line-height: 30px; - } -} - -.contact_pictures.horizontal { - img { - margin-right: -5px; - } -} - -#thumbnails { - line-height: 14px; -} - -.dull { - color: #aaaaaa; - text-align: center; - font: { - style: italic; - }; - a { - color: #69aedd; - } -} - -h1,h2,h3,h4 { - .description { - font: { - size: 70%; - weight: 100; - }; - color: #aaaaaa; - margin: { - top: 0.5em; - }; - } -} - -h2,h3,h4 { - .description { - font: { - size: 80%; - weight: 200; - }; - } -} - -input[type="search"] { - appearance: textfield; -} - -#photo_edit_options { - display: none; -} - -#photodropzone { - padding: 0px; - margin: 0px; -} - -#section_header { - width: 100%; - border: { - bottom: 2px solid #777777; - }; - position: relative; - margin: { - bottom: 2em; - }; - padding: { - bottom: 0.4em; - }; - h2 { - display: inline; - } - .right { - margin: { - top: 10px; - }; - } - h4 { - display: inline; - margin: { - left: 1em; - }; - } -} - -.photo_options { - color: $text-grey; - text: { - align: center; - }; -} - -.inline { - display: inline; -} - -.floating { - box-shadow: 0 1px 3px #333333; - position: relative; - padding: 12px; - margin: { - bottom: 2em; - }; - background: { - color: rgb(255, 255, 255); - }; - border: { - bottom: 1px solid #cccccc; - top: 1px solid white; - }; - .submit_block { - position: absolute; - bottom: 13px; - right: 12px; - } - form { - display: relative; - } -} - -#user_photo_uploader { - .avatar { - border-radius: 5px; - height: 100px; - width: 100px; - } -} - -h3 span.current_gs_step { - color: #22c910; -} - -ul#request_result { - padding: 0; - margin: 0; - li { - margin: { - bottom: 25px; - }; - input.add { - color: green; - } - } - .stream_element { - .content { - display: inline; - position: relative; - bottom: 2.5em; - padding: 0; - } - } -} - -#signup_field { - margin: { - top: -200px; - }; - height: 46px; - padding: 0; - width: 400px; - display: inline; - div { - display: inline; - } - #mce-responses { - margin: { - top: 12px; - }; - font: { - size: 12px; - }; - display: block; - color: $text-grey; - text-shadow: 0 1px 0 white; - #mce-error-response { - color: red; - } - #mce-success-response { - color: green; - } - } - input[type='text'] { - top: -1px; - margin: 0 { - right: -3px; - }; - width: 300px; - border-radius: 5px 0 0 5px; - position: relative; - display: inline; - padding: 12px; - font: { - size: 18px; - }; - } - #big_action_button, input[type='submit'] { - @include linear-gradient(rgb(65, 182, 250), rgb(0, 123, 194)); - height: 47px; - margin: 0; - background: { - color: $blue; - }; - border-radius: 0 5px 5px 0; - border: 1px solid #cccccc; - padding: 12px; - font: { - size: 18px; - weight: bold; - }; - color: #eeeeee; - text-shadow: 0 1px 0 #333333; - text: { - align: center; - }; - &:hover { - @include linear-gradient(rgb(0, 136, 209), rgb(113, 204, 255)); - } - } -} - -#diaspora_description { - background: { - image: image-url("branding/ball.png"); - repeat: no-repeat; - position: top center; - }; - padding: { - top: 250px; - }; - margin: { - top: -200px; - }; - font: { - size: 3.3em; - weight: bold; - }; - text-shadow: 0 1px 3px #999999; - p { - box-shadow: 0 1px 3px #cccccc; - padding: 12px; - background: { - color: white; - }; - } -} - -#login_field { - text: { - align: left; - }; - font: { - style: italic; - }; - margin: { - top: 14px; - left: 540px; - }; - color: $text-grey; -} - -ul#press_logos { - margin: 0 { - top: 100px; - }; - padding: 0; - > li { - display: inline; - margin: { - right: 30px; - }; - img { - height: 40px; - } - &:last-child { - margin: { - right: 0; - }; - } - } -} - -#landing_content { - margin: { - top: 100px; - }; - text: { - align: center; - }; -} - -#why { - margin: { - bottom: 48px; - }; - h2 { - text-shadow: 0 1px white; - border: { - bottom: 3px solid #eeeeee; - }; - } -} - -#signup { - margin: { - bottom: 48px; - }; -} - -#already_invited_pane { - h4 { - color: $text-dark-grey; - } - color: $text-dark-grey; -} - -#search_title { - font: { - weight: 200; - }; - .term { - font: { - weight: bold; - }; - } -} - -.aspects { - position: relative; - margin: { - top: 1em; - }; - .right { - right: 12px; - } - .contact_list { - height: auto; - max-height: auto; - width: 500px; - } -} - -.aspects .aspect_badge { - font: { - size: 1em; - }; -} - -.share_with { - min-width: 430px; - .avatar { - width: 50px; - height: 50px; - float: left; - } - h4,p { - padding: { - left: 64px; - }; - } - p { - color: #eeeeee; - } -} - -#aspects_list { - height: auto; -} - -.show_comments { - border: { - top: 1px solid $border-grey; - }; - margin: { - top: 5px; - }; -} - -.show_comments, -.likes_container { - a { - color: $text-grey; - } -} - -.likes { - .entypo.heart { - font-size: 16px; - line-height: 16px; - vertical-align: top; - margin-right: 5px; - } - .bd { - display: inline-block; - .expand_likes { - vertical-align: text-bottom; - } - } -} - -.mark_all_read { - position: relative; - top: 10px; -} - -#inner_account_delete { - width: 810px; -} - -.icons-monotone_email_letter_round { - height: 128px; - width: 128px; -} - -#email_invitation { - input { - width: 100%; - } - textarea { - width: 100%; - } -} - -.share_with { - .add_aspect { - border-radius: 5px; - margin: { - top: 0.5em; - }; - background: { - color: #dddddd; - }; - p { - padding: { - left: 1em; - }; - input[type='text'] { - width: 95%; - } - &.checkbox_select { - label { - padding: { - left: 15px; - }; - top: 0; - } - height: 2em; - } - } - .right { - z-index: 5; - top: 34px; - right: 1em; - } - } - .done { - padding: 1em { - bottom: 2em; - }; - .right { - right: 1em; - } - } -} - -.invite_friends { - padding: 1em; - background: { - color: $background-grey; - }; - border: 1px solid #cccccc; -} - -#remember_me { - input[type='checkbox'] { - display: inline; - height: auto !important; - top: 2px !important; - } - label { - font-size: inherit !important; - position: static; - } -} - -.public_icon, .service_icon { - cursor: pointer; -} - -#contact_visibility_padlock:hover { - opacity: 0.7; -} - -.side_stream { - .stream_element { - padding: 10px 0; - } - .avatar { - float: left; - } -} - -.diaspora_handle { - font: { - size: 12px; - weight: normal; - }; - color: #555555; -} - -.add_tags { - font: { - weight: normal; - size: 11px; - }; -} - -.hover_edit { - display: none; - font: { - weight: normal; - size: 11px; - }; - margin: { - left: 5px; - }; -} - -.description:hover { - .hover_edit { - display: inline; - } -} - -.date { - background: { - color: #e6e6e6; - }; - border-radius: 8px; - padding: 5px; - color: $text-grey; - text-align: center; - .day { - font-size: 50px; - font-weight: 200; - margin-bottom: -15px; - margin-top: -10px; - } - .month { - font-size: 14px; - } -} - -.subtle { - color: $text-grey; - font: { - style: italic; - }; -} - -.button.sign_up { - @include linear-gradient(#d9ffa9, #b9e68a); - text-shadow: none; - color: #333333; - &:hover { - @include linear-gradient(darken(#d9ffa9, 10%), darken(#b9e68a, 10%)); - } - &:active { - @include linear-gradient(darken(#d9ffa9, 20%), darken(#b9e68a, 20%)); - } -} - -#client-application-image { - max-width: 100%; -} - -#service_stream { - margin: 0; - padding: 0; -} - -#authorize { - text-align: center; -} - -#application-description { - display: inline-block; - width: 300px; - padding-bottom: 20px; -} - -ul#requested-scopes { - vertical-align: middle; - li { - display: inline-block; - padding: 5px; - img { - height: 30px; - width: 30px; - } - .scope-description { - display: none; - } - } -} - -.item_count { - min-width: 16px; - line-height: 16px; - text-align: center; - float: right; - border-radius: 4px; - margin-top: 1px; - color: $text-grey; - background: { - color: $background-grey; - }; - display: inline-block; - font: { - size: 11px; - weight: 700; - }; -} - -ul.left_nav { - margin: 0 { - bottom: 15px; - }; - padding: 0; - &.sub { - padding-left: 6px; - } - a.community_aspect_selector { - width: 152px; - vertical-align: middle; - display: inline-block; - line-height: 25px; - text: { - decoration: none; - }; - } - a { - font-weight: bold; - color: $link-grey; - text: { - decoration: none; - }; - } - li { - position: relative; - width: 100%; - } - li.active { - > a.home_selector:not(.sub_selected) { - font: { - weight: 700; - }; - } - > a:not(.sub_selected) { - color: #333333; - .item_count { - color: $text-dark-grey; - } - } - } - a.aspect_selector, - a.home_selector, - a.tag_selector, - a.element_selector { - &:active { - cursor: grabbing; - } - } - a.home_selector, - a.tag_selector, - a.element_selector, - .root_element { - display: block; - width: 100%; - padding: 3px 7px; - } - a.home_selector, - li.aspect_element, - a.element_selector { - &:hover { - border-radius: 2px; - background: { - color: lighten($blue, 45%); - }; - text: { - decoration: none; - }; - } - } - .unfollow_icon { - margin-right: 10px; - margin-top: 4px; - @include transition(opacity); - opacity: 0.3; - position: absolute; - display: none; - padding: 0 5px; - &:hover { - opacity: 1; - } - } - .edit { - margin-right: 10px; - margin-top: 4px; - width: 12px; - height: 12px; - margin-top: 6px; - @include transition(opacity); - opacity: 0.3; - float: right; - display: none; - &:hover { - opacity: 1; - } - } - ul.sub_nav { - padding: { - left: 25px; - }; - margin: 0; - li { - width: 204px; - } - } -} - -.section { - .left_nav { - a.aspect_selector, - a.home_selector { - width: 150px; - } - ul.sub_nav { - width: 140px; - &:hover { - width: auto; - } - a.aspect_selector { - width: 112px; - vertical-align: middle; - display: inline-block; - line-height: 25px; - text: { - decoration: none; - }; - } - a.tag_selector { - width: 117px; - overflow: hidden; - position: relative; - display: inline-block; - &:after { - display: inline-block; - content: ""; - width: 80px; - height: 25px; - position: absolute; - top: 0px; - left: 100px; - } - &:hover:after { - background: none; - } - } - li { - height: 25px; - .icons-check_yes_ok { - height: 18px; - width: 18px; - display: inline-block; - margin-left: 3px; - vertical-align: middle; - } - .icons-deletelabel { - height: 14px; - width: 14px; - margin-top: 4px; - } - } - li.unfollow, - li.sub_nav_item { - width: 172px; - } - li.unfollow:hover, - li.sub_nav_item:hover, - li.hover { - border-radius: 2px; - background: { - color: lighten($blue, 45%); - }; - .edit, - .unfollow_icon { - z-index: 1; - display: inline-block; - .icons-monotone_close_exit_delete { - height: 16px; - width: 16px; - } - } - } - } - } - .user_card { - margin-left: 8px; - } -} - -.unread-setter { - display: none; -} - -.stream_container { - min-height: 500px; - h3 { - margin: { - bottom: 0; - }; - } - border: { - left: 1px solid $border-grey; - }; - padding: { - left: 10px; - top: 20px; - }; - margin: { - left: -10px; - top: -20px; - }; -} - -#aspect_stream_header { - padding: 0 12px; -} - -.new_aspect, -a.toggle_selector { - outline: none; - color: $text-grey; - font: { - style: italic; - }; - &:hover { - color: $link-grey; - } -} - -#community_spotlight { - .avatar { - height: 140px; - width: 140px; - } -} - -.user_card { - border-radius: 3px; - box-shadow: 0 1px 5px #cccccc; - padding: 10px { - bottom: 30px; - }; - margin: { - bottom: 15px; - right: 10px; - }; - position: relative; - min-height: 220px; - vertical-align: top; - border: 1px solid #cccccc; - display: inline-block; - width: 140px; - .tags { - color: $text-grey; - } - h4 { - margin: { - bottom: 0; - }; - padding: { - bottom: 2px; - }; - } - .dropdown { - width: 100%; - } -} - -.add_user_to_aspect { - bottom: 12px; - right: 5px; - position: absolute; -} - -#right_service_icons { - text-align: center; - padding: 10px { - bottom: 0; - }; - .social_media_logos-facebook-24x24, - .social_media_logos-twitter-24x24, - .social_media_logos-tumblr-24x24, - .social_media_logos-wordpress-24x24, - .social_media_logos-email-24x24, - .social_media_logos-feed-24x24, - .social_media_logos-website-24x24 { - height: 24px; - width: 24px; - } - a { - display: inline-block; - } -} - -.action_item { - padding-right: 5px; -} - -.accept_invitation_form, -.sign_up_form { - min-height: 350px; - font-size: 16px; - input[type='text'], - input[type='password'], - input[type='email'] { - font-size: 16px !important; - width: 378px !important; - } - .diaspora_id_text { - font-size: 12px; - text-align: right; - color: $text-grey; - margin: { - top: -8px; - }; - padding: 0; - } - .submit_field { - text-align: right; - } -} - -.accept_invitation_text { - font: { - weight: lighter; - }; -} - -.red { - color: $red; -} - -.green { - color: green; -} - -.resend { - color: black; - &:hover { - text-decoration: none; - color: black; - &:hover { - text-decoration: none; - } - } -} - -#grey_header { - box-shadow: 0 1px 1px #eeeeee; - background: { - color: #fafafa; - }; - width: 100%; - position: absolute; - left: 0; - top: 0; - padding: { - top: 80px; - bottom: 20px; - }; - text: { - align: center; - }; - border: { - bottom: 1px solid $border-grey; - }; -} - -.mobile_row { - margin: { - bottom: 50px; - }; -} - -.field_with_errors { - position: relative; - input { - box-shadow: 0 0 8px lighten(#dd0000, 30%); - border: 1px solid #dd0000 !important; - } -} - -.field_with_errors .message { - color: #dd0000; - font-size: 12px; - position: absolute; - top: 4px; - right: 10px; - left: auto; -} - -.new_user_form fieldset, .accept_invitation_form fieldset { - border-radius: 3px; - background: { - color: white; - color: rgba(255, 255, 255, 0.95); - }; - .submit_field { - margin: { - top: 15px; - }; - } - span.host_uri { - float: right; - margin-top: -28px; - color: $text-grey; - padding-right: 9px; - } -} - -.center { - text-align: center; -} - -.nostrap, -.nostrap:focus { - box-shadow: none; -} - -#hello-there { - p { - font-size: medium; - } - h1 { - margin: 0px; - } - h2 { - margin: { - top: 80px; - bottom: 12px; - }; - } - h3 { - font: { - size: large; - weight: 200; - }; - margin: 0px; - } - form, p { - margin-left: 30px; - } - input { - margin-bottom: 15px; - } - .hero-unit { - margin: 20px 42px; - padding: 40px 80px; - } - .awesome { - text-align: center; - margin-top: 60px; - .creation { - font-size: 16px; - } - } -} - -#profile_photo_upload { - #fileInfo { - margin-top: 12px; - text-align: left; - } -} - -#welcome-to-diaspora { - box-shadow: inset 0 -2px 10px rgba(0, 0, 0, 0.35); - position: absolute; - width: 100%; - left: 0; - top: 0; - padding: { - top: 50px; - bottom: 10px; - }; - h1,h3 { - color: white; - text-overflow: ellipsis; - white-space: nowrap; - } - background: orange; - &:hover { - #gs-skip-x { - opacity: 0.4; - @include transition(opacity, 0.25s); - &:hover { - opacity: 1; - } - } - } -} - -#gs-shim { - position: absolute; - top: 380px; -} - -#gs-skip-x { - opacity: 0; - @include transition(opacity, 0.25s); - img { - position: relative; - right: 4px; - height: 20px; - } -} - -.avatar.micro { - height: 20px; - width: 20px; -} - -#gs-name-form-spinner { - position: absolute; - top: 24px; - right: -33px; -} - -.left_nav { - #new_tag_following { - width: 137px; - margin: { - left: 24px; - }; - input[type='text'] { - width: 137px; - font: { - size: 13px; - }; - } - } - #tag_following_submit { - &.hidden { - display: none; - } - } -} - -.nsfw-shield { - border-radius: 3px; - background-color: $background-grey; - width: 90%; - padding: 5px 10px; - border: 1px solid $border-grey; - color: $text-grey; -} - -#back-to-top { - display: block; - color: white; - position: fixed; - z-index: 49; - right: 20px; - bottom: 20px; - opacity: 0; - font-size: 3em; - padding: 0 11px 0 12px; - border-radius: 10px; - background-color: #aaaaaa; - &:hover { - opacity: 0.85 !important; - } - &.visible { - opacity: 0.5; - } -} - -.float-right { - float: right; - margin-top: 5px; -} - -.nsfw_off { - font-size: smaller; - color: $text-grey; - a { - color: $text-dark-grey; - } -} - -#fileInfo { - font-size: small; - text-align: right; - margin: 5px 2px; -} - -.post_preview_button { - padding: 3px 9px 4px; -} - -.post_preview { - padding: { - top: 5px; - }; - border: { - bottom: 3px solid #3f8fba !important; - }; - background: { - color: #e8f7ff; - }; -} - -#location { - border: 1px solid $border-dark-grey; - height: 20px; - #location_address { - border: none; - color: #aaaaaa; - height: 10px; - width: 430px; - float: left; - } - a#hide_location { - position: absolute; - right: 22px; - filter: alpha(opacity = 30); - -moz-opacity: 0.3; - -khtml-opacity: 0.3; - opacity: 0.3; - z-index: 5; - } - a#hide_location:hover { - opacity: 1; - cursor: pointer; - } -} +/* statistics */ +@import 'new_styles/statistics' diff --git a/app/assets/stylesheets/blueprint.css b/app/assets/stylesheets/blueprint.css deleted file mode 100644 index 3f09fb9c3..000000000 --- a/app/assets/stylesheets/blueprint.css +++ /dev/null @@ -1,3 +0,0 @@ -/* -//= require vendor/blueprint/screen -*/ \ No newline at end of file diff --git a/app/assets/stylesheets/new-templates.scss b/app/assets/stylesheets/new-templates.scss deleted file mode 100644 index 1c982d810..000000000 --- a/app/assets/stylesheets/new-templates.scss +++ /dev/null @@ -1,86 +0,0 @@ -@import 'bootstrap-fix'; - -@import 'perfect-scrollbar'; - -@import "colors"; -@import 'mixins'; -@import 'new_styles/new_mixins'; -@import 'new_styles/variables'; - -/* core */ -@import 'flash_messages'; -@import 'sprites'; - -@import 'new_styles/base'; -@import 'new_styles/buttons'; -@import 'new_styles/interactions'; -@import 'new_styles/spinner'; - -/* font overrides */ -@import 'new_styles/typography'; - -/* login */ -@import 'new_styles/login'; -@import 'new_styles/registration'; -@import 'new_styles/landing'; - -@import 'new_styles/forms'; - -/* navs */ -@import 'new_styles/navs'; - -/* profile and settings pages */ -@import 'new_styles/settings'; - -/* new SPV */ -@import 'header'; -@import 'footer'; -@import 'bootstrap-headerfix'; -@import 'opengraph'; -@import 'single-post-view'; -@import 'new_styles/poll'; - -/* conversations */ -@import 'conversations'; -@import 'facebox'; - -/* publisher */ -@import 'publisher'; -@import 'aspects'; - -/* bookmarklet */ -@import 'bookmarklet'; - -/* notifications */ -@import 'notifications'; - -/* help */ -@import 'help'; - -/* getting started */ -@import 'getting-started'; - -/* people */ -@import 'people'; -@import 'invitations'; -@import 'profile'; - -/* stream */ -@import 'tag'; -@import 'stream-faces'; -@import 'stream'; -@import 'stream_element'; -@import 'comments'; - -/* right bar */ -@import 'sidebar'; - -/* contacts */ -@import 'contacts'; -@import 'leftnavbar'; - -/* code */ -@import 'new_styles/code'; - -/* statistics */ -@import 'new_styles/statistics' diff --git a/app/assets/stylesheets/new_styles/_buttons.scss b/app/assets/stylesheets/new_styles/_buttons.scss index bfc8b5300..732f98af3 100644 --- a/app/assets/stylesheets/new_styles/_buttons.scss +++ b/app/assets/stylesheets/new_styles/_buttons.scss @@ -29,29 +29,3 @@ } .btn.delete { color: desaturate($red,10%); } - -// TODO remove this when everything has been ported to Bootstrap -.button.creation { - $button-border-color: #aaa; - border-radius: 3px; - box-shadow: 0 1px 1px #cfcfcf; - @include transition(border); - @include button-gradient($creation-blue); - font: { - size: 12px; - } - color: #fff; - padding: 4px 9px; - min-width: 90px; - min-height: 10px; - border: 1px solid darken($button-border-color,20%); - - cursor: pointer; - white-space: nowrap; - - &:hover { - @include button-gradient-hover($creation-blue); - border: 1px solid darken($button-border-color,35%); - text-decoration: none; - } - } diff --git a/app/assets/stylesheets/new_styles/_registration.scss b/app/assets/stylesheets/new_styles/_registration.scss index 3e7d45b11..34964b3a7 100644 --- a/app/assets/stylesheets/new_styles/_registration.scss +++ b/app/assets/stylesheets/new_styles/_registration.scss @@ -84,4 +84,4 @@ } } } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/vendor/blueprint/AUTHORS.textile b/app/assets/stylesheets/vendor/blueprint/AUTHORS.textile deleted file mode 100644 index d873e010a..000000000 --- a/app/assets/stylesheets/vendor/blueprint/AUTHORS.textile +++ /dev/null @@ -1,42 +0,0 @@ -h1. Blueprint CSS Framework Authors and Contributors - -Blueprint is based on the work of many talented people. It is -through their good intentions we are allowed to use many of the -techniques found in the framework. - -h2. Current Team - -Blueprint was realized and maintained through version 0.7.1 by -"Olav Bjorkoy":http://bjorkoy.com who has sinced passed the torch -to the current team. They are: - -Admins: -* "Christian Montoya":http://christianmontoya.net -* "Josh Clayton":http://jdclayton.com - -Contributors: -* "Glenn Rempe":http://blog.rempe.us/ -* "Chris Eppstein":http://twitter.com/chriseppstein -* "Sean K. Stewart":http://seankstewart.com/ - -h2. Original CSS authors - -The first iteration of Blueprint was built upon many conventions -and ideas that were developed by true CSS experts. - -The grid and typography is based on work by: -* "Jeff Croft":http://jeffcroft.com -* "Nathan Borror":http://www.playgroundblues.com -* "Christian Metts":http://mintchaos.com -* "Wilson Miner":http://www.wilsonminer.com - -The CSS reset is based on work by: -* "Eric Meyer":http://www.meyerweb.com/eric - -The Fancy Type plugin is based on work by: -* "Mark Boulton":http://www.markboulton.co.uk -* "Typogrify":http://typogrify.googlecode.com - -(However, remember that these people are not involved with the -framework, so please don't waste their or your time asking them -for support.) diff --git a/app/assets/stylesheets/vendor/blueprint/LICENSE.txt b/app/assets/stylesheets/vendor/blueprint/LICENSE.txt deleted file mode 100644 index 13076fb5f..000000000 --- a/app/assets/stylesheets/vendor/blueprint/LICENSE.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2007 - 2010 blueprintcss.org - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/app/assets/stylesheets/vendor/blueprint/ie.css b/app/assets/stylesheets/vendor/blueprint/ie.css deleted file mode 100644 index 3dddda945..000000000 --- a/app/assets/stylesheets/vendor/blueprint/ie.css +++ /dev/null @@ -1,35 +0,0 @@ -/* ----------------------------------------------------------------------- - - - Blueprint CSS Framework 0.9 - http://blueprintcss.org - - * Copyright (c) 2007-Present. See LICENSE for more info. - * See README for instructions on how to use Blueprint. - * For credits and origins, see AUTHORS. - * This is a compressed file. See the sources in the 'src' directory. - ------------------------------------------------------------------------ */ - -/* ie.css */ -body {text-align:center;} -.container {text-align:left;} -* html .column, * html .span-1, * html .span-2, * html .span-3, * html .span-4, * html .span-5, * html .span-6, * html .span-7, * html .span-8, * html .span-9, * html .span-10, * html .span-11, * html .span-12, * html .span-13, * html .span-14, * html .span-15, * html .span-16, * html .span-17, * html .span-18, * html .span-19, * html .span-20, * html .span-21, * html .span-22, * html .span-23, * html .span-24 {display:inline;overflow-x:hidden;} -* html legend {margin:0px -8px 16px 0;padding:0;} -sup {vertical-align:text-top;} -sub {vertical-align:text-bottom;} -html>body p code {*white-space:normal;} -hr {margin:-8px auto 11px;} -img {-ms-interpolation-mode:bicubic;} -.clearfix, .container {display:inline-block;} -* html .clearfix, * html .container {height:1%;} -fieldset {padding-top:0;} -textarea {overflow:auto;} -input.text, input.title, textarea {background-color:#fff;border:1px solid #bbb;} -input.text:focus, input.title:focus {border-color:#666;} -input.text, input.title, textarea, select {margin:0.5em 0;} -input.checkbox, input.radio {position:relative;top:.25em;} -form.inline div, form.inline p {vertical-align:middle;} -form.inline label {position:relative;top:-0.25em;} -form.inline input.checkbox, form.inline input.radio, form.inline input.button, form.inline button {margin:0.5em 0;} -button, input.button {position:relative;top:0.25em;} \ No newline at end of file diff --git a/app/assets/stylesheets/vendor/blueprint/plugins/buttons/icons/cross.png b/app/assets/stylesheets/vendor/blueprint/plugins/buttons/icons/cross.png deleted file mode 100644 index 1514d51a3cf1b67e1c5b9ada36f1fd474e2d214a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmV;A0&x9_P)uEoyT++I zn$b9r%cFfhHe2K68PkBu*@^<$y+7xQ$wJ~;c5aBx$R=xq*41Wo zhwQus_VOgm0hughj}MhOvs#{>Vg09Y8WxjWUJY5YW zJ?&8eG!59Cz=|E%Ns@013KLWOLV)CObIIj_5{>{#k%TEAMs_GbdDV`x-iYsGH z#=Z{USAQA>NY(}X7=3{K8#4^nI0$7`a(T+P4hBKZ7hk58-_j0w;$<(*=f7ic$nT z*Wgd55in08>183j3?S=MAoDDTLoLSL$!_UDxXqSf-?qdd@H%8(We~hQu&uVIo$6NV z(zMY7wn6r5i617ZGZ)-J($xXssTcN*&WujcIDRIp6J4_PqOvJ}9!p6+yo8LmAGS3~ xN#Qq?aIt$6X#&>gHs{AQG2a)rMyf zFQK~pm1x3+7!nu%-M`k}``c>^00{o_1pjWJUTfl8mg=3qGEl8H@}^@w`VUx0_$uy4 z2FhRqKX}xI*?Tv1DJd8z#F#0c%*~rM30HE1@2o5m~}ZyoWhqv>ql{V z1ZGE0lgcoK^lx+eqc*rAX1Ky;Xx3U%u#zG!m-;eD1Qsn@kf3|F9qz~|95=&g3(7!X zB}JAT>RU;a%vaNOGnJ%e1=K6eAh43c(QN8RQ6~GP%O}Jju$~Ld*%`mO1p and - - - Change Password - - - - Cancel - diff --git a/app/assets/stylesheets/vendor/blueprint/plugins/buttons/screen.css b/app/assets/stylesheets/vendor/blueprint/plugins/buttons/screen.css deleted file mode 100644 index bb66b2154..000000000 --- a/app/assets/stylesheets/vendor/blueprint/plugins/buttons/screen.css +++ /dev/null @@ -1,97 +0,0 @@ -/* -------------------------------------------------------------- - - buttons.css - * Gives you some great CSS-only buttons. - - Created by Kevin Hale [particletree.com] - * particletree.com/features/rediscovering-the-button-element - - See Readme.txt in this folder for instructions. - --------------------------------------------------------------- */ - -a.button, button { - display:block; - float:left; - margin: 0.7em 0.5em 0.7em 0; - padding:5px 10px 5px 7px; /* Links */ - - border:1px solid #dedede; - border-top:1px solid #eee; - border-left:1px solid #eee; - - background-color:#f5f5f5; - font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif; - font-size:100%; - line-height:130%; - text-decoration:none; - font-weight:bold; - color:#565656; - cursor:pointer; -} -button { - width:auto; - overflow:visible; - padding:4px 10px 3px 7px; /* IE6 */ -} -button[type] { - padding:4px 10px 4px 7px; /* Firefox */ - line-height:17px; /* Safari */ -} -*:first-child+html button[type] { - padding:4px 10px 3px 7px; /* IE7 */ -} -button img, a.button img{ - margin:0 3px -3px 0 !important; - padding:0; - border:none; - width:16px; - height:16px; - float:none; -} - - -/* Button colors --------------------------------------------------------------- */ - -/* Standard */ -button:hover, a.button:hover{ - background-color:#dff4ff; - border:1px solid #c2e1ef; - color:#336699; -} -a.button:active{ - background-color:#6299c5; - border:1px solid #6299c5; - color:#fff; -} - -/* Positive */ -body .positive { - color:#529214; -} -a.positive:hover, button.positive:hover { - background-color:#E6EFC2; - border:1px solid #C6D880; - color:#529214; -} -a.positive:active { - background-color:#529214; - border:1px solid #529214; - color:#fff; -} - -/* Negative */ -body .negative { - color:#d12f19; -} -a.negative:hover, button.negative:hover { - background-color:#fbe3e4; - border:1px solid #fbc2c4; - color:#d12f19; -} -a.negative:active { - background-color:#d12f19; - border:1px solid #d12f19; - color:#fff; -} diff --git a/app/assets/stylesheets/vendor/blueprint/plugins/fancy-type/readme.txt b/app/assets/stylesheets/vendor/blueprint/plugins/fancy-type/readme.txt deleted file mode 100644 index 85f249152..000000000 --- a/app/assets/stylesheets/vendor/blueprint/plugins/fancy-type/readme.txt +++ /dev/null @@ -1,14 +0,0 @@ -Fancy Type - -* Gives you classes to use if you'd like some - extra fancy typography. - -Credits and instructions are specified above each class -in the fancy-type.css file in this directory. - - -Usage ----------------------------------------------------------------- - -1) Add this plugin to lib/settings.yml. - See compress.rb for instructions. diff --git a/app/assets/stylesheets/vendor/blueprint/plugins/fancy-type/screen.css b/app/assets/stylesheets/vendor/blueprint/plugins/fancy-type/screen.css deleted file mode 100644 index 127cf2553..000000000 --- a/app/assets/stylesheets/vendor/blueprint/plugins/fancy-type/screen.css +++ /dev/null @@ -1,71 +0,0 @@ -/* -------------------------------------------------------------- - - fancy-type.css - * Lots of pretty advanced classes for manipulating text. - - See the Readme file in this folder for additional instructions. - --------------------------------------------------------------- */ - -/* Indentation instead of line shifts for sibling paragraphs. */ - p + p { text-indent:2em; margin-top:-1.5em; } - form p + p { text-indent: 0; } /* Don't want this in forms. */ - - -/* For great looking type, use this code instead of asdf: - asdf - Best used on prepositions and ampersands. */ - -.alt { - color: #666; - font-family: "Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua", Georgia, serif; - font-style: italic; - font-weight: normal; -} - - -/* For great looking quote marks in titles, replace "asdf" with: - asdf” - (That is, when the title starts with a quote mark). - (You may have to change this value depending on your font size). */ - -.dquo { margin-left: -.5em; } - - -/* Reduced size type with incremental leading - (http://www.markboulton.co.uk/journal/comments/incremental_leading/) - - This could be used for side notes. For smaller type, you don't necessarily want to - follow the 1.5x vertical rhythm -- the line-height is too much. - - Using this class, it reduces your font size and line-height so that for - every four lines of normal sized type, there is five lines of the sidenote. eg: - - New type size in em's: - 10px (wanted side note size) / 12px (existing base size) = 0.8333 (new type size in ems) - - New line-height value: - 12px x 1.5 = 18px (old line-height) - 18px x 4 = 72px - 72px / 5 = 14.4px (new line height) - 14.4px / 10px = 1.44 (new line height in em's) */ - -p.incr, .incr p { - font-size: 10px; - line-height: 1.44em; - margin-bottom: 1.5em; -} - - -/* Surround uppercase words and abbreviations with this class. - Based on work by Jørgen Arnor Gårdsø Lom [http://twistedintellect.com/] */ - -.caps { - font-variant: small-caps; - letter-spacing: 1px; - text-transform: lowercase; - font-size:1.2em; - line-height:1%; - font-weight:bold; - padding:0 2px; -} diff --git a/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/doc.png b/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/doc.png deleted file mode 100644 index 834cdfaf48a509ca51d93250fb28dd12e5ea0a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777 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 $@x(z`^M_M|HO*v?Ne zsY*;Isq6~-a8a5}Vn0x zo}D5HSVvU-5A=TO!Lkwr;I@>RuISto+@yAV*S9uIxixySO?NGYKz!r7k z?5#=e!4=YSNn{9-~-R-OAy=B&sbmBLCHpAN~z7gHP5eD+%yNxXjfr z+l`+bpw8WnzOQliTwAV{MLm0hi30w4K0E_p(E_MUHfu%a z%65@%5qjAZzhfP&;2lR>qldV!odZ8wm`dQGpBAlEx3J?*vZihZwM>A)O?fPNzBQKG zn7d3)CO3l)?+(_>>^l+B4n`A-D22xh3!&c`KPmdhERC=B?C^&wC&wVg_=duc&kWx` z_;PnoDv~Hu7GPwl;`dhIWvJGsSX9p3f<;z57u)A&<+FHF-$!OU+aXsGn*~>KO3m2$ z4#l4wa(f0=;`>}P2oSB|~mrok$l6*Gl$CXF^ zHk{~-p3c|VUMGu6wyz(UzQrmswRS<@L0sY7W9#!fq+tx%Kkxmisg?0`iI7CEHE|^< zMPHhF+`8XC!@I6Y@mvy5U_sBtUT+x>BUo^!zJ|>?N;*3o$3yCjmPY+}D?A%TaBlG_fVT~i z%YAyuJ3lR7n(7=+nnW=&J$h}&PI&OHxd~vtxIoVBQ=hiwp|T(_&>*C*Yb4ZnZR{NJ%}ZmSOs*4x z$B2C#7gfnkX6Z_znT_6~WOH{48GlZwP)s&P^6O-3=~Hgv0uXgPoq{H=`ox--DWtoq z_d2a96%**!PW2eIHk*bnfka4`ASH_<%49J1*KLfeDLQ*ObbJMBN}r$h9Z@30qshou@ymxP zPPDbs2Vzo&331tm0*U4)J8=0gt1h&wpn{q?-4)56SX=en)U`z$v-9rTl1zlx|XoKTJ~p*^5{Jt-}Z4s6 z3c2v%lPlsiB4*5a1Pw=L%gsM&B~uQG8@9=#m0G@R=h{uCMqemGS;SXUM^Cy1 z@-w@J>#t;ycxxmR>XS)emjo(&ma?ExWxw3GLE7qFEDB~$b~=jQIs$&R(5p99drtJ5n1}c_&pQc89687O^>@*SuznuC>q(X33+^&kk&$u8&YMq znG-RQby<75ND7C+$>r=F6naZd#S?MJt+CI@dds90Otw8D>cM)B`UmBe@_KG`7uvfG z^rXHjl#C-HBTEX7&8Q%cLyk*X-I)6?yyVw)d`y+yQ*ecrBf1>WI92{aR}Ih+$isNE zG)r~Vj3w`CYgah8{yI)^sO9UcqzK47YNg6-@_)09vF82_>w-GOT zu6V<^Pz&sxZ4kSIRX5{?A6%&*OWwRj*1f?TiNYF_NiSE_Qm^PZ6Dehqvt}q?gQI`b zG56%f-;x{K)Kt)B|LP&qH#8s|$ha-Jh|+u+F5PjHF}ZjyZZ8~_5(i^cB~no(3UnIxkZsy zk!G1I*wBy(P%@c#s-8Q+#75_)&+POD&p&yuFV&F!#okU@%AIw1%7IT<&-IV%Zqk6WZNqAC^UfT^`6f=xg#+PSTBMfKP$JkoQH7m z7#%FN0HPSvKY2;5X-0qVl<({B+;8k8(zd7!EysER&ou{)*rQR_+gyjl&Ldn9nJR9K z5P>Y+94|6<#xWW)y~EB3Ugna@ECu1@3O_S&$mmQ3@P0hlUJ@-TtlXvYTt2xCb_}7< z9K%LEeBVIb!h+Eu76$J8xp*37VRFLVNJNL7GYD;Y*D+irQ@H`yW;HJ4@SmWJCg!d4cxEYXGF)dNvY zrITZeLPQv><&-PHxdy13YUZ)SM8*oc*;4T%UoBSx^`5~;#y91*_9#xV9m$*UFJN5N zfj?F`%cby_&O#n#C~Y}FLs4r9C5(|vI(mgJk@O9y#3Uu_ViedDk@6qv#`a&DVYPIK zJoR4i3imJmndeoR`2ucXt!Y)WHG7M?y|``OB@Fov8%_T<(&w4S+wF-bYn2sm4Uv!l zAkTPrW32P_WbKlyWHy-5hg%4H!@fx{1qrVB(GY!koVJ?!O1tKLY-8XdkqTih;D}0&Db56&O9SYwt zJ>JOvQDaYISZp91YIesXaK5gMAB3wSV9D0{;jDcGg(-);m?#1>PiB1Pl<(R`Ocv^h zQFmOxaP1At9IwYy^yP`CY^PQ;$Q8r|O7|$>{03&r#kx6R`C_ zJeBv@cy1_U;K%B6-ffY<*(lNVZm5|~4|&{6M?TrGmpzZI}s8@MZ$YgGD?U&YJj|wekc-T&YeuJKd1JbRmmG_GnyiP z?Dlc%bu%J(%IZt>Ant>}6&nLhU#3Wk_H3*H1=2i*YR}}%fO&}$fKH$@ZM7TdGawIX zSHCO;1uONr{%Gj`F=i*3@#@51!r1%7tr-9}oIZKSCQG@qc{!Sb`ZccR{(bvutleB4 zbn?Un*pP7%$<8&z3ny6i*OLYntmrkeYh6ndA+ZsF*N8vh% zZhME7u#c%9ECGCZ@b)&5je{DsWeZzyF}_cl~qx@JQ3%gGeLE<`0G^hCNno{ zZnm=tE?!2@<)exMsE~!EZ9e6AVDKH=dkUuMof_4sF@*S(Q_I!N#S|CYqsuZNvbAkJ zFk?U^mL{zK?vY-)=J%KqzI6fCXNhS6l7Svkwl!w%xiV9?tC#8=KlGU4-bipl;^z*q zZv#M(m}@{sSAMam(}@y2jkh93BM@3K9Ud9^A(Q(6osG#=zxghSxLLee$BgLsmyd8kM9(KUiw_r@lZN+iW7_&Kr)ytp6gawqX|H z6+F?s_CfJIruCcmJU0lj=g@(dX5H=E*p7D4`ZNq=v;3vx}O(>T2Y#j*G z;%v7re>v*(wKV)7A`4pKojuB<8l)8|F z`!6zJFZ0vi@Qf$pMAZ5+ zh}o%6`)Jch0*9}|>iyNDep2}9rQ1Uu9Zfee#~P@fgycIjXYys;BhNr;)5b>`@}LTCeL_ej^vhhSiJO za|7H5)R*|}8fylX$u5Bw-9fdI zmUzghShB7Cl~Q4~jmm)NE_BVz6}#`}myi!)w<)m&G~lj48bl0Vz0Q2upvW+xJNP4+U& zjIV3p)BO4P(o6I3bZLfX0n11W380&)gLOd*a!-NR%oswmoq7K?UFYo$>6Giu(JP@K z?OmU!C}~kk9D2PZ8}S+0QXKK&b*j)FzU0FXj0FiP%V7Ub8F=a>Z(Bb!+sbG*5QfOn zv9iUq)_SF@jh~uK&n?9-PZQ+IhY2S3gRL#@OKoQE+S}%PHNQC-TgzB-7Z9U9=2Y$Z zOc!r>SA2P1u36#^yu<%!>W@2MQ#SfjBIXT8wvN;N7BKI)bWnA>UiTqXcpc3RGcMOg_5hvRg=x zC@r1V%`D&tS(dnuJlx=kh9@y^8=_6EbShTW6YA?+;yWPapurRn4*E|rw=`NnP;X

opyI`T@M*onR2x@p9G8Dainck$A!7@v2ldWE8G#1q*?zhl?yKIEse z7w7c0-#bt6O3&DWQajcg9nd{`vdXHp@T;B8Z#oa9nsYpD{VhttT^p;I7~bqCc5zj= z6CF+d`Z8o^D#}9D`Nmici6CpAyGc;<#BtGVq$?uvQbd*Ky;}-d5qE+oio)In+NEfM z(7j|KXIxoz?RYbd)Gq5b8(8NYn&V zNoQlPvO1^qq>aeleEYJVmxPs-2tnRXD7ics;y_#L2v(n2@S;Sv_x+MmFucgt=>^4x z%&rUHY~X`%sr|WU=KpD|I{AFHq#l#ivm}~E^Ed{D3 z6eD_6*fQe(rS4g1vuG=Ek5HBg_oCIV+j9KPfJ}ZAvTKtLM`G`-bWGqjTVqSrlg}d` zO^}S1S)0?g&ZnF@b5rrdUZyBFYIN<{HHx^zyh96jh)&d3?>-KmdCcCBwp})J@BJ(u zx@*E71VNEOTdXEG!#bU3>DB)K|34)SMq({xKgsf9`2s~j;UTekqwB7#qAX(OP9f=4)prY)%i5cqHa6av#9K!rhe4+ri$^O~hNA{vUBg?$7^9=A@_lhs51ZoL=g$ z0_k*B)ahiLTrKGMIJnu(xOn;K_yjn31bKu71=#4cOx@{Tn>y0*2-5Lzaozvm5#i<* z;p3+J=Rq&==>AO1)!b4E-3c;l<108cXVU;JIKG{$Xd9Wx!O3p+c-JW{T0{ry_1K#I6eJe1^xT@XXQ+t z|6P!y+dl!`qvZ59b>`&e;Ntvu5Up&~kgxR?S-tcgV@C%6W@$3JW{C|u7m+UG|<~Ei- z|8Lm^MR>UXnf@6HD z9NpdSnQ{MjX69xhmQJn?rtT6p4yINXoX(C`Vx0d;{2#CH@2kGI#l0;#|Lx0vUHZS9 z^8d=of4Ki&3IBJ{KZX1j+&{Sf;QB2Bza{?Tu0Obbi@h1#kGuZh`Yi&#CH~{CKe&F2z;B8Fxa$wD-y-l^;y>>CgX^~l{FeBSyZ+$%EdswK z{^PDcxPFVkZ;Ai7>kqEqBJf+{KkoX2>$eE}miUjm{^0s80>35xa5(;QB2Bza{?Tu0Obbi@bpQb1=l6TxbDZwj&S={?7%qx-u`rsG(Zp`-rh=e^=%((1yvsuf5d=&62Zj)Y zH&JviNS_F4_Hj|T(1j4$p-!}kixP9&dB4uv^MveG?dGf%sUCoc2!IFxD6wHRA2^dX zXRVk!-qSfk(jcaUKn#RP48(whfPlJUpApdrA!TQi_4D+fVoM;3I0gZ8{=Xv~Po;geVA+Em9@0Wq2 zr>OTZEGR05L=gf1T;ucCxq6Q6EgJiH@@-lVaAlQyw`jIF^c=&IVnj|95hHbE_cnt| zTzZQ?F4Ne@(bH(~&3nM%m)I@ID{@jJ2qZPjr)jhpe9hViOwH5k&|T#EmmL3(vHeUQ zq^!t^Al6JD;=mHq^Bg?J-8-zG2Od7gZbknG;K9czYjPqG*xjPo0k(c4%lPXTpw(qq z@aGMnxtFS(np+2kC} z7P02O874ZkJH$v#nCUVx$({yDN`IX@o2wyvTD#e`qN`_w5<}$3F+_z1iyEv%?$mbQ(# zwJpuiQJP8?X_`#S8b+U_G6=ziYB!xPAcq{)ZJ0bECH@ zYx#`n8^Wzn^J!4>=q^bltNO15ry?0ecSLkjpT@vlid!jk)Fjf7&)q_V5zGs#3N%6* zbW~7Hg=&P0&~Y(|g>$hC9FL?;ttzPDZbpZu9OLb33^e2;FNTGJxScp1&q4M+y2ntQ z?C(=hpU$3~`Thx0eHwi0x`q+!d5k@|0_WHe%sG3e-s^MM`xM-ig!VcIA7H}X1ot~L zg=MLB4w-Q;Bi!!u2|I+Qb;0{{4Q53YX6+4_aXena{nmt*!YG7ua~`qc>o=?@U?rOU znS7%>klzi*muXnbM6i@4FR@s^8vTjDgy&%J?w?`u>NYMDFa_2%0SQ(qJE<3=<8Bzo zfdU60e*y(^$RF%r$kl)p7=7tlCDa$+J7w>}DU(O#~fk>pYuRvHi1E9^msg{tLeV XM&GIRvfA7%00000NkvXXu0mjf&%8>| diff --git a/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/pdf.png b/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/pdf.png deleted file mode 100644 index 8f8095e46fa4965700afe1f9d065d8a37b101676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmV-V0~O9lw>B8WRlD)Gm}Jrz31u-X&&gn2lvjs=i{7nIaL6v2==uw+8Lcs(8j27 z;|c`rmSv@Lx!heopGP^^Ieb3f=R!%Lpp$}iMS-&P3EJ)s48wrJ_Ni0~k|c47D2nj= z{jS6bt|kFpFf|p5cM`_&0Zh|`rfEp0(}=}lT#(6RpzAsUfxv^LSYX>WlAaN$>)*J5 z0#sE+JRUD8iT9*fz{)_^7@6P&!sEjTcD+I9Z4YjT1`wH@fV{cEvneYGFU%maIEU2s55&K(LixD|{p-uiS@?KNj zk-Go8G$hH6g002ovPDHLkV1hVj1#|!a diff --git a/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/visited.png b/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/visited.png deleted file mode 100644 index b8a1eceb9658ac430115dfee76a2f5441adc1cd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46925 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 diff --git a/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/xls.png b/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/icons/xls.png deleted file mode 100644 index b977d7e52e2446ea01201c5c7209ac3a05f12c9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcmV;I0%-k-P)^@R5;6x zlTS!gQ5431_q{u#M2 zg&W%y6a}>qj1Z|7Vu&-DW6d~k-n;jnHsjb-q#u0C^W!_5^C=MlKq<8oNCQ6qS00!X z5eI;XP=g!^f}j{hku}E1zZ?XCjE;`p19k(Rh%^AQQ54xysU+ocx$c#f61Z4HnT#3u~FR(3>BnZniMIF4DouI8Hi4u>cAK%EN)5PO(ip3(% zIgBx+QYirR){Z8QwV$9Z(Mpt=L-Or3#bf-G@66}txq0yc*T(zNTBDT0T8rO^JeNbSI-Tzf5!pBioy4NwAN^?iN#{;fH1Jke4Xa`^fR8m z%h6dq%xX)S?7`zae))(Xst^Scp6B8FejQW?RLTM8@0=vnnntuRGBM2dpo>gbCnTD= z^<;=JuqdSf@O>Z8^XdR?s+KEfhDdB_#ahFj^giCtzT(s8kA$AViyTqaAR;KGaLzUU z<=GqA4bRwpX|IG~*x>pZ!@zLr`XQ`od>m(`;jz|M_*1GDO#$7;n74ppb8=eiqh760 x0yt}J1#p`gw$`o!R{d7zU9~!Un@nJV{4bstt4Au+Up@c;002ovPDHLkV1kWhGjjj{ diff --git a/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/readme.txt b/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/readme.txt deleted file mode 100644 index fc4dc6490..000000000 --- a/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/readme.txt +++ /dev/null @@ -1,18 +0,0 @@ -Link Icons -* Icons for links based on protocol or file type. - -This is not supported in IE versions < 7. - - -Credits ----------------------------------------------------------------- - -* Marc Morgan -* Olav Bjorkoy [bjorkoy.com] - - -Usage ----------------------------------------------------------------- - -1) Add this line to your HTML: - diff --git a/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/screen.css b/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/screen.css deleted file mode 100644 index 7b4bef988..000000000 --- a/app/assets/stylesheets/vendor/blueprint/plugins/link-icons/screen.css +++ /dev/null @@ -1,40 +0,0 @@ -/* -------------------------------------------------------------- - - link-icons.css - * Icons for links based on protocol or file type. - - See the Readme file in this folder for additional instructions. - --------------------------------------------------------------- */ - -/* Use this class if a link gets an icon when it shouldn't. */ -body a.noicon { - background:transparent none !important; - padding:0 !important; - margin:0 !important; -} - -/* Make sure the icons are not cut */ -a[href^="http:"], a[href^="mailto:"], a[href^="http:"]:visited, -a[href$=".pdf"], a[href$=".doc"], a[href$=".xls"], a[href$=".rss"], -a[href$=".rdf"], a[href^="aim:"] { - padding:2px 22px 2px 0; - margin:-2px 0; - background-repeat: no-repeat; - background-position: right center; -} - -/* External links */ -a[href^="http:"] { background-image: url(icons/external.png); } -a[href^="mailto:"] { background-image: url(icons/email.png); } -a[href^="http:"]:visited { background-image: url(icons/visited.png); } - -/* Files */ -a[href$=".pdf"] { background-image: url(icons/pdf.png); } -a[href$=".doc"] { background-image: url(icons/doc.png); } -a[href$=".xls"] { background-image: url(icons/xls.png); } - -/* Misc */ -a[href$=".rss"], -a[href$=".rdf"] { background-image: url(icons/feed.png); } -a[href^="aim:"] { background-image: url(icons/im.png); } diff --git a/app/assets/stylesheets/vendor/blueprint/plugins/rtl/readme.txt b/app/assets/stylesheets/vendor/blueprint/plugins/rtl/readme.txt deleted file mode 100644 index 5564c402a..000000000 --- a/app/assets/stylesheets/vendor/blueprint/plugins/rtl/readme.txt +++ /dev/null @@ -1,10 +0,0 @@ -RTL -* Mirrors Blueprint, so it can be used with Right-to-Left languages. - -By Ran Yaniv Hartstein, ranh.co.il - -Usage ----------------------------------------------------------------- - -1) Add this line to your HTML: - diff --git a/app/assets/stylesheets/vendor/blueprint/plugins/rtl/screen.css b/app/assets/stylesheets/vendor/blueprint/plugins/rtl/screen.css deleted file mode 100644 index 7db7eb5e6..000000000 --- a/app/assets/stylesheets/vendor/blueprint/plugins/rtl/screen.css +++ /dev/null @@ -1,110 +0,0 @@ -/* -------------------------------------------------------------- - - rtl.css - * Mirrors Blueprint for left-to-right languages - - By Ran Yaniv Hartstein [ranh.co.il] - --------------------------------------------------------------- */ - -body .container { direction: rtl; } -body .column, body .span-1, body .span-2, body .span-3, body .span-4, body .span-5, body .span-6, body .span-7, body .span-8, body .span-9, body .span-10, body .span-11, body .span-12, body .span-13, body .span-14, body .span-15, body .span-16, body .span-17, body .span-18, body .span-19, body .span-20, body .span-21, body .span-22, body .span-23, body .span-24 { - float: right; - margin-right: 0; - margin-left: 10px; - text-align:right; -} - -body div.last { margin-left: 0; } -body table .last { padding-left: 0; } - -body .append-1 { padding-right: 0; padding-left: 40px; } -body .append-2 { padding-right: 0; padding-left: 80px; } -body .append-3 { padding-right: 0; padding-left: 120px; } -body .append-4 { padding-right: 0; padding-left: 160px; } -body .append-5 { padding-right: 0; padding-left: 200px; } -body .append-6 { padding-right: 0; padding-left: 240px; } -body .append-7 { padding-right: 0; padding-left: 280px; } -body .append-8 { padding-right: 0; padding-left: 320px; } -body .append-9 { padding-right: 0; padding-left: 360px; } -body .append-10 { padding-right: 0; padding-left: 400px; } -body .append-11 { padding-right: 0; padding-left: 440px; } -body .append-12 { padding-right: 0; padding-left: 480px; } -body .append-13 { padding-right: 0; padding-left: 520px; } -body .append-14 { padding-right: 0; padding-left: 560px; } -body .append-15 { padding-right: 0; padding-left: 600px; } -body .append-16 { padding-right: 0; padding-left: 640px; } -body .append-17 { padding-right: 0; padding-left: 680px; } -body .append-18 { padding-right: 0; padding-left: 720px; } -body .append-19 { padding-right: 0; padding-left: 760px; } -body .append-20 { padding-right: 0; padding-left: 800px; } -body .append-21 { padding-right: 0; padding-left: 840px; } -body .append-22 { padding-right: 0; padding-left: 880px; } -body .append-23 { padding-right: 0; padding-left: 920px; } - -body .prepend-1 { padding-left: 0; padding-right: 40px; } -body .prepend-2 { padding-left: 0; padding-right: 80px; } -body .prepend-3 { padding-left: 0; padding-right: 120px; } -body .prepend-4 { padding-left: 0; padding-right: 160px; } -body .prepend-5 { padding-left: 0; padding-right: 200px; } -body .prepend-6 { padding-left: 0; padding-right: 240px; } -body .prepend-7 { padding-left: 0; padding-right: 280px; } -body .prepend-8 { padding-left: 0; padding-right: 320px; } -body .prepend-9 { padding-left: 0; padding-right: 360px; } -body .prepend-10 { padding-left: 0; padding-right: 400px; } -body .prepend-11 { padding-left: 0; padding-right: 440px; } -body .prepend-12 { padding-left: 0; padding-right: 480px; } -body .prepend-13 { padding-left: 0; padding-right: 520px; } -body .prepend-14 { padding-left: 0; padding-right: 560px; } -body .prepend-15 { padding-left: 0; padding-right: 600px; } -body .prepend-16 { padding-left: 0; padding-right: 640px; } -body .prepend-17 { padding-left: 0; padding-right: 680px; } -body .prepend-18 { padding-left: 0; padding-right: 720px; } -body .prepend-19 { padding-left: 0; padding-right: 760px; } -body .prepend-20 { padding-left: 0; padding-right: 800px; } -body .prepend-21 { padding-left: 0; padding-right: 840px; } -body .prepend-22 { padding-left: 0; padding-right: 880px; } -body .prepend-23 { padding-left: 0; padding-right: 920px; } - -body .border { - padding-right: 0; - padding-left: 4px; - margin-right: 0; - margin-left: 5px; - border-right: none; - border-left: 1px solid #eee; -} - -body .colborder { - padding-right: 0; - padding-left: 24px; - margin-right: 0; - margin-left: 25px; - border-right: none; - border-left: 1px solid #eee; -} - -body .pull-1 { margin-left: 0; margin-right: -40px; } -body .pull-2 { margin-left: 0; margin-right: -80px; } -body .pull-3 { margin-left: 0; margin-right: -120px; } -body .pull-4 { margin-left: 0; margin-right: -160px; } - -body .push-0 { margin: 0 18px 0 0; } -body .push-1 { margin: 0 18px 0 -40px; } -body .push-2 { margin: 0 18px 0 -80px; } -body .push-3 { margin: 0 18px 0 -120px; } -body .push-4 { margin: 0 18px 0 -160px; } -body .push-0, body .push-1, body .push-2, -body .push-3, body .push-4 { float: left; } - - -/* Typography with RTL support */ -body h1,body h2,body h3, -body h4,body h5,body h6 { font-family: Arial, sans-serif; } -html body { font-family: Arial, sans-serif; } -body pre,body code,body tt { font-family: monospace; } - -/* Mirror floats and margins on typographic elements */ -body p img { float: right; margin: 1.5em 0 1.5em 1.5em; } -body dd, body ul, body ol { margin-left: 0; margin-right: 1.5em;} -body td, body th { text-align:right; } diff --git a/app/assets/stylesheets/vendor/blueprint/print.css b/app/assets/stylesheets/vendor/blueprint/print.css deleted file mode 100644 index fdb82208e..000000000 --- a/app/assets/stylesheets/vendor/blueprint/print.css +++ /dev/null @@ -1,29 +0,0 @@ -/* ----------------------------------------------------------------------- - - - Blueprint CSS Framework 0.9 - http://blueprintcss.org - - * Copyright (c) 2007-Present. See LICENSE for more info. - * See README for instructions on how to use Blueprint. - * For credits and origins, see AUTHORS. - * This is a compressed file. See the sources in the 'src' directory. - ------------------------------------------------------------------------ */ - -/* print.css */ -body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;} -.container {background:none;} -hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;} -hr.space {background:#fff;color:#fff;visibility:hidden;} -h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;} -code {font:.9em "Courier New", Monaco, Courier, monospace;} -a img {border:none;} -p img.top {margin-top:0;} -blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;} -.small {font-size:.9em;} -.large {font-size:1.1em;} -.quiet {color:#999;} -.hide {display:none;} -a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;} -a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;} \ No newline at end of file diff --git a/app/assets/stylesheets/vendor/blueprint/screen.css b/app/assets/stylesheets/vendor/blueprint/screen.css deleted file mode 100644 index 562a344e0..000000000 --- a/app/assets/stylesheets/vendor/blueprint/screen.css +++ /dev/null @@ -1,258 +0,0 @@ -/* ----------------------------------------------------------------------- - - - Blueprint CSS Framework 0.9 - http://blueprintcss.org - - * Copyright (c) 2007-Present. See LICENSE for more info. - * See README for instructions on how to use Blueprint. - * For credits and origins, see AUTHORS. - * This is a compressed file. See the sources in the 'src' directory. - ------------------------------------------------------------------------ */ - -/* reset.css */ -html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;} -article, aside, dialog, figure, footer, header, hgroup, nav, section {display:block;} -body {line-height:1.5;} -table {border-collapse:separate;border-spacing:0;} -caption, th, td {text-align:left;font-weight:normal;} -table, td, th {vertical-align:middle;} -blockquote:before, blockquote:after, q:before, q:after {content:"";} -blockquote, q {quotes:"" "";} -a img {border:none;} - -/* typography.css */ -html {font-size:100.01%;} -body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica", Arial, sans-serif;} -h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;} -h1 {font-size:3em;line-height:1;margin-bottom:0.5em;} -h2 {font-size:2em;margin-bottom:0.75em;} -h3 {font-size:1.5em;line-height:1;margin-bottom:1em;} -h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;} -h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;} -h6 {font-size:1em;font-weight:bold;} -h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;} -p {margin:0 0 1.5em;} -p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;} -p img.right {float:right;margin:1.5em 0 1.5em 1.5em;} -a:focus, a:hover {color:#000;} -a {color:#009;text-decoration:underline;} -blockquote {margin:1.5em;color:#666;font-style:italic;} -strong {font-weight:bold;} -em, dfn {font-style:italic;} -dfn {font-weight:bold;} -sup, sub {line-height:0;} -abbr, acronym {border-bottom:1px dotted #666;} -address {margin:0 0 1.5em;font-style:italic;} -del {color:#666;} -pre {margin:1.5em 0;white-space:pre;} -pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;overflow:auto;} -li ul, li ol {margin:0;} -ul, ol {margin:0 1.5em 1.5em 0;padding-left:3.333em;} -ul {list-style-type:disc;} -ol {list-style-type:decimal;} -dl {margin:0 0 1.5em 0;} -dl dt {font-weight:bold;} -dd {margin-left:1.5em;} -table {margin-bottom:1.4em;width:100%;} -th {font-weight:bold;} -thead th {background:#c3d9ff;} -th, td, caption {padding:4px 10px 4px 5px;} -tr.even td {background:#e5ecf9;} -tfoot {font-style:italic;} -caption {background:#eee;} -.small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;} -.large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;} -.hide {display:none;} -.quiet {color:#666;} -.loud {color:#000;} -.highlight {background:#ff0;} -.added {background:#060;color:#fff;} -.removed {background:#900;color:#fff;} -.first {margin-left:0;padding-left:0;} -.last {margin-right:0;padding-right:0;} -.top {margin-top:0;padding-top:0;} -.bottom {margin-bottom:0;padding-bottom:0;} - -/* forms.css */ -label {font-weight:bold;} -fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;} -legend {font-weight:bold;font-size:1.2em;} -input[type=text], input[type=password], input.text, input.title, textarea, select {background-color:#fff;border:1px solid #bbb;} -input[type=text]:focus, input[type=password]:focus, input.text:focus, input.title:focus, textarea:focus, select:focus {border-color:#666;} -input[type=text], input[type=password], input.text, input.title, textarea, select {margin:0.5em 0;} -input.text, input.title {width:300px;padding:5px;} -input.title {font-size:1.5em;} -textarea {width:390px;height:250px;padding:5px;} -input[type=checkbox], input[type=radio], input.checkbox, input.radio {position:relative;top:.25em;} -form.inline {line-height:3;} -form.inline p {margin-bottom:0;} -.error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;} -.error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;} -.notice {background:#FFF6BF;color:#514721;border-color:#FFD324;} -.success {background:#E6EFC2;color:#264409;border-color:#C6D880;} -.error a {color:#8a1f11;} -.notice a {color:#514721;} -.success a {color:#264409;} - -/* grid.css */ -.container {width:950px;margin:0 auto;} -.showgrid {background:url(src/grid.png);} -.column, .span-1, .span-2, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-9, .span-10, .span-11, .span-12, .span-13, .span-14, .span-15, .span-16, .span-17, .span-18, .span-19, .span-20, .span-21, .span-22, .span-23, .span-24 {float:left;margin-right:10px;} -.last {margin-right:0;} -.span-1 {width:30px;} -.span-2 {width:70px;} -.span-3 {width:110px;} -.span-4 {width:150px;} -.span-5 {width:190px;} -.span-6 {width:230px;} -.span-7 {width:270px;} -.span-8 {width:310px;} -.span-9 {width:350px;} -.span-10 {width:390px;} -.span-11 {width:430px;} -.span-12 {width:470px;} -.span-13 {width:510px;} -.span-14 {width:550px;} -.span-15 {width:590px;} -.span-16 {width:630px;} -.span-17 {width:670px;} -.span-18 {width:710px;} -.span-19 {width:750px;} -.span-20 {width:790px;} -.span-21 {width:830px;} -.span-22 {width:870px;} -.span-23 {width:910px;} -.span-24 {width:950px;margin-right:0;} -input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 {border-left-width:1px;border-right-width:1px;padding-left:5px;padding-right:5px;} -input.span-1, textarea.span-1 {width:18px;} -input.span-2, textarea.span-2 {width:58px;} -input.span-3, textarea.span-3 {width:98px;} -input.span-4, textarea.span-4 {width:138px;} -input.span-5, textarea.span-5 {width:178px;} -input.span-6, textarea.span-6 {width:218px;} -input.span-7, textarea.span-7 {width:258px;} -input.span-8, textarea.span-8 {width:298px;} -input.span-9, textarea.span-9 {width:338px;} -input.span-10, textarea.span-10 {width:378px;} -input.span-11, textarea.span-11 {width:418px;} -input.span-12, textarea.span-12 {width:458px;} -input.span-13, textarea.span-13 {width:498px;} -input.span-14, textarea.span-14 {width:538px;} -input.span-15, textarea.span-15 {width:578px;} -input.span-16, textarea.span-16 {width:618px;} -input.span-17, textarea.span-17 {width:658px;} -input.span-18, textarea.span-18 {width:698px;} -input.span-19, textarea.span-19 {width:738px;} -input.span-20, textarea.span-20 {width:778px;} -input.span-21, textarea.span-21 {width:818px;} -input.span-22, textarea.span-22 {width:858px;} -input.span-23, textarea.span-23 {width:898px;} -input.span-24, textarea.span-24 {width:938px;} -.append-1 {padding-right:40px;} -.append-2 {padding-right:80px;} -.append-3 {padding-right:120px;} -.append-4 {padding-right:160px;} -.append-5 {padding-right:200px;} -.append-6 {padding-right:240px;} -.append-7 {padding-right:280px;} -.append-8 {padding-right:320px;} -.append-9 {padding-right:360px;} -.append-10 {padding-right:400px;} -.append-11 {padding-right:440px;} -.append-12 {padding-right:480px;} -.append-13 {padding-right:520px;} -.append-14 {padding-right:560px;} -.append-15 {padding-right:600px;} -.append-16 {padding-right:640px;} -.append-17 {padding-right:680px;} -.append-18 {padding-right:720px;} -.append-19 {padding-right:760px;} -.append-20 {padding-right:800px;} -.append-21 {padding-right:840px;} -.append-22 {padding-right:880px;} -.append-23 {padding-right:920px;} -.prepend-1 {padding-left:40px;} -.prepend-2 {padding-left:80px;} -.prepend-3 {padding-left:120px;} -.prepend-4 {padding-left:160px;} -.prepend-5 {padding-left:200px;} -.prepend-6 {padding-left:240px;} -.prepend-7 {padding-left:280px;} -.prepend-8 {padding-left:320px;} -.prepend-9 {padding-left:360px;} -.prepend-10 {padding-left:400px;} -.prepend-11 {padding-left:440px;} -.prepend-12 {padding-left:480px;} -.prepend-13 {padding-left:520px;} -.prepend-14 {padding-left:560px;} -.prepend-15 {padding-left:600px;} -.prepend-16 {padding-left:640px;} -.prepend-17 {padding-left:680px;} -.prepend-18 {padding-left:720px;} -.prepend-19 {padding-left:760px;} -.prepend-20 {padding-left:800px;} -.prepend-21 {padding-left:840px;} -.prepend-22 {padding-left:880px;} -.prepend-23 {padding-left:920px;} -.border {padding-right:4px;margin-right:5px;border-right:1px solid #eee;} -.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #eee;} -.pull-1 {margin-left:-40px;} -.pull-2 {margin-left:-80px;} -.pull-3 {margin-left:-120px;} -.pull-4 {margin-left:-160px;} -.pull-5 {margin-left:-200px;} -.pull-6 {margin-left:-240px;} -.pull-7 {margin-left:-280px;} -.pull-8 {margin-left:-320px;} -.pull-9 {margin-left:-360px;} -.pull-10 {margin-left:-400px;} -.pull-11 {margin-left:-440px;} -.pull-12 {margin-left:-480px;} -.pull-13 {margin-left:-520px;} -.pull-14 {margin-left:-560px;} -.pull-15 {margin-left:-600px;} -.pull-16 {margin-left:-640px;} -.pull-17 {margin-left:-680px;} -.pull-18 {margin-left:-720px;} -.pull-19 {margin-left:-760px;} -.pull-20 {margin-left:-800px;} -.pull-21 {margin-left:-840px;} -.pull-22 {margin-left:-880px;} -.pull-23 {margin-left:-920px;} -.pull-24 {margin-left:-960px;} -.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;} -.push-1 {margin:0 -40px 1.5em 40px;} -.push-2 {margin:0 -80px 1.5em 80px;} -.push-3 {margin:0 -120px 1.5em 120px;} -.push-4 {margin:0 -160px 1.5em 160px;} -.push-5 {margin:0 -200px 1.5em 200px;} -.push-6 {margin:0 -240px 1.5em 240px;} -.push-7 {margin:0 -280px 1.5em 280px;} -.push-8 {margin:0 -320px 1.5em 320px;} -.push-9 {margin:0 -360px 1.5em 360px;} -.push-10 {margin:0 -400px 1.5em 400px;} -.push-11 {margin:0 -440px 1.5em 440px;} -.push-12 {margin:0 -480px 1.5em 480px;} -.push-13 {margin:0 -520px 1.5em 520px;} -.push-14 {margin:0 -560px 1.5em 560px;} -.push-15 {margin:0 -600px 1.5em 600px;} -.push-16 {margin:0 -640px 1.5em 640px;} -.push-17 {margin:0 -680px 1.5em 680px;} -.push-18 {margin:0 -720px 1.5em 720px;} -.push-19 {margin:0 -760px 1.5em 760px;} -.push-20 {margin:0 -800px 1.5em 800px;} -.push-21 {margin:0 -840px 1.5em 840px;} -.push-22 {margin:0 -880px 1.5em 880px;} -.push-23 {margin:0 -920px 1.5em 920px;} -.push-24 {margin:0 -960px 1.5em 960px;} -.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:right;position:relative;} -.prepend-top {margin-top:1.5em;} -.append-bottom {margin-bottom:1.5em;} -.box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;} -hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;} -hr.space {background:#fff;color:#fff;visibility:hidden;} -.clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;} -.clearfix, .container {display:block;} -.clear {clear:both;} diff --git a/app/assets/stylesheets/vendor/blueprint/src/forms.css b/app/assets/stylesheets/vendor/blueprint/src/forms.css deleted file mode 100644 index b49113407..000000000 --- a/app/assets/stylesheets/vendor/blueprint/src/forms.css +++ /dev/null @@ -1,65 +0,0 @@ -/* -------------------------------------------------------------- - - forms.css - * Sets up some default styling for forms - * Gives you classes to enhance your forms - - Usage: - * For text fields, use class .title or .text - * For inline forms, use .inline (even when using columns) - --------------------------------------------------------------- */ - -label { font-weight: bold; } -fieldset { padding:1.4em; margin: 0 0 1.5em 0; border: 1px solid #ccc; } -legend { font-weight: bold; font-size:1.2em; } - - -/* Form fields --------------------------------------------------------------- */ - -input[type=text], input[type=password], -input.text, input.title, -textarea, select { - background-color:#fff; - border:1px solid #bbb; -} -input[type=text]:focus, input[type=password]:focus, -input.text:focus, input.title:focus, -textarea:focus, select:focus { - border-color:#666; -} - -input[type=text], input[type=password], -input.text, input.title, -textarea, select { - margin:0.5em 0; -} - -input.text, -input.title { width: 300px; padding:5px; } -input.title { font-size:1.5em; } -textarea { width: 390px; height: 250px; padding:5px; } - -input[type=checkbox], input[type=radio], -input.checkbox, input.radio { - position:relative; top:.25em; -} - -form.inline { line-height:3; } -form.inline p { margin-bottom:0; } - - -/* Success, notice and error boxes --------------------------------------------------------------- */ - -.error, -.notice, -.success { padding: .8em; margin-bottom: 1em; border: 2px solid #ddd; } - -.error { background: #FBE3E4; color: #8a1f11; border-color: #FBC2C4; } -.notice { background: #FFF6BF; color: #514721; border-color: #FFD324; } -.success { background: #E6EFC2; color: #264409; border-color: #C6D880; } -.error a { color: #8a1f11; } -.notice a { color: #514721; } -.success a { color: #264409; } diff --git a/app/assets/stylesheets/vendor/blueprint/src/grid.css b/app/assets/stylesheets/vendor/blueprint/src/grid.css deleted file mode 100644 index 02a9d0ca3..000000000 --- a/app/assets/stylesheets/vendor/blueprint/src/grid.css +++ /dev/null @@ -1,280 +0,0 @@ -/* -------------------------------------------------------------- - - grid.css - * Sets up an easy-to-use grid of 24 columns. - - By default, the grid is 950px wide, with 24 columns - spanning 30px, and a 10px margin between columns. - - If you need fewer or more columns, namespaces or semantic - element names, use the compressor script (lib/compress.rb) - --------------------------------------------------------------- */ - -/* A container should group all your columns. */ -.container { - width: 950px; - margin: 0 auto; -} - -/* Use this class on any .span / container to see the grid. */ -.showgrid { - background: url(src/grid.png); -} - - -/* Columns --------------------------------------------------------------- */ - -/* Sets up basic grid floating and margin. */ -.column, .span-1, .span-2, .span-3, .span-4, .span-5, .span-6, .span-7, .span-8, .span-9, .span-10, .span-11, .span-12, .span-13, .span-14, .span-15, .span-16, .span-17, .span-18, .span-19, .span-20, .span-21, .span-22, .span-23, .span-24 { - float: left; - margin-right: 10px; -} - -/* The last column in a row needs this class. */ -.last { margin-right: 0; } - -/* Use these classes to set the width of a column. */ -.span-1 {width: 30px;} - -.span-2 {width: 70px;} -.span-3 {width: 110px;} -.span-4 {width: 150px;} -.span-5 {width: 190px;} -.span-6 {width: 230px;} -.span-7 {width: 270px;} -.span-8 {width: 310px;} -.span-9 {width: 350px;} -.span-10 {width: 390px;} -.span-11 {width: 430px;} -.span-12 {width: 470px;} -.span-13 {width: 510px;} -.span-14 {width: 550px;} -.span-15 {width: 590px;} -.span-16 {width: 630px;} -.span-17 {width: 670px;} -.span-18 {width: 710px;} -.span-19 {width: 750px;} -.span-20 {width: 790px;} -.span-21 {width: 830px;} -.span-22 {width: 870px;} -.span-23 {width: 910px;} -.span-24 {width:950px; margin-right:0;} - -/* Use these classes to set the width of an input. */ -input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 { - border-left-width: 1px; - border-right-width: 1px; - padding-left: 5px; - padding-right: 5px; -} - -input.span-1, textarea.span-1 { width: 18px; } -input.span-2, textarea.span-2 { width: 58px; } -input.span-3, textarea.span-3 { width: 98px; } -input.span-4, textarea.span-4 { width: 138px; } -input.span-5, textarea.span-5 { width: 178px; } -input.span-6, textarea.span-6 { width: 218px; } -input.span-7, textarea.span-7 { width: 258px; } -input.span-8, textarea.span-8 { width: 298px; } -input.span-9, textarea.span-9 { width: 338px; } -input.span-10, textarea.span-10 { width: 378px; } -input.span-11, textarea.span-11 { width: 418px; } -input.span-12, textarea.span-12 { width: 458px; } -input.span-13, textarea.span-13 { width: 498px; } -input.span-14, textarea.span-14 { width: 538px; } -input.span-15, textarea.span-15 { width: 578px; } -input.span-16, textarea.span-16 { width: 618px; } -input.span-17, textarea.span-17 { width: 658px; } -input.span-18, textarea.span-18 { width: 698px; } -input.span-19, textarea.span-19 { width: 738px; } -input.span-20, textarea.span-20 { width: 778px; } -input.span-21, textarea.span-21 { width: 818px; } -input.span-22, textarea.span-22 { width: 858px; } -input.span-23, textarea.span-23 { width: 898px; } -input.span-24, textarea.span-24 { width: 938px; } - -/* Add these to a column to append empty cols. */ - -.append-1 { padding-right: 40px;} -.append-2 { padding-right: 80px;} -.append-3 { padding-right: 120px;} -.append-4 { padding-right: 160px;} -.append-5 { padding-right: 200px;} -.append-6 { padding-right: 240px;} -.append-7 { padding-right: 280px;} -.append-8 { padding-right: 320px;} -.append-9 { padding-right: 360px;} -.append-10 { padding-right: 400px;} -.append-11 { padding-right: 440px;} -.append-12 { padding-right: 480px;} -.append-13 { padding-right: 520px;} -.append-14 { padding-right: 560px;} -.append-15 { padding-right: 600px;} -.append-16 { padding-right: 640px;} -.append-17 { padding-right: 680px;} -.append-18 { padding-right: 720px;} -.append-19 { padding-right: 760px;} -.append-20 { padding-right: 800px;} -.append-21 { padding-right: 840px;} -.append-22 { padding-right: 880px;} -.append-23 { padding-right: 920px;} - -/* Add these to a column to prepend empty cols. */ - -.prepend-1 { padding-left: 40px;} -.prepend-2 { padding-left: 80px;} -.prepend-3 { padding-left: 120px;} -.prepend-4 { padding-left: 160px;} -.prepend-5 { padding-left: 200px;} -.prepend-6 { padding-left: 240px;} -.prepend-7 { padding-left: 280px;} -.prepend-8 { padding-left: 320px;} -.prepend-9 { padding-left: 360px;} -.prepend-10 { padding-left: 400px;} -.prepend-11 { padding-left: 440px;} -.prepend-12 { padding-left: 480px;} -.prepend-13 { padding-left: 520px;} -.prepend-14 { padding-left: 560px;} -.prepend-15 { padding-left: 600px;} -.prepend-16 { padding-left: 640px;} -.prepend-17 { padding-left: 680px;} -.prepend-18 { padding-left: 720px;} -.prepend-19 { padding-left: 760px;} -.prepend-20 { padding-left: 800px;} -.prepend-21 { padding-left: 840px;} -.prepend-22 { padding-left: 880px;} -.prepend-23 { padding-left: 920px;} - - -/* Border on right hand side of a column. */ -.border { - padding-right: 4px; - margin-right: 5px; - border-right: 1px solid #eee; -} - -/* Border with more whitespace, spans one column. */ -.colborder { - padding-right: 24px; - margin-right: 25px; - border-right: 1px solid #eee; -} - - -/* Use these classes on an element to push it into the -next column, or to pull it into the previous column. */ - - -.pull-1 { margin-left: -40px; } -.pull-2 { margin-left: -80px; } -.pull-3 { margin-left: -120px; } -.pull-4 { margin-left: -160px; } -.pull-5 { margin-left: -200px; } -.pull-6 { margin-left: -240px; } -.pull-7 { margin-left: -280px; } -.pull-8 { margin-left: -320px; } -.pull-9 { margin-left: -360px; } -.pull-10 { margin-left: -400px; } -.pull-11 { margin-left: -440px; } -.pull-12 { margin-left: -480px; } -.pull-13 { margin-left: -520px; } -.pull-14 { margin-left: -560px; } -.pull-15 { margin-left: -600px; } -.pull-16 { margin-left: -640px; } -.pull-17 { margin-left: -680px; } -.pull-18 { margin-left: -720px; } -.pull-19 { margin-left: -760px; } -.pull-20 { margin-left: -800px; } -.pull-21 { margin-left: -840px; } -.pull-22 { margin-left: -880px; } -.pull-23 { margin-left: -920px; } -.pull-24 { margin-left: -960px; } - -.pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float: left; position:relative;} - - -.push-1 { margin: 0 -40px 1.5em 40px; } -.push-2 { margin: 0 -80px 1.5em 80px; } -.push-3 { margin: 0 -120px 1.5em 120px; } -.push-4 { margin: 0 -160px 1.5em 160px; } -.push-5 { margin: 0 -200px 1.5em 200px; } -.push-6 { margin: 0 -240px 1.5em 240px; } -.push-7 { margin: 0 -280px 1.5em 280px; } -.push-8 { margin: 0 -320px 1.5em 320px; } -.push-9 { margin: 0 -360px 1.5em 360px; } -.push-10 { margin: 0 -400px 1.5em 400px; } -.push-11 { margin: 0 -440px 1.5em 440px; } -.push-12 { margin: 0 -480px 1.5em 480px; } -.push-13 { margin: 0 -520px 1.5em 520px; } -.push-14 { margin: 0 -560px 1.5em 560px; } -.push-15 { margin: 0 -600px 1.5em 600px; } -.push-16 { margin: 0 -640px 1.5em 640px; } -.push-17 { margin: 0 -680px 1.5em 680px; } -.push-18 { margin: 0 -720px 1.5em 720px; } -.push-19 { margin: 0 -760px 1.5em 760px; } -.push-20 { margin: 0 -800px 1.5em 800px; } -.push-21 { margin: 0 -840px 1.5em 840px; } -.push-22 { margin: 0 -880px 1.5em 880px; } -.push-23 { margin: 0 -920px 1.5em 920px; } -.push-24 { margin: 0 -960px 1.5em 960px; } - -.push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float: right; position:relative;} - - -/* Misc classes and elements --------------------------------------------------------------- */ - -/* In case you need to add a gutter above/below an element */ -.prepend-top { - margin-top:1.5em; -} -.append-bottom { - margin-bottom:1.5em; -} - -/* Use a .box to create a padded box inside a column. */ -.box { - padding: 1.5em; - margin-bottom: 1.5em; - background: #E5ECF9; -} - -/* Use this to create a horizontal ruler across a column. */ -hr { - background: #ddd; - color: #ddd; - clear: both; - float: none; - width: 100%; - height: .1em; - margin: 0 0 1.45em; - border: none; -} - -hr.space { - background: #fff; - color: #fff; - visibility: hidden; -} - - -/* Clearing floats without extra markup - Based on How To Clear Floats Without Structural Markup by PiE - [http://www.positioniseverything.net/easyclearing.html] */ - -.clearfix:after, .container:after { - content: "\0020"; - display: block; - height: 0; - clear: both; - visibility: hidden; - overflow:hidden; -} -.clearfix, .container {display: block;} - -/* Regular clearing - apply to column that should drop below previous ones. */ - -.clear { clear:both; } diff --git a/app/assets/stylesheets/vendor/blueprint/src/grid.png b/app/assets/stylesheets/vendor/blueprint/src/grid.png deleted file mode 100644 index 61a06891871b4c618f62f3d840974851e9597e7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<>#0(@u3QJ6Z6lZ})WHFHT0Ash4*>)ho0G|-o z7w><+eEIVK|No6nAv1x3j7i?^E=+0MH7P)jh^LEV2uE~sLIcCP(A5%cQpO^D3?^w( V69qEN&I08bJYD@<);T3K0RXoIA*}!a diff --git a/app/assets/stylesheets/vendor/blueprint/src/ie.css b/app/assets/stylesheets/vendor/blueprint/src/ie.css deleted file mode 100644 index 0f458e6e9..000000000 --- a/app/assets/stylesheets/vendor/blueprint/src/ie.css +++ /dev/null @@ -1,76 +0,0 @@ -/* -------------------------------------------------------------- - - ie.css - - Contains every hack for Internet Explorer, - so that our core files stay sweet and nimble. - --------------------------------------------------------------- */ - -/* Make sure the layout is centered in IE5 */ -body { text-align: center; } -.container { text-align: left; } - -/* Fixes IE margin bugs */ -* html .column, * html .span-1, * html .span-2, -* html .span-3, * html .span-4, * html .span-5, -* html .span-6, * html .span-7, * html .span-8, -* html .span-9, * html .span-10, * html .span-11, -* html .span-12, * html .span-13, * html .span-14, -* html .span-15, * html .span-16, * html .span-17, -* html .span-18, * html .span-19, * html .span-20, -* html .span-21, * html .span-22, * html .span-23, -* html .span-24 { display:inline; overflow-x: hidden; } - - -/* Elements --------------------------------------------------------------- */ - -/* Fixes incorrect styling of legend in IE6. */ -* html legend { margin:0px -8px 16px 0; padding:0; } - -/* Fixes wrong line-height on sup/sub in IE. */ -sup { vertical-align:text-top; } -sub { vertical-align:text-bottom; } - -/* Fixes IE7 missing wrapping of code elements. */ -html>body p code { *white-space: normal; } - -/* IE 6&7 has problems with setting proper


margins. */ -hr { margin:-8px auto 11px; } - -/* Explicitly set interpolation, allowing dynamically resized images to not look horrible */ -img { -ms-interpolation-mode:bicubic; } - -/* Clearing --------------------------------------------------------------- */ - -/* Makes clearfix actually work in IE */ -.clearfix, .container { display:inline-block; } -* html .clearfix, -* html .container { height:1%; } - - -/* Forms --------------------------------------------------------------- */ - -/* Fixes padding on fieldset */ -fieldset { padding-top:0; } - -/* Makes classic textareas in IE 6 resemble other browsers */ -textarea { overflow:auto; } - -/* Fixes rule that IE 6 ignores */ -input.text, input.title, textarea { background-color:#fff; border:1px solid #bbb; } -input.text:focus, input.title:focus { border-color:#666; } -input.text, input.title, textarea, select { margin:0.5em 0; } -input.checkbox, input.radio { position:relative; top:.25em; } - -/* Fixes alignment of inline form elements */ -form.inline div, form.inline p { vertical-align:middle; } -form.inline label { position:relative;top:-0.25em; } -form.inline input.checkbox, form.inline input.radio, -form.inline input.button, form.inline button { - margin:0.5em 0; -} -button, input.button { position:relative;top:0.25em; } diff --git a/app/assets/stylesheets/vendor/blueprint/src/print.css b/app/assets/stylesheets/vendor/blueprint/src/print.css deleted file mode 100644 index bbc7948af..000000000 --- a/app/assets/stylesheets/vendor/blueprint/src/print.css +++ /dev/null @@ -1,85 +0,0 @@ -/* -------------------------------------------------------------- - - print.css - * Gives you some sensible styles for printing pages. - * See Readme file in this directory for further instructions. - - Some additions you'll want to make, customized to your markup: - #header, #footer, #navigation { display:none; } - --------------------------------------------------------------- */ - -body { - line-height: 1.5; - font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; - color:#000; - background: none; - font-size: 10pt; -} - - -/* Layout --------------------------------------------------------------- */ - -.container { - background: none; -} - -hr { - background:#ccc; - color:#ccc; - width:100%; - height:2px; - margin:2em 0; - padding:0; - border:none; -} -hr.space { - background: #fff; - color: #fff; - visibility: hidden; -} - - -/* Text --------------------------------------------------------------- */ - -h1,h2,h3,h4,h5,h6 { font-family: "Helvetica Neue", Arial, "Lucida Grande", sans-serif; } -code { font:.9em "Courier New", Monaco, Courier, monospace; } - -a img { border:none; } -p img.top { margin-top: 0; } - -blockquote { - margin:1.5em; - padding:1em; - font-style:italic; - font-size:.9em; -} - -.small { font-size: .9em; } -.large { font-size: 1.1em; } -.quiet { color: #999; } -.hide { display:none; } - - -/* Links --------------------------------------------------------------- */ - -a:link, a:visited { - background: transparent; - font-weight:700; - text-decoration: underline; -} - -a:link:after, a:visited:after { - content: " (" attr(href) ")"; - font-size: 90%; -} - -/* If you're having trouble printing relative links, uncomment and customize this: - (note: This is valid CSS3, but it still won't go through the W3C CSS Validator) */ - -/* a[href^="/"]:after { - content: " (http://www.yourdomain.com" attr(href) ") "; -} */ diff --git a/app/assets/stylesheets/vendor/blueprint/src/reset.css b/app/assets/stylesheets/vendor/blueprint/src/reset.css deleted file mode 100644 index 09d9131ab..000000000 --- a/app/assets/stylesheets/vendor/blueprint/src/reset.css +++ /dev/null @@ -1,45 +0,0 @@ -/* -------------------------------------------------------------- - - reset.css - * Resets default browser CSS. - --------------------------------------------------------------- */ - -html, body, div, span, object, iframe, -h1, h2, h3, h4, h5, h6, p, blockquote, pre, -a, abbr, acronym, address, code, -del, dfn, em, img, q, dl, dt, dd, ol, ul, li, -fieldset, form, label, legend, -table, caption, tbody, tfoot, thead, tr, th, td, -article, aside, dialog, figure, footer, header, -hgroup, nav, section { - margin: 0; - padding: 0; - border: 0; - font-weight: inherit; - font-style: inherit; - font-size: 100%; - font-family: inherit; - vertical-align: baseline; -} - -article, aside, dialog, figure, footer, header, -hgroup, nav, section { - display:block; -} - -body { - line-height: 1.5; -} - -/* Tables still need 'cellspacing="0"' in the markup. */ -table { border-collapse: separate; border-spacing: 0; } -caption, th, td { text-align: left; font-weight: normal; } -table, td, th { vertical-align: middle; } - -/* Remove possible quote marks (") from ,
. */ -blockquote:before, blockquote:after, q:before, q:after { content: ""; } -blockquote, q { quotes: "" ""; } - -/* Remove annoying border on linked images. */ -a img { border: none; } diff --git a/app/assets/stylesheets/vendor/blueprint/src/typography.css b/app/assets/stylesheets/vendor/blueprint/src/typography.css deleted file mode 100644 index a1cfe272b..000000000 --- a/app/assets/stylesheets/vendor/blueprint/src/typography.css +++ /dev/null @@ -1,106 +0,0 @@ -/* -------------------------------------------------------------- - - typography.css - * Sets up some sensible default typography. - --------------------------------------------------------------- */ - -/* Default font settings. - The font-size percentage is of 16px. (0.75 * 16px = 12px) */ -html { font-size:100.01%; } -body { - font-size: 75%; - color: #222; - background: #fff; - font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; -} - - -/* Headings --------------------------------------------------------------- */ - -h1,h2,h3,h4,h5,h6 { font-weight: normal; color: #111; } - -h1 { font-size: 3em; line-height: 1; margin-bottom: 0.5em; } -h2 { font-size: 2em; margin-bottom: 0.75em; } -h3 { font-size: 1.5em; line-height: 1; margin-bottom: 1em; } -h4 { font-size: 1.2em; line-height: 1.25; margin-bottom: 1.25em; } -h5 { font-size: 1em; font-weight: bold; margin-bottom: 1.5em; } -h6 { font-size: 1em; font-weight: bold; } - -h1 img, h2 img, h3 img, -h4 img, h5 img, h6 img { - margin: 0; -} - - -/* Text elements --------------------------------------------------------------- */ - -p { margin: 0 0 1.5em; } -p img.left { float: left; margin: 1.5em 1.5em 1.5em 0; padding: 0; } -p img.right { float: right; margin: 1.5em 0 1.5em 1.5em; } - -a:focus, -a:hover { color: #000; } -a { color: #009; text-decoration: underline; } - -blockquote { margin: 1.5em; color: #666; font-style: italic; } -strong { font-weight: bold; } -em,dfn { font-style: italic; } -dfn { font-weight: bold; } -sup, sub { line-height: 0; } - -abbr, -acronym { border-bottom: 1px dotted #666; } -address { margin: 0 0 1.5em; font-style: italic; } -del { color:#666; } - -pre { margin: 1.5em 0; white-space: pre; } -pre,code,tt { font: 1em 'andale mono', 'lucida console', monospace; line-height: 1.5; } - - -/* Lists --------------------------------------------------------------- */ - -li ul, -li ol { margin: 0; } -ul, ol { margin: 0 1.5em 1.5em 0; padding-left: 3.333em; } - -ul { list-style-type: disc; } -ol { list-style-type: decimal; } - -dl { margin: 0 0 1.5em 0; } -dl dt { font-weight: bold; } -dd { margin-left: 1.5em;} - - -/* Tables --------------------------------------------------------------- */ - -table { margin-bottom: 1.4em; width:100%; } -th { font-weight: bold; } -thead th { background: #c3d9ff; } -th,td,caption { padding: 4px 10px 4px 5px; } -tr.even td { background: #e5ecf9; } -tfoot { font-style: italic; } -caption { background: #eee; } - - -/* Misc classes --------------------------------------------------------------- */ - -.small { font-size: .8em; margin-bottom: 1.875em; line-height: 1.875em; } -.large { font-size: 1.2em; line-height: 2.5em; margin-bottom: 1.25em; } -.hide { display: none; } - -.quiet { color: #666; } -.loud { color: #000; } -.highlight { background:#ff0; } -.added { background:#060; color: #fff; } -.removed { background:#900; color: #fff; } - -.first { margin-left:0; padding-left:0; } -.last { margin-right:0; padding-right:0; } -.top { margin-top:0; padding-top:0; } -.bottom { margin-bottom:0; padding-bottom:0; } diff --git a/app/controllers/admins_controller.rb b/app/controllers/admins_controller.rb index badca5317..cf85c0184 100644 --- a/app/controllers/admins_controller.rb +++ b/app/controllers/admins_controller.rb @@ -1,7 +1,5 @@ class AdminsController < Admin::AdminController - use_bootstrap_for :user_search, :weekly_user_stats, :stats, :correlations - def user_search if params[:admins_controller_user_search] search_params = params.require(:admins_controller_user_search) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 0e3453a2d..e6525cdb3 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -153,11 +153,4 @@ class ApplicationController < ActionController::Base return unless gon.preloads.nil? gon.preloads = {} end - - def self.use_bootstrap_for *routes - before_filter -> { - @css_framework = :bootstrap - gon.bootstrap = true - }, only: routes.flatten - end end diff --git a/app/controllers/contacts_controller.rb b/app/controllers/contacts_controller.rb index 0e6168c9c..3f474aafe 100644 --- a/app/controllers/contacts_controller.rb +++ b/app/controllers/contacts_controller.rb @@ -6,7 +6,6 @@ class ContactsController < ApplicationController before_action :authenticate_user! layout ->(c) { request.format == :mobile ? "application" : "with_header_with_footer" } - use_bootstrap_for :index, :spotlight def index respond_to do |format| diff --git a/app/controllers/conversations_controller.rb b/app/controllers/conversations_controller.rb index 201b816d1..7edf04aee 100644 --- a/app/controllers/conversations_controller.rb +++ b/app/controllers/conversations_controller.rb @@ -2,8 +2,6 @@ class ConversationsController < ApplicationController before_action :authenticate_user! layout ->(c) { request.format == :mobile ? "application" : "with_header" } - use_bootstrap_for :index, :show, :new - respond_to :html, :mobile, :json, :js def index diff --git a/app/controllers/help_controller.rb b/app/controllers/help_controller.rb index 8d39d3b4a..33733bf00 100644 --- a/app/controllers/help_controller.rb +++ b/app/controllers/help_controller.rb @@ -1,8 +1,7 @@ class HelpController < ApplicationController - before_filter -> { @css_framework = :bootstrap } layout -> (c) { request.format == :mobile ? "application" : "with_header_with_footer" } def faq gon.chatEnabled = AppConfig.chat.enabled? end -end \ No newline at end of file +end diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 31d67426f..5c42e09b5 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -18,7 +18,6 @@ class HomeController < ApplicationController partial_dir.join("_show.html.erb").exist? render :show else - @css_framework = :bootstrap # Hack, port site to one framework render file: Rails.root.join("public", "default.html"), layout: 'application' end diff --git a/app/controllers/notifications_controller.rb b/app/controllers/notifications_controller.rb index c364d50c3..3f50bbd88 100644 --- a/app/controllers/notifications_controller.rb +++ b/app/controllers/notifications_controller.rb @@ -6,7 +6,6 @@ class NotificationsController < ApplicationController before_action :authenticate_user! layout ->(c) { request.format == :mobile ? "application" : "with_header_with_footer" } - use_bootstrap_for :index def update note = Notification.where(:recipient_id => current_user.id, :id => params[:id]).first diff --git a/app/controllers/passwords_controller.rb b/app/controllers/passwords_controller.rb index 6f94b60b8..7d604568a 100644 --- a/app/controllers/passwords_controller.rb +++ b/app/controllers/passwords_controller.rb @@ -1,4 +1,3 @@ class PasswordsController < Devise::PasswordsController layout ->(c) { request.format == :mobile ? "application" : "with_header_with_footer" } - before_filter -> { @css_framework = :bootstrap } end diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb index 57dd70dfd..93f214460 100644 --- a/app/controllers/people_controller.rb +++ b/app/controllers/people_controller.rb @@ -7,7 +7,6 @@ class PeopleController < ApplicationController before_action :find_person, only: [:show, :stream, :hovercard] layout ->(c){ request.format == :mobile ? "application" : "with_header_with_footer" } - use_bootstrap_for :index, :show, :contacts, :refresh_search respond_to :html, :except => [:tag_index] respond_to :json, :only => [:index, :show] @@ -169,10 +168,9 @@ class PeopleController < ApplicationController @contact = current_user.contact_for(@person) || Contact.new @aspect = :profile if params[:create] # let aspect dropdown create new aspects - bootstrap = params[:bootstrap] || false size = params[:size] || "small" - render :partial => 'aspect_membership_dropdown', :locals => {:contact => @contact, :person => @person, :hang => 'left', :bootstrap => bootstrap, :size => size} + render :partial => 'aspect_membership_dropdown', :locals => {:contact => @contact, :person => @person, :hang => 'left', :size => size} end private diff --git a/app/controllers/photos_controller.rb b/app/controllers/photos_controller.rb index 8a55700d3..4b1599f25 100644 --- a/app/controllers/photos_controller.rb +++ b/app/controllers/photos_controller.rb @@ -6,7 +6,6 @@ class PhotosController < ApplicationController before_action :authenticate_user!, :except => :show layout ->(c){ request.format == :mobile ? "application" : "with_header_with_footer" } - use_bootstrap_for :index respond_to :html, :json def show diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index 9ecd50c3a..c02826fef 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -9,8 +9,6 @@ class PostsController < ApplicationController before_action :set_format_if_malformed_from_status_net, :only => :show before_action :find_post, :only => [:show, :interactions] - use_bootstrap_for :show - respond_to :html, :mobile, :json, @@ -18,7 +16,7 @@ class PostsController < ApplicationController rescue_from Diaspora::NonPublic do |exception| respond_to do |format| - format.all { @css_framework = :bootstrap; render :template=>'errors/not_public', :status=>404, :layout => "application"} + format.all { render :template=>'errors/not_public', :status=>404, :layout => "application"} end end diff --git a/app/controllers/profiles_controller.rb b/app/controllers/profiles_controller.rb index dcc58f768..f78540a95 100644 --- a/app/controllers/profiles_controller.rb +++ b/app/controllers/profiles_controller.rb @@ -4,8 +4,6 @@ class ProfilesController < ApplicationController before_action :authenticate_user!, :except => ['show'] - before_action -> { @css_framework = :bootstrap }, only: [:show, :edit] - layout ->(c) { request.format == :mobile ? "application" : "with_header_with_footer" }, only: [:show, :edit] respond_to :html, :except => [:show] @@ -28,7 +26,7 @@ class ProfilesController < ApplicationController @tags = @profile.tags @tags_array = [] - @tags.each do |obj| + @tags.each do |obj| @tags_array << { :name => ("#"+obj.name), :value => ("#"+obj.name)} end @@ -37,7 +35,7 @@ class ProfilesController < ApplicationController def update # upload and set new profile photo @profile_attrs = profile_params - + munge_tag_string #checkbox tags wtf diff --git a/app/controllers/registrations_controller.rb b/app/controllers/registrations_controller.rb index ff3699a3f..66dd0614d 100644 --- a/app/controllers/registrations_controller.rb +++ b/app/controllers/registrations_controller.rb @@ -6,7 +6,6 @@ class RegistrationsController < Devise::RegistrationsController before_action :check_registrations_open_or_valid_invite!, :check_valid_invite! layout ->(c) { request.format == :mobile ? "application" : "with_header" }, :only => [:new] - before_action -> { @css_framework = :bootstrap }, only: [:new, :create] def create @user = User.build(user_params) diff --git a/app/controllers/report_controller.rb b/app/controllers/report_controller.rb index 94eee8880..5d8d7c338 100644 --- a/app/controllers/report_controller.rb +++ b/app/controllers/report_controller.rb @@ -6,8 +6,6 @@ class ReportController < ApplicationController before_filter :authenticate_user! before_filter :redirect_unless_admin, :except => [:create] - use_bootstrap_for :index - def index @reports = Report.where(reviewed: false) end diff --git a/app/controllers/services_controller.rb b/app/controllers/services_controller.rb index abfd50782..4d397b6bd 100644 --- a/app/controllers/services_controller.rb +++ b/app/controllers/services_controller.rb @@ -1,5 +1,5 @@ # Copyright (c) 2010-2011, Diaspora Inc. This file is -# licensed under the Affero General Public License version 3 or later. See +# licensed under the Affero General Public License version 3 or later. See # the COPYRIGHT file. class ServicesController < ApplicationController # We need to take a raw POST from an omniauth provider with no authenticity token. @@ -8,7 +8,6 @@ class ServicesController < ApplicationController skip_before_action :verify_authenticity_token, :only => :create before_action :authenticate_user! before_action :abort_if_already_authorized, :abort_if_read_only_access, :only => :create - before_action -> { @css_framework = :bootstrap }, only: [:index] layout ->(c) { request.format == :mobile ? "application" : "with_header_with_footer" }, only: [:index] @@ -19,9 +18,9 @@ class ServicesController < ApplicationController @services = current_user.services end - def create + def create service = Service.initialize_from_omniauth( omniauth_hash ) - + if current_user.services << service no_profile_image_before_update = no_profile_image? current_user.update_profile_with_omniauth(service.info) @@ -66,9 +65,9 @@ class ServicesController < ApplicationController end def redirect_to_origin - if origin + if origin redirect_to origin - else + else render(text: "") end end @@ -85,7 +84,7 @@ class ServicesController < ApplicationController request.env['omniauth.origin'] end - def omniauth_hash + def omniauth_hash request.env['omniauth.auth'] end diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 04a08241e..b50a743fb 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -5,7 +5,6 @@ class SessionsController < Devise::SessionsController layout ->(c) { request.format == :mobile ? "application" : "with_header_with_footer" }, :only => [:new] - use_bootstrap_for :new after_filter :reset_authentication_token, :only => [:create] before_filter :reset_authentication_token, :only => [:destroy] diff --git a/app/controllers/statistics_controller.rb b/app/controllers/statistics_controller.rb index 30e9dec50..ba564dff6 100644 --- a/app/controllers/statistics_controller.rb +++ b/app/controllers/statistics_controller.rb @@ -4,7 +4,6 @@ class StatisticsController < ApplicationController respond_to :html, :json - use_bootstrap_for :statistics def statistics @statistics = StatisticsPresenter.new @@ -14,4 +13,4 @@ class StatisticsController < ApplicationController format.html { render layout: 'with_header_with_footer' } end end -end \ No newline at end of file +end diff --git a/app/controllers/status_messages_controller.rb b/app/controllers/status_messages_controller.rb index b594c4542..88bde91e5 100644 --- a/app/controllers/status_messages_controller.rb +++ b/app/controllers/status_messages_controller.rb @@ -7,8 +7,6 @@ class StatusMessagesController < ApplicationController before_action :remove_getting_started, :only => [:create] - use_bootstrap_for :bookmarklet - respond_to :html, :mobile, :json diff --git a/app/controllers/streams_controller.rb b/app/controllers/streams_controller.rb index 924b985eb..e830bee70 100644 --- a/app/controllers/streams_controller.rb +++ b/app/controllers/streams_controller.rb @@ -8,7 +8,6 @@ class StreamsController < ApplicationController before_action :redirect_unless_admin, :only => :public layout ->(c) { request.format == :mobile ? "application" : "with_header_with_footer" } - use_bootstrap_for :aspects, :public, :activity, :multi, :commented, :liked, :mentioned, :followed_tags respond_to :html, :mobile, @@ -53,7 +52,7 @@ class StreamsController < ApplicationController private def stream_responder(stream_klass=nil) - + if stream_klass.present? @stream ||= stream_klass.new(current_user, :max_time => max_time) end diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb index 0ac704c32..b493c5e45 100644 --- a/app/controllers/tags_controller.rb +++ b/app/controllers/tags_controller.rb @@ -7,7 +7,6 @@ class TagsController < ApplicationController before_action :ensure_page, :only => :show layout ->(c) { request.format == :mobile ? "application" : "with_header_with_footer" }, :only => [:show] - use_bootstrap_for :show helper_method :tag_followed? diff --git a/app/controllers/terms_controller.rb b/app/controllers/terms_controller.rb index 552e26b74..bf2e5da28 100644 --- a/app/controllers/terms_controller.rb +++ b/app/controllers/terms_controller.rb @@ -7,7 +7,6 @@ class TermsController < ApplicationController respond_to :html, :mobile def index - @css_framework = :bootstrap partial_dir = Rails.root.join('app', 'views', 'terms') if partial_dir.join('terms.haml').exist? || partial_dir.join('terms.erb').exist? @@ -16,5 +15,5 @@ class TermsController < ApplicationController render :default end end - + end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 2ff5c9c15..1161a391a 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -4,12 +4,8 @@ class UsersController < ApplicationController before_action :authenticate_user!, :except => [:new, :create, :public, :user_photo] - before_action -> { @css_framework = :bootstrap }, only: [:privacy_settings, :edit] - layout ->(c) { request.format == :mobile ? "application" : "with_header_with_footer" }, only: [:privacy_settings, :edit] - use_bootstrap_for :getting_started - respond_to :html def edit diff --git a/app/helpers/aspect_global_helper.rb b/app/helpers/aspect_global_helper.rb index 9e52b7797..d51fa0528 100644 --- a/app/helpers/aspect_global_helper.rb +++ b/app/helpers/aspect_global_helper.rb @@ -3,7 +3,7 @@ # the COPYRIGHT file. module AspectGlobalHelper - def aspect_membership_dropdown(contact, person, hang, aspect=nil, force_bootstrap=false, size="small") + def aspect_membership_dropdown(contact, person, hang, aspect=nil, size="small") aspect_membership_ids = {} selected_aspects = all_aspects.select{|aspect| contact.in_aspect?(aspect)} @@ -24,22 +24,13 @@ module AspectGlobalHelper raise ArgumentError, "unknown size #{size}" end - if bootstrap? || force_bootstrap - render "aspect_memberships/aspect_membership_dropdown", - :selected_aspects => selected_aspects, - :aspect_membership_ids => aspect_membership_ids, - :person => person, - :hang => hang, - :dropdown_class => "aspect_membership", - :button_class => button_class - else - render "aspect_memberships/aspect_membership_dropdown_blueprint", - :selected_aspects => selected_aspects, - :aspect_membership_ids => aspect_membership_ids, - :person => person, - :hang => hang, - :dropdown_class => "aspect_membership" - end + render "aspect_memberships/aspect_membership_dropdown", + :selected_aspects => selected_aspects, + :aspect_membership_ids => aspect_membership_ids, + :person => person, + :hang => hang, + :dropdown_class => "aspect_membership", + :button_class => button_class end def aspect_dropdown_list_item(aspect, am_id=nil) diff --git a/app/helpers/layout_helper.rb b/app/helpers/layout_helper.rb index 9e9bbdf1a..f5740f54f 100644 --- a/app/helpers/layout_helper.rb +++ b/app/helpers/layout_helper.rb @@ -47,12 +47,8 @@ module LayoutHelper end end - def include_base_css_framework(use_bootstrap=false) - if use_bootstrap || @aspect == :getting_started - stylesheet_link_tag('bootstrap-complete') - else - stylesheet_link_tag 'blueprint', :media => 'screen' - end + def include_base_css_framework + stylesheet_link_tag('bootstrap-complete') end def old_browser_js_support @@ -77,8 +73,4 @@ module LayoutHelper end end.join(' ').html_safe end - - def bootstrap? - @css_framework == :bootstrap - end end diff --git a/app/views/aspects/new.haml b/app/views/aspects/new.haml index af91de8ac..54d1ffae9 100644 --- a/app/views/aspects/new.haml +++ b/app/views/aspects/new.haml @@ -3,7 +3,7 @@ -# the COPYRIGHT file. -# Using row to enforce a non-percentual width on span6 -.row +.row .span6 #facebox_header %h3 @@ -24,4 +24,3 @@ .bottom_submit_section = submit_tag t('cancel'), :class => 'btn', :type => :reset, :rel => "close" = aspect.submit t('.create'), :class => 'btn creation' - diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 57e946f46..893e7f5d6 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -21,11 +21,8 @@ = chartbeat_head_block = include_mixpanel - = include_base_css_framework(@css_framework) - - if @css_framework == :bootstrap && !@include_application_css - = stylesheet_link_tag :default, 'new-templates', :media => 'all' - - else - = stylesheet_link_tag 'application', 'default' + = include_base_css_framework + = stylesheet_link_tag :default, 'application', :media => 'all' - if rtl? = stylesheet_link_tag :rtl, :media => 'all' diff --git a/app/views/layouts/centered_with_header_with_footer.html.haml b/app/views/layouts/centered_with_header_with_footer.html.haml index 223cbce09..2e43cd97d 100644 --- a/app/views/layouts/centered_with_header_with_footer.html.haml +++ b/app/views/layouts/centered_with_header_with_footer.html.haml @@ -1,9 +1,4 @@ -- if @css_framework == :bootstrap - - content_for :container_content do - = yield -- else - - content_for :container_content do - .span-24.last - = yield +- content_for :container_content do + = yield = render template: "layouts/with_header_with_footer" diff --git a/app/views/people/_aspect_membership_dropdown.haml b/app/views/people/_aspect_membership_dropdown.haml index 5bd80d4b3..a66b4c54e 100644 --- a/app/views/people/_aspect_membership_dropdown.haml +++ b/app/views/people/_aspect_membership_dropdown.haml @@ -1 +1 @@ -= aspect_membership_dropdown(@contact, @person, 'right', nil, bootstrap, size) += aspect_membership_dropdown(@contact, @person, 'right', nil, size) diff --git a/app/views/publisher/_publisher.html.haml b/app/views/publisher/_publisher.html.haml index f2bd52ef4..64b4bb194 100644 --- a/app/views/publisher/_publisher.html.haml +++ b/app/views/publisher/_publisher.html.haml @@ -1 +1,80 @@ -= render :partial => 'publisher/publisher_bootstrap', :locals => { :aspect => aspect, :selected_aspects => selected_aspects, :aspect_ids => aspect_ids } \ No newline at end of file +-if publisher_explain + :javascript + $(document).ready(function() { + if( app.publisher ) app.publisher.triggerGettingStarted(); + }); + +.row-fluid#publisher{:class => ((aspect == :profile || publisher_open) ? "mention_popup" : "closed")} + .content_creation + = form_for(StatusMessage.new) do |status| + = status.error_messages + %params + #publisher_textarea_wrapper + - if current_user.getting_started? + = status.text_area :fake_text, :rows => 2, :value => h(publisher_formatted_text), :tabindex => 1, :placeholder => "#{t('contacts.index.start_a_conversation')}...", + 'data-title' => popover_with_close_html( '1. ' + t('shared.public_explain.share') ), + 'data-content' => t('shared.public_explain.new_user_welcome_message') + - else + = status.text_area :fake_text, :rows => 2, :value => h(publisher_formatted_text), :tabindex => 1, :placeholder => "#{t('contacts.index.start_a_conversation')}..." + = status.hidden_field :text, :value => h(publisher_hidden_text), :class => 'clear_on_submit' + + .row-fluid#photodropzone_container + %ul#photodropzone + .row-fluid#location_container + = hidden_field :location, :coords + .row-fluid#poll_creator_container + -# handlebars template + .row-fluid#button_container + #publisher-images.pull-right + #poll_creator.btn.btn-link{:title => t('shared.publisher.poll.add_a_poll')} + %i.entypo.bar-graph + #file-upload.btn.btn-link{:title => t('shared.publisher.upload_photos')} + %i.entypo.camera.publisher_image + #locator.btn.btn-link{:title => t('shared.publisher.get_location')} + %i.entypo.location.publisher_image + #hide_location.btn.btn-link{:title => t('shared.publisher.remove_location')} + %i.entypo.cross.publisher_image + %span.help-block.markdownIndications + != t('shared.publisher.formatWithMarkdown', markdown_link: link_to(t('help.markdown'), 'https://diasporafoundation.org/formatting', target: :blank)) + + - if publisher_public + = hidden_field_tag 'aspect_ids[]', "public" + - elsif all_aspects_selected?(selected_aspects) + = hidden_field_tag 'aspect_ids[]', "all_aspects" + - else + - for aspect_id in aspect_ids + = hidden_field_tag 'aspect_ids[]', aspect_id.to_s + + .row-fluid#publisher_spinner{:class => 'hidden'} + = image_tag 'ajax-loader.gif' + .row-fluid.options_and_submit + .public_toggle + .btn.btn-default.pull-left#hide_publisher{:title => t('shared.publisher.discard_post')} + %span.text + =t('cancel') + + .btn-toolbar.pull-right + %span#publisher_service_icons + - if current_user.services + - for service in current_user.services + = service_button(service) + %a.btn.btn-link{ :href => "#question_mark_pane", :class => 'question_mark', :rel => 'facebox', :title => t('shared.public_explain.manage') } + %i.entypo.small.cog + + = render :partial => "publisher/aspect_dropdown", :locals => { :selected_aspects => selected_aspects } + + %button{:class => 'btn btn-default post_preview_button'} + %span.text + = t('shared.publisher.preview') + + %button#submit.btn.btn-primary.creation{:tabindex => 2} + %span.text + = t('shared.publisher.share') + + .facebox_content + #question_mark_pane + = render 'shared/public_explain' + = link_to '', contacts_path(:aspect_ids => aspect_ids), :class => 'selected_contacts_link hidden' + + + #publisher_photo_upload diff --git a/app/views/publisher/_publisher_blueprint.html.haml b/app/views/publisher/_publisher_blueprint.html.haml deleted file mode 100644 index d3bb109bb..000000000 --- a/app/views/publisher/_publisher_blueprint.html.haml +++ /dev/null @@ -1,104 +0,0 @@ --# Copyright (c) 2010-2011, Diaspora Inc. This file is --# licensed under the Affero General Public License version 3 or later. See --# the COPYRIGHT file. - --if publisher_explain - :javascript - $(document).ready(function() { - if( app.publisher ) app.publisher.triggerGettingStarted(); - }); - -#publisher{:class => ((aspect == :profile || publisher_open) ? "mention_popup" : "closed")} - .content_creation - = form_for(StatusMessage.new) do |status| - = status.error_messages - %div - %params - #publisher_textarea_wrapper - = link_to(content_tag(:div, nil, :class => 'icons-deletelabel'), "#", :id => "hide_publisher", :title => t('shared.publisher.discard_post')) - - if current_user.getting_started? - = status.text_area :fake_text, :rows => 2, :value => h(publisher_formatted_text), :tabindex => 1, :placeholder => "#{t('contacts.index.start_a_conversation')}...", - :title => popover_with_close_html( '1. ' + t('shared.public_explain.share') ), - 'data-content' => t('shared.public_explain.new_user_welcome_message') - - else - = status.text_area :fake_text, :rows => 2, :value => h(publisher_formatted_text), :tabindex => 1, :placeholder => "#{t('contacts.index.start_a_conversation')}..." - = status.hidden_field :text, :value => h(publisher_hidden_text), :class => 'clear_on_submit' - %ul#photodropzone - %span#publisher-images - %span.markdownIndications - != t('shared.publisher.formatWithMarkdown', markdown_link: link_to(t('help.markdown'), 'https://diasporafoundation.org/formatting', target: :blank)) - #poll_creator.btn{:title => t('shared.publisher.poll.add_a_poll')} - %i.entypo.bar-graph{:class => "publisher_image"} - - #locator.btn{:title => t('shared.publisher.get_location')} - = image_tag 'icons/marker.png', :alt => t('shared.publisher.get_location').titleize, :class => 'publisher_image' - #file-upload.btn{:title => t('shared.publisher.upload_photos')} - = image_tag 'icons/camera.png', :alt => t('shared.publisher.upload_photos').titleize, :class => 'publisher_image' - = hidden_field :location, :coords - #location_container - #poll_creator_container - - - if publisher_public - = hidden_field_tag 'aspect_ids[]', "public" - - elsif all_aspects_selected?(selected_aspects) - = hidden_field_tag 'aspect_ids[]', "all_aspects" - - else - - for aspect_id in aspect_ids - = hidden_field_tag 'aspect_ids[]', aspect_id.to_s - - #publisher_spinner{:class => 'hidden'} - = image_tag 'ajax-loader.gif' - .options_and_submit - .public_toggle - %span#publisher_service_icons - - if current_user.services - - for service in current_user.services - = content_tag :div, nil, - :title => "#{service.provider.titleize} (#{service.nickname})", - :class => "social_media_logos-#{service.provider}-16x16 service_icon dim", - :id => "#{service.provider}", - :maxchar => "#{service.class::MAX_CHARACTERS}", - :data => {:toggle=>'tooltip', :placement=>'bottom'} - %a{ :href => "#question_mark_pane", :class => 'question_mark', :rel => 'facebox', :title => t('shared.public_explain.manage') } - .icons-monotone_wrench_settings - - .dropdown{ ! current_user.getting_started? ? {:class => "hang_right"} : { :class => "hang_right", :title => popover_with_close_html("2. #{t('shared.public_explain.control_your_audience')}"), 'data-content'=> t('shared.public_explain.visibility_dropdown')} } - .button.toggle.publisher - - if publisher_public - %i#visibility-icon.entypo.small.globe - %span.text - = t('public') - - else - %i#visibility-icon.entypo.small.lock - %span.text - - if all_aspects_selected?(selected_aspects) - = t('all_aspects') - - elsif selected_aspects.size == 1 - = selected_aspects.first.name - - else - = t('shared.aspect_dropdown.toggle', :count => selected_aspects.size) - ▼ - - .wrapper - %ul.dropdown_list{:unSelectable => 'on', 'data-person_id' => (person.id if defined?(person) && person), 'data-service_uid' => (service_uid if defined?(service_uid))} - %li.public.radio{"data-aspect_id" => "public", :class => ("selected" if publisher_public)} - = t('public') - - %li.divider.all_aspects.radio{:style => "padding-bottom: 5px; border-bottom: 1px solid #ddd;", "data-aspect_id" => "all_aspects", :class => ("selected" if (!publisher_public && all_aspects_selected?(selected_aspects)))} - = t('all_aspects') - - - for aspect in all_aspects - = aspect_dropdown_list_item(aspect, !all_aspects_selected?(selected_aspects) && selected_aspects.include?(aspect) ) - - %button{ :disabled => ("disabled" if publisher_hidden_text.blank?), :class => 'button post_preview_button'} - = t('shared.publisher.preview') - - = status.submit t('shared.publisher.share'), :disabled => publisher_hidden_text.blank?, :class => 'button creation', :tabindex => 2 - - .facebox_content - #question_mark_pane - = render 'shared/public_explain' - = link_to '', contacts_path(:aspect_ids => aspect_ids), :class => 'selected_contacts_link hidden' - - - #publisher_photo_upload diff --git a/app/views/publisher/_publisher_bootstrap.html.haml b/app/views/publisher/_publisher_bootstrap.html.haml deleted file mode 100644 index 77c506702..000000000 --- a/app/views/publisher/_publisher_bootstrap.html.haml +++ /dev/null @@ -1,80 +0,0 @@ --if publisher_explain - :javascript - $(document).ready(function() { - if( app.publisher ) app.publisher.triggerGettingStarted(); - }); - -.row-fluid#publisher{:class => ((aspect == :profile || publisher_open) ? "mention_popup" : "closed")} - .content_creation - = form_for(StatusMessage.new) do |status| - = status.error_messages - %params - #publisher_textarea_wrapper - - if current_user.getting_started? - = status.text_area :fake_text, :rows => 2, :value => h(publisher_formatted_text), :tabindex => 1, :placeholder => "#{t('contacts.index.start_a_conversation')}...", - 'data-title' => popover_with_close_html( '1. ' + t('shared.public_explain.share') ), - 'data-content' => t('shared.public_explain.new_user_welcome_message') - - else - = status.text_area :fake_text, :rows => 2, :value => h(publisher_formatted_text), :tabindex => 1, :placeholder => "#{t('contacts.index.start_a_conversation')}..." - = status.hidden_field :text, :value => h(publisher_hidden_text), :class => 'clear_on_submit' - - .row-fluid#photodropzone_container - %ul#photodropzone - .row-fluid#location_container - = hidden_field :location, :coords - .row-fluid#poll_creator_container - -# handlebars template - .row-fluid#button_container - #publisher-images.pull-right - #poll_creator.btn.btn-link{:title => t('shared.publisher.poll.add_a_poll')} - %i.entypo.bar-graph - #file-upload.btn.btn-link{:title => t('shared.publisher.upload_photos')} - %i.entypo.camera.publisher_image - #locator.btn.btn-link{:title => t('shared.publisher.get_location')} - %i.entypo.location.publisher_image - #hide_location.btn.btn-link{:title => t('shared.publisher.remove_location')} - %i.entypo.cross.publisher_image - %span.help-block.markdownIndications - != t('shared.publisher.formatWithMarkdown', markdown_link: link_to(t('help.markdown'), 'https://diasporafoundation.org/formatting', target: :blank)) - - - if publisher_public - = hidden_field_tag 'aspect_ids[]', "public" - - elsif all_aspects_selected?(selected_aspects) - = hidden_field_tag 'aspect_ids[]', "all_aspects" - - else - - for aspect_id in aspect_ids - = hidden_field_tag 'aspect_ids[]', aspect_id.to_s - - .row-fluid#publisher_spinner{:class => 'hidden'} - = image_tag 'ajax-loader.gif' - .row-fluid.options_and_submit - .public_toggle - .btn.btn-default.pull-left#hide_publisher{:title => t('shared.publisher.discard_post')} - %span.text - =t('cancel') - - .btn-toolbar.pull-right - %span#publisher_service_icons - - if current_user.services - - for service in current_user.services - = service_button(service) - %a.btn.btn-link{ :href => "#question_mark_pane", :class => 'question_mark', :rel => 'facebox', :title => t('shared.public_explain.manage') } - %i.entypo.small.cog - - = render :partial => "publisher/aspect_dropdown", :locals => { :selected_aspects => selected_aspects } - - %button{ :disabled => ("disabled" if publisher_hidden_text.blank?), :class => 'btn btn-default post_preview_button'} - %span.text - = t('shared.publisher.preview') - - %button#submit.btn.btn-primary.creation{ :disabled => ("disabled" if publisher_hidden_text.blank?), :tabindex => 2} - %span.text - = t('shared.publisher.share') - - .facebox_content - #question_mark_pane - = render 'shared/public_explain' - = link_to '', contacts_path(:aspect_ids => aspect_ids), :class => 'selected_contacts_link hidden' - - - #publisher_photo_upload diff --git a/app/views/status_messages/new.html.haml b/app/views/status_messages/new.html.haml index 20ae77532..1345c5f3b 100644 --- a/app/views/status_messages/new.html.haml +++ b/app/views/status_messages/new.html.haml @@ -1,6 +1,6 @@ = javascript_include_tag :home -= render :partial => 'publisher/publisher_bootstrap', += render :partial => 'publisher/publisher', :locals => { :aspect => @aspect, :aspect_ids => @aspect_ids, :selected_aspects => @aspects_with_person, diff --git a/app/views/streams/main_stream.html.haml b/app/views/streams/main_stream.html.haml index a59807a00..c03c1e030 100644 --- a/app/views/streams/main_stream.html.haml +++ b/app/views/streams/main_stream.html.haml @@ -40,7 +40,7 @@ = render 'aspects/aspect_listings', :stream => @stream %li = render 'tags/followed_tags_listings' - + .span6 #aspect_stream_container.stream_container = render 'aspects/aspect_stream', :stream => @stream @@ -56,4 +56,3 @@ %a{:id=>"back-to-top", :title=>"#{t('layouts.application.back_to_top')}", :href=>"#"} ⇧ - diff --git a/config/application.rb b/config/application.rb index 209ec4321..4983a1f08 100644 --- a/config/application.rb +++ b/config/application.rb @@ -85,7 +85,6 @@ module Diaspora templates.js validation.js - blueprint.css bootstrap.css bootstrap-complete.css bootstrap-responsive.css @@ -93,7 +92,6 @@ module Diaspora error_pages.css admin.css mobile/mobile.css - new-templates.css rtl.css } diff --git a/spec/controllers/jasmine_fixtures/people_spec.rb b/spec/controllers/jasmine_fixtures/people_spec.rb index 814dc66c3..36e66fe0b 100644 --- a/spec/controllers/jasmine_fixtures/people_spec.rb +++ b/spec/controllers/jasmine_fixtures/people_spec.rb @@ -28,14 +28,9 @@ describe PeopleController, :type => :controller do sign_in :user, bob end - it "generates a jasmine fixture using Blueprint", :fixture => true do + it "generates a jasmine fixture", :fixture => true do get :aspect_membership_dropdown, :person_id => alice.person.guid - save_fixture(html_for("body"), "aspect_membership_dropdown_blueprint") - end - - it "generates a jasmine fixture using Bootstrap", :fixture => true do - get :aspect_membership_dropdown, :person_id => alice.person.guid, :bootstrap => true - save_fixture(html_for("body"), "aspect_membership_dropdown_bootstrap") + save_fixture(html_for("body"), "aspect_membership_dropdown") end end end diff --git a/spec/javascripts/app/views/aspect_membership_blueprint_view_spec.js b/spec/javascripts/app/views/aspect_membership_blueprint_view_spec.js deleted file mode 100644 index d48612324..000000000 --- a/spec/javascripts/app/views/aspect_membership_blueprint_view_spec.js +++ /dev/null @@ -1,126 +0,0 @@ -describe("app.views.AspectMembershipBlueprint", function(){ - var resp_success = {status: 200, responseText: '{}'}; - var resp_fail = {status: 400}; - - beforeEach(function() { - spec.loadFixture("aspect_membership_dropdown_blueprint"); - this.view = new app.views.AspectMembershipBlueprint(); - this.person_id = $('.dropdown_list').data('person_id'); - this.person_name = $('.dropdown_list').data('person-short-name'); - - Diaspora.I18n.load({ - aspect_dropdown: { - started_sharing_with: 'you started sharing with <%= name %>', - stopped_sharing_with: 'you stopped sharing with <%= name %>', - error: 'unable to add <%= name %>', - error_remove: 'unable to remove <%= name %>' - } - }); - }); - - context('adding to aspects', function() { - beforeEach(function() { - this.newAspect = $('li:not(.selected)'); - this.newAspectId = this.newAspect.data('aspect_id'); - }); - - it('marks the aspect as selected', function() { - this.newAspect.trigger('click'); - jasmine.Ajax.requests.mostRecent().respondWith(resp_success); - - expect(this.newAspect.attr('class')).toContain('selected'); - }); - - it('displays flash message when added to first aspect', function() { - spec.content().find('li').removeClass('selected'); - this.newAspect.trigger('click'); - jasmine.Ajax.requests.mostRecent().respondWith(resp_success); - - expect($('[id^="flash"]')).toBeSuccessFlashMessage( - Diaspora.I18n.t('aspect_dropdown.started_sharing_with', {name: this.person_name}) - ); - }); - - it('displays an error when it fails', function() { - this.newAspect.trigger('click'); - jasmine.Ajax.requests.mostRecent().respondWith(resp_fail); - - expect($('[id^="flash"]')).toBeErrorFlashMessage( - Diaspora.I18n.t('aspect_dropdown.error', {name: this.person_name}) - ); - }); - }); - - context('removing from aspects', function(){ - beforeEach(function() { - this.oldAspect = $('li.selected').first(); - this.oldMembershipId = this.oldAspect.data('membership_id'); - }); - - it('marks the aspect as unselected', function(){ - this.oldAspect.trigger('click'); - jasmine.Ajax.requests.mostRecent().respondWith(resp_success); - - expect(this.oldAspect.attr('class')).not.toContain('selected'); - }); - - it('displays a flash message when removed from last aspect', function() { - spec.content().find('li.selected:last').removeClass('selected'); - this.oldAspect.trigger('click'); - jasmine.Ajax.requests.mostRecent().respondWith(resp_success); - - expect($('[id^="flash"]')).toBeSuccessFlashMessage( - Diaspora.I18n.t('aspect_dropdown.stopped_sharing_with', {name: this.person_name}) - ); - }); - - it('displays an error when it fails', function() { - this.oldAspect.trigger('click'); - jasmine.Ajax.requests.mostRecent().respondWith(resp_fail); - - expect($('[id^="flash"]')).toBeErrorFlashMessage( - Diaspora.I18n.t('aspect_dropdown.error_remove', {name: this.person_name}) - ); - }); - }); - - context('summary text in the button', function() { - beforeEach(function() { - this.btn = $('div.button.toggle'); - this.btn.text(""); // reset - this.view.dropdown = $('ul.dropdown_list'); - }); - - it('shows "no aspects" when nothing is selected', function() { - $('li[data-aspect_id]').removeClass('selected'); - this.view.updateSummary(); - - expect(this.btn.text()).toContain(Diaspora.I18n.t('aspect_dropdown.toggle.zero')); - }); - - it('shows "all aspects" when everything is selected', function() { - $('li[data-aspect_id]').addClass('selected'); - this.view.updateSummary(); - - expect(this.btn.text()).toContain(Diaspora.I18n.t('aspect_dropdown.all_aspects')); - }); - - it('shows the name of the selected aspect ( == 1 )', function() { - var list = $('li[data-aspect_id]'); - list.removeClass('selected'); // reset - list.eq(1).addClass('selected'); - this.view.updateSummary(); - - expect(this.btn.text()).toContain(list.eq(1).text()); - }); - - it('shows the number of selected aspects ( > 1)', function() { - var list = $('li[data-aspect_id]'); - list.removeClass('selected'); // reset - $([list.eq(1), list.eq(2)]).addClass('selected'); - this.view.updateSummary(); - - expect(this.btn.text()).toContain(Diaspora.I18n.t('aspect_dropdown.toggle', { 'count':2 })); - }); - }); -}); diff --git a/spec/javascripts/app/views/aspect_membership_view_spec.js b/spec/javascripts/app/views/aspect_membership_view_spec.js index 18c5b3bec..660ddc215 100644 --- a/spec/javascripts/app/views/aspect_membership_view_spec.js +++ b/spec/javascripts/app/views/aspect_membership_view_spec.js @@ -4,7 +4,7 @@ describe("app.views.AspectMembership", function(){ beforeEach(function() { // mock a dummy aspect dropdown - spec.loadFixture("aspect_membership_dropdown_bootstrap"); + spec.loadFixture("aspect_membership_dropdown"); this.view = new app.views.AspectMembership({el: $('.aspect_membership_dropdown')}); this.person_id = $('.dropdown-menu').data('person_id'); this.person_name = $('.dropdown-menu').data('person-short-name'); diff --git a/spec/javascripts/support/jasmine.yml b/spec/javascripts/support/jasmine.yml index 6b6ff197a..50f11c159 100644 --- a/spec/javascripts/support/jasmine.yml +++ b/spec/javascripts/support/jasmine.yml @@ -26,10 +26,9 @@ src_files: # - stylesheets/*.css # stylesheets: - - assets/blueprint.css - assets/bootstrap.css - assets/default.css - - assets/new-templates.css + - assets/application.css # helpers #