Skip to content

Commit aeb3237

Browse files
committed
Merge branch 'master' into rails-asset-pipeline
2 parents 63bd000 + f0746b0 commit aeb3237

File tree

11 files changed

+74
-15
lines changed

11 files changed

+74
-15
lines changed

.jshintrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"document": true,
2222
"window": true,
2323
"$":true,
24+
"Framework7":true,
2425
"Event":true,
2526
"DocumentTouch":true,
2627
"app":true

kitchen-sink/deep-navbar.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
<div class="navbar">
33
<div class="navbar-inner">
4-
<div class="left sliding"><a href="index.html" class="back link">Framework 7</a></div>
4+
<div class="left sliding"><a href="index.html" class="back link">Navbars</a></div>
55
<div class="center sliding">Deep Navbar</div>
66
<div class="right sliding"><a href="deep-navbar-2.html" class="link">Deep 2</a></div>
77
</div>

kitchen-sink/jade/deep-navbar.jade

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.navbar
22
.navbar-inner
33
.left.sliding
4-
a(href="index.html").back.link Framework 7
4+
a(href="index.html").back.link Navbars
55
.center.sliding Deep Navbar
66
.right.sliding
77
a(href="deep-navbar-2.html").link Deep 2

kitchen-sink/js/kitchen-sink.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ var myApp = new Framework7({
1818
});
1919

2020
// Expose Internal DOM library
21-
var $$ = myApp.$;
21+
var $$ = Framework7.$;
2222

