Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
todomvc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Sven Franck
todomvc
Commits
b48fe667
Commit
b48fe667
authored
Dec 09, 2013
by
Pascal Hartig
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Backbone+RequireJS: Upgrade to Backbone 1.1
parent
74665360
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
5511 additions
and
6026 deletions
+5511
-6026
dependency-examples/backbone_require/bower.json
dependency-examples/backbone_require/bower.json
+3
-3
dependency-examples/backbone_require/bower_components/backbone.localStorage/backbone.localStorage.js
...components/backbone.localStorage/backbone.localStorage.js
+45
-15
dependency-examples/backbone_require/bower_components/backbone/backbone.js
...es/backbone_require/bower_components/backbone/backbone.js
+648
-565
dependency-examples/backbone_require/bower_components/jquery/jquery.js
...amples/backbone_require/bower_components/jquery/jquery.js
+4524
-5292
dependency-examples/backbone_require/bower_components/requirejs-text/text.js
.../backbone_require/bower_components/requirejs-text/text.js
+70
-16
dependency-examples/backbone_require/bower_components/requirejs/require.js
...es/backbone_require/bower_components/requirejs/require.js
+65
-30
dependency-examples/backbone_require/bower_components/underscore/underscore.js
...ackbone_require/bower_components/underscore/underscore.js
+150
-100
dependency-examples/backbone_require/js/models/todo.js
dependency-examples/backbone_require/js/models/todo.js
+2
-2
dependency-examples/backbone_require/js/routers/router.js
dependency-examples/backbone_require/js/routers/router.js
+3
-3
dependency-examples/backbone_require/js/views/app.js
dependency-examples/backbone_require/js/views/app.js
+1
-0
No files found.
dependency-examples/backbone_require/bower.json
View file @
b48fe667
...
...
@@ -2,9 +2,9 @@
"name"
:
"todomvc-backbone-requirejs"
,
"version"
:
"0.0.0"
,
"dependencies"
:
{
"backbone"
:
"~
0.9.1
0"
,
"underscore"
:
"~1.
4.4
"
,
"jquery"
:
"~
1.9.1
"
,
"backbone"
:
"~
1.1.
0"
,
"underscore"
:
"~1.
5.0
"
,
"jquery"
:
"~
2.0.0
"
,
"todomvc-common"
:
"~0.1.4"
,
"backbone.localStorage"
:
"~1.1.0"
,
"requirejs"
:
"~2.1.5"
,
...
...
dependency-examples/backbone_require/bower_components/backbone.localStorage/backbone.localStorage.js
View file @
b48fe667
/**
* Backbone localStorage Adapter
* Version 1.1.
0
* Version 1.1.
7
*
* https://github.com/jeromegn/Backbone.localStorage
*/
(
function
(
root
,
factory
)
{
if
(
typeof
define
===
"
function
"
&&
define
.
amd
)
{
if
(
typeof
exports
===
'
object
'
&&
typeof
require
===
'
function
'
)
{
module
.
exports
=
factory
(
require
(
"
underscore
"
),
require
(
"
backbone
"
));
}
else
if
(
typeof
define
===
"
function
"
&&
define
.
amd
)
{
// AMD. Register as an anonymous module.
define
([
"
underscore
"
,
"
backbone
"
],
function
(
_
,
Backbone
)
{
// Use global variables if the locals
is
undefined.
// Use global variables if the locals
are
undefined.
return
factory
(
_
||
root
.
_
,
Backbone
||
root
.
Backbone
);
});
}
else
{
// RequireJS isn't being used. Assume underscore and backbone
is
loaded in <script> tags
// RequireJS isn't being used. Assume underscore and backbone
are
loaded in <script> tags
factory
(
_
,
Backbone
);
}
}(
this
,
function
(
_
,
Backbone
)
{
...
...
@@ -37,6 +39,9 @@ function guid() {
// with a meaningful name, like the name you'd give a table.
// window.Store is deprectated, use Backbone.LocalStorage instead
Backbone
.
LocalStorage
=
window
.
Store
=
function
(
name
)
{
if
(
!
this
.
localStorage
)
{
throw
"
Backbone.localStorage: Environment does not support localStorage.
"
}
this
.
name
=
name
;
var
store
=
this
.
localStorage
().
getItem
(
this
.
name
);
this
.
records
=
(
store
&&
store
.
split
(
"
,
"
))
||
[];
...
...
@@ -77,7 +82,8 @@ _.extend(Backbone.LocalStorage.prototype, {
// Return the array of all models currently in storage.
findAll
:
function
()
{
return
_
(
this
.
records
).
chain
()
// Lodash removed _#chain in v1.0.0-rc.1
return
(
_
.
chain
||
_
)(
this
.
records
)
.
map
(
function
(
id
){
return
this
.
jsonData
(
this
.
localStorage
().
getItem
(
this
.
name
+
"
-
"
+
id
));
},
this
)
...
...
@@ -100,21 +106,43 @@ _.extend(Backbone.LocalStorage.prototype, {
localStorage
:
function
()
{
return
localStorage
;
},
// fix for "illegal access" error on Android when JSON.parse is passed null
jsonData
:
function
(
data
)
{
return
data
&&
JSON
.
parse
(
data
);
},
// Clear localStorage for specific collection.
_clear
:
function
()
{
var
local
=
this
.
localStorage
(),
itemRe
=
new
RegExp
(
"
^
"
+
this
.
name
+
"
-
"
);
// Remove id-tracking item (e.g., "foo").
local
.
removeItem
(
this
.
name
);
// Lodash removed _#chain in v1.0.0-rc.1
// Match all data items (e.g., "foo-ID") and remove.
(
_
.
chain
||
_
)(
local
).
keys
()
.
filter
(
function
(
k
)
{
return
itemRe
.
test
(
k
);
})
.
each
(
function
(
k
)
{
local
.
removeItem
(
k
);
});
this
.
records
.
length
=
0
;
},
// Size of localStorage.
_storageSize
:
function
()
{
return
this
.
localStorage
().
length
;
}
});
// localSync delegate to the model or collection's
// *localStorage* property, which should be an instance of `Store`.
// window.Store.sync and Backbone.localSync is deprec
t
ated, use Backbone.LocalStorage.sync instead
// window.Store.sync and Backbone.localSync is deprecated, use Backbone.LocalStorage.sync instead
Backbone
.
LocalStorage
.
sync
=
window
.
Store
.
sync
=
Backbone
.
localSync
=
function
(
method
,
model
,
options
)
{
var
store
=
model
.
localStorage
||
model
.
collection
.
localStorage
;
var
resp
,
errorMessage
,
syncDfd
=
$
.
Deferred
&&
$
.
Deferred
();
//If $ is having Deferred - use it.
var
resp
,
errorMessage
,
syncDfd
=
Backbone
.
$
.
Deferred
&&
Backbone
.
$
.
Deferred
();
//If $ is having Deferred - use it.
try
{
...
...
@@ -134,37 +162,39 @@ Backbone.LocalStorage.sync = window.Store.sync = Backbone.localSync = function(m
}
}
catch
(
error
)
{
if
(
error
.
code
===
DOMException
.
QUOTA_EXCEEDED_ERR
&&
window
.
localStorage
.
length
===
0
)
if
(
error
.
code
===
22
&&
store
.
_storageSize
()
===
0
)
errorMessage
=
"
Private browsing is unsupported
"
;
else
errorMessage
=
error
.
message
;
}
if
(
resp
)
{
if
(
options
&&
options
.
success
)
if
(
options
&&
options
.
success
)
{
if
(
Backbone
.
VERSION
===
"
0.9.10
"
)
{
options
.
success
(
model
,
resp
,
options
);
}
else
{
options
.
success
(
resp
);
}
if
(
syncDfd
)
}
if
(
syncDfd
)
{
syncDfd
.
resolve
(
resp
);
}
}
else
{
errorMessage
=
errorMessage
?
errorMessage
:
"
Record Not Found
"
;
if
(
options
&&
options
.
error
)
if
(
Backbone
.
VERSION
===
"
0.9.10
"
)
{
options
.
error
(
model
,
errorMessage
,
options
);
}
else
{
options
.
error
(
errorMessage
);
}
if
(
syncDfd
)
syncDfd
.
reject
(
errorMessage
);
}
// add compatibility with $.ajax
// always execute callback for success and error
if
(
options
&&
options
.
complete
)
options
.
complete
(
resp
);
...
...
@@ -189,4 +219,4 @@ Backbone.sync = function(method, model, options) {
};
return
Backbone
.
LocalStorage
;
}));
\ No newline at end of file
}));
dependency-examples/backbone_require/bower_components/backbone/backbone.js
View file @
b48fe667
This diff is collapsed.
Click to expand it.
dependency-examples/backbone_require/bower_components/jquery/jquery.js
View file @
b48fe667
This diff is collapsed.
Click to expand it.
dependency-examples/backbone_require/bower_components/requirejs-text/text.js
View file @
b48fe667
/**
* @license RequireJS text 2.0.
5
Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
* @license RequireJS text 2.0.
10
Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
* Available via the MIT or new BSD license.
* see: http://github.com/requirejs/text for details
*/
/*jslint regexp: true */
/*global require
: false, XMLHttpRequest: false, ActiveXObject: false
,
define
: false, window: false, process: false, Packages: false
,
java
: false, location: false
*/
/*global require
, XMLHttpRequest, ActiveXObject
,
define
, window, process, Packages
,
java
, location, Components, FileUtils
*/
define
([
'
module
'
],
function
(
module
)
{
'
use strict
'
;
var
text
,
fs
,
var
text
,
fs
,
Cc
,
Ci
,
xpcIsWindows
,
progIds
=
[
'
Msxml2.XMLHTTP
'
,
'
Microsoft.XMLHTTP
'
,
'
Msxml2.XMLHTTP.4.0
'
],
xmlRegExp
=
/^
\s
*<
\?
xml
(\s)
+version=
[\'\"](\d)
*.
(\d)
*
[\'\"](\s)
*
\?
>/im
,
bodyRegExp
=
/<body
[^
>
]
*>
\s
*
([\s\S]
+
)\s
*<
\/
body>/im
,
...
...
@@ -19,11 +19,11 @@ define(['module'], function (module) {
defaultProtocol
=
hasLocation
&&
location
.
protocol
&&
location
.
protocol
.
replace
(
/
\:
/
,
''
),
defaultHostName
=
hasLocation
&&
location
.
hostname
,
defaultPort
=
hasLocation
&&
(
location
.
port
||
undefined
),
buildMap
=
[]
,
buildMap
=
{}
,
masterConfig
=
(
module
.
config
&&
module
.
config
())
||
{};
text
=
{
version
:
'
2.0.
5
'
,
version
:
'
2.0.
10
'
,
strip
:
function
(
content
)
{
//Strips <?xml ...?> declarations so that external SVG and XML
...
...
@@ -176,6 +176,12 @@ define(['module'], function (module) {
useXhr
=
(
masterConfig
.
useXhr
)
||
text
.
useXhr
;
// Do not load if it is an empty: url
if
(
url
.
indexOf
(
'
empty:
'
)
===
0
)
{
onLoad
();
return
;
}
//Load the text. Use XHR if possible and in a browser.
if
(
!
hasLocation
||
useXhr
(
url
,
defaultProtocol
,
defaultHostName
,
defaultPort
))
{
text
.
get
(
url
,
function
(
content
)
{
...
...
@@ -237,17 +243,22 @@ define(['module'], function (module) {
if
(
masterConfig
.
env
===
'
node
'
||
(
!
masterConfig
.
env
&&
typeof
process
!==
"
undefined
"
&&
process
.
versions
&&
!!
process
.
versions
.
node
))
{
!!
process
.
versions
.
node
&&
!
process
.
versions
[
'
node-webkit
'
]))
{
//Using special require.nodeRequire, something added by r.js.
fs
=
require
.
nodeRequire
(
'
fs
'
);
text
.
get
=
function
(
url
,
callback
)
{
var
file
=
fs
.
readFileSync
(
url
,
'
utf8
'
);
//Remove BOM (Byte Mark Order) from utf8 files if it is there.
if
(
file
.
indexOf
(
'
\
uFEFF
'
)
===
0
)
{
file
=
file
.
substring
(
1
);
text
.
get
=
function
(
url
,
callback
,
errback
)
{
try
{
var
file
=
fs
.
readFileSync
(
url
,
'
utf8
'
);
//Remove BOM (Byte Mark Order) from utf8 files if it is there.
if
(
file
.
indexOf
(
'
\
uFEFF
'
)
===
0
)
{
file
=
file
.
substring
(
1
);
}
callback
(
file
);
}
catch
(
e
)
{
errback
(
e
);
}
callback
(
file
);
};
}
else
if
(
masterConfig
.
env
===
'
xhr
'
||
(
!
masterConfig
.
env
&&
text
.
createXhr
()))
{
...
...
@@ -283,6 +294,10 @@ define(['module'], function (module) {
}
else
{
callback
(
xhr
.
responseText
);
}
if
(
masterConfig
.
onXhrComplete
)
{
masterConfig
.
onXhrComplete
(
xhr
,
url
);
}
}
};
xhr
.
send
(
null
);
...
...
@@ -313,7 +328,9 @@ define(['module'], function (module) {
line
=
line
.
substring
(
1
);
}
stringBuffer
.
append
(
line
);
if
(
line
!==
null
)
{
stringBuffer
.
append
(
line
);
}
while
((
line
=
input
.
readLine
())
!==
null
)
{
stringBuffer
.
append
(
lineSeparator
);
...
...
@@ -326,7 +343,44 @@ define(['module'], function (module) {
}
callback
(
content
);
};
}
}
else
if
(
masterConfig
.
env
===
'
xpconnect
'
||
(
!
masterConfig
.
env
&&
typeof
Components
!==
'
undefined
'
&&
Components
.
classes
&&
Components
.
interfaces
))
{
//Avert your gaze!
Cc
=
Components
.
classes
,
Ci
=
Components
.
interfaces
;
Components
.
utils
[
'
import
'
](
'
resource://gre/modules/FileUtils.jsm
'
);
xpcIsWindows
=
(
'
@mozilla.org/windows-registry-key;1
'
in
Cc
);
text
.
get
=
function
(
url
,
callback
)
{
var
inStream
,
convertStream
,
fileObj
,
readData
=
{};
if
(
xpcIsWindows
)
{
url
=
url
.
replace
(
/
\/
/g
,
'
\\
'
);
}
fileObj
=
new
FileUtils
.
File
(
url
);
//XPCOM, you so crazy
try
{
inStream
=
Cc
[
'
@mozilla.org/network/file-input-stream;1
'
]
.
createInstance
(
Ci
.
nsIFileInputStream
);
inStream
.
init
(
fileObj
,
1
,
0
,
false
);
convertStream
=
Cc
[
'
@mozilla.org/intl/converter-input-stream;1
'
]
.
createInstance
(
Ci
.
nsIConverterInputStream
);
convertStream
.
init
(
inStream
,
"
utf-8
"
,
inStream
.
available
(),
Ci
.
nsIConverterInputStream
.
DEFAULT_REPLACEMENT_CHARACTER
);
convertStream
.
readString
(
inStream
.
available
(),
readData
);
convertStream
.
close
();
inStream
.
close
();
callback
(
readData
.
value
);
}
catch
(
e
)
{
throw
new
Error
((
fileObj
&&
fileObj
.
path
||
''
)
+
'
:
'
+
e
);
}
};
}
return
text
;
});
dependency-examples/backbone_require/bower_components/requirejs/require.js
View file @
b48fe667
This diff is collapsed.
Click to expand it.
dependency-examples/backbone_require/bower_components/underscore/underscore.js
View file @
b48fe667
This diff is collapsed.
Click to expand it.
dependency-examples/backbone_require/js/models/todo.js
View file @
b48fe667
...
...
@@ -5,7 +5,7 @@ define([
],
function
(
_
,
Backbone
)
{
'
use strict
'
;
var
Todo
Model
=
Backbone
.
Model
.
extend
({
var
Todo
=
Backbone
.
Model
.
extend
({
// Default attributes for the todo
// and ensure that each todo created has `title` and `completed` keys.
defaults
:
{
...
...
@@ -21,5 +21,5 @@ define([
}
});
return
Todo
Model
;
return
Todo
;
});
dependency-examples/backbone_require/js/routers/router.js
View file @
b48fe667
...
...
@@ -7,14 +7,14 @@ define([
],
function
(
$
,
Backbone
,
Todos
,
Common
)
{
'
use strict
'
;
var
Workspace
=
Backbone
.
Router
.
extend
({
var
TodoRouter
=
Backbone
.
Router
.
extend
({
routes
:
{
'
*filter
'
:
'
setFilter
'
},
setFilter
:
function
(
param
)
{
// Set the current filter to be used
Common
.
TodoFilter
=
param
.
trim
()
||
''
;
Common
.
TodoFilter
=
param
||
''
;
// Trigger a collection filter event, causing hiding/unhiding
// of the Todo view items
...
...
@@ -22,5 +22,5 @@ define([
}
});
return
Workspace
;
return
TodoRouter
;
});
dependency-examples/backbone_require/js/views/app.js
View file @
b48fe667
...
...
@@ -10,6 +10,7 @@ define([
],
function
(
$
,
_
,
Backbone
,
Todos
,
TodoView
,
statsTemplate
,
Common
)
{
'
use strict
'
;
// Our overall **AppView** is the top-level piece of UI.
var
AppView
=
Backbone
.
View
.
extend
({
// Instead of generating a new element, bind to the existing skeleton of
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment