Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
ecommerce-ui
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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
ecommerce-ui
Commits
0ea54899
Commit
0ea54899
authored
Aug 01, 2013
by
Sven Franck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
linting
parent
a6188c92
Changes
32
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
2087 additions
and
1850 deletions
+2087
-1850
js/main.js
js/main.js
+75
-73
modules/core/app/app.js
modules/core/app/app.js
+349
-341
modules/core/config/config.js
modules/core/config/config.js
+43
-32
modules/core/extensions/extensions.js
modules/core/extensions/extensions.js
+199
-183
modules/core/overrides/overrides.js
modules/core/overrides/overrides.js
+2
-0
modules/core/storage/storage.js
modules/core/storage/storage.js
+713
-691
modules/core/utilities/utilities.js
modules/core/utilities/utilities.js
+15
-13
modules/ui/address/address.js
modules/ui/address/address.js
+16
-12
modules/ui/basket/basket.js
modules/ui/basket/basket.js
+16
-10
modules/ui/confirm/confirm.js
modules/ui/confirm/confirm.js
+15
-10
modules/ui/details/details.js
modules/ui/details/details.js
+55
-42
modules/ui/footer/footer.js
modules/ui/footer/footer.js
+14
-10
modules/ui/gallery/gallery.js
modules/ui/gallery/gallery.js
+83
-60
modules/ui/header/header.js
modules/ui/header/header.js
+13
-18
modules/ui/index/index.js
modules/ui/index/index.js
+13
-9
modules/ui/item/item.js
modules/ui/item/item.js
+79
-72
modules/ui/items/items.js
modules/ui/items/items.js
+64
-45
modules/ui/login/login.js
modules/ui/login/login.js
+16
-12
modules/ui/media/media.js
modules/ui/media/media.js
+14
-10
modules/ui/pagination/pagination.js
modules/ui/pagination/pagination.js
+80
-43
modules/ui/payment/payment.js
modules/ui/payment/payment.js
+14
-10
modules/ui/products/products.js
modules/ui/products/products.js
+14
-10
modules/ui/refine/refine.js
modules/ui/refine/refine.js
+14
-10
modules/ui/register/register.js
modules/ui/register/register.js
+14
-10
modules/ui/searchbar/searchbar.js
modules/ui/searchbar/searchbar.js
+40
-33
modules/ui/seo/seo.js
modules/ui/seo/seo.js
+14
-10
modules/ui/shipment/shipment.js
modules/ui/shipment/shipment.js
+14
-10
modules/ui/sorting/sorting.js
modules/ui/sorting/sorting.js
+14
-10
modules/ui/summary/summary.js
modules/ui/summary/summary.js
+14
-10
modules/ui/teaser/teaser.js
modules/ui/teaser/teaser.js
+14
-10
modules/ui/terms/terms.js
modules/ui/terms/terms.js
+14
-10
modules/ui/translate/translate.js
modules/ui/translate/translate.js
+33
-31
No files found.
js/main.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80, todo: true, nomen: true */
/*global document: true, require: true */
(
function
()
{
(
function
()
{
"
use strict
"
;
"
use strict
"
;
var
IS_LOCAL
=
/
(
:
\/\/
localhost|file:
\/\/)
/
.
test
(
document
.
location
.
href
);
var
IS_LOCAL
=
/
(
:
\/\/
localhost|file:
\/\/)
/
.
test
(
document
.
location
.
href
);
require
.
config
({
require
.
config
({
waitSeconds
:
(
IS_LOCAL
?
10
:
45
)
waitSeconds
:
(
IS_LOCAL
?
10
:
45
),
,
paths
:
{
paths
:
{
// core
// core
app
:
'
../modules/core/app/app
'
app
:
'
../modules/core/app/app
'
,
,
config
:
'
../modules/core/config/config
'
config
:
'
../modules/core/config/config
'
,
,
polyfill
:
'
../modules/core/polyfill/polyfill
'
polyfill
:
'
../modules/core/polyfill/polyfill
'
,
,
overrides
:
'
../modules/core/overrides/overrides
'
overrides
:
'
../modules/core/overrides/overrides
'
,
,
utilities
:
'
../modules/core/utilities/utilities
'
utilities
:
'
../modules/core/utilities/utilities
'
,
,
extensions
:
'
../modules/core/extensions/extensions
'
extensions
:
'
../modules/core/extensions/extensions
'
,
,
storage
:
'
../modules/core/storage/storage
'
storage
:
'
../modules/core/storage/storage
'
,
// requireJs
// requireJs
,
almond
:
'
../js/libs/require/almond
'
almond
:
'
../js/libs/require/almond
'
,
,
text
:
'
../js/libs/require/text
'
text
:
'
../js/libs/require/text
'
,
,
css
:
'
../js/plugins/require-css/require-css
'
css
:
'
../js/plugins/require-css/require-css
'
,
,
normalize
:
'
../js/plugins/require-css/normalize
'
normalize
:
'
../js/plugins/require-css/normalize
'
,
,
json
:
'
../js/plugins/requirejs-plugins/json
'
json
:
'
../js/plugins/requirejs-plugins/json
'
,
,
async
:
'
../js/plugins/requirejs-plugins/async
'
async
:
'
../js/plugins/requirejs-plugins/async
'
,
// support
// support
,
modernizr
:
'
../js/plugins/modernizr
'
modernizr
:
'
../js/plugins/modernizr
'
,
,
selectivzr
:
'
../js/plugins/selectivzr
'
selectivzr
:
'
../js/plugins/selectivzr
'
,
// plugins/libs
// plugins/libs
,
jquery
:
'
../js/libs/jquery/jquery
'
jquery
:
'
../js/libs/jquery/jquery
'
,
,
jqm
:
'
../js/libs/jquery-mobile/jquery-mobile
'
jqm
:
'
../js/libs/jquery-mobile/jquery-mobile
'
,
,
i18next
:
'
../js/plugins/i18next/i18next
'
i18next
:
'
../js/plugins/i18next/i18next
'
,
,
renderjs
:
'
../js/plugins/renderjs/renderjs
'
renderjs
:
'
../js/plugins/renderjs/renderjs
'
,
,
jio
:
'
../js/libs/jio/jio
'
jio
:
'
../js/libs/jio/jio
'
,
,
md5
:
'
../js/libs/jio/md5
'
md5
:
'
../js/libs/jio/md5
'
,
,
localstorage
:
'
../js/libs/jio/localstorage
'
localstorage
:
'
../js/libs/jio/localstorage
'
,
,
indexstorage
:
'
../js/libs/jio/indexstorage
'
indexstorage
:
'
../js/libs/jio/indexstorage
'
,
,
complex_queries
:
'
../js/libs/jio/complex_queries
'
complex_queries
:
'
../js/libs/jio/complex_queries
'
,
,
validval
:
'
../js/plugins/validval/validval
'
validval
:
'
../js/plugins/validval/validval
'
,
// page gadgets
// page gadgets
,
address
:
'
../modules/ui/address/address
'
address
:
'
../modules/ui/address/address
'
,
,
basket
:
'
../modules/ui/basket/basket
'
basket
:
'
../modules/ui/basket/basket
'
,
,
pagination
:
'
../modules/ui/pagination/pagination
'
pagination
:
'
../modules/ui/pagination/pagination
'
,
,
confirm
:
'
../modules/ui/confirm/confirm
'
confirm
:
'
../modules/ui/confirm/confirm
'
,
,
details
:
'
../modules/ui/details/details
'
details
:
'
../modules/ui/details/details
'
,
,
footer
:
'
../modules/ui/footer/footer
'
footer
:
'
../modules/ui/footer/footer
'
,
,
gallery
:
'
../modules/ui/gallery/gallery
'
gallery
:
'
../modules/ui/gallery/gallery
'
,
,
header
:
'
../modules/ui/header/header
'
header
:
'
../modules/ui/header/header
'
,
,
index
:
'
../modules/ui/index/index
'
index
:
'
../modules/ui/index/index
'
,
,
item
:
'
../modules/ui/item/item
'
item
:
'
../modules/ui/item/item
'
,
,
items
:
'
../modules/ui/items/items
'
items
:
'
../modules/ui/items/items
'
,
,
login
:
'
../modules/ui/login/login
'
login
:
'
../modules/ui/login/login
'
,
,
media
:
'
../modules/ui/media/media
'
media
:
'
../modules/ui/media/media
'
,
,
payment
:
'
../modules/ui/payment/payment
'
payment
:
'
../modules/ui/payment/payment
'
,
,
refine
:
'
../modules/ui/refine/refine
'
refine
:
'
../modules/ui/refine/refine
'
,
,
register
:
'
../modules/ui/register/register
'
register
:
'
../modules/ui/register/register
'
,
,
products
:
'
../modules/ui/products/products
'
products
:
'
../modules/ui/products/products
'
,
,
searchbar
:
'
../modules/ui/searchbar/searchbar
'
searchbar
:
'
../modules/ui/searchbar/searchbar
'
,
,
seo
:
'
../modules/ui/seo/seo
'
seo
:
'
../modules/ui/seo/seo
'
,
,
shipment
:
'
../modules/ui/shipment/shipment
'
shipment
:
'
../modules/ui/shipment/shipment
'
,
,
sorting
:
'
../modules/ui/sorting/sorting
'
sorting
:
'
../modules/ui/sorting/sorting
'
,
,
summary
:
'
../modules/ui/summary/summary
'
summary
:
'
../modules/ui/summary/summary
'
,
,
teaser
:
'
../modules/ui/teaser/teaser
'
teaser
:
'
../modules/ui/teaser/teaser
'
,
,
terms
:
'
../modules/ui/terms/terms
'
terms
:
'
../modules/ui/terms/terms
'
,
,
translate
:
'
../modules/ui/translate/translate
'
translate
:
'
../modules/ui/translate/translate
'
,
,
pageheader
:
'
../modules/ui/pageheader/pageheader
'
pageheader
:
'
../modules/ui/pageheader/pageheader
'
,
,
pagefooter
:
'
../modules/ui/pagefooter/pagefooter
'
pagefooter
:
'
../modules/ui/pagefooter/pagefooter
'
}
}
,
,
shim
:
{
shim
:
{
'
jqm
'
:
{
deps
:
[
'
jquery
'
],
exports
:
'
mobile
'
}
'
jqm
'
:
{
deps
:
[
'
jquery
'
],
exports
:
'
mobile
'
},
,
'
jio
'
:
{
deps
:
[
'
md5
'
]
}
'
jio
'
:
{
deps
:
[
'
md5
'
]
},
,
'
localstorage
'
:
{
deps
:
[
'
jio
'
,
'
complex_queries
'
]
}
'
localstorage
'
:
{
deps
:
[
'
jio
'
,
'
complex_queries
'
]
},
,
'
indexstorage
'
:
{
deps
:
[
'
jio
'
]
}
'
indexstorage
'
:
{
deps
:
[
'
jio
'
]
},
,
'
renderjs
'
:
{
deps
:
[
'
jquery
'
],
exports
:
'
RenderJs
'
}
'
renderjs
'
:
{
deps
:
[
'
jquery
'
],
exports
:
'
RenderJs
'
},
,
'
app
'
:
{
deps
:
[
'
jio
'
],
exports
:
'
App
'
}
'
app
'
:
{
deps
:
[
'
jio
'
],
exports
:
'
App
'
},
,
'
validval
'
:
{
deps
:
[
'
jquery
'
]
}
'
validval
'
:
{
deps
:
[
'
jquery
'
]
}
}
}
,
,
map
:
{
map
:
{
'
*
'
:
{
'
*
'
:
{
'
css
'
:
'
../js/plugins/require-css/css
'
'
css
'
:
'
../js/plugins/require-css/css
'
}
}
...
@@ -86,12 +87,11 @@
...
@@ -86,12 +87,11 @@
});
});
require
([
'
app
'
,
'
config
'
],
function
(
App
,
Config
)
{
require
([
'
app
'
,
'
config
'
],
function
(
App
,
Config
)
{
var
setup
=
new
$
.
Deferred
();
var
i
,
var
spec
=
{};
setup
=
new
$
.
Deferred
(),
var
i
;
spec
=
{};
var
def
;
spec
.
app
=
App
;
spec
.
app
=
App
;
spec
.
config
=
Config
;
spec
.
config
=
Config
;
...
@@ -100,16 +100,18 @@
...
@@ -100,16 +100,18 @@
// fallback for fast browsers...
// fallback for fast browsers...
spec
.
fallbackLoader
=
{
spec
.
fallbackLoader
=
{
deferreds
:
[],
deferreds
:
[],
args
:
[]
,
args
:
[]
};
};
// expose App once everything is loaded
// expose App once everything is loaded
spec
.
setup
.
done
(
function
(
App
,
Config
)
{
spec
.
setup
.
done
(
function
(
App
,
Config
)
{
// expose configuration - settings
// expose configuration - settings
App
.
settings
=
Config
.
settings
;
App
.
settings
=
Config
.
settings
;
// expose configuration - storages
// expose configuration - storages
App
.
storage
=
Config
.
storage
;
App
.
storage
=
Config
.
storage
;
// expose errors
App
.
errors
=
[];
for
(
i
=
0
;
i
<
window
.
fallbackLoader
.
deferreds
.
length
;
i
+=
1
)
{
for
(
i
=
0
;
i
<
window
.
fallbackLoader
.
deferreds
.
length
;
i
+=
1
)
{
window
.
fallbackLoader
.
deferreds
[
i
]
window
.
fallbackLoader
.
deferreds
[
i
]
...
...
modules/core/app/app.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global document: true, $: true, require: true, define: true,
RenderJs: true */
define
([
define
([
'
overrides
'
'
overrides
'
,
,
'
jquery
'
'
jquery
'
,
,
'
jqm
'
'
jqm
'
,
,
'
extensions
'
'
extensions
'
,
,
'
polyfill
'
'
polyfill
'
,
,
'
text
'
'
text
'
,
,
'
json
'
'
json
'
,
,
'
renderjs
'
'
renderjs
'
,
,
'
i18next
'
'
i18next
'
,
,
'
css!../css/jquery-mobile/jquery-mobile.latest
'
'
css!../css/jquery-mobile/jquery-mobile.latest
'
,
,
'
css!../css/css
'
'
css!../css/css
'
,
,
'
css!../css/normalize/normalize
'
'
css!../css/normalize/normalize
'
],
function
()
{
],
function
()
{
"
use strict
"
;
"
use strict
"
;
var
priv
=
{};
var
priv
=
{},
var
that
=
{};
that
=
{};
/* ========================================================================
/* =================================================================== */
ATTRIBUTES
/* ATTRIBUTES */
=====
=================================================================== */
/*
=================================================================== */
// document
// document
priv
.
doc
=
$
.
mobile
.
document
||
$
(
document
);
priv
.
doc
=
$
.
mobile
.
document
||
$
(
document
);
/* ========================================================================
FLAGS
/* =================================================================== */
======================================================================== */
/* FLAGS */
/* =================================================================== */
// first page loaded
// first page loaded
priv
.
pageWrapLoad
ed
;
priv
.
pageWrapLoaded
=
undefin
ed
;
// ========================================================================
// INTERNAL METHODS
/* =================================================================== */
// ========================================================================
/* INTERNAL METHODS */
/* =================================================================== */
//
//
// add page header and footer (meta/scripts) to first page loaded (only!)
// add page header and footer (meta/scripts) to first page loaded (only!)
...
@@ -49,10 +55,9 @@ define([
...
@@ -49,10 +55,9 @@ define([
// setup page header and footer configuration
// setup page header and footer configuration
priv
.
allset
.
resolve
(
spec
);
priv
.
allset
.
resolve
(
spec
);
// .then(function(App, Config) {
// .then(function(App, Config) {
// console.log("this should be the 2nd callback run AFTER we have set configuration");
// console.log(App);
// console.log(App);
// console.log(Config);
// console.log(Config);
// var widgetsForThisRequest = [
// var widgetsForThisRequest = [
// "text!../gadgets/pageheader.html",
// "text!../gadgets/pageheader.html",
...
@@ -68,15 +73,14 @@ define([
...
@@ -68,15 +73,14 @@ define([
//
//
// for ( i = 0; i < widgetsForThisRequest.length; i++){
// for ( i = 0; i < widgetsForThisRequest.length; i++){
// template_target = target[i];
// template_target = target[i];
// // if customization based on user data required (add logo/img urls, etc)
// // do all customizations with settings here!
// // it should be done here with widget being a string that can be
// // modified with replace method
// // modified with replace method
// widget = arguments[i];
// widget = arguments[i];
// template_target.append( widget );
// template_target.append( widget );
// }
// }
// }
// }
// );
// );
// });
// });
}
}
...
@@ -130,7 +134,8 @@ define([
...
@@ -130,7 +134,8 @@ define([
object
=
values
[
i
];
object
=
values
[
i
];
method
=
object
[
1
];
method
=
object
[
1
];
gadget
.
dom
.
find
(
"
.
"
+
object
[
0
])[
method
](
gadget
.
dom
.
find
(
"
.
"
+
object
[
0
])[
method
](
object
[
2
],
method
===
"
attr
"
?
object
[
3
]
:
null
object
[
2
],
method
===
"
attr
"
?
object
[
3
]
:
null
);
);
}
}
break
;
break
;
...
@@ -173,11 +178,11 @@ define([
...
@@ -173,11 +178,11 @@ define([
});
});
}
}
})
})
.
on
(
'
pagebeforehide
'
,
'
div.ui-page
'
,
function
(
e
,
data
)
{
.
on
(
'
pagebeforehide
'
,
'
div.ui-page
'
,
function
(
e
,
data
)
{
// pagebeforehide triggers before remove and data includes the new
// pagebeforehide triggers before remove and data includes the new
// page being loaded. This means we can override clearing the
gadgetIndex
// page being loaded. This means we override clearing
gadgetIndex
// in case we are going to a page that has already been loaded. Instead
// in case we are going to a page that has already been loaded.
//
we setReady to false.
// Instead
we setReady to false.
var
page
=
$
(
this
),
var
page
=
$
(
this
),
pageId
=
page
.
attr
(
'
id
'
),
pageId
=
page
.
attr
(
'
id
'
),
nextPageId
=
data
.
nextPage
.
attr
(
'
id
'
),
nextPageId
=
data
.
nextPage
.
attr
(
'
id
'
),
...
@@ -195,7 +200,7 @@ define([
...
@@ -195,7 +200,7 @@ define([
setFalse
=
true
;
setFalse
=
true
;
}
}
})
})
.
on
(
'
pageremove
'
,
'
div.ui-page
'
,
function
(
e
,
data
)
{
.
on
(
'
pageremove
'
,
'
div.ui-page
'
,
function
(
)
{
var
page
=
$
(
this
),
var
page
=
$
(
this
),
pageId
=
page
.
attr
(
'
id
'
),
pageId
=
page
.
attr
(
'
id
'
),
pageGadget
;
pageGadget
;
...
@@ -216,7 +221,7 @@ define([
...
@@ -216,7 +221,7 @@ define([
RenderJs
.
GadgetIndex
.
unregisterGadget
(
pageGadget
);
RenderJs
.
GadgetIndex
.
unregisterGadget
(
pageGadget
);
}
}
setFalse
=
false
;
setFalse
=
false
;
})
});
};
};
//
//
...
@@ -239,12 +244,12 @@ define([
...
@@ -239,12 +244,12 @@ define([
// create new deferred for waiting until all initialization is done
// create new deferred for waiting until all initialization is done
priv
.
allset
=
new
$
.
Deferred
();
priv
.
allset
=
new
$
.
Deferred
();
priv
.
allset
.
done
(
function
(
spec
)
{
priv
.
allset
.
done
(
function
(
spec
)
{
spec
.
configuration_setter
(
spec
);
spec
.
configuration_setter
(
spec
);
});
});
// > set up globals
// > set up globals
priv
.
setupGlobalParameters
()
priv
.
setupGlobalParameters
();
// > add <head>er and footer to first page only
// > add <head>er and footer to first page only
priv
.
wrapFirstPage
(
spec
);
priv
.
wrapFirstPage
(
spec
);
...
@@ -272,7 +277,8 @@ define([
...
@@ -272,7 +277,8 @@ define([
gadget_cleaned_id
,
gadget_cleaned_id
,
propsToSet
,
propsToSet
,
new_id
,
new_id
,
fwd
=
[],
i
;
fwd
=
[],
i
;
if
(
!
gadget_parent
.
is
(
"
.ui-page-active
"
))
{
if
(
!
gadget_parent
.
is
(
"
.ui-page-active
"
))
{
return
;
return
;
...
@@ -284,7 +290,7 @@ define([
...
@@ -284,7 +290,7 @@ define([
gadget
.
setEnhanced
(
true
);
gadget
.
setEnhanced
(
true
);
}
}
gadget_props
=
gadget
[
"
state
"
]
;
gadget_props
=
gadget
.
state
;
gadget_cleaned_id
=
gadget_id
.
split
(
"
__
"
).
slice
(
-
1
)[
0
];
gadget_cleaned_id
=
gadget_id
.
split
(
"
__
"
).
slice
(
-
1
)[
0
];
// JSON property API
// JSON property API
...
@@ -309,7 +315,8 @@ define([
...
@@ -309,7 +315,8 @@ define([
}
}
priv
.
getElements
(
priv
.
getElements
(
gadget
,
"
a[data-rel='popup'], a[data-rel='panel']
"
gadget
,
"
a[data-rel='popup'], a[data-rel='panel']
"
).
each
(
function
()
{
).
each
(
function
()
{
var
href
=
this
.
getAttribute
(
'
href
'
).
replace
(
"
#
"
,
''
),
var
href
=
this
.
getAttribute
(
'
href
'
).
replace
(
"
#
"
,
''
),
prefixedHref
=
priv
.
prefixElement
(
href
,
gadget_id
);
prefixedHref
=
priv
.
prefixElement
(
href
,
gadget_id
);
...
@@ -330,7 +337,8 @@ define([
...
@@ -330,7 +337,8 @@ define([
priv
.
getElements
(
gadget
,
"
> div[data-gadget]
"
).
each
(
function
()
{
priv
.
getElements
(
gadget
,
"
> div[data-gadget]
"
).
each
(
function
()
{
if
(
fwd
.
length
>
0
)
{
if
(
fwd
.
length
>
0
)
{
this
.
setAttribute
(
this
.
setAttribute
(
'
data-gadget-property
'
,
JSON
.
stringify
({
'
data-gadget-property
'
,
JSON
.
stringify
({
"
state
"
:
fwd
"
state
"
:
fwd
})
})
);
);
...
@@ -367,5 +375,5 @@ define([
...
@@ -367,5 +375,5 @@ define([
// return public methods
// return public methods
return
that
;
return
that
;
}
});
);
\ No newline at end of file
\ No newline at end of file
modules/core/config/config.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global document: true, require: true, define: true, RenderJs: true */
define
([
define
([
'
app
'
'
storage
'
,
,
'
storage
'
'
app
'
,
,
'
utilities
'
'
utilities
'
,
,
'
async
'
'
async
'
],
],
function
(
App
,
storage
)
{
function
(
storage
)
{
"
use strict
"
;
"
use strict
"
;
var
priv
=
{}
;
var
priv
=
{}
,
var
that
=
{};
that
=
{};
// set return object
// set return object
that
.
settings
=
{};
that
.
settings
=
{};
...
@@ -23,10 +25,10 @@ define([
...
@@ -23,10 +25,10 @@ define([
spec
.
framed
=
"
medium
"
;
spec
.
framed
=
"
medium
"
;
if
(
$
.
mobile
.
media
(
"
screen and (max-width:20em)
"
)
||
if
(
$
.
mobile
.
media
(
"
screen and (max-width:20em)
"
)
||
(
$
.
mobile
.
browser
.
oldIE
&&
$
(
window
).
width
()
<
o
.
lowerThresh
))
{
(
$
.
mobile
.
browser
.
oldIE
&&
$
(
window
).
width
()
<
spec
.
lowerThresh
))
{
spec
.
framed
=
"
small
"
;
spec
.
framed
=
"
small
"
;
}
else
if
(
$
.
mobile
.
media
(
"
screen and (min-width:45em)
"
)
||
}
else
if
(
$
.
mobile
.
media
(
"
screen and (min-width:45em)
"
)
||
(
$
.
mobile
.
browser
.
oldIE
&&
$
(
window
).
width
()
>=
o
.
upperThresh
))
{
(
$
.
mobile
.
browser
.
oldIE
&&
$
(
window
).
width
()
>=
spec
.
upperThresh
))
{
spec
.
framed
=
"
large
"
;
spec
.
framed
=
"
large
"
;
}
}
return
spec
.
framed
;
return
spec
.
framed
;
...
@@ -36,17 +38,24 @@ define([
...
@@ -36,17 +38,24 @@ define([
if
(
spec
.
response
===
undefined
)
{
if
(
spec
.
response
===
undefined
)
{
// TODO: this defaults could be set somewhere else as well
// TODO: this defaults could be set somewhere else as well
spec
.
config
.
settings
.
language_default
=
"
en-EN
"
;
spec
.
config
.
settings
.
language_default
=
"
en-EN
"
;
spec
.
config
.
settings
.
language_current
=
spec
.
config
.
settings
.
language_default
;
spec
.
config
.
settings
.
language_current
=
spec
.
config
.
settings
.
language_default
;
spec
.
config
.
settings
.
language_selector
=
"
translate
"
;
spec
.
config
.
settings
.
language_selector
=
"
translate
"
;
spec
.
config
.
settings
.
language_set
=
"
false
"
;
spec
.
config
.
settings
.
language_set
=
"
false
"
;
spec
.
config
.
settings
.
item_selector
=
"
item_id
"
;
spec
.
config
.
settings
.
item_selector
=
"
item_id
"
;
}
else
{
}
else
{
// create application settings
// create application settings
spec
.
config
.
settings
.
language_default
=
spec
.
response
.
language_default
||
"
en-EN
"
;
spec
.
config
.
settings
.
language_default
=
spec
.
config
.
settings
.
language_current
=
spec
.
response
.
language_current
||
spec
.
config
.
settings
.
language_default
;
spec
.
response
.
language_default
||
"
en-EN
"
;
spec
.
config
.
settings
.
language_selector
=
spec
.
response
.
selector
||
"
translate
"
;
spec
.
config
.
settings
.
language_current
=
spec
.
config
.
settings
.
language_set
=
spec
.
response
.
language_set
||
"
false
"
;
spec
.
response
.
language_current
||
spec
.
config
.
settings
.
item_selector
=
spec
.
response
.
item_selector
||
"
item_id
"
;
spec
.
config
.
settings
.
language_default
;
spec
.
config
.
settings
.
language_selector
=
spec
.
response
.
selector
||
"
translate
"
;
spec
.
config
.
settings
.
language_set
=
spec
.
response
.
language_set
||
"
false
"
;
spec
.
config
.
settings
.
item_selector
=
spec
.
response
.
item_selector
||
"
item_id
"
;
}
}
spec
.
config
.
settings
.
screen_format
=
priv
.
setScreenDimensions
();
spec
.
config
.
settings
.
screen_format
=
priv
.
setScreenDimensions
();
...
@@ -60,7 +69,7 @@ define([
...
@@ -60,7 +69,7 @@ define([
// store settings
// store settings
if
(
data
!==
undefined
)
{
if
(
data
!==
undefined
)
{
// add to localstorage
// add to localstorage
data
[
"
_id
"
]
=
"
config
"
;
data
.
_id
=
"
config
"
;
storage
.
queryStorage
({
storage
.
queryStorage
({
"
storage
"
:
"
settings
"
,
"
storage
"
:
"
settings
"
,
...
@@ -75,8 +84,9 @@ define([
...
@@ -75,8 +84,9 @@ define([
};
};
// fallback: collect configuration from file
// fallback: collect configuration from file
$
.
getJSON
(
$
.
getJSON
(
"
http://www.franckreich.de/members/export/x/configuration.json?callback=?
"
,
"
http://www.franckreich.de/members/export/x/
"
+
function
(
data
)
{
"
configuration.json?callback=?
"
,
function
(
data
)
{
priv
.
config_call
(
data
);
priv
.
config_call
(
data
);
}
}
);
);
...
@@ -91,19 +101,20 @@ define([
...
@@ -91,19 +101,20 @@ define([
spec
.
storage
=
"
settings
"
;
spec
.
storage
=
"
settings
"
;
spec
.
method
=
"
get
"
;
spec
.
method
=
"
get
"
;
spec
.
doc
=
{
"
_id
"
:
"
config
"
};
spec
.
doc
=
{
"
_id
"
:
"
config
"
};
spec
.
callback
=
function
(
err
,
response
)
{
spec
.
callback
=
function
(
err
,
response
)
{
if
(
err
)
{
if
(
err
)
{
priv
.
JSONPfallback
(
param
);
priv
.
JSONPfallback
(
param
);
}
}
param
.
response
=
response
;
param
.
response
=
response
;
priv
.
setApplicationSetters
(
param
);
priv
.
setApplicationSetters
(
param
);
}
}
;
storage
.
queryStorage
(
spec
);
storage
.
queryStorage
(
spec
);
}
}
;
// return config
// return config
return
that
;
return
that
;
}
}
);
);
modules/core/extensions/extensions.js
View file @
0ea54899
This diff is collapsed.
Click to expand it.
modules/core/overrides/overrides.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global document: true, $: true, define: true, */
define
([
'
jquery
'
],
function
(
$
)
{
define
([
'
jquery
'
],
function
(
$
)
{
"
use strict
"
;
"
use strict
"
;
...
...
modules/core/storage/storage.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global document: true, $: true, define: true, jIO: true */
define
([
define
([
'
jquery
'
'
jquery
'
,
,
'
complex_queries
'
'
complex_queries
'
,
,
'
jio
'
'
jio
'
,
,
'
md5
'
'
md5
'
,
,
'
localstorage
'
'
localstorage
'
//, 'indexstorage'
],
],
function
()
{
function
()
{
"
use strict
"
;
"
use strict
"
;
var
priv
=
{};
var
priv
=
{},
var
that
=
{};
that
=
{};
// ==
======================================================================
//
======================================================================
// ATTRIBUTES
// ATTRIBUTES
// ==
======================================================================
//
======================================================================
// ==
======================================================================
//
======================================================================
// INTERNAL METHODS
// INTERNAL METHODS
// ==
======================================================================
//
======================================================================
// ============================ JIO ========================
// ============================ JIO ========================
//
//
...
@@ -74,7 +76,9 @@ define([
...
@@ -74,7 +76,9 @@ define([
"
price
"
:
44.95
,
"
price
"
:
44.95
,
"
original_price
"
:
64.95
,
"
original_price
"
:
64.95
,
"
total_sales
"
:
69
,
"
total_sales
"
:
69
,
"
description
"
:
"
DOUBELT BREASTED JACKET 100% Polyester, matière souple et très résistante. entretien facile Coupe ajustée Fermeture boutons sur le devant Longueur : 78cm en taille S
"
,
"
description
"
:
"
DOUBELT BREASTED JACKET 100% Polyester, matière
"
+
"
souple et très résistante. entretien facile Coupe ajustée
"
+
"
Fermeture boutons sur le devant Longueur : 78cm en taille S
"
,
"
media
"
:
"
http://www.weinparis.com/en/product_module/
"
,
"
media
"
:
"
http://www.weinparis.com/en/product_module/
"
,
"
comments
"
:
[{
"
comments
"
:
[{
"
date
"
:
"
2012/12/13
"
,
"
date
"
:
"
2012/12/13
"
,
...
@@ -160,7 +164,9 @@ define([
...
@@ -160,7 +164,9 @@ define([
"
price
"
:
"
134.00
"
,
"
price
"
:
"
134.00
"
,
"
original_price
"
:
"
134.00
"
,
"
original_price
"
:
"
134.00
"
,
"
total_sales
"
:
40
,
"
total_sales
"
:
40
,
"
description
"
:
"
Pantalon 95% polyester 5% spandex. Coupe droite. Fluide. Poches italiennes. Taille élastiquée. un look décontracté chic !
"
,
"
description
"
:
"
Pantalon 95% polyester 5% spandex. Coupe droite.
"
+
"
Fluide. Poches italiennes. Taille élastiquée. un look
"
+
"
décontracté chic !
"
,
"
media
"
:
"
http://www.weinparis.com/en/product_module/
"
,
"
media
"
:
"
http://www.weinparis.com/en/product_module/
"
,
"
comments
"
:
[{
"
comments
"
:
[{
"
date
"
:
"
2012/12/03
"
,
"
date
"
:
"
2012/12/03
"
,
...
@@ -244,7 +250,8 @@ define([
...
@@ -244,7 +250,8 @@ define([
"
price
"
:
"
45.00
"
,
"
price
"
:
"
45.00
"
,
"
original_price
"
:
"
65.00
"
,
"
original_price
"
:
"
65.00
"
,
"
total_sales
"
:
14
,
"
total_sales
"
:
14
,
"
description
"
:
"
Pull bi-matière. coton bio avec polyester Col rond petite poche à une côte. coupe ample
"
,
"
description
"
:
"
Pull bi-matière. coton bio avec polyester Col rond
"
+
"
petite poche à une côte. coupe ample
"
,
"
media
"
:
"
http://www.weinparis.com/en/product_module/
"
,
"
media
"
:
"
http://www.weinparis.com/en/product_module/
"
,
"
comments
"
:
[{
"
comments
"
:
[{
"
date
"
:
"
2012/12/03
"
,
"
date
"
:
"
2012/12/03
"
,
...
@@ -327,7 +334,9 @@ define([
...
@@ -327,7 +334,9 @@ define([
"
price
"
:
"
55.00
"
,
"
price
"
:
"
55.00
"
,
"
original_price
"
:
"
75.00
"
,
"
original_price
"
:
"
75.00
"
,
"
total_sales
"
:
182
,
"
total_sales
"
:
182
,
"
description
"
:
"
pantalon en 97% Cotton 3% Elastane Fermeture: braguette à fermeture éclair cachée Poches: poches de coté Lavage en machine à 30° C
"
,
"
description
"
:
"
pantalon en 97% Cotton 3% Elastane Fermeture:
"
+
"
braguette à fermeture éclair cachée Poches: poches de coté
"
+
"
Lavage en machine à 30° C
"
,
"
media
"
:
"
http://www.weinparis.com/en/product_module/
"
,
"
media
"
:
"
http://www.weinparis.com/en/product_module/
"
,
"
comments
"
:
[{
"
comments
"
:
[{
"
date
"
:
"
2012/12/01
"
,
"
date
"
:
"
2012/12/01
"
,
...
@@ -535,7 +544,9 @@ define([
...
@@ -535,7 +544,9 @@ define([
"
price
"
:
"
30.00
"
,
"
price
"
:
"
30.00
"
,
"
original_price
"
:
"
45.00
"
,
"
original_price
"
:
"
45.00
"
,
"
total_sales
"
:
5
,
"
total_sales
"
:
5
,
"
description
"
:
"
Debarteur en Polyester. matière souple et très résistante. entretien facile Coupe ample Fermeture éclair sur le dos.
"
,
"
description
"
:
"
Debarteur en Polyester. matière souple et très
"
+
"
résistante. entretien facile Coupe ample Fermeture éclair
"
+
"
sur le dos.
"
,
"
media
"
:
"
http://www.weinparis.com/en/product_module/
"
,
"
media
"
:
"
http://www.weinparis.com/en/product_module/
"
,
"
comments
"
:
[{
"
comments
"
:
[{
"
date
"
:
"
2012/11/03
"
,
"
date
"
:
"
2012/11/03
"
,
...
@@ -608,7 +619,7 @@ define([
...
@@ -608,7 +619,7 @@ define([
priv
.
initialize
=
function
()
{
priv
.
initialize
=
function
()
{
// > set up JIOs
// > set up JIOs
priv
.
setupJIO
(
function
()
{
priv
.
setupJIO
(
function
()
{
// > populate JIOs
// > populate JIOs
priv
.
populate_item_storage
();
priv
.
populate_item_storage
();
});
});
...
@@ -618,7 +629,7 @@ define([
...
@@ -618,7 +629,7 @@ define([
// PUBLIC METHODS => window.App.method()
// PUBLIC METHODS => window.App.method()
// ========================================================================
// ========================================================================
//
//
// query one of the available storages
// query one of the available storages
// @method queryStorage
// @method queryStorage
// @param {object} param > jIO parameters (storage, method, doc, options...)
// @param {object} param > jIO parameters (storage, method, doc, options...)
...
@@ -626,7 +637,11 @@ define([
...
@@ -626,7 +637,11 @@ define([
//
//
that
.
queryStorage
=
function
(
param
)
{
that
.
queryStorage
=
function
(
param
)
{
if
(
param
.
doc
!==
undefined
)
{
if
(
param
.
doc
!==
undefined
)
{
priv
[
param
.
storage
][
param
.
method
](
param
.
doc
,
param
.
options
,
param
.
callback
);
priv
[
param
.
storage
][
param
.
method
](
param
.
doc
,
param
.
options
,
param
.
callback
);
}
else
{
}
else
{
priv
[
param
.
storage
][
param
.
method
](
param
.
options
,
param
.
callback
);
priv
[
param
.
storage
][
param
.
method
](
param
.
options
,
param
.
callback
);
}
}
...
@@ -666,23 +681,26 @@ define([
...
@@ -666,23 +681,26 @@ define([
query
.
limit
=
[];
query
.
limit
=
[];
query
.
sort_on
=
[];
query
.
sort_on
=
[];
query
.
select_list
=
[];
query
.
select_list
=
[];
query
.
wildcard_character
=
'
%
'
query
.
wildcard_character
=
'
%
'
;
// if we have a pointer, we can disregard method & options,
// if we have a pointer, we can disregard method & options,
// but we must set on spec directly, because query will only be
// but we must set on spec directly, because query will only be
// assigned in a defined case
// assigned in a defined case
// TODO: not nice to hardquery for "allDocs" here, but... improve later
// TODO: not nice to hardquery for "allDocs" here, but... improve later
if
(
param
.
pointer
===
undefined
&&
param
.
method
===
"
allDocs
"
&&
spec
.
options
!==
undefined
)
{
if
(
param
.
pointer
===
undefined
&&
param
.
method
===
"
allDocs
"
&&
spec
.
options
!==
undefined
)
{
spec
.
options
.
limit
=
param
.
options
.
limit
;
spec
.
options
.
limit
=
param
.
options
.
limit
;
spec
.
options
.
sort_on
=
param
.
options
.
sort_on
;
spec
.
options
.
sort_on
=
param
.
options
.
sort_on
;
spec
.
options
.
select_list
=
param
.
options
.
select_list
||
spec
.
default_items
;
spec
.
options
.
select_list
=
param
.
options
.
select_list
||
spec
.
options
.
wildcard_character
=
'
%
'
spec
.
default_items
;
spec
.
options
.
wildcard_character
=
'
%
'
;
}
}
// queries can be run
// queries can be run
// > with different cases (currently upper/lower case),
// > with different cases (currently upper/lower case),
// > on full select_list (passed elements or default),
// > on full select_list (passed elements or default),
// > without a query object, if empty string is passed (nothing to parse, faster search
)
// > without a query object, if empty string is passed (parse faster
)
// > TODO: optionable?
// > TODO: optionable?
if
(
spec
.
query
)
{
if
(
spec
.
query
)
{
if
(
spec
.
query_string
!==
""
)
{
if
(
spec
.
query_string
!==
""
)
{
...
@@ -690,13 +708,16 @@ define([
...
@@ -690,13 +708,16 @@ define([
spec
.
query_string
,
spec
.
query_string
,
spec
.
query_string
.
toUpperCase
(),
spec
.
query_string
.
toUpperCase
(),
spec
.
query_string
.
toLowerCase
(),
spec
.
query_string
.
toLowerCase
(),
spec
.
query_string
.
charAt
(
0
).
toUpperCase
()
+
spec
.
query_string
.
slice
(
1
)
spec
.
query_string
.
charAt
(
0
).
toUpperCase
()
+
spec
.
query_string
.
slice
(
1
)
);
);
for
(
j
=
0
;
j
<
cases
.
length
;
j
+=
1
)
{
for
(
j
=
0
;
j
<
cases
.
length
;
j
+=
1
)
{
for
(
i
=
0
;
i
<
spec
.
options
.
select_list
.
length
;
i
+=
1
)
{
for
(
i
=
0
;
i
<
spec
.
options
.
select_list
.
length
;
i
+=
1
)
{
item
=
spec
.
options
.
select_list
[
i
];
item
=
spec
.
options
.
select_list
[
i
];
searchString
+=
item
+
'
: = "
'
+
query
.
wildcard_character
+
cases
[
j
]
+
query
.
wildcard_character
+
'
"
'
;
searchString
+=
item
+
'
: = "
'
+
if
(
i
<
spec
.
options
.
select_list
.
length
-
1
)
{
query
.
wildcard_character
+
cases
[
j
]
+
query
.
wildcard_character
+
'
"
'
;
if
(
i
<
spec
.
options
.
select_list
.
length
-
1
)
{
searchString
+=
'
OR
'
;
searchString
+=
'
OR
'
;
}
}
}
}
...
@@ -729,15 +750,16 @@ define([
...
@@ -729,15 +750,16 @@ define([
break
;
break
;
}
}
};
};
// ==
======================================================================
//
======================================================================
// INITIALIZE
// INITIALIZE
// ==
======================================================================
//
======================================================================
priv
.
initialize
();
priv
.
initialize
();
// ==
======================================================================
//
======================================================================
// PUBLISH APP
// PUBLISH APP
// ==
======================================================================
//
======================================================================
// return public methods to main.js
// return public methods to main.js
return
that
;
return
that
;
});
}
\ No newline at end of file
);
modules/core/utilities/utilities.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global document: true, define: true, $: true */
define
([
define
([
'
app
'
'
app
'
],
function
(
App
)
{
],
function
(
App
)
{
"
use strict
"
;
"
use strict
"
;
// this module provides generic methods usable across all gadgets/modules
// this module provides generic methods usable across all gadgets/modules
var
that
=
{};
var
that
=
{};
...
@@ -17,19 +20,18 @@ define([
...
@@ -17,19 +20,18 @@ define([
while
(
elem
)
{
while
(
elem
)
{
if
(
matchesSelector
.
bind
(
elem
)(
selector
))
{
if
(
matchesSelector
.
bind
(
elem
)(
selector
))
{
return
elem
;
return
elem
;
}
else
{
elem
=
elem
.
parentNode
;
}
}
elem
=
elem
.
parentNode
;
}
}
return
false
;
return
false
;
}
else
{
}
// opera...
// opera...
fallback
=
$
(
elem
).
closest
(
selector
);
fallback
=
$
(
elem
).
closest
(
selector
);
if
(
fallback
.
length
>
0
)
{
if
(
fallback
.
length
>
0
)
{
return
fallback
;
return
fallback
;
}
}
return
false
;
return
false
;
}
};
};
// object size
// object size
that
.
objectSize
=
function
(
obj
)
{
that
.
objectSize
=
function
(
obj
)
{
...
@@ -37,7 +39,7 @@ define([
...
@@ -37,7 +39,7 @@ define([
for
(
key
in
obj
)
{
for
(
key
in
obj
)
{
if
(
obj
.
hasOwnProperty
(
key
))
{
if
(
obj
.
hasOwnProperty
(
key
))
{
size
++
;
size
+=
1
;
}
}
}
}
return
size
;
return
size
;
...
@@ -47,4 +49,4 @@ define([
...
@@ -47,4 +49,4 @@ define([
return
undefined
;
return
undefined
;
}
}
);
);
\ No newline at end of file
modules/ui/address/address.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, $: true, define: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!address.html!strip
'
'
text!address.html!strip
'
,
,
'
validval
'
'
validval
'
,
,
'
css!address
'
'
css!address
'
],
],
function
(
App
,
source
,
validator
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -28,4 +32,4 @@ define([
...
@@ -28,4 +32,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/basket/basket.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!basket.html!strip
'
'
text!basket.html!strip
'
,
,
'
css!basket
'
'
validval
'
,
],
'
css!basket
'
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +32,5 @@ define([
...
@@ -27,4 +32,5 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/confirm/confirm.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!confirm.html!strip
'
'
text!confirm.html!strip
'
,
,
'
css!confirm
'
'
validval
'
,
],
'
css!confirm
'
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +32,4 @@ define([
...
@@ -27,4 +32,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/details/details.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global define: true, $: true, define: true, window: true, App: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!details.html!strip
'
'
text!details.html!strip
'
,
,
'
css!details
'
'
css!details
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
that
=
{};
"
use strict
"
;
var
priv
=
{};
var
that
=
{},
priv
=
{};
// cleanup memory
// cleanup memory
priv
.
cleanupMemory
=
function
(
memory
)
{
priv
.
cleanupMemory
=
function
(
memory
)
{
...
@@ -40,30 +44,33 @@ define([
...
@@ -40,30 +44,33 @@ define([
var
id
,
now
,
spec
,
module
;
var
id
,
now
,
spec
,
module
;
// we will have an item to display. Grab it and go!
// we will have an item to display. Grab it and go!
if
(
location
.
search
!==
""
)
{
if
(
window
.
location
.
search
!==
""
)
{
spec
=
{};
spec
=
{};
spec
.
pointer
=
location
.
search
.
split
(
"
=
"
)[
1
];
spec
.
pointer
=
window
.
location
.
search
.
split
(
"
=
"
)[
1
];
spec
.
storage
=
"
items
"
spec
.
storage
=
"
items
"
;
spec
.
method
=
"
get
"
spec
.
method
=
"
get
"
;
spec
.
doc
=
{
"
_id
"
:
spec
.
pointer
}
spec
.
doc
=
{
"
_id
"
:
spec
.
pointer
}
;
// TODO: should be passed via JSON?
// TODO: should be passed via JSON?
module
=
"
storage
"
;
module
=
"
storage
"
;
now
=
new
Date
().
getTime
();
now
=
new
Date
().
getTime
();
}
else
{
}
else
{
// route to all products
// route to all products
$
.
mobile
.
changePage
(
"
products.html
"
,
{
"
transition
"
:
"
fade
"
});
$
.
mobile
.
changePage
(
"
products.html
"
,
{
"
transition
"
:
"
fade
"
});
}
}
// jio response
// jio response
spec
.
callback
=
function
(
err
,
response
)
{
spec
.
callback
=
function
(
err
,
response
)
{
if
(
err
)
{
if
(
err
)
{
// error handling
App
.
errors
.
push
({
module
:
"
details
"
,
timestamp
:
now
,
error
:
err
});
}
else
{
}
else
{
id
=
response
.
_id
;
id
=
response
.
_id
;
App
.
cacheItems
[
id
]
=
[
response
,
now
];
App
.
cacheItems
[
id
]
=
[
response
,
now
];
// memory
// memory
...
@@ -72,7 +79,7 @@ define([
...
@@ -72,7 +79,7 @@ define([
// this is not response.callback(!!)
// this is not response.callback(!!)
params
.
callback_mockup
(
params
.
source
);
params
.
callback_mockup
(
params
.
source
);
}
}
;
// query for items
// query for items
App
[
module
].
switchboard
(
spec
);
App
[
module
].
switchboard
(
spec
);
};
};
...
@@ -96,14 +103,20 @@ define([
...
@@ -96,14 +103,20 @@ define([
// // TODO: this is for page event bindings. Once JQM content replaces
// // TODO: this is for page event bindings. Once JQM content replaces
// // page, remove this and make the gadget the content section to
// // page, remove this and make the gadget the content section to
// // be updated.
// // be updated.
// spec.page = App.util.closest(spec.gadget.dom.get(0), "div[data-role='page']");
// spec.page = App.util.closest(
// spec.gadget.dom.get(0),
// "div[data-role='page']"
// );
// spec.pageId = "#" + spec.page.id;
// spec.pageId = "#" + spec.page.id;
// spec.source = source;
// spec.source = source;
// spec.callback_mockup = callback_mockup;
// spec.callback_mockup = callback_mockup;
//
//
// if (!spec.page.getAttribute("events_details")) {
// if (!spec.page.getAttribute("events_details")) {
// spec.page.setAttribute("events_details", true);
// spec.page.setAttribute("events_details", true);
// $(document).on("pagebeforeshow.details", spec.pageId, function (e, data) {
// $(document).on(
// "pagebeforeshow.details",
// spec.pageId,
// function (e, data) {
// // TODO: if we allow to reload, we also need to trigger refresh on
// // TODO: if we allow to reload, we also need to trigger refresh on
// // so we need to reload this every time a page is shown. question
// // so we need to reload this every time a page is shown. question
// // is how to trigger a refresh on this element ONLY
// // is how to trigger a refresh on this element ONLY
...
@@ -116,9 +129,9 @@ define([
...
@@ -116,9 +129,9 @@ define([
that
.
after
=
function
(
self
)
{
that
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
var
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -134,4 +147,4 @@ define([
...
@@ -134,4 +147,4 @@ define([
// return response object
// return response object
return
that
;
return
that
;
}
}
);
);
modules/ui/footer/footer.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!footer.html!strip
'
'
text!footer.html!strip
'
,
,
'
css!footer
'
'
css!footer
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +31,4 @@ define([
...
@@ -27,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/gallery/gallery.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global define: true, $: true, define: true, window: true, App: true, RenderJs: true,
document: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!gallery.html!strip
'
'
text!gallery.html!strip
'
,
,
'
css!gallery
'
'
css!gallery
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
that
=
{};
"
use strict
"
;
var
priv
=
{};
var
that
=
{},
priv
=
{};
// ========================== ATTRIBUTES ==============================
// ========================== ATTRIBUTES ==============================
// set response, so it's available across function calls
// set response, so it's available across function calls
priv
.
response
;
priv
.
response
=
undefined
;
priv
.
generateGallery
=
function
(
response
)
{
priv
.
generateGallery
=
function
(
response
)
{
// expose response (will be overwritten, when next item loads
// expose response (will be overwritten, when next item loads
...
@@ -21,7 +26,7 @@ define([
...
@@ -21,7 +26,7 @@ define([
// TODO: zoom is missing, this should also be a feature of gallery
// TODO: zoom is missing, this should also be a feature of gallery
// TODO: 404 fallback images!
// TODO: 404 fallback images!
// ala photoswipe
// ala photoswipe
var
i
,
j
,
item
,
img
,
gallery
,
thumbnails
=
""
,
str
,
obj
,
variations
;
var
i
,
item
,
gallery
,
thumbnails
=
""
,
variations
;
gallery
=
"
<div class='gallery_wrap'><ul data-role='carousel'
"
+
gallery
=
"
<div class='gallery_wrap'><ul data-role='carousel'
"
+
"
data-inset='true' class='ui-responsive tester'
"
+
"
data-inset='true' class='ui-responsive tester'
"
+
...
@@ -37,15 +42,18 @@ define([
...
@@ -37,15 +42,18 @@ define([
variations
=
priv
.
response
.
dimensions
[
0
].
vars
;
variations
=
priv
.
response
.
dimensions
[
0
].
vars
;
if
(
variations
.
length
>
1
)
{
if
(
variations
.
length
>
1
)
{
thumbnails
+=
"
<div class='gallery_thumbnails '><ul data-role='
"
+
thumbnails
+=
"
<div class='gallery_thumbnails '><ul data-role='
"
+
"
listview' data-inset='true' class='gallery_thumbnail_wrapper'>
"
;
"
listview' data-inset='true' class='gallery_thumbnail_wrapper'>
"
;
for
(
i
=
0
;
i
<
variations
.
length
;
i
+=
1
)
{
for
(
i
=
0
;
i
<
variations
.
length
;
i
+=
1
)
{
item
=
variations
[
i
];
item
=
variations
[
i
];
// thumbnails - click on link should trigger the display method
// thumbnails - click on link should trigger the display method
thumbnails
+=
"
<li data-icon='false'><a href='#
"
+
item
.
name
+
"
' class='
"
+
thumbnails
+=
"
<li data-icon='false'><a href='#
"
+
item
.
name
+
"
display_item'><img src='
"
+
response
.
media
+
item
.
media
.
img
[
0
][
"
t
"
]
+
"
' alt='
"
"
' class='display_item'><img src='
"
+
response
.
media
+
+
item
.
name
+
"
' /><h3 class='translate gallery_header' data-i18n='
"
+
item
.
media
.
img
[
0
].
t
+
"
' alt='
"
+
item
.
name
+
"
' /><h3 class='translate gallery_header' data-i18n='
"
+
item
.
i18n
+
"
'>
"
+
item
.
name
+
"
</h3></li>
"
;
item
.
i18n
+
"
'>
"
+
item
.
name
+
"
</h3></li>
"
;
}
}
thumbnails
+=
"
</ul></div>
"
;
thumbnails
+=
"
</ul></div>
"
;
...
@@ -54,7 +62,7 @@ define([
...
@@ -54,7 +62,7 @@ define([
gallery
+=
"
</ul></div>
"
;
gallery
+=
"
</ul></div>
"
;
return
str
=
gallery
+
thumbnails
;
return
gallery
+
thumbnails
;
};
};
// TODO: show some thing
// TODO: show some thing
...
@@ -79,15 +87,19 @@ define([
...
@@ -79,15 +87,19 @@ define([
// generate gallery list items
// generate gallery list items
priv
.
generateGalleryItems
=
function
(
name
)
{
priv
.
generateGalleryItems
=
function
(
name
)
{
var
i
,
j
,
item
,
img
,
str
=
""
;
var
i
,
j
,
img
,
str
=
""
,
item
=
priv
.
response
.
dimensions
[
0
].
vars
[
0
];
// TODO: should not be hardcoded to first variation!!!
item
=
priv
.
response
.
dimensions
[
0
].
vars
[
0
],
screen
=
App
.
settings
.
screen_format
,
size
=
screen
===
"
small
"
?
"
small
"
:
"
medium
"
,
shortcut
=
size
.
substring
(
0
,
1
);
// find item name or default to first variant in dimension
// find item name or default to first variant in dimension
if
(
name
!==
undefined
)
{
if
(
name
!==
undefined
)
{
for
(
i
=
0
;
i
<
priv
.
response
.
dimensions
[
0
].
vars
.
length
;
i
+=
1
)
{
for
(
i
=
0
;
i
<
priv
.
response
.
dimensions
[
0
].
vars
.
length
;
i
+=
1
)
{
item
=
priv
.
response
.
dimensions
[
0
].
vars
[
i
];
item
=
priv
.
response
.
dimensions
[
0
].
vars
[
i
];
if
(
item
.
name
===
name
||
location
.
hash
===
name
)
{
if
(
item
.
name
===
name
||
window
.
location
.
hash
===
name
)
{
break
;
break
;
}
}
}
}
...
@@ -99,10 +111,10 @@ define([
...
@@ -99,10 +111,10 @@ define([
for
(
j
=
0
;
j
<
item
.
media
.
img
.
length
;
j
+=
1
)
{
for
(
j
=
0
;
j
<
item
.
media
.
img
.
length
;
j
+=
1
)
{
img
=
item
.
media
.
img
[
j
];
img
=
item
.
media
.
img
[
j
];
// TODO: add zoom/photoswipe later!
// TODO: add zoom/photoswipe later!
str
+=
"
<li class='product_img'><a href='#'><img src='
"
+
priv
.
response
.
media
+
str
+=
"
<li class='product_img'><a href='#'><img src='
"
+
img
[
shortcut
]
+
size
+
"
' alt='
"
+
item
.
name
+
"
' />
"
+
priv
.
response
.
media
+
img
[
shortcut
]
+
size
+
"
' alt='
"
+
"
<h3 class='translate gallery_header' data-i18n='
"
+
item
.
name
+
"
' />
"
+
"
<h3 class='translate gallery_header'
"
+
item
.
i18n
+
"
'></h3></a></li>
"
;
"
data-i18n='
"
+
item
.
i18n
+
"
'></h3></a></li>
"
;
}
}
return
str
;
return
str
;
...
@@ -120,17 +132,12 @@ define([
...
@@ -120,17 +132,12 @@ define([
// generate items to display
// generate items to display
priv
.
generateItems
=
function
(
params
)
{
priv
.
generateItems
=
function
(
params
)
{
var
markup
,
spec
,
response
;
var
markup
,
spec
,
id
=
params
.
gadget
.
dom
.
attr
(
'
id
'
).
split
(
"
__
"
).
splice
(
-
1
)[
0
],
id
=
params
.
gadget
.
dom
.
attr
(
'
id
'
).
split
(
"
__
"
).
splice
(
-
1
)[
0
],
config
=
params
.
gadget
.
state
[
0
][
id
].
_config
,
config
=
params
.
gadget
.
state
[
0
][
id
].
_config
,
module
=
config
.
datasource
.
module
,
module
=
config
.
datasource
.
module
,
urlPointer
=
params
.
pointer
.
length
>
1
,
urlPointer
=
params
.
pointer
.
length
>
1
,
jsonPointer
=
config
.
datasource
.
pointer
,
jsonPointer
=
config
.
datasource
.
pointer
;
// TODO: settable options
screen
=
App
.
settings
.
screen_format
,
size
=
screen
===
"
small
"
?
"
small
"
:
"
medium
"
,
shortcut
=
size
.
substring
(
0
,
1
);
// if we have a pointer-array passed, query that
// if we have a pointer-array passed, query that
// TODO: this is not flexible yet, because "items" and "get" are hardcoded
// TODO: this is not flexible yet, because "items" and "get" are hardcoded
...
@@ -138,9 +145,9 @@ define([
...
@@ -138,9 +145,9 @@ define([
// what is stored on the image links...
// what is stored on the image links...
if
(
urlPointer
)
{
if
(
urlPointer
)
{
spec
=
{};
spec
=
{};
spec
.
storage
=
"
items
"
spec
.
storage
=
"
items
"
;
spec
.
method
=
"
get
"
spec
.
method
=
"
get
"
;
spec
.
doc
=
{
"
_id
"
:
params
.
pointer
[
1
]}
spec
.
doc
=
{
"
_id
"
:
params
.
pointer
[
1
]}
;
}
}
if
(
jsonPointer
)
{
if
(
jsonPointer
)
{
...
@@ -149,15 +156,28 @@ define([
...
@@ -149,15 +156,28 @@ define([
// in the configuration file, as it's something the user can use or not
// in the configuration file, as it's something the user can use or not
// also - should be possible to make this fullscreen by supplying the
// also - should be possible to make this fullscreen by supplying the
// carousel options!
// carousel options!
spec
.
items
=
[
spec
.
items
=
[{
{
"
src
"
:
"
img/stella.jpg
"
,
"
caption
"
:
"
Stella
"
,
"
i18n
"
:
"
custom.teaser.stella
"
,
"
href
"
:
"
products.html?search=stella
"
},
"
src
"
:
"
img/stella.jpg
"
,
{
"
src
"
:
"
img/nannin.jpg
"
,
"
caption
"
:
"
Nan
"
,
"
i18n
"
:
"
custom.teaser.nan
"
,
"
href
"
:
"
products.html?search=nan
"
},
"
caption
"
:
"
Stella
"
,
{
"
src
"
:
"
img/vila.jpg
"
,
"
caption
"
:
"
Vila
"
,
"
i18n
"
:
"
custom.teaser.vila
"
,
"
href
"
:
"
products.html?search=vila
"
}
"
i18n
"
:
"
custom.teaser.stella
"
,
]
"
href
"
:
"
products.html?search=stella
"
},
{
"
src
"
:
"
img/nannin.jpg
"
,
"
caption
"
:
"
Nan
"
,
"
i18n
"
:
"
custom.teaser.nan
"
,
"
href
"
:
"
products.html?search=nan
"
},
{
"
src
"
:
"
img/vila.jpg
"
,
"
caption
"
:
"
Vila
"
,
"
i18n
"
:
"
custom.teaser.vila
"
,
"
href
"
:
"
products.html?search=vila
"
}];
}
}
// callback to generate gallery
// callback to generate gallery
spec
.
callback
=
function
(
err
,
response
)
{
spec
.
callback
=
function
(
err
,
response
)
{
var
str
;
if
(
err
)
{
if
(
err
)
{
str
=
priv
.
generateError
();
str
=
priv
.
generateError
();
}
else
{
}
else
{
...
@@ -184,7 +204,7 @@ define([
...
@@ -184,7 +204,7 @@ define([
// just run callback now and generate gallery
// just run callback now and generate gallery
spec
.
callback
(
undefined
,
spec
);
spec
.
callback
(
undefined
,
spec
);
}
}
}
}
;
// response object
// response object
that
.
data
=
source
;
that
.
data
=
source
;
...
@@ -192,11 +212,14 @@ define([
...
@@ -192,11 +212,14 @@ define([
var
spec
=
{};
var
spec
=
{};
spec
.
gadget
=
RenderJs
.
getSelfGadget
();
spec
.
gadget
=
RenderJs
.
getSelfGadget
();
spec
.
page
=
App
.
util
.
closest
(
spec
.
gadget
.
dom
.
get
(
0
),
"
div[data-role='page']
"
);
spec
.
page
=
App
.
util
.
closest
(
spec
.
gadget
.
dom
.
get
(
0
),
"
div[data-role='page']
"
);
spec
.
pageId
=
"
#
"
+
spec
.
page
.
id
;
spec
.
pageId
=
"
#
"
+
spec
.
page
.
id
;
// TODO: retrieving pointers should be a generic method that retrieves
// TODO: retrieving pointers should be a generic method that retrieves
// pointers either from the URL or from a JSON config object passed!
// pointers either from the URL or from a JSON config object passed!
spec
.
pointer
=
location
.
search
.
split
(
"
=
"
);
spec
.
pointer
=
window
.
location
.
search
.
split
(
"
=
"
);
spec
.
callback_mockup
=
callback_mockup
;
spec
.
callback_mockup
=
callback_mockup
;
spec
.
source
=
source
;
spec
.
source
=
source
;
...
@@ -204,10 +227,10 @@ define([
...
@@ -204,10 +227,10 @@ define([
if
(
!
spec
.
page
.
getAttribute
(
"
events_gallery
"
))
{
if
(
!
spec
.
page
.
getAttribute
(
"
events_gallery
"
))
{
spec
.
page
.
setAttribute
(
"
events_gallery
"
,
true
);
spec
.
page
.
setAttribute
(
"
events_gallery
"
,
true
);
$
(
document
).
on
(
"
pagebeforeshow.gallery
"
,
spec
.
pageId
,
function
(
e
)
{
$
(
document
).
on
(
"
pagebeforeshow.gallery
"
,
spec
.
pageId
,
function
()
{
// the pointer in the URL may be updated
// the pointer in the URL may be updated
if
(
location
.
search
)
{
if
(
window
.
location
.
search
)
{
spec
.
pointer
=
location
.
search
.
split
(
"
=
"
);
spec
.
pointer
=
window
.
location
.
search
.
split
(
"
=
"
);
}
}
priv
.
generateItems
(
spec
,
true
);
priv
.
generateItems
(
spec
,
true
);
})
})
...
@@ -229,9 +252,9 @@ define([
...
@@ -229,9 +252,9 @@ define([
that
.
after
=
function
(
self
)
{
that
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
var
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
,
true
);
App
.
renderGadgets
(
gadget
,
true
);
});
});
...
@@ -247,4 +270,4 @@ define([
...
@@ -247,4 +270,4 @@ define([
// return response object
// return response object
return
that
;
return
that
;
}
}
);
);
modules/ui/header/header.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!header.html!strip
'
'
text!header.html!strip
'
,
,
'
css!header
'
'
css!header
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
"
use strict
"
;
var
response
=
{},
def
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
// TODO: this should be inside renderJs, although its application-specific
// but the problem with using async-render-require will be everything
// being loaded at the same time, so the user should have the opportunity
// to run his callback no matter where. Still not sure where to wait
// (app-init or render-init), but it would be nice if a renderjs application
// would allow for a first page load deferred on all gadgets until some
// flag is set. In rjs2, we will not have to set globals, but we will
// have the problem of trying to access methods published by other gadgets
// BEFORE they have been published, so it's pretty much the same thing.
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -36,4 +31,4 @@ define([
...
@@ -36,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/index/index.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!index.html!strip
'
'
text!index.html!strip
'
,
,
'
css!index
'
'
css!index
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
"
use strict
"
;
var
response
=
{},
def
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +31,4 @@ define([
...
@@ -27,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/item/item.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global define: true, $: true, define: true, window: true, App: true,
RenderJs: true, document: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!item.html!strip
'
'
text!item.html!strip
'
,
,
'
css!item
'
'
css!item
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
that
=
{};
"
use strict
"
;
var
priv
=
{};
var
that
=
{},
priv
=
{};
// ========================== ATTRIBUTES ==============================
// ========================== ATTRIBUTES ==============================
// set response, so it's available across function calls
// set response, so it's available across function calls
priv
.
response
;
priv
.
response
=
undefined
;
priv
.
generateContent
=
function
(
response
)
{
priv
.
generateContent
=
function
(
response
)
{
var
i
,
j
,
k
,
content
,
child
,
dimension
,
dimensions
,
variation
,
var
i
,
j
,
k
,
content
,
child
,
dimension
,
dimensions
,
variation
,
price
,
sub_dimension
,
sub_dimension_i18n
,
str
,
select
,
element
,
soldout
;
sub_dimension
,
sub_dimension_i18n
,
str
,
select
,
element
,
soldout
;
// expose response (will be overwritten, when next item loads
// expose response (will be overwritten, when next item loads
...
@@ -61,7 +66,7 @@ define([
...
@@ -61,7 +66,7 @@ define([
select
=
""
;
select
=
""
;
}
}
dimensions
+=
"
<option class='translate' data-i18n='
"
+
dimensions
+=
"
<option class='translate' data-i18n='
"
+
variation
.
i18n
+
"
'
"
+
select
+
"
value='
"
+
variation
.
name
+
variation
.
i18n
+
"
'
"
+
select
+
"
value='
"
+
variation
.
name
+
"
'>
"
+
variation
.
name
+
"
</option>
"
;
"
'>
"
+
variation
.
name
+
"
</option>
"
;
}
}
...
@@ -88,10 +93,11 @@ define([
...
@@ -88,10 +93,11 @@ define([
soldout
=
"
disabled
"
;
soldout
=
"
disabled
"
;
}
}
child
+=
"
<option class='translate' data-i18n='
"
+
element
.
i18n
+
child
+=
"
<option class='translate' data-i18n='
"
+
element
.
i18n
+
"
'
"
+
soldout
+
"
value ='
"
+
element
.
name
+
"
'>
"
+
+
"
</option>
"
;
"
'
"
+
soldout
+
"
value ='
"
+
element
.
name
+
"
'>
"
+
element
.
name
+
"
</option>
"
;
}
}
}
}
str
=
content
+
dimensions
+
child
+
"
</select></div>
"
;
str
=
content
+
dimensions
+
child
+
"
</select></div>
"
;
return
[
str
,
response
.
description
];
return
[
str
,
response
.
description
];
};
};
...
@@ -101,7 +107,7 @@ define([
...
@@ -101,7 +107,7 @@ define([
};
};
// generate content items?
// generate content items?
priv
.
generateContentItems
=
function
(
name
)
{
//
priv.generateContentItems = function (name) {
// var i, j, item, img, str = "";
// var i, j, item, img, str = "";
//
//
// item = priv.response.dimensions[0].vars[0];
// item = priv.response.dimensions[0].vars[0];
...
@@ -110,7 +116,7 @@ define([
...
@@ -110,7 +116,7 @@ define([
// if (name !== undefined) {
// if (name !== undefined) {
// for (i = 0; i < priv.response.dimensions[0].vars.length; i += 1) {
// for (i = 0; i < priv.response.dimensions[0].vars.length; i += 1) {
// item = priv.response.dimensions[0].vars[i];
// item = priv.response.dimensions[0].vars[i];
//
if (item.name === name ||
location.hash === name) {
//
if (item.name === name || window.
location.hash === name) {
// break;
// break;
// }
// }
// }
// }
...
@@ -122,49 +128,47 @@ define([
...
@@ -122,49 +128,47 @@ define([
// for (j = 0; j < item.media.img.length; j += 1) {
// for (j = 0; j < item.media.img.length; j += 1) {
// img = item.media.img[j];
// img = item.media.img[j];
// // TODO: add zoom/photoswipe later!
// // TODO: add zoom/photoswipe later!
// str += "<li class='product_img'><a href='#'><img src='" +
priv.response.media +
// str += "<li class='product_img'><a href='#'><img src='" +
//
img[shortcut] + size + "' alt='" + item.name + "' />
" +
//
priv.response.media + img[shortcut] + size + "' alt='
" +
//
"<h3 class='translate gallery_header' data-i18n='
" +
//
item.name + "' />" + "<h3 class='translate gallery_header'
" +
//
item.i18n + "'></h3></a></li>";
//
data-i18n='" +
item.i18n + "'></h3></a></li>";
// }
// }
//
//
// return str;
// return str;
};
//
};
priv
.
swapSecondaryOptions
=
function
(
name
,
element
)
{
//
priv.swapSecondaryOptions = function (name, element) {
// var newString = priv.generateContentItems(name),
// var newString = priv.generateContentItems(name),
// // TODO: if thumbnails are a gallery option, it should be possible
// // TODO: if thumbnails are a gallery option, it should be possible
// // to reference the gallery from the thumbnail without doing this:
// // to reference the gallery from the thumbnail without doing this:
// wrap = App.util.closest(element, ".gallery_thumbnails").previousSibling,
// wrap = App.util.closest(
// element,
// ".gallery_thumbnails"
// ).previousSibling,
// gallery = wrap.getElementsByTagName("ul");
// gallery = wrap.getElementsByTagName("ul");
//
//
// $(gallery[0]).empty().append(newString).carousel("refresh");
// $(gallery[0]).empty().append(newString).carousel("refresh");
};
//
};
// generate items to display
// generate items to display
priv
.
generateItems
=
function
(
params
)
{
priv
.
generateItems
=
function
(
params
)
{
var
markup
,
spec
,
response
;
var
markup
,
spec
,
id
=
params
.
gadget
.
dom
.
attr
(
'
id
'
).
split
(
"
__
"
).
splice
(
-
1
)[
0
],
id
=
params
.
gadget
.
dom
.
attr
(
'
id
'
).
split
(
"
__
"
).
splice
(
-
1
)[
0
],
config
=
params
.
gadget
.
state
[
0
][
id
].
_config
,
config
=
params
.
gadget
.
state
[
0
][
id
].
_config
,
module
=
config
.
datasource
.
module
,
module
=
config
.
datasource
.
module
,
urlPointer
=
params
.
pointer
.
length
>
1
,
urlPointer
=
params
.
pointer
.
length
>
1
;
jsonPointer
=
config
.
datasource
.
pointer
;
// if we have a pointer-array passed, query that
// if we have a pointer-array passed, query that
// TODO: this access a globally stored current_item set by details gadget!
// TODO: this access a globally stored current_item set by details gadget!
if
(
urlPointer
)
{
if
(
urlPointer
)
{
spec
=
{};
spec
=
{};
spec
.
storage
=
"
items
"
spec
.
storage
=
"
items
"
;
spec
.
method
=
"
get
"
spec
.
method
=
"
get
"
;
spec
.
doc
=
{
"
_id
"
:
params
.
pointer
[
1
]}
spec
.
doc
=
{
"
_id
"
:
params
.
pointer
[
1
]};
}
if
(
jsonPointer
)
{
}
}
// callback to generate gallery
// callback to generate gallery
spec
.
callback
=
function
(
err
,
response
)
{
spec
.
callback
=
function
(
err
,
response
)
{
var
str
;
var
str
;
if
(
err
)
{
if
(
err
)
{
...
@@ -184,7 +188,7 @@ define([
...
@@ -184,7 +188,7 @@ define([
if
(
urlPointer
)
{
if
(
urlPointer
)
{
App
[
module
].
switchboard
(
spec
);
App
[
module
].
switchboard
(
spec
);
}
}
}
}
;
// response object
// response object
that
.
data
=
source
;
that
.
data
=
source
;
...
@@ -192,11 +196,14 @@ define([
...
@@ -192,11 +196,14 @@ define([
var
spec
=
{};
var
spec
=
{};
spec
.
gadget
=
RenderJs
.
getSelfGadget
();
spec
.
gadget
=
RenderJs
.
getSelfGadget
();
spec
.
page
=
App
.
util
.
closest
(
spec
.
gadget
.
dom
.
get
(
0
),
"
div[data-role='page']
"
);
spec
.
page
=
App
.
util
.
closest
(
spec
.
gadget
.
dom
.
get
(
0
),
"
div[data-role='page']
"
);
spec
.
pageId
=
"
#
"
+
spec
.
page
.
id
;
spec
.
pageId
=
"
#
"
+
spec
.
page
.
id
;
// TODO: retrieving pointers should be a generic method that retrieves
// TODO: retrieving pointers should be a generic method that retrieves
// pointers either from the URL or from a JSON config object passed!
// pointers either from the URL or from a JSON config object passed!
spec
.
pointer
=
location
.
search
.
split
(
"
=
"
);
spec
.
pointer
=
window
.
location
.
search
.
split
(
"
=
"
);
spec
.
callback_mockup
=
callback_mockup
;
spec
.
callback_mockup
=
callback_mockup
;
spec
.
source
=
source
;
spec
.
source
=
source
;
...
@@ -204,14 +211,14 @@ define([
...
@@ -204,14 +211,14 @@ define([
if
(
!
spec
.
page
.
getAttribute
(
"
events_items
"
))
{
if
(
!
spec
.
page
.
getAttribute
(
"
events_items
"
))
{
spec
.
page
.
setAttribute
(
"
events_items
"
,
true
);
spec
.
page
.
setAttribute
(
"
events_items
"
,
true
);
$
(
document
).
on
(
"
pagebeforeshow.items
"
,
spec
.
pageId
,
function
(
e
)
{
$
(
document
).
on
(
"
pagebeforeshow.items
"
,
spec
.
pageId
,
function
()
{
// the pointer in the URL may be updated
// the pointer in the URL may be updated
if
(
location
.
search
)
{
if
(
window
.
location
.
search
)
{
spec
.
pointer
=
location
.
search
.
split
(
"
=
"
);
spec
.
pointer
=
window
.
location
.
search
.
split
(
"
=
"
);
}
}
priv
.
generateItems
(
spec
,
true
);
priv
.
generateItems
(
spec
,
true
);
})
})
;
.
on
(
"
change.item
"
,
spec
.
pageId
+
"
.main_dimension
"
,
function
(
e
)
{
//
.on("change.item", spec.pageId + " .main_dimension", function (e) {
// var target = e.target,
// var target = e.target,
// color;
// color;
//
//
...
@@ -221,7 +228,7 @@ define([
...
@@ -221,7 +228,7 @@ define([
// color = App.util.closest(target, "a").href.split("#")[1];
// color = App.util.closest(target, "a").href.split("#")[1];
// }
// }
// priv.swapSecondaryOptions(color, e.target);
// priv.swapSecondaryOptions(color, e.target);
});
//
});
// and run intial
// and run intial
priv
.
generateItems
(
spec
);
priv
.
generateItems
(
spec
);
}
}
...
@@ -229,9 +236,9 @@ define([
...
@@ -229,9 +236,9 @@ define([
that
.
after
=
function
(
self
)
{
that
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
var
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
,
true
);
App
.
renderGadgets
(
gadget
,
true
);
});
});
...
@@ -247,4 +254,4 @@ define([
...
@@ -247,4 +254,4 @@ define([
// return response object
// return response object
return
that
;
return
that
;
}
}
);
);
modules/ui/items/items.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global define: true, $: true, define: true, window: true, App: true,
RenderJs: true, document: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!items.html!strip
'
'
text!items.html!strip
'
,
,
'
css!items
'
'
css!items
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
that
=
{};
"
use strict
"
;
var
priv
=
{};
var
that
=
{},
priv
=
{};
// in the perfect renderjs world, the items gadget should either expose
// in the perfect renderjs world, the items gadget should either expose
// an API on how to pass ... query string ... or have default config
// an API on how to pass ... query string ... or have default config
...
@@ -14,12 +19,11 @@ define([
...
@@ -14,12 +19,11 @@ define([
// generate items to display
// generate items to display
priv
.
generateItems
=
function
(
params
)
{
priv
.
generateItems
=
function
(
params
)
{
var
markup
,
spec
,
var
markup
,
spec
,
id
=
params
.
gadget
.
dom
.
attr
(
'
id
'
).
split
(
"
__
"
).
splice
(
-
1
)[
0
],
id
=
params
.
gadget
.
dom
.
attr
(
'
id
'
).
split
(
"
__
"
).
splice
(
-
1
)[
0
],
config
=
params
.
gadget
.
state
[
0
][
id
].
_config
,
config
=
params
.
gadget
.
state
[
0
][
id
].
_config
,
module
=
config
.
datasource
.
module
,
module
=
config
.
datasource
.
module
,
// settable options
screen
=
App
.
settings
.
screen_format
,
screen
=
App
.
settings
.
screen_format
,
size
=
screen
===
"
small
"
?
"
small
"
:
"
medium
"
,
size
=
screen
===
"
small
"
?
"
small
"
:
"
medium
"
,
shortcut
=
size
.
substring
(
0
,
1
),
shortcut
=
size
.
substring
(
0
,
1
),
...
@@ -28,23 +32,31 @@ define([
...
@@ -28,23 +32,31 @@ define([
spec
=
{};
spec
=
{};
spec
.
pointer
=
config
.
datasource
.
pointer
;
spec
.
pointer
=
config
.
datasource
.
pointer
;
spec
.
method
=
spec
.
pointer
?
undefined
:
config
.
datasource
.
method
||
"
allDocs
"
;
spec
.
method
=
spec
.
pointer
?
spec
.
storage
=
spec
.
pointer
?
undefined
:
config
.
datasource
.
storage
||
"
items
"
;
undefined
:
config
.
datasource
.
method
||
"
allDocs
"
;
spec
.
options
=
spec
.
pointer
?
undefined
:
{
spec
.
storage
=
spec
.
pointer
?
undefined
:
config
.
datasource
.
storage
||
"
items
"
;
spec
.
options
=
spec
.
pointer
?
undefined
:
{
"
limit
"
:
config
.
datasource
.
limit
||
[
0
,
24
],
"
limit
"
:
config
.
datasource
.
limit
||
[
0
,
24
],
"
sort_on
"
:
config
.
datasource
.
sort
||
[[
"
_id
"
,
"
descending
"
]],
"
sort_on
"
:
config
.
datasource
.
sort
||
[[
"
_id
"
,
"
descending
"
]],
"
select_list
"
:
config
.
datasource
.
fields
||
undefined
"
select_list
"
:
config
.
datasource
.
fields
||
undefined
};
};
// if we have a search tag being passed, run a search
// if we have a search tag being passed, run a search
if
(
location
.
search
!==
""
)
{
if
(
window
.
location
.
search
!==
""
)
{
spec
.
query
=
true
;
spec
.
query
=
true
;
spec
.
query_string
=
location
.
search
.
split
(
"
=
"
)[
1
].
replace
(
"
+
"
,
"
"
);
spec
.
query_string
=
window
.
location
.
search
.
split
(
"
=
"
)[
1
].
replace
(
"
+
"
,
"
"
);
}
}
spec
.
callback
=
function
(
err
,
response
)
{
spec
.
callback
=
function
(
err
,
response
)
{
var
item
,
i
,
str
=
""
,
price
;
var
item
,
i
,
str
=
""
,
price
,
now
=
new
Date
().
getTime
();
if
(
err
)
{
App
.
errors
.
push
([
"
items
"
,
now
,
err
]);
}
// cleanup
// cleanup
// no results
// no results
...
@@ -66,11 +78,11 @@ define([
...
@@ -66,11 +78,11 @@ define([
price
=
item
.
price
+
item
.
currency
;
price
=
item
.
price
+
item
.
currency
;
}
else
{
}
else
{
price
=
"
<span class='rebate'>
"
+
item
.
price
+
item
.
currency
+
price
=
"
<span class='rebate'>
"
+
item
.
price
+
item
.
currency
+
"
</span> (
"
+
item
.
original_price
+
item
.
currency
+
"
)
"
;
"
</span> (
"
+
item
.
original_price
+
item
.
currency
+
"
)
"
;
}
}
str
+=
"
<li data-icon='false'>
"
+
str
+=
"
<li data-icon='false'>
"
+
"
<a href='details.html?
"
+
identifier
+
"
=
"
+
"
<a href='details.html?
"
+
identifier
+
"
=
"
+
encodeURI
(
item
[
identifier
])
+
encodeURI
(
item
[
identifier
])
+
"
' title='
"
+
item
.
brand
+
"
,
"
+
item
.
title
+
"
'>
"
+
"
' title='
"
+
item
.
brand
+
"
,
"
+
item
.
title
+
"
'>
"
+
"
<span class='img_container_items'>
"
+
"
<span class='img_container_items'>
"
+
...
@@ -88,7 +100,7 @@ define([
...
@@ -88,7 +100,7 @@ define([
// this is not response.callback(!!)
// this is not response.callback(!!)
params
.
callback_mockup
(
markup
);
params
.
callback_mockup
(
markup
);
}
}
;
// query for items
// query for items
App
[
module
].
switchboard
(
spec
);
App
[
module
].
switchboard
(
spec
);
...
@@ -103,22 +115,27 @@ define([
...
@@ -103,22 +115,27 @@ define([
// TODO: this is for page event bindings. Once JQM content replaces
// TODO: this is for page event bindings. Once JQM content replaces
// page, remove this and make the gadget the content section to
// page, remove this and make the gadget the content section to
// be updated.
// be updated.
spec
.
page
=
App
.
util
.
closest
(
spec
.
gadget
.
dom
.
get
(
0
),
"
div[data-role='page']
"
);
spec
.
page
=
App
.
util
.
closest
(
spec
.
gadget
.
dom
.
get
(
0
),
"
div[data-role='page']
"
);
spec
.
pageId
=
"
#
"
+
spec
.
page
.
id
;
spec
.
pageId
=
"
#
"
+
spec
.
page
.
id
;
spec
.
source
=
source
;
spec
.
source
=
source
;
spec
.
callback_mockup
=
callback_mockup
;
spec
.
callback_mockup
=
callback_mockup
;
if
(
!
spec
.
page
.
getAttribute
(
"
events_items
"
))
{
if
(
!
spec
.
page
.
getAttribute
(
"
events_items
"
))
{
spec
.
page
.
setAttribute
(
"
events_items
"
,
true
);
spec
.
page
.
setAttribute
(
"
events_items
"
,
true
);
$
(
document
).
on
(
"
pagebeforeshow.items
"
,
spec
.
pageId
,
function
(
e
,
data
)
{
$
(
document
).
on
(
// TODO: if we allow to reload, we also need to trigger refresh on
"
pagebeforeshow.items
"
,
spec
.
pageId
,
function
()
{
// TODO: if we allow reload, we also need to trigger refresh on
// so we need to reload this every time a page is shown. question
// so we need to reload this every time a page is shown. question
// is how to trigger a refresh on this element ONLY
// is how to trigger a refresh on this element ONLY
// > the gadgets should tell whether they need enhancement!
// > the gadgets should tell whether they need enhancement!
//if ($.mobile.firstPage.attr('id') !== spec.pageId.replace("#","")) {
priv
.
generateItems
(
spec
);
priv
.
generateItems
(
spec
);
//
}
}
}
);
);
// and run intial
// and run intial
priv
.
generateItems
(
spec
);
priv
.
generateItems
(
spec
);
}
}
...
@@ -131,7 +148,8 @@ define([
...
@@ -131,7 +148,8 @@ define([
var
target
,
search
=
{};
var
target
,
search
=
{};
e
.
preventDefault
();
e
.
preventDefault
();
target
=
App
.
util
.
closest
(
e
.
target
,
"
a
"
).
getAttribute
(
"
href
"
).
split
(
"
?
"
)[
1
].
split
(
"
=
"
);
target
=
App
.
util
.
closest
(
e
.
target
,
"
a
"
)
.
getAttribute
(
"
href
"
).
split
(
"
?
"
)[
1
].
split
(
"
=
"
);
search
[
target
[
0
]]
=
target
[
1
];
search
[
target
[
0
]]
=
target
[
1
];
// show this item
// show this item
...
@@ -142,9 +160,9 @@ define([
...
@@ -142,9 +160,9 @@ define([
});
});
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
var
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
,
true
);
App
.
renderGadgets
(
gadget
,
true
);
});
});
...
@@ -160,4 +178,5 @@ define([
...
@@ -160,4 +178,5 @@ define([
// return response object
// return response object
return
that
;
return
that
;
}
}
);
);
modules/ui/login/login.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!login.html!strip
'
'
text!login.html!strip
'
,
,
'
validval
'
'
validval
'
,
,
'
css!login
'
'
css!login
'
],
],
function
(
App
,
source
,
validator
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -28,4 +32,4 @@ define([
...
@@ -28,4 +32,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/media/media.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!media.html!strip
'
'
text!media.html!strip
'
,
,
'
css!media
'
'
css!media
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +31,4 @@ define([
...
@@ -27,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/pagination/pagination.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global define: true, $: true, window: true, App: true, RenderJs: true,
document: true, define: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!pagination.html!strip
'
'
text!pagination.html!strip
'
,
,
'
css!pagination
'
'
css!pagination
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
priv
=
{};
"
use strict
"
;
var
that
=
{};
var
priv
=
{},
that
=
{};
// get previous and next id
// get previous and next id
// TODO: this only works with id-numbers!!!
// TODO: this only works with id-numbers!!!
...
@@ -13,7 +18,7 @@ define([
...
@@ -13,7 +18,7 @@ define([
// unless we want to get allDocs(includeDocs)
// unless we want to get allDocs(includeDocs)
// TODO: this should receive the total number of results of a query/search!
// TODO: this should receive the total number of results of a query/search!
priv
.
getPrevNextItem
=
function
(
arr
,
id
,
next
,
max
)
{
priv
.
getPrevNextItem
=
function
(
arr
,
id
,
next
,
max
)
{
var
step
=
next
?
1
:
-
1
,
position
,
id
;
var
position
;
for
(
position
=
1
;
position
<=
max
;
position
+=
1
)
{
for
(
position
=
1
;
position
<=
max
;
position
+=
1
)
{
if
(
position
===
parseFloat
(
id
))
{
if
(
position
===
parseFloat
(
id
))
{
...
@@ -23,13 +28,12 @@ define([
...
@@ -23,13 +28,12 @@ define([
return
false
;
return
false
;
}
}
return
arr
[
position
].
id
;
return
arr
[
position
].
id
;
}
else
{
}
// less 1 is self, less 2 is previous...
// less 1 is self, less 2 is previous...
if
(
arr
[
position
-
2
]
===
undefined
)
{
if
(
arr
[
position
-
2
]
===
undefined
)
{
return
false
;
return
false
;
}
}
return
arr
[
position
-
2
].
id
;
return
arr
[
position
-
2
].
id
;
}
}
}
}
}
};
};
...
@@ -53,39 +57,65 @@ define([
...
@@ -53,39 +57,65 @@ define([
config
=
params
.
gadget
.
state
[
0
][
id
].
_config
,
config
=
params
.
gadget
.
state
[
0
][
id
].
_config
,
module
=
config
.
datasource
.
module
;
module
=
config
.
datasource
.
module
;
var
spec
=
{};
spec
=
{};
spec
.
pointer
=
config
.
datasource
.
pointer
;
spec
.
pointer
=
config
.
datasource
.
pointer
;
spec
.
method
=
spec
.
pointer
?
undefined
:
config
.
datasource
.
method
||
"
allDocs
"
;
spec
.
method
=
spec
.
pointer
?
spec
.
storage
=
spec
.
pointer
?
undefined
:
config
.
datasource
.
storage
||
"
items
"
;
undefined
:
config
.
datasource
.
method
||
"
allDocs
"
;
spec
.
options
=
spec
.
pointer
?
undefined
:
config
.
datasource
.
options
||
{
spec
.
storage
=
spec
.
pointer
?
"
sort_on
"
:
[[
"
_id
"
,
"
ascending
"
]]
undefined
:
config
.
datasource
.
storage
||
"
items
"
;
}
spec
.
options
=
spec
.
pointer
?
undefined
:
config
.
datasource
.
options
||
{
"
sort_on
"
:
[[
"
_id
"
,
"
ascending
"
]]
};
spec
.
callback
=
function
(
err
,
response
)
{
spec
.
callback
=
function
(
err
,
response
)
{
var
currentId
=
location
.
href
.
split
(
"
?
"
)[
1
].
split
(
"
=
"
)[
1
],
var
next
,
prev
,
markup
,
currentId
=
window
.
location
.
href
.
split
(
"
?
"
)[
1
].
split
(
"
=
"
)[
1
],
identifier
=
App
.
settings
.
identifier
||
"
item_id
"
,
identifier
=
App
.
settings
.
identifier
||
"
item_id
"
,
n
ext
,
prev
,
markup
;
n
ow
=
new
Date
().
getTime
()
;
// TODO: error handling
// TODO: error handling
if
(
err
)
{
if
(
err
)
{
App
.
errors
.
push
([
"
pagination
"
,
now
,
err
]);
}
else
{
}
else
{
// set next
// set next
// TODO:
this is
bad, because we can only point to doc_id, no matter what
// TODO: bad, because we can only point to doc_id, no matter what
// identifier we are setting. item_id itself is... bad... fix!
// identifier we are setting. item_id itself is... bad... fix!
next
=
priv
.
getPrevNextItem
(
response
.
rows
,
currentId
,
true
,
response
.
total_rows
);
next
=
priv
.
getPrevNextItem
(
response
.
rows
,
currentId
,
true
,
response
.
total_rows
);
if
(
!
next
)
{
if
(
!
next
)
{
markup
=
params
.
source
.
replace
(
"
translate next
"
,
"
translate next ui-state-disabled
"
);
markup
=
params
.
source
.
replace
(
"
translate next
"
,
"
translate next ui-state-disabled
"
);
}
else
{
}
else
{
markup
=
params
.
source
.
replace
(
identifier
+
"
=next
"
,
identifier
+
"
=
"
+
next
);
markup
=
params
.
source
.
replace
(
identifier
+
"
=next
"
,
identifier
+
"
=
"
+
next
);
}
}
// set previous
// set previous
prev
=
priv
.
getPrevNextItem
(
response
.
rows
,
currentId
,
false
,
response
.
total_rows
);
prev
=
priv
.
getPrevNextItem
(
response
.
rows
,
currentId
,
false
,
response
.
total_rows
);
if
(
!
prev
)
{
if
(
!
prev
)
{
markup
=
markup
.
replace
(
"
translate prev
"
,
"
translate prev ui-state-disabled
"
);
markup
=
markup
.
replace
(
"
translate prev
"
,
"
translate prev ui-state-disabled
"
);
}
else
{
}
else
{
markup
=
markup
.
replace
(
identifier
+
"
=prev
"
,
identifier
+
"
=
"
+
prev
);
markup
=
markup
.
replace
(
identifier
+
"
=prev
"
,
identifier
+
"
=
"
+
prev
);
}
}
}
}
params
.
callback_mockup
(
markup
);
params
.
callback_mockup
(
markup
);
...
@@ -95,8 +125,8 @@ define([
...
@@ -95,8 +125,8 @@ define([
App
[
module
].
switchboard
(
spec
);
App
[
module
].
switchboard
(
spec
);
};
};
priv
.
setBindings
=
function
(
param
)
{
//
priv.setBindings = function (param) {
var
doc
=
$
(
document
);
//
var doc = $(document);
// doc
// doc
// .on("pagebeforeshow.browser", param.pageId, function (e) {
// .on("pagebeforeshow.browser", param.pageId, function (e) {
// console.log("pbs");
// console.log("pbs");
...
@@ -114,7 +144,7 @@ define([
...
@@ -114,7 +144,7 @@ define([
// // changePage
// // changePage
// priv.displayItem(target);
// priv.displayItem(target);
// });
// });
};
//
};
that
.
data
=
source
;
that
.
data
=
source
;
that
.
before
=
function
(
source
,
callback_mockup
)
{
that
.
before
=
function
(
source
,
callback_mockup
)
{
...
@@ -124,21 +154,28 @@ define([
...
@@ -124,21 +154,28 @@ define([
// TODO: this is for page event bindings. Once JQM content replaces
// TODO: this is for page event bindings. Once JQM content replaces
// page, remove this and make the gadget the content section to
// page, remove this and make the gadget the content section to
// be updated.
// be updated.
spec
.
page
=
App
.
util
.
closest
(
spec
.
gadget
.
dom
.
get
(
0
),
"
div[data-role='page']
"
);
spec
.
page
=
App
.
util
.
closest
(
spec
.
gadget
.
dom
.
get
(
0
),
"
div[data-role='page']
"
);
spec
.
pageId
=
"
#
"
+
spec
.
page
.
id
;
spec
.
pageId
=
"
#
"
+
spec
.
page
.
id
;
spec
.
source
=
source
;
spec
.
source
=
source
;
spec
.
callback_mockup
=
callback_mockup
;
spec
.
callback_mockup
=
callback_mockup
;
if
(
!
spec
.
page
.
getAttribute
(
"
events_pagination
"
))
{
if
(
!
spec
.
page
.
getAttribute
(
"
events_pagination
"
))
{
spec
.
page
.
setAttribute
(
"
events_pagination
"
,
true
);
spec
.
page
.
setAttribute
(
"
events_pagination
"
,
true
);
$
(
document
).
on
(
"
pagebeforeshow.pagination
"
,
spec
.
pageId
,
function
(
e
,
data
)
{
$
(
document
).
on
(
"
pagebeforeshow.pagination
"
,
spec
.
pageId
,
function
()
{
// TODO: if we allow to reload, we also need to trigger refresh on
// TODO: if we allow to reload, we also need to trigger refresh on
// so we need to reload this every time a page is shown. question
// so we need to reload this every time a page is shown. question
// is how to trigger a refresh on this element ONLY
// is how to trigger a refresh on this element ONLY
// > the gadgets should tell whether they need enhancement!
// > the gadgets should tell whether they need enhancement!
// callback
// callback
priv
.
iterate
(
spec
);
priv
.
iterate
(
spec
);
});
}
);
// callback
// callback
priv
.
iterate
(
spec
);
priv
.
iterate
(
spec
);
...
@@ -147,22 +184,22 @@ define([
...
@@ -147,22 +184,22 @@ define([
that
.
after
=
function
(
self
)
{
that
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
var
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
,
true
);
App
.
renderGadgets
(
gadget
);
});
});
window
.
fallbackLoader
.
deferreds
.
push
(
def
);
window
.
fallbackLoader
.
deferreds
.
push
(
def
);
window
.
fallbackLoader
.
args
.
push
(
self
);
window
.
fallbackLoader
.
args
.
push
(
self
);
}
else
{
}
else
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
self
,
true
);
App
.
renderGadgets
(
self
);
}
}
};
};
// return response object
// return response object
return
that
;
return
that
;
}
}
);
);
modules/ui/payment/payment.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!payment.html!strip
'
'
text!payment.html!strip
'
,
,
'
css!payment
'
'
css!payment
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +31,4 @@ define([
...
@@ -27,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
\ No newline at end of file
modules/ui/products/products.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!products.html!strip
'
'
text!products.html!strip
'
,
,
'
css!products
'
'
css!products
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +31,4 @@ define([
...
@@ -27,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
\ No newline at end of file
modules/ui/refine/refine.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!refine.html!strip
'
'
text!refine.html!strip
'
,
,
'
css!refine
'
'
css!refine
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +31,4 @@ define([
...
@@ -27,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
\ No newline at end of file
modules/ui/register/register.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!register.html!strip
'
'
text!register.html!strip
'
,
,
'
css!register
'
'
css!register
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +31,4 @@ define([
...
@@ -27,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
\ No newline at end of file
modules/ui/searchbar/searchbar.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global define: true, $: true, define: true, window: true, App: true,
RenderJs: true, document: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!searchbar.html!strip
'
'
text!searchbar.html!strip
'
,
,
'
css!searchbar
'
'
css!searchbar
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
"
use strict
"
;
var
response
=
{};
var
response
=
{};
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
var
filter
=
self
.
dom
.
find
(
"
.searchbar_filter
"
)
,
var
runSearch
,
def
,
value
,
runSearch
;
filter
=
self
.
dom
.
find
(
"
.searchbar_filter
"
)
;
runSearch
=
function
(
value
)
{
runSearch
=
function
(
value
)
{
$
.
mobile
.
changePage
(
"
products.html
"
,
{
$
.
mobile
.
changePage
(
"
products.html
"
,
{
"
transition
"
:
"
slide
"
,
"
transition
"
:
"
slide
"
,
"
allowSamePageTransition
"
:
true
,
"
allowSamePageTransition
"
:
true
,
"
data
"
:
{
"
data
"
:
{
...
@@ -21,12 +26,13 @@ define([
...
@@ -21,12 +26,13 @@ define([
});
});
};
};
filter
.
on
(
"
filterablebeforefilter
"
,
function
(
e
,
data
)
{
filter
.
on
(
"
filterablebeforefilter
"
,
function
(
e
)
{
value
=
data
.
input
.
value
;
// TODO: add back data
// var value = data.input.value;
// stop JQM
// stop JQM
e
.
preventDefault
();
e
.
preventDefault
();
if
(
value
)
{
//if (value
) {
// now we can autocomplete...
// now we can autocomplete...
// this should also run from JIO
// this should also run from JIO
// whatever happens should take into account presets
// whatever happens should take into account presets
...
@@ -45,23 +51,23 @@ define([
...
@@ -45,23 +51,23 @@ define([
// rest must be stored in an attachment.
// rest must be stored in an attachment.
// and jIO
// and jIO
}
//
}
})
})
.
on
(
"
filterablecreate
"
,
function
(
e
,
ui
)
{
.
on
(
"
filterablecreate
"
,
function
(
e
)
{
var
$el
=
$
(
e
.
target
.
previousSibling
),
var
$el
=
$
(
e
.
target
.
previousSibling
),
input
=
$el
.
find
(
"
input
"
),
input
=
$el
.
find
(
"
input
"
),
action
=
$el
.
find
(
"
a.ui-input-action
"
);
action
=
$el
.
find
(
"
a.ui-input-action
"
);
// TODO: search should be run here and results should be passed to
// TODO: search should be run here and results should be passed to
// items or ?. Otherwise items has to listen for ... something, grab
// items or ?. Otherwise items has to listen for ... something, grab
// data from somewhere and query. This makes more sense here.
// data from somewhere and query. This makes more sense here.
action
.
on
(
"
click
"
,
function
(
e
)
{
action
.
on
(
"
click
"
,
function
(
)
{
runSearch
(
input
.
val
());
runSearch
(
input
.
val
());
});
});
input
.
on
(
"
keypress
"
,
function
(
e
)
{
input
.
on
(
"
keypress
"
,
function
(
e
)
{
if
(
e
.
which
==
13
)
{
if
(
e
.
which
=
==
13
)
{
e
.
preventDefault
();
e
.
preventDefault
();
runSearch
(
input
.
val
());
runSearch
(
input
.
val
());
}
}
...
@@ -71,9 +77,9 @@ define([
...
@@ -71,9 +77,9 @@ define([
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -89,4 +95,5 @@ define([
...
@@ -89,4 +95,5 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/seo/seo.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!seo.html!strip
'
'
text!seo.html!strip
'
,
,
'
css!seo
'
'
css!seo
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +31,4 @@ define([
...
@@ -27,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/shipment/shipment.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!shipment.html!strip
'
'
text!shipment.html!strip
'
,
,
'
css!shipment
'
'
css!shipment
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +31,4 @@ define([
...
@@ -27,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/sorting/sorting.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!sorting.html!strip
'
'
text!sorting.html!strip
'
,
,
'
css!sorting
'
'
css!sorting
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +31,4 @@ define([
...
@@ -27,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/summary/summary.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!summary.html!strip
'
'
text!summary.html!strip
'
,
,
'
css!summary
'
'
css!summary
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +31,4 @@ define([
...
@@ -27,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/teaser/teaser.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!teaser.html!strip
'
'
text!teaser.html!strip
'
,
,
'
css!teaser
'
'
css!teaser
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +31,4 @@ define([
...
@@ -27,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/terms/terms.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80 */
/*global define: true, define: true, $: true, window: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!terms.html!strip
'
'
text!terms.html!strip
'
,
,
'
css!terms
'
'
css!terms
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
var
response
=
{};
"
use strict
"
;
var
response
=
{},
def
;
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
App
.
renderGadgets
(
gadget
);
App
.
renderGadgets
(
gadget
);
});
});
...
@@ -27,4 +31,4 @@ define([
...
@@ -27,4 +31,4 @@ define([
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
modules/ui/translate/translate.js
View file @
0ea54899
/*jslint indent: 2, maxlen: 80, nomen: true */
/*global define: true, $: true, define: true, window: true, App: true,
RenderJs: true, document: true */
define
([
define
([
'
app
'
'
app
'
,
,
'
text!translate.html!strip
'
'
text!translate.html!strip
'
,
,
'
css!translate
'
'
css!translate
'
],
],
function
(
App
,
source
)
{
function
(
App
,
source
)
{
"
use strict
"
;
var
response
=
{};
var
response
=
{};
response
.
data
=
source
;
response
.
data
=
source
;
response
.
after
=
function
(
self
)
{
response
.
after
=
function
(
self
)
{
var
that
=
{};
var
priv
=
{},
var
priv
=
{};
def
;
var
def
;
// ====================================================================
// ====================================================================
// ATTRIBUTES
// ATTRIBUTES
...
@@ -36,7 +40,7 @@ define([
...
@@ -36,7 +40,7 @@ define([
//
//
priv
.
prefixId
=
function
(
id
,
gadget
)
{
priv
.
prefixId
=
function
(
id
,
gadget
)
{
return
gadget
.
dom
.
attr
(
'
id
'
)
+
"
__
"
+
id
;
return
gadget
.
dom
.
attr
(
'
id
'
)
+
"
__
"
+
id
;
}
}
;
//
//
// modify the icon of the popup button
// modify the icon of the popup button
...
@@ -44,13 +48,13 @@ define([
...
@@ -44,13 +48,13 @@ define([
// @param {object} gadget > gadget object
// @param {object} gadget > gadget object
// @param {string} icon > class name for icon
// @param {string} icon > class name for icon
//
//
priv
.
setIcon
=
function
(
gadget
,
language
)
{
priv
.
setIcon
=
function
(
language
)
{
// TODO: remove setTimeout!
// TODO: remove setTimeout!
window
.
setTimeout
(
function
()
{
window
.
setTimeout
(
function
()
{
$
(
"
.pick_language
"
)
$
(
"
.pick_language
"
)
.
removeClass
(
"
[class|='ui-icon']
"
)
.
removeClass
(
"
[class|='ui-icon']
"
)
.
addClass
(
"
ui-icon-
"
+
language
);
.
addClass
(
"
ui-icon-
"
+
language
);
},
50
);
},
50
);
};
};
//
//
...
@@ -58,7 +62,7 @@ define([
...
@@ -58,7 +62,7 @@ define([
// @method translate
// @method translate
// @param {string} language > language to set
// @param {string} language > language to set
//
//
priv
.
translate
=
function
(
language
,
target
)
{
priv
.
translate
=
function
(
target
)
{
var
collection
=
target
||
$
(
'
body
'
);
var
collection
=
target
||
$
(
'
body
'
);
collection
.
find
(
"
.
"
+
App
.
settings
.
language_selector
).
i18n
();
collection
.
find
(
"
.
"
+
App
.
settings
.
language_selector
).
i18n
();
};
};
...
@@ -78,11 +82,11 @@ define([
...
@@ -78,11 +82,11 @@ define([
"
resGetPath
"
:
'
lang/__lng__/__ns__.json
'
,
"
resGetPath
"
:
'
lang/__lng__/__ns__.json
'
,
"
ns
"
:
'
app
'
"
ns
"
:
'
app
'
},
function
()
{
},
function
()
{
priv
.
translate
(
language
);
priv
.
translate
();
});
});
App
.
settings
.
language_set
=
"
true
"
;
App
.
settings
.
language_set
=
"
true
"
;
}
else
{
}
else
{
priv
.
translate
(
language
);
priv
.
translate
();
}
}
};
};
...
@@ -99,25 +103,24 @@ define([
...
@@ -99,25 +103,24 @@ define([
priv
.
setIcon
(
language
);
priv
.
setIcon
(
language
);
};
};
// ====================================================================
====
// ====================================================================
// BINDINGS
// BINDINGS
// ====================================================================
====
// ====================================================================
// TODO: remove once callable per link!
// TODO: remove once callable per link!
// TODO: why do I need to call $.i18n.setLng again?
// TODO: why do I need to call $.i18n.setLng again?
priv
.
doc
.
on
(
"
ready
"
,
function
()
{
priv
.
doc
.
on
(
"
ready
"
,
function
()
{
var
that
=
$
(
this
);
var
that
=
$
(
this
);
that
that
.
filter
(
function
()
{
.
filter
(
function
()
{
return
that
.
attr
(
"
i18n
"
)
!==
"
set
"
;
return
that
.
attr
(
"
i18n
"
)
!==
"
set
"
;
})
})
.
attr
(
"
i18n
"
,
"
set
"
)
.
attr
(
"
i18n
"
,
"
set
"
)
.
on
(
"
click
"
,
"
a.change_language
"
,
function
(
e
)
{
.
on
(
"
click
"
,
"
a.change_language
"
,
function
(
e
)
{
var
language
=
this
.
getAttribute
(
"
href
"
).
replace
(
'
?lang=
'
,
''
);
var
language
=
this
.
getAttribute
(
"
href
"
).
replace
(
'
?lang=
'
,
''
);
e
.
preventDefault
();
e
.
preventDefault
();
e
.
stopPropagation
();
e
.
stopPropagation
();
$
(
"
.popup_all
"
).
popup
(
'
close
'
);
$
(
"
.popup_all
"
).
popup
(
"
close
"
);
if
(
App
.
settings
.
language_current
!==
language
)
{
if
(
App
.
settings
.
language_current
!==
language
)
{
// update language
// update language
...
@@ -127,7 +130,7 @@ define([
...
@@ -127,7 +130,7 @@ define([
priv
.
setIcon
(
language
);
priv
.
setIcon
(
language
);
// translate
// translate
$
.
i18n
.
setLng
(
language
,
function
()
{
$
.
i18n
.
setLng
(
language
,
function
()
{
priv
.
setTranslations
(
language
);
priv
.
setTranslations
(
language
);
});
});
}
}
...
@@ -139,7 +142,6 @@ define([
...
@@ -139,7 +142,6 @@ define([
// PUBLISH METHODS
// PUBLISH METHODS
// ====================================================================
// ====================================================================
// TODO: remove once callable via link
// TODO: remove once callable via link
// TODO: can I add methods to a module, when accessing the module from another module???
App
.
translate
=
priv
.
translate
;
App
.
translate
=
priv
.
translate
;
// prefix instance-ids, pass JSON, trigger("create")
// prefix instance-ids, pass JSON, trigger("create")
...
@@ -152,11 +154,11 @@ define([
...
@@ -152,11 +154,11 @@ define([
};
};
if
(
App
===
undefined
)
{
if
(
App
===
undefined
)
{
def
=
new
$
.
Deferred
;
def
=
new
$
.
Deferred
()
;
def
.
done
(
function
(
gadget
)
{
def
.
done
(
function
(
gadget
)
{
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
priv
.
deferred_setup_translations
(
gadget
)
priv
.
deferred_setup_translations
(
gadget
)
;
});
});
window
.
fallbackLoader
.
deferreds
.
push
(
def
);
window
.
fallbackLoader
.
deferreds
.
push
(
def
);
...
@@ -165,9 +167,9 @@ define([
...
@@ -165,9 +167,9 @@ define([
// prefix instance-ids, pass JSON
// prefix instance-ids, pass JSON
priv
.
deferred_setup_translations
(
priv
.
gadget
);
priv
.
deferred_setup_translations
(
priv
.
gadget
);
}
}
}
}
;
// return response object
// return response object
return
response
;
return
response
;
}
}
);
);
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