Skip to content

Instantly share code, notes, and snippets.

/**
* @class ExtMVC.view.scaffold.Index
* Adds a print button to each grid (remove by setting the hasPrintButton config to false)
*
* This is an example in support of http://edspencer.net/2009/07/extoverride-monkey-patching-ext-js.html
*/
(function() {
var originalBuildTopToolbar = ExtMVC.view.scaffold.Index.prototype.buildTopToolbar;
Ext.override(ExtMVC.view.scaffold.Index, {
filterPanelConfig: {
filters: [
{
title: 'Tags',
iconCls: 'tag',
store: this.albumStore,
convert: function(item) {
return item.get('tag_list').split(',');
}
},
(function() {
var englishTranslations = (function() {
var translations = {};
Ext.apply(translations,
//duplicates
{
something: this.kohive
},
//constructor for the MyClass class
MyClass = function() {
//do whatever constructor logic you need, or just leave it blank
};
//creates a class-level function, which you can call via MyClass.loadThing()
MyClass.loadThing = function() {
//do your loading thing
}
/**
* @class CampaignFilter
* @extends Ext.Panel
* Description
*/
CampaignFilter = Ext.extend(Ext.Panel, {
constructor: function(config) {
var config = config || {};
Ext.onReady(function() {
//The panel we'll be adding our nav items to
var navGroup = new Ext.Panel({
region: 'west',
width: 180
});
//assuming this returns some JSON like {response: [{title: 'My Nav Item', html: 'some text'}, {title: 'Another item', html: 'test'}]}
var store = new Ext.data.JsonStore({
url: '<?= RELATIVE_PATH ?>/Nav/View',
propertiesExist = function(object, properties) {
var allExist = true;
properties = properties || {};
Ext.each(properties, function(property) {
var splits = property.split('.');
var currentObj = object;
Ext.each(splits, function(currentProperty, index, all) {
if (!allExist) return false;
//taken from a recent project - tells ExtMVC.Model to use a ScriptTagProxy and a remote host
Ext.apply(ExtMVC.Model.Adapter.REST.classMethods, {
urlExtension: '.json',
// port: 3000,
// host: 'http://localhost',
host: 'http://widgets.jungle-media.com',
proxyType: Ext.data.ScriptTagProxy,
parseSingleLoadResponse: function(response, options, callbacks) {
var m = this.getReader().readRecords(eval("(" + response.responseText + ")"));
/**
* @class Ext.ux.BreadcrumbTrail
* @extends Ext.Container
* @author Ed Spencer
* Renders a series of breadcrumbs which fire events when clicked.
* Add Ext.ux.Breadcrumb objects as items - each Breadcrumb is mostly just a reference to a Component such as
* an Ext.Panel. When the breadcrumb-clicked event is fired it is called with the component as the only arg.
*
* Example Usage - move to a specific tab:
*
alias ll="ls -alh"
alias rss="ruby script/server"
alias rss4="ruby script/server -p 4000"
alias rssp="ruby script/server -e production"
alias rsc="ruby script/console"
alias rsa="ruby script/about"
alias rsg="ruby script/generate"
alias rsgm="ruby script/generate migration"
alias rsgrm="ruby script/generate rspec_model"