@samitouri / QOS-React-2 / commits / f761f770e1

Don't load todomvc-common/base.js

Fixes #1603. It's unnecessary and makes a request to learn.json which doesn't exist.

Ben Alpert committed May 26, 2014 at 20:19 UTC f761f770e12a62f2c37c1f715e66f5c386de19d7
2 files changed -210
examples/todomvc-flux/index.html
-1
@@ -13,7 +13,6 @@
13 <p>Created by <a href="http://facebook.com/bill.fisher.771">Bill Fisher</a></p>
14 <p>Part of <a href="http://todomvc.com">TodoMVC</a></p>
15 </footer>
16 - <script src="todomvc-common/base.js"></script>
16 <script src="js/bundle.js"></script>
17 </body>
18 </html>
examples/todomvc-flux/todomvc-common/base.js deleted
-209
@@ -1,209 +0,0 @@
1 -(function () {
2 - 'use strict';
3 -
4 - // Underscore's Template Module
5 - // Courtesy of underscorejs.org
6 - var _ = (function (_) {
7 - _.defaults = function (object) {
8 - if (!object) {
9 - return object;
10 - }
11 - for (var argsIndex = 1, argsLength = arguments.length; argsIndex < argsLength; argsIndex++) {
12 - var iterable = arguments[argsIndex];
13 - if (iterable) {
14 - for (var key in iterable) {
15 - if (object[key] == null) {
16 - object[key] = iterable[key];
17 - }
18 - }
19 - }
20 - }
21 - return object;
22 - }
23 -
24 - // By default, Underscore uses ERB-style template delimiters, change the
25 - // following template settings to use alternative delimiters.
26 - _.templateSettings = {
27 - evaluate : /<%([\s\S]+?)%>/g,
28 - interpolate : /<%=([\s\S]+?)%>/g,
29 - escape : /<%-([\s\S]+?)%>/g
30 - };
31 -
32 - // When customizing `templateSettings`, if you don't want to define an
33 - // interpolation, evaluation or escaping regex, we need one that is
34 - // guaranteed not to match.
35 - var noMatch = /(.)^/;
36 -
37 - // Certain characters need to be escaped so that they can be put into a
38 - // string literal.
39 - var escapes = {
40 - "'": "'",
41 - '\\': '\\',
42 - '\r': 'r',
43 - '\n': 'n',
44 - '\t': 't',
45 - '\u2028': 'u2028',
46 - '\u2029': 'u2029'
47 - };
48 -
49 - var escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g;
50 -
51 - // JavaScript micro-templating, similar to John Resig's implementation.
52 - // Underscore templating handles arbitrary delimiters, preserves whitespace,
53 - // and correctly escapes quotes within interpolated code.
54 - _.template = function(text, data, settings) {
55 - var render;
56 - settings = _.defaults({}, settings, _.templateSettings);
57 -
58 - // Combine delimiters into one regular expression via alternation.
59 - var matcher = new RegExp([
60 - (settings.escape || noMatch).source,
61 - (settings.interpolate || noMatch).source,
62 - (settings.evaluate || noMatch).source
63 - ].join('|') + '|$', 'g');
64 -
65 - // Compile the template source, escaping string literals appropriately.
66 - var index = 0;
67 - var source = "__p+='";
68 - text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {
69 - source += text.slice(index, offset)
70 - .replace(escaper, function(match) { return '\\' + escapes[match]; });
71 -
72 - if (escape) {
73 - source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'";
74 - }
75 - if (interpolate) {
76 - source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
77 - }
78 - if (evaluate) {
79 - source += "';\n" + evaluate + "\n__p+='";
80 - }
81 - index = offset + match.length;
82 - return match;
83 - });
84 - source += "';\n";
85 -
86 - // If a variable is not specified, place data values in local scope.
87 - if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n';
88 -
89 - source = "var __t,__p='',__j=Array.prototype.join," +
90 - "print=function(){__p+=__j.call(arguments,'');};\n" +
91 - source + "return __p;\n";
92 -
93 - try {
94 - render = new Function(settings.variable || 'obj', '_', source);
95 - } catch (e) {
96 - e.source = source;
97 - throw e;
98 - }
99 -
100 - if (data) return render(data, _);
101 - var template = function(data) {
102 - return render.call(this, data, _);
103 - };
104 -
105 - // Provide the compiled function source as a convenience for precompilation.
106 - template.source = 'function(' + (settings.variable || 'obj') + '){\n' + source + '}';
107 -
108 - return template;
109 - };
110 -
111 - return _;
112 - })({});
113 -
114 - if (location.hostname === 'todomvc.com') {
115 - window._gaq = [['_setAccount','UA-31081062-1'],['_trackPageview']];(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src='//www.google-analytics.com/ga.js';s.parentNode.insertBefore(g,s)}(document,'script'));
116 - }
117 -
118 - function redirect() {
119 - if (location.hostname === 'tastejs.github.io') {
120 - location.href = location.href.replace('tastejs.github.io/todomvc', 'todomvc.com');
121 - }
122 - }
123 -
124 - function findRoot() {
125 - var base;
126 -
127 - [/labs/, /\w*-examples/].forEach(function (href) {
128 - var match = location.href.match(href);
129 -
130 - if (!base && match) {
131 - base = location.href.indexOf(match);
132 - }
133 - });
134 -
135 - return location.href.substr(0, base);
136 - }
137 -
138 - function getFile(file, callback) {
139 - if (!location.host) {
140 - return console.info('Miss the info bar? Run TodoMVC from a server to avoid a cross-origin error.');
141 - }
142 -
143 - var xhr = new XMLHttpRequest();
144 -
145 - xhr.open('GET', findRoot() + file, true);
146 - xhr.send();
147 -
148 - xhr.onload = function () {
149 - if (xhr.status === 200 && callback) {
150 - callback(xhr.responseText);
151 - }
152 - };
153 - }
154 -
155 - function Learn(learnJSON, config) {
156 - if (!(this instanceof Learn)) {
157 - return new Learn(learnJSON, config);
158 - }
159 -
160 - var template, framework;
161 -
162 - if (typeof learnJSON !== 'object') {
163 - try {
164 - learnJSON = JSON.parse(learnJSON);
165 - } catch (e) {
166 - return;
167 - }
168 - }
169 -
170 - if (config) {
171 - template = config.template;
172 - framework = config.framework;
173 - }
174 -
175 - if (!template && learnJSON.templates) {
176 - template = learnJSON.templates.todomvc;
177 - }
178 -
179 - if (!framework && document.querySelector('[data-framework]')) {
180 - framework = document.querySelector('[data-framework]').getAttribute('data-framework');
181 - }
182 -
183 -
184 - if (template && learnJSON[framework]) {
185 - this.frameworkJSON = learnJSON[framework];
186 - this.template = template;
187 -
188 - this.append();
189 - }
190 - }
191 -
192 - Learn.prototype.append = function () {
193 - var aside = document.createElement('aside');
194 - aside.innerHTML = _.template(this.template, this.frameworkJSON);
195 - aside.className = 'learn';
196 -
197 - // Localize demo links
198 - var demoLinks = aside.querySelectorAll('.demo-link');
199 - Array.prototype.forEach.call(demoLinks, function (demoLink) {
200 - demoLink.setAttribute('href', findRoot() + demoLink.getAttribute('href'));
201 - });
202 -
203 - document.body.className = (document.body.className + ' learn-bar').trim();
204 - document.body.insertAdjacentHTML('afterBegin', aside.outerHTML);
205 - };
206 -
207 - redirect();
208 - getFile('learn.json', Learn);
209 -})();