Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Items = new Meteor.Collection("items");
- if (Meteor.isServer) {
- // Bootstrap data -- server only
- Meteor.startup(function () {
- if (Items.find().count() === 0) {
- Items.insert({title: "item #01", enabled: true, processed: true});
- Items.insert({title: "item #02", enabled: false, processed: false});
- Items.insert({title: "item #03", enabled: false, processed: false});
- Items.insert({title: "item #04", enabled: false, processed: false});
- Items.insert({title: "item #05", enabled: false, processed: true});
- Items.insert({title: "item #06", enabled: true, processed: true});
- Items.insert({title: "item #07", enabled: false, processed: true});
- Items.insert({title: "item #08", enabled: true, processed: false});
- Items.insert({title: "item #09", enabled: false, processed: true});
- Items.insert({title: "item #10", enabled: true, processed: true});
- Items.insert({title: "item #11", enabled: true, processed: true});
- Items.insert({title: "item #12", enabled: true, processed: false});
- Items.insert({title: "item #13", enabled: false, processed: true});
- Items.insert({title: "item #14", enabled: true, processed: true});
- Items.insert({title: "item #15", enabled: false, processed: false});
- }
- });
- }
- var getEnabledItems = function (search1) {
- return Items.find({enabled: true, title: new RegExp(RegExp.escape(search1 || ""), 'i')});
- };
- var getProcessedItems = function (search2) {
- return Items.find({processed: true, title: new RegExp(RegExp.escape(search2 || ""), 'i')});
- }
- if (Meteor.isServer) {
- Meteor.publish('enabled_items', function (search1) {
- return getEnabledItems(search1);
- });
- Meteor.publish('processed_items', function (search2) {
- return getProcessedItems(search2);
- });
- }
- if (Meteor.isClient) {
- Meteor.autosubscribe(function () {
- Meteor.subscribe('enabled_items', Session.get("search1"));
- Meteor.subscribe('processed_items', Session.get("search2"));
- });
- Template.main.enabledItems = function() {
- return getEnabledItems(Session.get("search1"));
- };
- Template.main.processedItems = function() {
- return getProcessedItems(Session.get("search2"));
- };
- // Basic search filtering
- Session.get("search1", "");
- Session.get("search2", "");
- Template.main.search1 = function () {
- return Session.get("search1");
- };
- Template.main.search2 = function () {
- return Session.get("search2");
- };
- Template.main.events({
- "keyup [name='search1']": function (event, template) {
- Session.set("search1", $(template.find("[name='search1']")).val());
- },
- "keyup [name='search2']": function (event, template) {
- Session.set("search2", $(template.find("[name='search2']")).val());
- }
- });
- Template.main.preserve([
- "[name='search1']",
- "[name='search2']"
- ]);
- }
- // Utility, shared across client/server, used for search
- if (!RegExp.escape) {
- RegExp.escape = function (text) {
- return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
- };
- }
- ----------------------
- <head>
- <title>Collection View Test</title>
- </head>
- <body>
- {{> main}}
- </body>
- <template name="main">
- <h1>Collection View Test</h1>
- <div style="float: left; border-right: 3px double #000; margin-right: 10px; padding-right: 10px;">
- <h2>Enabled Items</h2>
- <input type="text" name="search1" value="{{search1}}" placeholder="search this column" />
- <ul>
- {{#each enabledItems}}
- <li>{{title}}</li>
- {{/each}}
- </ul>
- </div>
- <div style="float: left;">
- <h2>Processed Items</h2>
- <input type="text" name="search2" value="{{search2}}" placeholder="search this column" />
- <ul>
- {{#each processedItems}}
- <li>{{title}}</li>
- {{/each}}
- </ul>
- </div>
- </template>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement