Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
Moecube Store
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
Moecube Store
Commits
4b0eb0c4
Commit
4b0eb0c4
authored
Dec 13, 2012
by
神楽坂玲奈
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
temp
parent
4179ebc7
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
636 additions
and
417 deletions
+636
-417
assets/javascripts/decks.coffee
assets/javascripts/decks.coffee
+212
-125
assets/javascripts/decks.js
assets/javascripts/decks.js
+423
-291
decks/new/index.html
decks/new/index.html
+1
-1
No files found.
assets/javascripts/decks.coffee
View file @
4b0eb0c4
...
@@ -15,19 +15,13 @@ class Card extends Spine.Model
...
@@ -15,19 +15,13 @@ class Card extends Spine.Model
"http://my-card.in/images/cards/ygocore/
#{
@
id
}
.jpg"
"http://my-card.in/images/cards/ygocore/
#{
@
id
}
.jpg"
image_thumbnail_url
:
->
image_thumbnail_url
:
->
"http://my-card.in/images/cards/ygocore/thumbnail/
#{
@
id
}
.jpg"
"http://my-card.in/images/cards/ygocore/thumbnail/
#{
@
id
}
.jpg"
@
fetch_by_name
:
(
name
,
callback
)
->
$
.
getJSON
"
#{
@
locale_url
}
?q=
#{
JSON
.
stringify
{
name
:
{
$regex
:
name
.
replace
(
/([.?*+^$[\]\\(){}|-])/g
,
'
\\
$1'
),
$options
:
'i'
}
}}"
,
(
langs
)
=>
@
load
:
(
cards
,
langs
)
->
alert
langs
@
refresh
(
for
lang
in
langs
@
query
:
(
q
,
callback
)
->
$
.
getJSON
"
#{
@
url
}
?q=
#{
JSON
.
stringify
(
q
)
}
"
,
(
cards
)
=>
cards_id
=
(
card
.
_id
for
card
in
cards
)
$
.
getJSON
"
#{
@
locale_url
}
?q=
#{
JSON
.
stringify
({
_id
:
{
$in
:
cards_id
}
})}"
,
(
langs
)
=>
cards
=
(
for
lang
in
langs
for
card
in
cards
for
card
in
cards
if
card
.
_id
==
lang
.
_id
if
card
.
_id
==
lang
.
_id
$
.
extend
(
lang
,
card
)
$
.
extend
(
lang
,
card
)
break
break
card_type
=
[]
card_type
=
[]
i
=
0
i
=
0
while
lang
.
type
while
lang
.
type
...
@@ -35,7 +29,6 @@ class Card extends Spine.Model
...
@@ -35,7 +29,6 @@ class Card extends Spine.Model
card_type
.
push
@
card_types
[
i
]
card_type
.
push
@
card_types
[
i
]
lang
.
type
>>=
1
lang
.
type
>>=
1
i
++
i
++
{
{
id
:
card
.
_id
id
:
card
.
_id
alias
:
card
.
alias
alias
:
card
.
alias
...
@@ -49,24 +42,46 @@ class Card extends Spine.Model
...
@@ -49,24 +42,46 @@ class Card extends Spine.Model
description
:
lang
.
desc
description
:
lang
.
desc
}
}
)
)
@
refresh
cards
callback
(
cards
)
@
fetch_by_name
:
(
name
,
callback
)
->
$
.
getJSON
"
#{
@
locale_url
}
&q=
#{
JSON
.
stringify
{
name
:
{
$regex
:
name
.
replace
(
/([.?*+^$[\]\\(){}|-])/g
,
'
\\
$1'
),
$options
:
'i'
}
}}"
,
(
langs
)
=>
result
=
[]
cards_id
=
[]
for
lang
in
langs
try
result
.
push
Card
.
find
lang
.
_id
catch
e
cards_id
.
push
lang
.
_id
if
cards_id
.
length
$
.
getJSON
"
#{
@
url
}
&q=
#{
JSON
.
stringify
({
_id
:
{
$in
:
cards_id
}
})}"
,
(
cards
)
=>
@
load
cards
,
langs
for
card
in
cards
result
.
push
Card
.
find
card
.
_id
callback
(
result
)
else
callback
(
result
)
@
fetch_by_id
:
(
cards_id
,
callback
)
->
cards_id
=
(
card_id
for
card_id
in
cards_id
when
!
Card
.
exists
(
card_id
))
if
cards_id
.
length
$
.
when
(
$
.
getJSON
(
"
#{
@
url
}
&q=
#{
JSON
.
stringify
({
_id
:
{
$in
:
cards_id
}
})}"
),
$
.
getJSON
(
"
#{
@
locale_url
}
&q=
#{
JSON
.
stringify
({
_id
:
{
$in
:
cards_id
}
})}"
)).
done
(
cards
,
langs
)
=>
@
load
(
cards
[
0
],
langs
[
0
])
callback
()
else
callback
()
class
CardUsage
extends
Spine
.
Model
class
CardUsage
extends
Spine
.
Model
@
configure
'CardUsage'
,
'c
ard_id'
,
'c
ount'
,
'side'
@
configure
'CardUsage'
,
'count'
,
'side'
@
belongsTo
'card'
,
Card
@
belongsTo
'card'
,
Card
@
belongsTo
'deck'
,
Deck
class
Deck
extends
Spine
.
Controller
class
Deck
extends
Spine
.
Model
deck_name
:
""
@
configure
'Deck'
,
'name'
events
:
@
hasMany
'card_usages'
,
CardUsage
'mouseover .card_usage'
:
'show'
,
'click .card_usage'
:
'add'
,
'contextmenu .card_usage'
:
'minus'
key
:
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789*-="
@
key
:
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789*-="
constructor
:
->
super
CardUsage
.
bind
(
"refresh change"
,
@
render
)
encode
:
->
encode
:
->
result
=
''
result
=
''
for
card_usage
in
@
main
.
concat
@
extra
,
@
side
for
card_usage
in
@
main
.
concat
@
extra
,
@
side
...
@@ -74,25 +89,59 @@ class Deck extends Spine.Controller
...
@@ -74,25 +89,59 @@ class Deck extends Spine.Controller
for
i
in
[
4
..
0
]
for
i
in
[
4
..
0
]
result
+=
@
key
.
charAt
((
c
>>
i
*
6
)
&
0x3F
)
result
+=
@
key
.
charAt
((
c
>>
i
*
6
)
&
0x3F
)
result
result
decode
:
(
str
)
->
@
decode
:
(
str
,
name
)
->
card_usages
=
for
i
in
[
0
...
str
.
length
]
by
5
card_usages
=
[]
result
=
new
Deck
(
name
:
name
)
result
.
save
()
for
i
in
[
0
...
str
.
length
]
by
5
decoded
=
0
decoded
=
0
for
char
in
str
.
substr
(
i
,
5
)
for
char
in
str
.
substr
(
i
,
5
)
decoded
=
(
decoded
<<
6
)
+
@
key
.
indexOf
(
char
)
decoded
=
(
decoded
<<
6
)
+
@
key
.
indexOf
(
char
)
card_id
=
decoded
&
0x07FFFFFF
side
=
decoded
>>
29
side
=
decoded
>>
29
count
=
decoded
>>
27
&
0x3
count
=
decoded
>>
27
&
0x3
{
card_id
:
card_id
,
side
:
side
,
count
:
count
}
card_id
=
decoded
&
0x07FFFFFF
@
refresh
card_usages
card_usages
.
push
{
id
:
"
#{
result
.
cid
}
_
#{
side
}
_
#{
card_id
}
"
,
card_id
:
card_id
,
side
:
side
,
count
:
count
}
refresh
:
(
card_usages
,
set_history
=
true
)
->
result
.
card_usages
card_usages
cards_need_load
=
(
card_usage
.
card_id
for
card_usage
in
card_usages
when
!
Card
.
exists
(
card_usage
.
card_id
))
result
if
cards_need_load
.
length
Card
.
query
{
_id
:
{
$in
:
cards_need_load
}},
=>
class
CardsController
extends
Spine
.
Controller
CardUsage
.
refresh
card_usages
,
clear
:
true
events
:
@
set_history
()
if
set_history
'mouseover .card_search_result'
:
'show'
,
else
'click .card_search_result'
:
'add'
,
CardUsage
.
refresh
card_usages
,
clear
:
true
'contextmenu .card_search_result'
:
'minus'
@
set_history
()
if
set_history
add
:
(
e
)
->
Deck
.
current
.
add_card
(
$
(
this
).
tmplItem
().
data
)
minus
:
(
e
)
->
Deck
.
current
.
minus_card
(
$
(
this
).
tmplItem
().
data
)
show
:
(
e
)
->
Deck
.
current
.
show_card
(
$
(
this
).
tmplItem
().
data
)
search
:
(
name
)
->
Card
.
fetch_by_name
name
,
(
cards
)
=>
@
html
$
(
'#cards_search_result_template'
).
tmpl
cards
class
DecksController
extends
Spine
.
Controller
events
:
'mouseover .card_usage'
:
'show'
,
'click .card_usage'
:
'add'
,
'contextmenu .card_usage'
:
'minus'
deck
:
(
deck
)
->
if
deck
@
_deck
=
deck
@
_deck
.
bind
(
'change'
,
@
refresh
)
@
refresh
(
deck
)
@
_deck
#constructor: ->
# super
# CardUsage.bind("refresh change", @refresh)
refresh
:
(
deck
)
=>
Card
.
fetch_by_id
(
card_usage
.
card_id
for
card_usage
in
deck
.
card_usages
().
all
()),
=>
@
render
()
render
:
=>
render
:
=>
@
main
=
[]
@
main
=
[]
@
side
=
[]
@
side
=
[]
...
@@ -103,7 +152,8 @@ class Deck extends Spine.Controller
...
@@ -103,7 +152,8 @@ class Deck extends Spine.Controller
category_count
=
{}
category_count
=
{}
for
category
in
Card
.
categories
for
category
in
Card
.
categories
category_count
[
category
]
=
0
category_count
[
category
]
=
0
CardUsage
.
each
(
card_usage
)
=>
#alert @deck().card_usages()
for
card_usage
in
@
deck
().
card_usages
().
all
()
card
=
card_usage
.
card
()
card
=
card_usage
.
card
()
if
card_usage
.
side
if
card_usage
.
side
@
side
.
push
card_usage
@
side
.
push
card_usage
...
@@ -170,6 +220,8 @@ class Deck extends Spine.Controller
...
@@ -170,6 +220,8 @@ class Deck extends Spine.Controller
extra_margin
=
Math
.
floor
((
deck_width
-
card_width
*
Math
.
max
(
extra_count
,
10
))
/
(
Math
.
max
(
extra_count
,
10
)
-
1
)
/
2
)
extra_margin
=
Math
.
floor
((
deck_width
-
card_width
*
Math
.
max
(
extra_count
,
10
))
/
(
Math
.
max
(
extra_count
,
10
)
-
1
)
/
2
)
$
(
'.deck_part.extra'
).
css
{
'margin-left'
:
-
extra_margin
,
'padding-right'
:
-
extra_margin
}
$
(
'.deck_part.extra'
).
css
{
'margin-left'
:
-
extra_margin
,
'padding-right'
:
-
extra_margin
}
$
(
'.deck_part.extra .card_usage'
).
css
{
'margin-left'
:
extra_margin
,
'margin-right'
:
extra_margin
}
$
(
'.deck_part.extra .card_usage'
).
css
{
'margin-left'
:
extra_margin
,
'margin-right'
:
extra_margin
}
location
:
->
location
:
->
"/decks/new?name=
#{
@
deck_name
}
&cards=
#{
@
encode
()
}
"
"/decks/new?name=
#{
@
deck_name
}
&cards=
#{
@
encode
()
}
"
location_ydk
:
->
location_ydk
:
->
...
@@ -181,7 +233,7 @@ class Deck extends Spine.Controller
...
@@ -181,7 +233,7 @@ class Deck extends Spine.Controller
set_history
:
->
set_history
:
->
history
.
pushState
(
CardUsage
.
toJSON
(),
@
deck_name
,
@
location
())
history
.
pushState
(
CardUsage
.
toJSON
(),
@
deck_name
,
@
location
())
tab_control
:
->
@
tab_control
:
->
$
(
".bottom_area div"
).
click
->
$
(
".bottom_area div"
).
click
->
$
(
this
).
addClass
(
"bottom_button_active"
).
removeClass
(
"bottom_button"
)
$
(
this
).
addClass
(
"bottom_button_active"
).
removeClass
(
"bottom_button"
)
$
(
this
).
siblings
().
addClass
(
"bottom_button"
).
removeClass
(
"bottom_button_active"
)
$
(
this
).
siblings
().
addClass
(
"bottom_button"
).
removeClass
(
"bottom_button_active"
)
...
@@ -192,13 +244,15 @@ class Deck extends Spine.Controller
...
@@ -192,13 +244,15 @@ class Deck extends Spine.Controller
{
btn
:
false
}});
{
btn
:
false
}});
show
:
(
e
)
->
show
:
(
e
)
->
card
=
$
(
e
.
target
).
tmplItem
().
data
.
card
()
card
=
$
(
e
.
target
).
tmplItem
().
data
.
card
()
@
show_card
(
card
)
show_card
:
(
card
)
->
$
(
'#card'
).
removeClass
(
Card
.
card_types
.
join
(
' '
))
$
(
'#card'
).
removeClass
(
Card
.
card_types
.
join
(
' '
))
active_page_index
=
$
(
'.bottom_area div'
).
index
$
(
".bottom_button_active"
)
active_page_index
=
$
(
'.bottom_area div'
).
index
$
(
".bottom_button_active"
)
$
(
'#card'
).
html
$
(
"#card_template"
).
tmpl
(
card
)
$
(
'#card'
).
html
$
(
"#card_template"
).
tmpl
(
card
)
$
(
'#card'
).
addClass
(
card
.
card_type
.
join
(
' '
))
$
(
'#card'
).
addClass
(
card
.
card_type
.
join
(
' '
))
$
(
'.card_frame .frame_element'
).
eq
(
active_page_index
).
addClass
(
'card_frame_focus'
)
$
(
'.card_frame .frame_element'
).
eq
(
active_page_index
).
addClass
(
'card_frame_focus'
)
$
(
'.bottom_area div'
).
eq
(
active_page_index
).
addClass
(
'bottom_button_active'
).
removeClass
(
"bottom_button"
)
$
(
'.bottom_area div'
).
eq
(
active_page_index
).
addClass
(
'bottom_button_active'
).
removeClass
(
"bottom_button"
)
@
tab_control
()
DecksController
.
tab_control
()
add
:
(
e
)
->
add
:
(
e
)
->
card_usage
=
$
(
e
.
target
).
tmplItem
().
data
card_usage
=
$
(
e
.
target
).
tmplItem
().
data
count
=
0
count
=
0
...
@@ -208,6 +262,15 @@ class Deck extends Spine.Controller
...
@@ -208,6 +262,15 @@ class Deck extends Spine.Controller
card_usage
.
count
++
card_usage
.
count
++
card_usage
.
save
()
card_usage
.
save
()
@
set_history
()
@
set_history
()
add_card
:
(
card
)
->
card_usage
=
CardUsage
.
findByAttribute
(
'card_id'
,
card
.
id
)
||
new
CardUsage
(
card_id
:
card
.
id
,
main
:
true
,
count
:
0
)
count
=
0
for
c
in
CardUsage
.
findAllByAttribute
(
'card_id'
,
card_usage
.
card_id
)
#TODO: alias
count
+=
c
.
count
if
count
<
3
#TODO: lflist
card_usage
.
count
++
card_usage
.
save
()
@
set_history
()
minus
:
(
e
)
->
minus
:
(
e
)
->
e
.
preventDefault
()
e
.
preventDefault
()
card_usage
=
$
(
e
.
target
).
tmplItem
().
data
card_usage
=
$
(
e
.
target
).
tmplItem
().
data
...
@@ -217,17 +280,50 @@ class Deck extends Spine.Controller
...
@@ -217,17 +280,50 @@ class Deck extends Spine.Controller
else
else
card_usage
.
destroy
()
card_usage
.
destroy
()
@
set_history
()
@
set_history
()
minus_card
:
(
card
)
->
e
.
preventDefault
()
card_usage
=
CardUsage
.
findByAttribute
(
'card_id'
,
card
.
id
)
return
unless
card_usage
card_usage
.
count
--
if
card_usage
.
count
card_usage
.
save
()
else
card_usage
.
destroy
()
@
set_history
()
class
CardsSearchController
extends
Spine
.
Controller
$
(
document
).
ready
->
$
(
document
).
ready
->
$
(
'#name'
).
html
$
.
url
().
param
(
'name'
)
$
(
'#name'
).
html
$
.
url
().
param
(
'name'
)
$
(
"#deck_share_dialog"
).
dialog
$
(
"#deck_share_dialog"
).
dialog
modal
:
true
modal
:
true
autoOpen
:
false
autoOpen
:
false
addthis
.
init
()
deck
=
new
Deck
(
el
:
$
(
"#deck"
))
deck
.
deck_name
=
$
.
url
().
param
(
'name'
)
deck
.
tab_control
()
$
.
i18n
.
properties
name
:
'card'
path
:
'/locales/'
mode
:
'map'
cache
:
true
callback
:
->
@
decks
=
new
DecksController
(
el
:
$
(
"#deck"
))
#@decks.tab_control()
@
cards_search
=
new
CardsSearchController
(
el
:
$
(
"#cards_search"
))
@
decks
.
deck
Deck
.
decode
$
.
url
().
param
(
'cards'
),
$
.
url
().
param
(
'name'
)
#search
$
(
'#search'
).
submit
->
cards_search
.
search
$
(
'.search_input'
).
val
()
return
false
#share
$
(
'#deck_share'
).
click
->
$
(
'#deck_share'
).
click
->
$
(
"#deck_url"
).
val
deck
.
url
()
$
(
"#deck_url"
).
val
deck
.
url
()
$
(
"#deck_url_qrcode"
).
attr
'src'
,
'https://chart.googleapis.com/chart?chs=200x200&cht=qr&chld=|0&chl='
+
encodeURIComponent
(
deck
.
url
())
$
(
"#deck_url_qrcode"
).
attr
'src'
,
'https://chart.googleapis.com/chart?chs=200x200&cht=qr&chld=|0&chl='
+
encodeURIComponent
(
deck
.
url
())
...
@@ -242,6 +338,8 @@ $(document).ready ->
...
@@ -242,6 +338,8 @@ $(document).ready ->
success
:
(
data
)
->
success
:
(
data
)
->
$
(
"#deck_url"
).
val
data
.
id
$
(
"#deck_url"
).
val
data
.
id
$
(
'#deck_url_shorten'
).
attr
"disabled"
,
false
$
(
'#deck_url_shorten'
).
attr
"disabled"
,
false
#upload
$
(
'#deck_load'
).
change
->
$
(
'#deck_load'
).
change
->
file
=
@
files
[
0
]
file
=
@
files
[
0
]
reader
=
new
FileReader
()
reader
=
new
FileReader
()
...
@@ -278,22 +376,11 @@ $(document).ready ->
...
@@ -278,22 +376,11 @@ $(document).ready ->
deck
.
set_history
()
deck
.
set_history
()
reader
.
readAsText
(
file
)
reader
.
readAsText
(
file
)
$
.
i18n
.
properties
name
:
'card'
path
:
'/locales/'
mode
:
'map'
cache
:
true
callback
:
->
Card
.
fetch
->
$
(
'#search'
).
submit
->
Card
.
fetch_by_name
$
(
'.search_input'
).
val
()
return
false
deck
.
decode
$
.
url
().
param
(
'cards'
)
window
.
addEventListener
'popstate'
,
(
ev
)
->
window
.
addEventListener
'popstate'
,
(
ev
)
->
if
ev
.
state
if
ev
.
state
deck
.
refresh
ev
.
state
,
false
deck
.
refresh
ev
.
state
,
false
Card
.
fetch
()
$
(
".rename_ope"
).
click
->
$
(
".rename_ope"
).
click
->
$
(
".text,.graphic"
).
toggleClass
(
"graphic text"
)
$
(
".text,.graphic"
).
toggleClass
(
"graphic text"
)
deck
.
render
()
deck
.
render
()
assets/javascripts/decks.js
View file @
4b0eb0c4
// Generated by CoffeeScript 1.4.0
// Generated by CoffeeScript 1.4.0
(
function
()
{
(
function
()
{
var
Card
,
CardUsage
,
Deck
,
locale
,
var
Card
,
CardUsage
,
CardsController
,
CardsSearchController
,
Deck
,
DecksController
,
locale
,
__hasProp
=
{}.
hasOwnProperty
,
__hasProp
=
{}.
hasOwnProperty
,
__extends
=
function
(
child
,
parent
)
{
for
(
var
key
in
parent
)
{
if
(
__hasProp
.
call
(
parent
,
key
))
child
[
key
]
=
parent
[
key
];
}
function
ctor
()
{
this
.
constructor
=
child
;
}
ctor
.
prototype
=
parent
.
prototype
;
child
.
prototype
=
new
ctor
();
child
.
__super__
=
parent
.
prototype
;
return
child
;
},
__extends
=
function
(
child
,
parent
)
{
for
(
var
key
in
parent
)
{
if
(
__hasProp
.
call
(
parent
,
key
))
child
[
key
]
=
parent
[
key
];
}
function
ctor
()
{
this
.
constructor
=
child
;
}
ctor
.
prototype
=
parent
.
prototype
;
child
.
prototype
=
new
ctor
();
child
.
__super__
=
parent
.
prototype
;
return
child
;
},
__bind
=
function
(
fn
,
me
){
return
function
(){
return
fn
.
apply
(
me
,
arguments
);
};
},
__bind
=
function
(
fn
,
me
){
return
function
(){
return
fn
.
apply
(
me
,
arguments
);
};
},
...
@@ -46,38 +46,9 @@
...
@@ -46,38 +46,9 @@
return
"
http://my-card.in/images/cards/ygocore/thumbnail/
"
+
this
.
id
+
"
.jpg
"
;
return
"
http://my-card.in/images/cards/ygocore/thumbnail/
"
+
this
.
id
+
"
.jpg
"
;
};
};
Card
.
fetch_by_name
=
function
(
name
,
callback
)
{
Card
.
load
=
function
(
cards
,
langs
)
{
var
_this
=
this
;
var
card
,
card_type
,
i
,
lang
;
return
$
.
getJSON
(
""
+
this
.
locale_url
+
"
?q=
"
+
(
JSON
.
stringify
({
return
this
.
refresh
((
function
()
{
name
:
{
$regex
:
name
.
replace
(
/
([
.?*+^$[
\]\\
(){}|-
])
/g
,
'
\\
$1
'
),
$options
:
'
i
'
}
})),
function
(
langs
)
{
return
alert
(
langs
);
});
};
Card
.
query
=
function
(
q
,
callback
)
{
var
_this
=
this
;
return
$
.
getJSON
(
""
+
this
.
url
+
"
?q=
"
+
(
JSON
.
stringify
(
q
)),
function
(
cards
)
{
var
card
,
cards_id
;
cards_id
=
(
function
()
{
var
_i
,
_len
,
_results
;
_results
=
[];
for
(
_i
=
0
,
_len
=
cards
.
length
;
_i
<
_len
;
_i
++
)
{
card
=
cards
[
_i
];
_results
.
push
(
card
.
_id
);
}
return
_results
;
})();
return
$
.
getJSON
(
""
+
_this
.
locale_url
+
"
?q=
"
+
(
JSON
.
stringify
({
_id
:
{
$in
:
cards_id
}
})),
function
(
langs
)
{
var
card_type
,
i
,
lang
;
cards
=
(
function
()
{
var
_i
,
_j
,
_len
,
_len1
,
_results
;
var
_i
,
_j
,
_len
,
_len1
,
_results
;
_results
=
[];
_results
=
[];
for
(
_i
=
0
,
_len
=
langs
.
length
;
_i
<
_len
;
_i
++
)
{
for
(
_i
=
0
,
_len
=
langs
.
length
;
_i
<
_len
;
_i
++
)
{
...
@@ -126,11 +97,78 @@
...
@@ -126,11 +97,78 @@
});
});
}
}
return
_results
;
return
_results
;
}).
call
(
_this
);
}).
call
(
this
));
_this
.
refresh
(
cards
);
};
return
callback
(
cards
);
Card
.
fetch_by_name
=
function
(
name
,
callback
)
{
var
_this
=
this
;
return
$
.
getJSON
(
""
+
this
.
locale_url
+
"
&q=
"
+
(
JSON
.
stringify
({
name
:
{
$regex
:
name
.
replace
(
/
([
.?*+^$[
\]\\
(){}|-
])
/g
,
'
\\
$1
'
),
$options
:
'
i
'
}
})),
function
(
langs
)
{
var
cards_id
,
lang
,
result
,
_i
,
_len
;
result
=
[];
cards_id
=
[];
for
(
_i
=
0
,
_len
=
langs
.
length
;
_i
<
_len
;
_i
++
)
{
lang
=
langs
[
_i
];
try
{
result
.
push
(
Card
.
find
(
lang
.
_id
));
}
catch
(
e
)
{
cards_id
.
push
(
lang
.
_id
);
}
}
if
(
cards_id
.
length
)
{
return
$
.
getJSON
(
""
+
_this
.
url
+
"
&q=
"
+
(
JSON
.
stringify
({
_id
:
{
$in
:
cards_id
}
})),
function
(
cards
)
{
var
card
,
_j
,
_len1
;
_this
.
load
(
cards
,
langs
);
for
(
_j
=
0
,
_len1
=
cards
.
length
;
_j
<
_len1
;
_j
++
)
{
card
=
cards
[
_j
];
result
.
push
(
Card
.
find
(
card
.
_id
));
}
return
callback
(
result
);
});
}
else
{
return
callback
(
result
);
}
});
});
};
Card
.
fetch_by_id
=
function
(
cards_id
,
callback
)
{
var
card_id
,
_this
=
this
;
cards_id
=
(
function
()
{
var
_i
,
_len
,
_results
;
_results
=
[];
for
(
_i
=
0
,
_len
=
cards_id
.
length
;
_i
<
_len
;
_i
++
)
{
card_id
=
cards_id
[
_i
];
if
(
!
Card
.
exists
(
card_id
))
{
_results
.
push
(
card_id
);
}
}
return
_results
;
})();
if
(
cards_id
.
length
)
{
return
$
.
when
(
$
.
getJSON
(
""
+
this
.
url
+
"
&q=
"
+
(
JSON
.
stringify
({
_id
:
{
$in
:
cards_id
}
}))),
$
.
getJSON
(
""
+
this
.
locale_url
+
"
&q=
"
+
(
JSON
.
stringify
({
_id
:
{
$in
:
cards_id
}
})))).
done
(
function
(
cards
,
langs
)
{
_this
.
load
(
cards
[
0
],
langs
[
0
]);
return
callback
();
});
});
}
else
{
return
callback
();
}
};
};
return
Card
;
return
Card
;
...
@@ -145,10 +183,12 @@
...
@@ -145,10 +183,12 @@
return
CardUsage
.
__super__
.
constructor
.
apply
(
this
,
arguments
);
return
CardUsage
.
__super__
.
constructor
.
apply
(
this
,
arguments
);
}
}
CardUsage
.
configure
(
'
CardUsage
'
,
'
c
ard_id
'
,
'
c
ount
'
,
'
side
'
);
CardUsage
.
configure
(
'
CardUsage
'
,
'
count
'
,
'
side
'
);
CardUsage
.
belongsTo
(
'
card
'
,
Card
);
CardUsage
.
belongsTo
(
'
card
'
,
Card
);
CardUsage
.
belongsTo
(
'
deck
'
,
Deck
);
return
CardUsage
;
return
CardUsage
;
})(
Spine
.
Model
);
})(
Spine
.
Model
);
...
@@ -157,21 +197,15 @@
...
@@ -157,21 +197,15 @@
__extends
(
Deck
,
_super
);
__extends
(
Deck
,
_super
);
Deck
.
prototype
.
deck_name
=
""
;
function
Deck
()
{
return
Deck
.
__super__
.
constructor
.
apply
(
this
,
arguments
);
}
Deck
.
prototype
.
events
=
{
Deck
.
configure
(
'
Deck
'
,
'
name
'
);
'
mouseover .card_usage
'
:
'
show
'
,
'
click .card_usage
'
:
'
add
'
,
'
contextmenu .card_usage
'
:
'
minus
'
};
Deck
.
prototype
.
key
=
"
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789*-=
"
;
Deck
.
hasMany
(
'
card_usages
'
,
CardUsage
)
;
function
Deck
()
{
Deck
.
key
=
"
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789*-=
"
;
this
.
render
=
__bind
(
this
.
render
,
this
);
Deck
.
__super__
.
constructor
.
apply
(
this
,
arguments
);
CardUsage
.
bind
(
"
refresh change
"
,
this
.
render
);
}
Deck
.
prototype
.
encode
=
function
()
{
Deck
.
prototype
.
encode
=
function
()
{
var
c
,
card_usage
,
i
,
result
,
_i
,
_j
,
_len
,
_ref
;
var
c
,
card_usage
,
i
,
result
,
_i
,
_j
,
_len
,
_ref
;
...
@@ -187,11 +221,13 @@
...
@@ -187,11 +221,13 @@
return
result
;
return
result
;
};
};
Deck
.
prototype
.
decode
=
function
(
str
)
{
Deck
.
decode
=
function
(
str
,
name
)
{
var
card_id
,
card_usages
,
char
,
count
,
decoded
,
i
,
side
;
var
card_id
,
card_usages
,
char
,
count
,
decoded
,
i
,
result
,
side
,
_i
,
_j
,
_len
,
_ref
,
_ref1
;
card_usages
=
(
function
()
{
card_usages
=
[];
var
_i
,
_j
,
_len
,
_ref
,
_ref1
,
_results
;
result
=
new
Deck
({
_results
=
[];
name
:
name
});
result
.
save
();
for
(
i
=
_i
=
0
,
_ref
=
str
.
length
;
_i
<
_ref
;
i
=
_i
+=
5
)
{
for
(
i
=
_i
=
0
,
_ref
=
str
.
length
;
_i
<
_ref
;
i
=
_i
+=
5
)
{
decoded
=
0
;
decoded
=
0
;
_ref1
=
str
.
substr
(
i
,
5
);
_ref1
=
str
.
substr
(
i
,
5
);
...
@@ -199,62 +235,106 @@
...
@@ -199,62 +235,106 @@
char
=
_ref1
[
_j
];
char
=
_ref1
[
_j
];
decoded
=
(
decoded
<<
6
)
+
this
.
key
.
indexOf
(
char
);
decoded
=
(
decoded
<<
6
)
+
this
.
key
.
indexOf
(
char
);
}
}
card_id
=
decoded
&
0x07FFFFFF
;
side
=
decoded
>>
29
;
side
=
decoded
>>
29
;
count
=
decoded
>>
27
&
0x3
;
count
=
decoded
>>
27
&
0x3
;
_results
.
push
({
card_id
=
decoded
&
0x07FFFFFF
;
card_usages
.
push
({
id
:
""
+
result
.
cid
+
"
_
"
+
side
+
"
_
"
+
card_id
,
card_id
:
card_id
,
card_id
:
card_id
,
side
:
side
,
side
:
side
,
count
:
count
count
:
count
});
});
}
}
return
_results
;
result
.
card_usages
(
card_usages
);
}).
call
(
this
);
return
result
;
return
this
.
refresh
(
card_usages
);
};
};
Deck
.
prototype
.
refresh
=
function
(
card_usages
,
set_history
)
{
return
Deck
;
var
card_usage
,
cards_need_load
,
_this
=
this
;
})(
Spine
.
Model
);
if
(
set_history
==
null
)
{
set_history
=
true
;
CardsController
=
(
function
(
_super
)
{
__extends
(
CardsController
,
_super
);
function
CardsController
()
{
return
CardsController
.
__super__
.
constructor
.
apply
(
this
,
arguments
);
}
}
cards_need_load
=
(
function
()
{
var
_i
,
_len
,
_results
;
CardsController
.
prototype
.
events
=
{
'
mouseover .card_search_result
'
:
'
show
'
,
'
click .card_search_result
'
:
'
add
'
,
'
contextmenu .card_search_result
'
:
'
minus
'
};
CardsController
.
prototype
.
add
=
function
(
e
)
{
return
Deck
.
current
.
add_card
(
$
(
this
).
tmplItem
().
data
);
};
CardsController
.
prototype
.
minus
=
function
(
e
)
{
return
Deck
.
current
.
minus_card
(
$
(
this
).
tmplItem
().
data
);
};
CardsController
.
prototype
.
show
=
function
(
e
)
{
return
Deck
.
current
.
show_card
(
$
(
this
).
tmplItem
().
data
);
};
CardsController
.
prototype
.
search
=
function
(
name
)
{
var
_this
=
this
;
return
Card
.
fetch_by_name
(
name
,
function
(
cards
)
{
return
_this
.
html
(
$
(
'
#cards_search_result_template
'
).
tmpl
(
cards
));
});
};
return
CardsController
;
})(
Spine
.
Controller
);
DecksController
=
(
function
(
_super
)
{
__extends
(
DecksController
,
_super
);
function
DecksController
()
{
this
.
render
=
__bind
(
this
.
render
,
this
);
this
.
refresh
=
__bind
(
this
.
refresh
,
this
);
return
DecksController
.
__super__
.
constructor
.
apply
(
this
,
arguments
);
}
DecksController
.
prototype
.
events
=
{
'
mouseover .card_usage
'
:
'
show
'
,
'
click .card_usage
'
:
'
add
'
,
'
contextmenu .card_usage
'
:
'
minus
'
};
DecksController
.
prototype
.
deck
=
function
(
deck
)
{
if
(
deck
)
{
this
.
_deck
=
deck
;
this
.
_deck
.
bind
(
'
change
'
,
this
.
refresh
);
this
.
refresh
(
deck
);
}
return
this
.
_deck
;
};
DecksController
.
prototype
.
refresh
=
function
(
deck
)
{
var
card_usage
,
_this
=
this
;
return
Card
.
fetch_by_id
((
function
()
{
var
_i
,
_len
,
_ref
,
_results
;
_ref
=
deck
.
card_usages
().
all
();
_results
=
[];
_results
=
[];
for
(
_i
=
0
,
_len
=
card_usages
.
length
;
_i
<
_len
;
_i
++
)
{
for
(
_i
=
0
,
_len
=
_ref
.
length
;
_i
<
_len
;
_i
++
)
{
card_usage
=
card_usages
[
_i
];
card_usage
=
_ref
[
_i
];
if
(
!
Card
.
exists
(
card_usage
.
card_id
))
{
_results
.
push
(
card_usage
.
card_id
);
_results
.
push
(
card_usage
.
card_id
);
}
}
}
return
_results
;
return
_results
;
})();
})(),
function
()
{
if
(
cards_need_load
.
length
)
{
return
_this
.
render
();
return
Card
.
query
({
_id
:
{
$in
:
cards_need_load
}
},
function
()
{
CardUsage
.
refresh
(
card_usages
,
{
clear
:
true
});
if
(
set_history
)
{
return
_this
.
set_history
();
}
});
});
}
else
{
CardUsage
.
refresh
(
card_usages
,
{
clear
:
true
});
if
(
set_history
)
{
return
this
.
set_history
();
}
}
};
};
Deck
.
prototype
.
render
=
function
()
{
Deck
sController
.
prototype
.
render
=
function
()
{
var
card
_usage
,
card_width
,
category
,
category_count
,
deck_width
,
extra_count
,
extra_margin
,
i
,
main_count
,
main_margin
,
side_count
,
side_margin
,
_i
,
_len
,
_ref
,
var
card
,
card_type
,
card_usage
,
card_width
,
category
,
category_count
,
deck_width
,
extra_count
,
extra_margin
,
i
,
main_count
,
main_margin
,
side_count
,
side_margin
,
_i
,
_j
,
_len
,
_len1
,
_ref
,
_ref1
,
_this
=
this
;
_this
=
this
;
this
.
main
=
[];
this
.
main
=
[];
this
.
side
=
[];
this
.
side
=
[];
...
@@ -268,35 +348,36 @@
...
@@ -268,35 +348,36 @@
category
=
_ref
[
_i
];
category
=
_ref
[
_i
];
category_count
[
category
]
=
0
;
category_count
[
category
]
=
0
;
}
}
CardUsage
.
each
(
function
(
card_usage
)
{
_ref1
=
this
.
deck
().
card_usages
().
all
();
var
card
,
card_type
;
for
(
_j
=
0
,
_len1
=
_ref1
.
length
;
_j
<
_len1
;
_j
++
)
{
card_usage
=
_ref1
[
_j
];
card
=
card_usage
.
card
();
card
=
card_usage
.
card
();
if
(
card_usage
.
side
)
{
if
(
card_usage
.
side
)
{
_
this
.
side
.
push
(
card_usage
);
this
.
side
.
push
(
card_usage
);
return
side_count
+=
card_usage
.
count
;
side_count
+=
card_usage
.
count
;
}
else
if
(((
function
()
{
}
else
if
(((
function
()
{
var
_
j
,
_len1
,
_ref1
,
_results
;
var
_
k
,
_len2
,
_ref2
,
_results
;
_ref
1
=
card
.
card_type
;
_ref
2
=
card
.
card_type
;
_results
=
[];
_results
=
[];
for
(
_
j
=
0
,
_len1
=
_ref1
.
length
;
_j
<
_len1
;
_j
++
)
{
for
(
_
k
=
0
,
_len2
=
_ref2
.
length
;
_k
<
_len2
;
_k
++
)
{
card_type
=
_ref
1
[
_j
];
card_type
=
_ref
2
[
_k
];
if
(
__indexOf
.
call
(
Card
.
card_types_extra
,
card_type
)
>=
0
)
{
if
(
__indexOf
.
call
(
Card
.
card_types_extra
,
card_type
)
>=
0
)
{
_results
.
push
(
card_type
);
_results
.
push
(
card_type
);
}
}
}
}
return
_results
;
return
_results
;
})()).
length
)
{
})()).
length
)
{
_
this
.
extra
.
push
(
card_usage
);
this
.
extra
.
push
(
card_usage
);
return
extra_count
+=
card_usage
.
count
;
extra_count
+=
card_usage
.
count
;
}
else
{
}
else
{
_
this
.
main
.
push
(
card_usage
);
this
.
main
.
push
(
card_usage
);
main_count
+=
card_usage
.
count
;
main_count
+=
card_usage
.
count
;
return
category_count
[((
function
()
{
category_count
[((
function
()
{
var
_
j
,
_len1
,
_ref1
,
_results
;
var
_
k
,
_len2
,
_ref2
,
_results
;
_ref
1
=
card
.
card_type
;
_ref
2
=
card
.
card_type
;
_results
=
[];
_results
=
[];
for
(
_
j
=
0
,
_len1
=
_ref1
.
length
;
_j
<
_len1
;
_j
++
)
{
for
(
_
k
=
0
,
_len2
=
_ref2
.
length
;
_k
<
_len2
;
_k
++
)
{
category
=
_ref
1
[
_j
];
category
=
_ref
2
[
_k
];
if
(
__indexOf
.
call
(
Card
.
categories
,
category
)
>=
0
)
{
if
(
__indexOf
.
call
(
Card
.
categories
,
category
)
>=
0
)
{
_results
.
push
(
category
);
_results
.
push
(
category
);
}
}
...
@@ -304,7 +385,7 @@
...
@@ -304,7 +385,7 @@
return
_results
;
return
_results
;
})()).
pop
()]
+=
card_usage
.
count
;
})()).
pop
()]
+=
card_usage
.
count
;
}
}
}
);
}
this
.
html
(
$
(
'
#deck_template
'
).
tmpl
({
this
.
html
(
$
(
'
#deck_template
'
).
tmpl
({
main
:
this
.
main
,
main
:
this
.
main
,
side
:
this
.
side
,
side
:
this
.
side
,
...
@@ -320,15 +401,15 @@
...
@@ -320,15 +401,15 @@
if
(
$
.
browser
.
chrome
)
{
if
(
$
.
browser
.
chrome
)
{
$
(
'
#deck_url_ydk
'
).
attr
(
'
download
'
,
this
.
deck_name
+
'
.ydk
'
);
$
(
'
#deck_url_ydk
'
).
attr
(
'
download
'
,
this
.
deck_name
+
'
.ydk
'
);
$
(
'
#deck_url_ydk
'
).
attr
(
'
href
'
,
'
data:application/x-ygopro-deck,
'
+
encodeURI
([
"
#generated by mycard/web
"
].
concat
((
function
()
{
$
(
'
#deck_url_ydk
'
).
attr
(
'
href
'
,
'
data:application/x-ygopro-deck,
'
+
encodeURI
([
"
#generated by mycard/web
"
].
concat
((
function
()
{
var
_
j
,
_len1
,
_ref1
,
_results
;
var
_
k
,
_len2
,
_ref2
,
_results
;
_ref
1
=
this
.
main
;
_ref
2
=
this
.
main
;
_results
=
[];
_results
=
[];
for
(
_
j
=
0
,
_len1
=
_ref1
.
length
;
_j
<
_len1
;
_j
++
)
{
for
(
_
k
=
0
,
_len2
=
_ref2
.
length
;
_k
<
_len2
;
_k
++
)
{
card_usage
=
_ref
1
[
_j
];
card_usage
=
_ref
2
[
_k
];
_results
.
push
(((
function
()
{
_results
.
push
(((
function
()
{
var
_
k
,
_ref2
,
_results1
;
var
_
l
,
_ref3
,
_results1
;
_results1
=
[];
_results1
=
[];
for
(
i
=
_
k
=
0
,
_ref2
=
card_usage
.
count
;
0
<=
_ref2
?
_k
<
_ref2
:
_k
>
_ref2
;
i
=
0
<=
_ref2
?
++
_k
:
--
_k
)
{
for
(
i
=
_
l
=
0
,
_ref3
=
card_usage
.
count
;
0
<=
_ref3
?
_l
<
_ref3
:
_l
>
_ref3
;
i
=
0
<=
_ref3
?
++
_l
:
--
_l
)
{
_results1
.
push
(
card_usage
.
card_id
);
_results1
.
push
(
card_usage
.
card_id
);
}
}
return
_results1
;
return
_results1
;
...
@@ -336,15 +417,15 @@
...
@@ -336,15 +417,15 @@
}
}
return
_results
;
return
_results
;
}).
call
(
this
),
(
function
()
{
}).
call
(
this
),
(
function
()
{
var
_
j
,
_len1
,
_ref1
,
_results
;
var
_
k
,
_len2
,
_ref2
,
_results
;
_ref
1
=
this
.
extra
;
_ref
2
=
this
.
extra
;
_results
=
[];
_results
=
[];
for
(
_
j
=
0
,
_len1
=
_ref1
.
length
;
_j
<
_len1
;
_j
++
)
{
for
(
_
k
=
0
,
_len2
=
_ref2
.
length
;
_k
<
_len2
;
_k
++
)
{
card_usage
=
_ref
1
[
_j
];
card_usage
=
_ref
2
[
_k
];
_results
.
push
(((
function
()
{
_results
.
push
(((
function
()
{
var
_
k
,
_ref2
,
_results1
;
var
_
l
,
_ref3
,
_results1
;
_results1
=
[];
_results1
=
[];
for
(
i
=
_
k
=
0
,
_ref2
=
card_usage
.
count
;
0
<=
_ref2
?
_k
<
_ref2
:
_k
>
_ref2
;
i
=
0
<=
_ref2
?
++
_k
:
--
_k
)
{
for
(
i
=
_
l
=
0
,
_ref3
=
card_usage
.
count
;
0
<=
_ref3
?
_l
<
_ref3
:
_l
>
_ref3
;
i
=
0
<=
_ref3
?
++
_l
:
--
_l
)
{
_results1
.
push
(
card_usage
.
card_id
);
_results1
.
push
(
card_usage
.
card_id
);
}
}
return
_results1
;
return
_results1
;
...
@@ -352,15 +433,15 @@
...
@@ -352,15 +433,15 @@
}
}
return
_results
;
return
_results
;
}).
call
(
this
),
[
"
!side
"
],
(
function
()
{
}).
call
(
this
),
[
"
!side
"
],
(
function
()
{
var
_
j
,
_len1
,
_ref1
,
_results
;
var
_
k
,
_len2
,
_ref2
,
_results
;
_ref
1
=
this
.
side
;
_ref
2
=
this
.
side
;
_results
=
[];
_results
=
[];
for
(
_
j
=
0
,
_len1
=
_ref1
.
length
;
_j
<
_len1
;
_j
++
)
{
for
(
_
k
=
0
,
_len2
=
_ref2
.
length
;
_k
<
_len2
;
_k
++
)
{
card_usage
=
_ref
1
[
_j
];
card_usage
=
_ref
2
[
_k
];
_results
.
push
(((
function
()
{
_results
.
push
(((
function
()
{
var
_
k
,
_ref2
,
_results1
;
var
_
l
,
_ref3
,
_results1
;
_results1
=
[];
_results1
=
[];
for
(
i
=
_
k
=
0
,
_ref2
=
card_usage
.
count
;
0
<=
_ref2
?
_k
<
_ref2
:
_k
>
_ref2
;
i
=
0
<=
_ref2
?
++
_k
:
--
_k
)
{
for
(
i
=
_
l
=
0
,
_ref3
=
card_usage
.
count
;
0
<=
_ref3
?
_l
<
_ref3
:
_l
>
_ref3
;
i
=
0
<=
_ref3
?
++
_l
:
--
_l
)
{
_results1
.
push
(
card_usage
.
card_id
);
_results1
.
push
(
card_usage
.
card_id
);
}
}
return
_results1
;
return
_results1
;
...
@@ -374,12 +455,12 @@
...
@@ -374,12 +455,12 @@
$
(
"
.deck_part
"
).
sortable
({
$
(
"
.deck_part
"
).
sortable
({
connectWith
:
"
.deck_part
"
,
connectWith
:
"
.deck_part
"
,
stop
:
function
()
{
stop
:
function
()
{
var
card_id
,
card_usages
,
el
,
last_item
,
side
,
_
j
,
_len1
,
_ref1
;
var
card_id
,
card_usages
,
el
,
last_item
,
side
,
_
k
,
_len2
,
_ref2
;
card_usages
=
[];
card_usages
=
[];
last_item
=
null
;
last_item
=
null
;
_ref
1
=
$
(
'
.card_usage
'
);
_ref
2
=
$
(
'
.card_usage
'
);
for
(
_
j
=
0
,
_len1
=
_ref1
.
length
;
_j
<
_len1
;
_j
++
)
{
for
(
_
k
=
0
,
_len2
=
_ref2
.
length
;
_k
<
_len2
;
_k
++
)
{
el
=
_ref
1
[
_j
];
el
=
_ref
2
[
_k
];
card_id
=
$
(
el
).
tmplItem
().
data
.
card_id
;
card_id
=
$
(
el
).
tmplItem
().
data
.
card_id
;
side
=
$
(
el
).
parent
().
hasClass
(
'
side
'
);
side
=
$
(
el
).
parent
().
hasClass
(
'
side
'
);
if
(
last_item
)
{
if
(
last_item
)
{
...
@@ -446,27 +527,27 @@
...
@@ -446,27 +527,27 @@
}
}
};
};
Deck
.
prototype
.
location
=
function
()
{
Deck
sController
.
prototype
.
location
=
function
()
{
return
"
/decks/new?name=
"
+
this
.
deck_name
+
"
&cards=
"
+
(
this
.
encode
());
return
"
/decks/new?name=
"
+
this
.
deck_name
+
"
&cards=
"
+
(
this
.
encode
());
};
};
Deck
.
prototype
.
location_ydk
=
function
()
{
Deck
sController
.
prototype
.
location_ydk
=
function
()
{
return
"
/decks/new.ydk?name=
"
+
this
.
deck_name
+
"
&cards=
"
+
(
this
.
encode
());
return
"
/decks/new.ydk?name=
"
+
this
.
deck_name
+
"
&cards=
"
+
(
this
.
encode
());
};
};
Deck
.
prototype
.
url
=
function
()
{
Deck
sController
.
prototype
.
url
=
function
()
{
return
"
http://my-card.in
"
+
this
.
location
();
return
"
http://my-card.in
"
+
this
.
location
();
};
};
Deck
.
prototype
.
url_ydk
=
function
()
{
Deck
sController
.
prototype
.
url_ydk
=
function
()
{
return
"
http://my-card.in
"
+
this
.
location_ydk
();
return
"
http://my-card.in
"
+
this
.
location_ydk
();
};
};
Deck
.
prototype
.
set_history
=
function
()
{
Deck
sController
.
prototype
.
set_history
=
function
()
{
return
history
.
pushState
(
CardUsage
.
toJSON
(),
this
.
deck_name
,
this
.
location
());
return
history
.
pushState
(
CardUsage
.
toJSON
(),
this
.
deck_name
,
this
.
location
());
};
};
Deck
.
prototype
.
tab_control
=
function
()
{
Deck
sController
.
tab_control
=
function
()
{
$
(
"
.bottom_area div
"
).
click
(
function
()
{
$
(
"
.bottom_area div
"
).
click
(
function
()
{
var
$dangqian
;
var
$dangqian
;
$
(
this
).
addClass
(
"
bottom_button_active
"
).
removeClass
(
"
bottom_button
"
);
$
(
this
).
addClass
(
"
bottom_button_active
"
).
removeClass
(
"
bottom_button
"
);
...
@@ -483,19 +564,24 @@
...
@@ -483,19 +564,24 @@
});
});
};
};
Deck
.
prototype
.
show
=
function
(
e
)
{
Deck
sController
.
prototype
.
show
=
function
(
e
)
{
var
active_page_index
,
card
;
var
card
;
card
=
$
(
e
.
target
).
tmplItem
().
data
.
card
();
card
=
$
(
e
.
target
).
tmplItem
().
data
.
card
();
return
this
.
show_card
(
card
);
};
DecksController
.
prototype
.
show_card
=
function
(
card
)
{
var
active_page_index
;
$
(
'
#card
'
).
removeClass
(
Card
.
card_types
.
join
(
'
'
));
$
(
'
#card
'
).
removeClass
(
Card
.
card_types
.
join
(
'
'
));
active_page_index
=
$
(
'
.bottom_area div
'
).
index
(
$
(
"
.bottom_button_active
"
));
active_page_index
=
$
(
'
.bottom_area div
'
).
index
(
$
(
"
.bottom_button_active
"
));
$
(
'
#card
'
).
html
(
$
(
"
#card_template
"
).
tmpl
(
card
));
$
(
'
#card
'
).
html
(
$
(
"
#card_template
"
).
tmpl
(
card
));
$
(
'
#card
'
).
addClass
(
card
.
card_type
.
join
(
'
'
));
$
(
'
#card
'
).
addClass
(
card
.
card_type
.
join
(
'
'
));
$
(
'
.card_frame .frame_element
'
).
eq
(
active_page_index
).
addClass
(
'
card_frame_focus
'
);
$
(
'
.card_frame .frame_element
'
).
eq
(
active_page_index
).
addClass
(
'
card_frame_focus
'
);
$
(
'
.bottom_area div
'
).
eq
(
active_page_index
).
addClass
(
'
bottom_button_active
'
).
removeClass
(
"
bottom_button
"
);
$
(
'
.bottom_area div
'
).
eq
(
active_page_index
).
addClass
(
'
bottom_button_active
'
).
removeClass
(
"
bottom_button
"
);
return
this
.
tab_control
();
return
DecksController
.
tab_control
();
};
};
Deck
.
prototype
.
add
=
function
(
e
)
{
Deck
sController
.
prototype
.
add
=
function
(
e
)
{
var
c
,
card_usage
,
count
,
_i
,
_len
,
_ref
;
var
c
,
card_usage
,
count
,
_i
,
_len
,
_ref
;
card_usage
=
$
(
e
.
target
).
tmplItem
().
data
;
card_usage
=
$
(
e
.
target
).
tmplItem
().
data
;
count
=
0
;
count
=
0
;
...
@@ -511,7 +597,27 @@
...
@@ -511,7 +597,27 @@
return
this
.
set_history
();
return
this
.
set_history
();
};
};
Deck
.
prototype
.
minus
=
function
(
e
)
{
DecksController
.
prototype
.
add_card
=
function
(
card
)
{
var
c
,
card_usage
,
count
,
_i
,
_len
,
_ref
;
card_usage
=
CardUsage
.
findByAttribute
(
'
card_id
'
,
card
.
id
)
||
new
CardUsage
({
card_id
:
card
.
id
,
main
:
true
,
count
:
0
});
count
=
0
;
_ref
=
CardUsage
.
findAllByAttribute
(
'
card_id
'
,
card_usage
.
card_id
);
for
(
_i
=
0
,
_len
=
_ref
.
length
;
_i
<
_len
;
_i
++
)
{
c
=
_ref
[
_i
];
count
+=
c
.
count
;
}
if
(
count
<
3
)
{
card_usage
.
count
++
;
card_usage
.
save
();
}
return
this
.
set_history
();
};
DecksController
.
prototype
.
minus
=
function
(
e
)
{
var
card_usage
;
var
card_usage
;
e
.
preventDefault
();
e
.
preventDefault
();
card_usage
=
$
(
e
.
target
).
tmplItem
().
data
;
card_usage
=
$
(
e
.
target
).
tmplItem
().
data
;
...
@@ -524,22 +630,62 @@
...
@@ -524,22 +630,62 @@
return
this
.
set_history
();
return
this
.
set_history
();
};
};
return
Deck
;
DecksController
.
prototype
.
minus_card
=
function
(
card
)
{
var
card_usage
;
e
.
preventDefault
();
card_usage
=
CardUsage
.
findByAttribute
(
'
card_id
'
,
card
.
id
);
if
(
!
card_usage
)
{
return
;
}
card_usage
.
count
--
;
if
(
card_usage
.
count
)
{
card_usage
.
save
();
}
else
{
card_usage
.
destroy
();
}
return
this
.
set_history
();
};
return
DecksController
;
})(
Spine
.
Controller
);
CardsSearchController
=
(
function
(
_super
)
{
__extends
(
CardsSearchController
,
_super
);
function
CardsSearchController
()
{
return
CardsSearchController
.
__super__
.
constructor
.
apply
(
this
,
arguments
);
}
return
CardsSearchController
;
})(
Spine
.
Controller
);
})(
Spine
.
Controller
);
$
(
document
).
ready
(
function
()
{
$
(
document
).
ready
(
function
()
{
var
deck
;
$
(
'
#name
'
).
html
(
$
.
url
().
param
(
'
name
'
));
$
(
'
#name
'
).
html
(
$
.
url
().
param
(
'
name
'
));
$
(
"
#deck_share_dialog
"
).
dialog
({
$
(
"
#deck_share_dialog
"
).
dialog
({
modal
:
true
,
modal
:
true
,
autoOpen
:
false
autoOpen
:
false
});
});
deck
=
new
Deck
({
addthis
.
init
();
return
$
.
i18n
.
properties
({
name
:
'
card
'
,
path
:
'
/locales/
'
,
mode
:
'
map
'
,
cache
:
true
,
callback
:
function
()
{
this
.
decks
=
new
DecksController
({
el
:
$
(
"
#deck
"
)
el
:
$
(
"
#deck
"
)
});
});
deck
.
deck_name
=
$
.
url
().
param
(
'
name
'
);
this
.
cards_search
=
new
CardsSearchController
({
deck
.
tab_control
();
el
:
$
(
"
#cards_search
"
)
});
this
.
decks
.
deck
(
Deck
.
decode
(
$
.
url
().
param
(
'
cards
'
),
$
.
url
().
param
(
'
name
'
)));
$
(
'
#search
'
).
submit
(
function
()
{
cards_search
.
search
(
$
(
'
.search_input
'
).
val
());
return
false
;
});
$
(
'
#deck_share
'
).
click
(
function
()
{
$
(
'
#deck_share
'
).
click
(
function
()
{
$
(
"
#deck_url
"
).
val
(
deck
.
url
());
$
(
"
#deck_url
"
).
val
(
deck
.
url
());
$
(
"
#deck_url_qrcode
"
).
attr
(
'
src
'
,
'
https://chart.googleapis.com/chart?chs=200x200&cht=qr&chld=|0&chl=
'
+
encodeURIComponent
(
deck
.
url
()));
$
(
"
#deck_url_qrcode
"
).
attr
(
'
src
'
,
'
https://chart.googleapis.com/chart?chs=200x200&cht=qr&chld=|0&chl=
'
+
encodeURIComponent
(
deck
.
url
()));
...
@@ -624,25 +770,11 @@
...
@@ -624,25 +770,11 @@
};
};
return
reader
.
readAsText
(
file
);
return
reader
.
readAsText
(
file
);
});
});
return
$
.
i18n
.
properties
({
window
.
addEventListener
(
'
popstate
'
,
function
(
ev
)
{
name
:
'
card
'
,
path
:
'
/locales/
'
,
mode
:
'
map
'
,
cache
:
true
,
callback
:
function
()
{
Card
.
fetch
(
function
()
{
$
(
'
#search
'
).
submit
(
function
()
{
Card
.
fetch_by_name
(
$
(
'
.search_input
'
).
val
());
return
false
;
});
deck
.
decode
(
$
.
url
().
param
(
'
cards
'
));
return
window
.
addEventListener
(
'
popstate
'
,
function
(
ev
)
{
if
(
ev
.
state
)
{
if
(
ev
.
state
)
{
return
deck
.
refresh
(
ev
.
state
,
false
);
return
deck
.
refresh
(
ev
.
state
,
false
);
}
}
});
});
});
Card
.
fetch
();
return
$
(
"
.rename_ope
"
).
click
(
function
()
{
return
$
(
"
.rename_ope
"
).
click
(
function
()
{
$
(
"
.text,.graphic
"
).
toggleClass
(
"
graphic text
"
);
$
(
"
.text,.graphic
"
).
toggleClass
(
"
graphic text
"
);
return
deck
.
render
();
return
deck
.
render
();
...
...
decks/new/index.html
View file @
4b0eb0c4
...
@@ -443,7 +443,7 @@
...
@@ -443,7 +443,7 @@
<img
id=
"deck_url_qrcode"
/>
<img
id=
"deck_url_qrcode"
/>
</fieldset>
</fieldset>
<script
type=
"text/javascript"
<script
type=
"text/javascript"
src=
"http://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-504b398d148616ce"
></script>
src=
"http://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-504b398d148616ce
&async=1
"
></script>
<!-- AddThis Button END -->
<!-- AddThis Button END -->
</div>
</div>
<script
src=
"/vendor/javascripts/jquery-1.8.2.min.js"
></script>
<script
src=
"/vendor/javascripts/jquery-1.8.2.min.js"
></script>
...
...
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