CanJS jQuery Template

Includes jQuery, CanJS and all of its plugins. Use it as a starting point when you want to demo something.

by cherif_b

HTML

<script src="http://canjs.us/release/latest/can.jquery.js"></script>
<script src="http://canjs.us/release/latest/can.construct.proxy.js"></script>
<script src="http://canjs.us/release/latest/can.control.plugin.js"></script>
<script src="http://canjs.us/release/latest/can.view.modifiers.js"></script>
<script src="http://canjs.us/release/latest/can.construct.super.js"></script>
<script src="http://canjs.us/release/latest/can.object.js"></script>
<script src="http://canjs.us/release/latest/can.ejs.js"></script>
<script src="http://canjs.us/release/latest/can.map.attributes.js"></script>
<script src="http://canjs.us/release/latest/can.map.backup.js"></script>
<script src="http://canjs.us/release/latest/can.map.delegate.js"></script>
<script src="http://canjs.us/release/latest/can.map.setter.js"></script>
<script src="http://canjs.us/release/latest/can.map.validations.js"></script>
<script src="http://canjs.com/release/latest/can.fixture.js"></script>
<script src="//canjs.com/release/2.1.3/can.stache.js"></script>
<div id="main"></div>

<script type="text/x-stache-template" id="app-template">
<env-main>

  {{#each runtimes}}
    <env-runtime subject="{name}"></env-runtime>
  {{/each}}
        
</env-main>
</script>

<script type="text/x-stache-template" id="environment">
<div class="col-md-12">
	<div class='panel panel-default'>
	  <div class="panel-title"></div>
	  <div class='panel-body'>
	    <content/>
	  <div class='clearfix'></div>
	  </div>
	</div>
</div>
    </script>
<script type="text/x-stache-template" id="runtime">
<div class="col-md-3">
	<div class='panel panel-default'>
	  <div class='panel-body'>
	    {{subject}}

	    <ul>
	      {{#servers}}<li can-click="destroy">{{.}}</li>{{/servers}}
	    </ul>

  	  <content/>   
	  </div>
	</div>
</div>
        </script>

CSS

/*!
 * Bootstrap v3.1.1 (http://getbootstrap.com)
 * Copyright 2011-2014 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */

/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
html {
  font-family: sans-serif;
  -webkit-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  margin: .67em 0;
  font-size: 2em;
}
mark {
  color: #000;
  background: #ff0;
}
small {
  font-size: 80%;
}
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sup {
  top: -.5em;
}
sub {
  bottom: -.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  height: 0;
  -moz-box-sizing: content-box;
       box-sizing: content-box;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  margin: 0;
  font: inherit;
  color: inherit;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding:...

JavaScript

(function (namespace) {
	can.Component.extend({
	  tag: "env-runtime",
	  template: can.view("runtime"),
	  scope: {
	  	destroy: function(ctx, el, ev){
	  		console.log(ctx);
	  	}
	  }
	});
 
	can.Component.extend({
	  tag: "env-main",
	  template: can.view("environment")
	});
 
})(this);

var runtimes = new can.List(
	  	[
	  	  {name: 'PHP', servers: ['nginx','apache']},
	  	  {name: 'Java', servers: ['Jetty','Glassfish']},
	  	  {name: 'Ruby', servers: ['Unicorn','Puma']}
	  	]
	  );

var frag=can.view("app-template", {runtimes: runtimes});
$("#main").html(frag);