Fixed toast
This commit is contained in:
@@ -1,13 +1,18 @@
|
||||
this.GlobalUI = (function() {
|
||||
function GlobalUI() {}
|
||||
|
||||
GlobalUI.dialog = {};
|
||||
|
||||
GlobalUI.toast = function(text) {
|
||||
if (!GlobalUI._toast)
|
||||
GlobalUI._toast = $("#global-toast")[0];
|
||||
GlobalUI._toast.text = text;
|
||||
return GlobalUI._toast.show();
|
||||
var toast;
|
||||
GlobalUI.toast = function(opts) {
|
||||
if (!toast) toast = $("#global-toast")[0];
|
||||
if (_.isObject(opts)){
|
||||
toast.text = opts.text;
|
||||
Session.set("global.ui.toastTemplate", opts.template);
|
||||
Session.set("global.ui.toastData", opts.data);
|
||||
} else {
|
||||
toast.text = opts;
|
||||
Session.set("global.ui.toastTemplate");
|
||||
Session.set("global.ui.toastData");
|
||||
}
|
||||
return toast.show();
|
||||
};
|
||||
|
||||
GlobalUI.deletedToast = function(id, collection, itemName) {
|
||||
@@ -16,147 +21,18 @@ this.GlobalUI = (function() {
|
||||
template: "undoToast",
|
||||
data: {
|
||||
id: id,
|
||||
collection: collection
|
||||
}
|
||||
collection: collection,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
GlobalUI.setDialog = function(opts) {
|
||||
this.dialog = $("[global-dialog]")[0];
|
||||
Session.set("global.ui.dialogHeader", opts.heading);
|
||||
Session.set("global.ui.dialogData", opts.data);
|
||||
Session.set("global.ui.dialogTemplate", opts.template);
|
||||
Session.set("global.ui.dialogFullOnMobile", opts.fullOnMobile !== null);
|
||||
};
|
||||
|
||||
GlobalUI.showDialog = function(opts) {
|
||||
this.dialog = $("[global-dialog]")[0];
|
||||
Session.set("global.ui.dialogHeader", opts.heading);
|
||||
Session.set("global.ui.dialogData", opts.data);
|
||||
Session.set("global.ui.dialogTemplate", opts.template);
|
||||
Session.set("global.ui.dialogFullOnMobile", opts.fullOnMobile !== null);
|
||||
return Tracker.afterFlush((function(_this) {
|
||||
return function() {
|
||||
return _this.dialog.open();
|
||||
};
|
||||
})(this));
|
||||
};
|
||||
|
||||
GlobalUI.closeDialog = function() {
|
||||
return this.dialog.close();
|
||||
};
|
||||
|
||||
//To show a detail, first animate the click, with raising z-depth
|
||||
//then call this function with a template and data
|
||||
//the element should have a hero-id of detail-main
|
||||
GlobalUI.showDetail = function(opts) {
|
||||
Session.set("global.ui.detailData", opts.data);
|
||||
Session.set("global.ui.detailTemplate", opts.template);
|
||||
Session.set("global.ui.detailHeroId", opts.heroId);
|
||||
Session.set("global.ui.detailShow", true);
|
||||
};
|
||||
|
||||
//if setting the detail rather than showing it,
|
||||
//the template should contain the following in template.rendered
|
||||
//
|
||||
//if (!this.alreadyRendered){
|
||||
// Session.set("global.ui.detailShow", true);
|
||||
// this.alreadyRendered = true;
|
||||
//}
|
||||
GlobalUI.setDetail = function(opts) {
|
||||
Session.set("global.ui.detailData", opts.data);
|
||||
Session.set("global.ui.detailTemplate", opts.template);
|
||||
Session.set("global.ui.detailHeroId", opts.heroId);
|
||||
if (window.history && window.history.pushState) {
|
||||
history.replaceState({detail: "closed", opts: opts}, "Detail Dialog");
|
||||
history.pushState({detail: "opened", opts: opts}, "Detail Dialog");
|
||||
}
|
||||
};
|
||||
|
||||
var throttleBack = _.throttle(function() {
|
||||
history.back();
|
||||
}, 100, {trailing: false});
|
||||
|
||||
GlobalUI.closeDetail = function() {
|
||||
if (window.history && history.pushState && history.state.detail === "opened") {
|
||||
throttleBack();
|
||||
} else {
|
||||
Session.set("global.ui.detailShow", false);
|
||||
}
|
||||
};
|
||||
|
||||
GlobalUI.popStateHandler = function(e) {
|
||||
var state = e.originalEvent.state;
|
||||
if (state) {
|
||||
if (state.detail === "closed") {
|
||||
Session.set("global.ui.detailShow", false);
|
||||
} else if (state.detail === "opened") {
|
||||
var opts = state.opts;
|
||||
Session.set("global.ui.detailData", opts.data);
|
||||
Session.set("global.ui.detailTemplate", opts.template);
|
||||
Session.set("global.ui.detailHeroId", opts.heroId);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return GlobalUI;
|
||||
|
||||
})();
|
||||
|
||||
Template.layout.helpers({
|
||||
globalDialogTemplate: function() {
|
||||
return Session.get("global.ui.dialogTemplate");
|
||||
},
|
||||
globalDialogData: function() {
|
||||
return Session.get("global.ui.dialogData");
|
||||
},
|
||||
globalDialogFullOnMobile: function() {
|
||||
return Session.get("global.ui.dialogFullOnMobile");
|
||||
},
|
||||
globalDialogHeader: function() {
|
||||
return Session.get("global.ui.dialogHeader");
|
||||
},
|
||||
globalDetailSelected: function() {
|
||||
return Session.get("global.ui.detailShow") ? 1 : 0;
|
||||
},
|
||||
globalDetailTemplate: function() {
|
||||
return Session.get("global.ui.detailTemplate");
|
||||
},
|
||||
globalDetailData: function() {
|
||||
return Session.get("global.ui.detailData");
|
||||
},
|
||||
globalToastTemplate: function() {
|
||||
return Session.get("global.ui.toastTemplate");
|
||||
},
|
||||
globalToastData: function() {
|
||||
return Session.get("global.ui.toastData");
|
||||
}
|
||||
});
|
||||
|
||||
Template.layout.events({
|
||||
"core-overlay-close-completed [global-dialog]": function(e) {
|
||||
Session.set("global.ui.dialogTemplate", null);
|
||||
Session.set("global.ui.dialogData", null);
|
||||
return Session.set("global.ui.dialogFullOnMobile", null);
|
||||
},
|
||||
"core-animated-pages-transition-end [detail-pages]": function(e) {
|
||||
var detailOpened = Session.get("global.ui.detailShow");
|
||||
if (!detailOpened) {
|
||||
Session.set("global.ui.detailData", null);
|
||||
Session.set("global.ui.detailTemplate", null);
|
||||
Session.set("global.ui.detailHeroId", null);
|
||||
}
|
||||
},
|
||||
"core-animated-pages-transition-prepare": function(e) {
|
||||
var detailOpened = Session.get("global.ui.detailShow");
|
||||
if (detailOpened) {
|
||||
//set up the transition
|
||||
} else {
|
||||
//undo hack
|
||||
$("#mainContentSection").removeClass("fake-selected");
|
||||
}
|
||||
},
|
||||
"tap #screenDim": function(e) {
|
||||
GlobalUI.closeDetail();
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -11,7 +11,7 @@ Template.featureDialog.events({
|
||||
"tap #deleteButton": function(event, instance){
|
||||
Features.softRemoveNode(instance.data.featureId);
|
||||
GlobalUI.deletedToast(instance.data.featureId, "Features", "Feature");
|
||||
GlobalUI.closeDetail();
|
||||
popDialogStack();
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
</app-drawer>
|
||||
{{> yield}}
|
||||
</app-drawer-layout>
|
||||
<paper-toast id="global-toast" duration="5000"></paper-toast>
|
||||
<paper-toast id="global-toast" duration="5000">
|
||||
{{> Template.dynamic template=globalToastTemplate data=globalToastData }}
|
||||
</paper-toast>
|
||||
{{> dialogStack}}
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user