diff --git a/docs/THIRDPARTY b/docs/THIRDPARTY index 39d163e09a..70707713f1 100644 --- a/docs/THIRDPARTY +++ b/docs/THIRDPARTY @@ -186,10 +186,6 @@ Files: static/third/spectrum/* Copyright: 2013 Brian Grinstead License: Expat -Files: static/third/spin/spin.js -Copyright: 2011-2013 Felix Gnass -License: Expat - Files: static/third/underscore/underscore.js Copyright: 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors License: Expat diff --git a/frontend_tests/node_tests/templates.js b/frontend_tests/node_tests/templates.js index c2e30262f2..4e32ee451a 100644 --- a/frontend_tests/node_tests/templates.js +++ b/frontend_tests/node_tests/templates.js @@ -483,6 +483,7 @@ function render(template_name, args) { }, ]; + render('loader'); var html = render('message_group', {message_groups: groups, use_match_properties: true}); var first_message_text = $(html).next('.recipient_row').find('div.messagebox:first .message_content').text().trim(); diff --git a/static/js/loading.js b/static/js/loading.js index 603b930205..c51ba0feba 100644 --- a/static/js/loading.js +++ b/static/js/loading.js @@ -20,6 +20,7 @@ exports.make_indicator = function (outer_container, opts) { } var spinner_elem = $('
'); + spinner_elem.html(templates.render("loader")); container.append(spinner_elem); var text_width = 0; @@ -44,25 +45,8 @@ exports.make_indicator = function (outer_container, opts) { outer_container.css({display: 'block', 'white-space': 'nowrap'}); - var spinner = new Spinner({ - lines: 8, - length: 0, - width: 9, - radius: 9, - speed: 1.25, - shadow: false, - zIndex: 1000 - }).spin(spinner_elem[0]); - outer_container.data("spinner_obj", spinner); - outer_container.data("destroying", false); - // Make the spinner appear in the center of its enclosing - // element. spinner.el is a 0x0 div. The parts of the spinner - // are arranged so that they're centered on the upper-left corner - // of spinner.el. So, by setting spinner.el's position to - // relative and top/left to 50%, the center of the spinner will - // be located at the center of spinner_elem. - $(spinner.el).css({left: '50%', top: '50%'}); + outer_container.data("destroying", false); }; exports.destroy_indicator = function (container) { diff --git a/static/styles/zulip.css b/static/styles/zulip.css index 41fd88fc00..331e5dbe93 100644 --- a/static/styles/zulip.css +++ b/static/styles/zulip.css @@ -454,7 +454,7 @@ li.actual-dropdown-menu i { .message_area_padder { /* The height of the header and the tabbar plus a small gap */ - margin-top: 68px; + margin-top: 100px; /* This is needed for the floating recipient bar in Firefox only, for some reason; otherwise it gets a scrollbar */ @@ -1764,8 +1764,8 @@ div.floating_recipient { /* If you change these, make sure to adjust the constants in * loading.make_indicator as well */ margin-left: 20px; - font-size: 33px; - font-weight: bold; + font-size: 1.2em; + font-weight: 300; line-height: 38px; } @@ -1909,9 +1909,7 @@ div.floating_recipient { #loading_more_messages_indicator_box { position: relative; left: -50%; - top: 25px; - border: 1px rgb(100, 100, 100) solid; - background-color: rgba(230, 230, 230, 0.8); + top: -40px; z-index: 1; -webkit-border-radius: 6px; -moz-border-radius: 6px; diff --git a/static/templates/loader.handlebars b/static/templates/loader.handlebars new file mode 100644 index 0000000000..38ca4204a4 --- /dev/null +++ b/static/templates/loader.handlebars @@ -0,0 +1,13 @@ + diff --git a/static/third/spin/spin.js b/static/third/spin/spin.js deleted file mode 100644 index 25fe313683..0000000000 --- a/static/third/spin/spin.js +++ /dev/null @@ -1,373 +0,0 @@ -//fgnass.github.com/spin.js#v1.3 - -/** @preserve - Software from "Spin.js", which dynamically creates activity indicators, is - Copyright (c) 2011-2013 Felix Gnass and is provided under the following license: - -- - 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. - -- -*/ - -/** - * Copyright (c) 2011-2013 Felix Gnass - * Licensed under the MIT license - */ -(function(root, factory) { - - /* CommonJS */ - if (typeof exports == 'object') module.exports = factory() - - /* AMD module */ - else if (typeof define == 'function' && define.amd) define(factory) - - /* Browser global */ - else root.Spinner = factory() -} -(this, function() { - "use strict"; - - var prefixes = ['webkit', 'Moz', 'ms', 'O'] /* Vendor prefixes */ - , animations = {} /* Animation rules keyed by their name */ - , useCssAnimations /* Whether to use CSS animations or setTimeout */ - - /** - * Utility function to create elements. If no tag name is given, - * a DIV is created. Optionally properties can be passed. - */ - function createEl(tag, prop) { - var el = document.createElement(tag || 'div') - , n - - for(n in prop) el[n] = prop[n] - return el - } - - /** - * Appends children and returns the parent. - */ - function ins(parent /* child1, child2, ...*/) { - for (var i=1, n=arguments.length; i