2323
// Add main view
2424
var mainView = myApp.addView('.view-main', {

src/js/clicks.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,9 @@ app.initClickEvents = function () {
115115
}
116116
else {
117117
view = clicked.parents('.view')[0] && clicked.parents('.view')[0].f7View;
118+
if (view && view.params.linksView) {
119+
view = $(view.params.linksView)[0].f7View;
120+
}
118121
}
119122
if (!view) {
120123
for (var i = 0; i < app.views.length; i++) {

src/js/device.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,20 @@ app.getDeviceInfo = function () {
1919
device.os = 'ios';
2020
}
2121
// iOS
22-
if (iphone && !ipod) device.osVersion = iphone[2].replace(/_/g, '.');
23-
if (ipad) device.osVersion = ipad[2].replace(/_/g, '.');
24-
if (ipod) device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;
22+
device.iphone = false;
23+
device.ipad = false;
24+
if (iphone && !ipod) {
25+
device.osVersion = iphone[2].replace(/_/g, '.');
26+
device.iphone = true;
27+
}
28+
if (ipad) {
29+
device.osVersion = ipad[2].replace(/_/g, '.');
30+
device.ipad = true;
31+
}
32+
if (ipod) {
33+
device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;
34+
device.iphone = true;
35+
}
2536

2637
// Webview
2738
device.webview = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);

src/js/dom.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -508,4 +508,6 @@ $.trim = function (str) {
508508
$.supportTouch = (function () {
509509
return !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
510510
})();
511-
$.fn = Dom7.prototype;
511+
$.fn = Dom7.prototype;
512+
// Export Selectors engine to global Framework7
513+
Framework7.$ = $;

src/js/init.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,14 @@ app.init = function () {
1111
if (app.initPullToRefresh && app.params.pullToRefresh) app.initPullToRefresh();
1212
// Init each page callbacks
1313
$('.page').each(function () {
14-
app.initPage(this);
14+
var pageContainer = $(this);
15+
var viewContainer = pageContainer.parents('.view');
16+
var view = viewContainer[0].f7View || false;
17+
var url = view && view.url ? view.url : false;
18+
if (viewContainer) {
19+
viewContainer.attr('data-page', pageContainer.attr('data-page') || undefined);
20+
}
21+
app.pageInitCallback(view, this, url, 'center');
1522
});
1623
// Init resize events
1724
if (app.initResize) app.initResize();

src/js/modals.js

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,11 +164,25 @@ app.actions = function (params) {
164164
app.openModal(modal);
165165
return modal[0];
166166
};
167-
app.popover = function (modal, target) {
167+
app.popover = function (modal, target, removeOnClose) {
168+
if (typeof removeOnClose === 'undefined') removeOnClose = true;
169+
if (typeof modal === 'string' && modal.indexOf('<') >= 0) {
170+
var _modal = document.createElement('div');
171+
_modal.innerHTML = modal;
172+
if (_modal.childNodes.length > 0) {
173+
modal = _modal.childNodes[0];
174+
if (removeOnClose) modal.classList.add('remove-on-close');
175+
$('body').append(modal);
176+
}
177+
else return false; //nothing found
178+
}
168179
modal = $(modal);
180+
console.log(target);
169181
target = $(target);
170182
if (modal.length === 0 || target.length === 0) return false;
171-
183+
if (modal.find('.popover-angle').length === 0) {
184+
modal.append('<div class="popover-angle"></div>');
185+
}
172186
modal.show();
173187

174188
function sizePopover() {
@@ -256,7 +270,18 @@ app.popover = function (modal, target) {
256270
app.openModal(modal);
257271
return modal[0];
258272
};
259-
app.popup = function (modal) {
273+
app.popup = function (modal, removeOnClose) {
274+
if (typeof removeOnClose === 'undefined') removeOnClose = true;
275+
if (typeof modal === 'string' && modal.indexOf('<') >= 0) {
276+
var _modal = document.createElement('div');
277+
_modal.innerHTML = modal;
278+
if (_modal.childNodes.length > 0) {
279+
modal = _modal.childNodes[0];
280+
if (removeOnClose) modal.classList.add('remove-on-close');
281+
$('body').append(modal);
282+
}
283+
else return false; //nothing found
284+
}
260285
modal = $(modal);
261286
if (modal.length === 0) return false;
262287
modal.show();
@@ -294,15 +319,18 @@ app.closeModal = function (modal) {
294319
modal.trigger('close');
295320
var isPopover = modal.hasClass('popover');
296321
var isPopup = modal.hasClass('popup');
322+
var removeOnClose = modal.hasClass('remove-on-close');
297323
if (!isPopover) {
298324
modal.removeClass('modal-in').addClass('modal-out').transitionEnd(function (e) {
299325
modal.trigger('closed');
300326
if (!isPopup) modal.remove();
301327
if (isPopup) modal.removeClass('modal-out').hide();
328+
if (removeOnClose) modal.remove();
302329
});
303330
}
304331
else {
305332
modal.removeClass('modal-in modal-out').trigger('closed').hide();
333+
if (removeOnClose) modal.remove();
306334
}
307335
return true;
308336
};

src/js/pages.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ app.pageInitCallback = function (view, pageContainer, url, position) {
1818
if (app.params.onPageBeforeInit) {
1919
app.params.onPageBeforeInit(pageData);
2020
}
21-
if (view.params.onPageBeforeInit) {
21+
if (view && view.params.onPageBeforeInit) {
2222
view.params.onPageBeforeInit(pageData);
2323
}
2424
$(document).trigger('pageBeforeInit', {page: pageData});
@@ -27,7 +27,7 @@ app.pageInitCallback = function (view, pageContainer, url, position) {
2727
if (app.params.onPageInit) {
2828
app.params.onPageInit(pageData);
2929
}
30-
if (view.params.onPageInit) {
30+
if (view && view.params.onPageInit) {
3131
view.params.onPageInit(pageData);
3232
}
3333
$(document).trigger('pageInit', {page: pageData});
@@ -56,6 +56,9 @@ app.pageAnimCallbacks = function (callback, view, params) {
5656

5757
}
5858
if (callback === 'before') {
59+
// Add data-page on view
60+
$(view.container).attr('data-page', pageData.name);
61+
5962
// Hide/show navbar dynamically
6063
if (newPage.hasClass('no-navbar') && !oldPage.hasClass('no-navbar')) {
6164
view.hideNavbar();

0 commit comments

Comments
 (0)