3 <title>The source code</title>
\r
4 <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
\r
5 <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
\r
7 <body onload="prettyPrint();">
\r
8 <pre class="prettyprint lang-js">Imgorg.AlbumsPanel = Ext.extend(Ext.Panel,{
9 initComponent: function() {
16 defaultType: 'img-album',
25 Imgorg.AlbumsPanel.superclass.initComponent.call(this);
27 this.on('activate', this.loadAlbums, this);
30 afterRender: function() {
31 Imgorg.AlbumsPanel.superclass.afterRender.call(this);
32 this.body.on('click', this.onClick, this, {delegate: 'div.album-wrap'});
35 loadAlbums: function() {
36 Imgorg.ss.Albums.getAllInfo({}, this.setupAlbums, this);
39 setupAlbums: function(data, resp) {
40 var cols = [[],[],[]];
42 for (var i = 0;i < data.length;i++) {
49 for (var i = 0; i < 3; i++) {
50 this.items.get(i).generateAlbums(cols[i]);
54 onClick: function(e, n) {
55 var album = n.attributes.album_id.value;
56 var album_name = n.attributes.album_name.value;
57 this.fireEvent('openalbum', this, album, album_name);
60 Ext.reg('img-albumspanel', Imgorg.AlbumsPanel);
62 Imgorg.Album = Ext.extend(Ext.Panel,{
65 tpl: new Ext.XTemplate(
67 '<div class="album-wrap" album_id="{id}" album_name="{text}">',
68 '<div class="album-wrap-inner">',
69 '{filename:this.imageFormat}',
70 '<h3>Album: {text}</h3>',
71 '<div class="album-details">',
72 '<p>Date: {date}</p>',
73 '<p>Size: {size} images</p>',
78 imageFormat: function(filename, data) {
80 return String.format('<img src="images/thumbs/{0}" height="{1}" width="{2}" />',filename, data.height, data.width);
82 return '<p>No Images in Album</p>';
87 generateAlbums: function(albums) {
88 for(var i = 0; i < albums.length;i++) {
90 albums[i].height = Math.min(this.maxHeight, albums[i].exif.COMPUTED.Height);
91 albums[i].width = Math.min(this.maxWidth, albums[i].exif.COMPUTED.Width);
94 this.tpl.overwrite(this.body, albums);
97 Ext.reg('img-album', Imgorg.Album);